From 762aa9e49b8df80d7ab2bea1a7074f5b6da53be3 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 25 Aug 2024 09:28:29 -0700 Subject: [PATCH 001/116] Update the GitHub pull request template (#3755) --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 3e6b8bf6d0d..a30cb642a46 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -30,7 +30,7 @@ - [ ] The PR is self-contained and cannot be split into smaller PRs? - [ ] Have I provided a clear explanation of the changes? - [ ] Have I considered writing automated tests for the issue? -- [ ] If I have text, did I add make it translatable and added a key in the English language? +- [ ] If I have text, did I make it translatable and add a key in the English locale file(s)? - [ ] Have I tested the changes (manually)? - [ ] Are all unit tests still passing? (`npm run test`) - [ ] Are the changes visual? From 968c4ce3e6e7d5cdcddea0e2aced40a2c84e5bb9 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Thu, 29 Aug 2024 10:17:40 -0700 Subject: [PATCH 002/116] [Localization] Use gender context for dialogues (all 3 files) (#3879) * merge dialogue files into single files No more -male, -female. Rather using context * adopt changes from #3697 --- src/locales/ca_ES/config.ts | 24 +- ...emale.json => dialogue-double-battle.json} | 0 ...tle-male.json => dialogue-final-boss.json} | 0 ...ialogue-female.json => dialogue-misc.json} | 0 ...e-final-boss-female.json => dialogue.json} | 0 src/locales/de/config.ts | 24 +- .../de/dialogue-double-battle-male.json | 82 - ...emale.json => dialogue-double-battle.json} | 0 src/locales/de/dialogue-final-boss-male.json | 4 - ...s-female.json => dialogue-final-boss.json} | 0 src/locales/de/dialogue-male.json | 2691 ----------------- src/locales/de/dialogue-misc-male.json | 6 - ...ue-misc-female.json => dialogue-misc.json} | 0 .../{dialogue-female.json => dialogue.json} | 0 src/locales/en/config.ts | 24 +- .../en/dialogue-double-battle-male.json | 82 - ...emale.json => dialogue-double-battle.json} | 6 +- src/locales/en/dialogue-female.json | 2691 ----------------- src/locales/en/dialogue-final-boss-male.json | 5 - ...s-female.json => dialogue-final-boss.json} | 1 + src/locales/en/dialogue-misc-male.json | 6 - ...ue-misc-female.json => dialogue-misc.json} | 0 .../en/{dialogue-male.json => dialogue.json} | 268 +- src/locales/es/config.ts | 24 +- .../dialogue-double-battle.json} | 0 .../dialogue-final-boss.json} | 0 src/locales/es/dialogue-male.json | 52 - .../dialogue-misc.json} | 0 .../{dialogue-female.json => dialogue.json} | 0 src/locales/fr/config.ts | 24 +- .../fr/dialogue-double-battle-female.json | 82 - ...-male.json => dialogue-double-battle.json} | 3 +- src/locales/fr/dialogue-female.json | 577 ---- .../fr/dialogue-final-boss-female.json | 5 - ...oss-male.json => dialogue-final-boss.json} | 1 + src/locales/fr/dialogue-misc-male.json | 4 - ...ue-misc-female.json => dialogue-misc.json} | 0 .../fr/{dialogue-male.json => dialogue.json} | 27 +- src/locales/it/config.ts | 24 +- .../it/dialogue-double-battle-male.json | 1 - .../dialogue-double-battle.json} | 0 src/locales/it/dialogue-female.json | 1 - .../it/dialogue-final-boss-female.json | 1 - src/locales/it/dialogue-final-boss-male.json | 1 - .../dialogue-final-boss.json} | 0 src/locales/it/dialogue-male.json | 1 - src/locales/it/dialogue-misc-female.json | 1 - src/locales/it/dialogue-misc-male.json | 1 - .../dialogue-misc.json} | 0 .../dialogue.json} | 0 src/locales/ja/config.ts | 24 +- .../ja/dialogue-double-battle-female.json | 1 - .../ja/dialogue-double-battle-male.json | 1 - .../dialogue-double-battle.json} | 0 src/locales/ja/dialogue-female.json | 1 - .../ja/dialogue-final-boss-female.json | 1 - src/locales/ja/dialogue-final-boss-male.json | 1 - .../dialogue-final-boss.json} | 0 src/locales/ja/dialogue-male.json | 1 - src/locales/ja/dialogue-misc-female.json | 1 - src/locales/ja/dialogue-misc-male.json | 1 - .../dialogue-misc.json} | 0 .../dialogue.json} | 0 src/locales/ko/config.ts | 24 +- .../ko/dialogue-double-battle-male.json | 82 - ...emale.json => dialogue-double-battle.json} | 0 src/locales/ko/dialogue-female.json | 2691 ----------------- src/locales/ko/dialogue-final-boss-male.json | 5 - ...s-female.json => dialogue-final-boss.json} | 0 src/locales/ko/dialogue-misc-male.json | 6 - ...ue-misc-female.json => dialogue-misc.json} | 0 .../ko/{dialogue-male.json => dialogue.json} | 0 src/locales/pt_BR/config.ts | 24 +- .../pt_BR/dialogue-double-battle-female.json | 82 - ...-male.json => dialogue-double-battle.json} | 3 +- src/locales/pt_BR/dialogue-female.json | 2691 ----------------- .../pt_BR/dialogue-final-boss-female.json | 5 - ...oss-male.json => dialogue-final-boss.json} | 1 + src/locales/pt_BR/dialogue-misc-female.json | 6 - ...ogue-misc-male.json => dialogue-misc.json} | 0 .../{dialogue-male.json => dialogue.json} | 258 +- src/locales/zh_CN/config.ts | 24 +- .../zh_CN/dialogue-double-battle-male.json | 82 - ...emale.json => dialogue-double-battle.json} | 0 .../zh_CN/dialogue-final-boss-male.json | 5 - ...s-female.json => dialogue-final-boss.json} | 0 src/locales/zh_CN/dialogue-male.json | 2691 ----------------- src/locales/zh_CN/dialogue-misc-male.json | 4 - ...ue-misc-female.json => dialogue-misc.json} | 0 .../{dialogue-female.json => dialogue.json} | 0 src/locales/zh_TW/config.ts | 24 +- .../zh_TW/dialogue-double-battle-male.json | 82 - ...emale.json => dialogue-double-battle.json} | 0 .../zh_TW/dialogue-final-boss-male.json | 5 - ...s-female.json => dialogue-final-boss.json} | 0 src/locales/zh_TW/dialogue-male.json | 2137 ------------- src/locales/zh_TW/dialogue-misc-male.json | 4 - ...ue-misc-female.json => dialogue-misc.json} | 0 .../{dialogue-female.json => dialogue.json} | 0 src/phases/encounter-phase.ts | 4 +- src/ui/ui.ts | 45 +- 101 files changed, 526 insertions(+), 17235 deletions(-) rename src/locales/ca_ES/{dialogue-double-battle-female.json => dialogue-double-battle.json} (100%) rename src/locales/ca_ES/{dialogue-double-battle-male.json => dialogue-final-boss.json} (100%) rename src/locales/ca_ES/{dialogue-female.json => dialogue-misc.json} (100%) rename src/locales/ca_ES/{dialogue-final-boss-female.json => dialogue.json} (100%) delete mode 100644 src/locales/de/dialogue-double-battle-male.json rename src/locales/de/{dialogue-double-battle-female.json => dialogue-double-battle.json} (100%) delete mode 100644 src/locales/de/dialogue-final-boss-male.json rename src/locales/de/{dialogue-final-boss-female.json => dialogue-final-boss.json} (100%) delete mode 100644 src/locales/de/dialogue-male.json delete mode 100644 src/locales/de/dialogue-misc-male.json rename src/locales/de/{dialogue-misc-female.json => dialogue-misc.json} (100%) rename src/locales/de/{dialogue-female.json => dialogue.json} (100%) delete mode 100644 src/locales/en/dialogue-double-battle-male.json rename src/locales/en/{dialogue-double-battle-female.json => dialogue-double-battle.json} (95%) delete mode 100644 src/locales/en/dialogue-female.json delete mode 100644 src/locales/en/dialogue-final-boss-male.json rename src/locales/en/{dialogue-final-boss-female.json => dialogue-final-boss.json} (96%) delete mode 100644 src/locales/en/dialogue-misc-male.json rename src/locales/en/{dialogue-misc-female.json => dialogue-misc.json} (100%) rename src/locales/en/{dialogue-male.json => dialogue.json} (95%) rename src/locales/{ca_ES/dialogue-final-boss-male.json => es/dialogue-double-battle.json} (100%) rename src/locales/{ca_ES/dialogue-male.json => es/dialogue-final-boss.json} (100%) delete mode 100644 src/locales/es/dialogue-male.json rename src/locales/{ca_ES/dialogue-misc-female.json => es/dialogue-misc.json} (100%) rename src/locales/es/{dialogue-female.json => dialogue.json} (100%) delete mode 100644 src/locales/fr/dialogue-double-battle-female.json rename src/locales/fr/{dialogue-double-battle-male.json => dialogue-double-battle.json} (94%) delete mode 100644 src/locales/fr/dialogue-female.json delete mode 100644 src/locales/fr/dialogue-final-boss-female.json rename src/locales/fr/{dialogue-final-boss-male.json => dialogue-final-boss.json} (55%) delete mode 100644 src/locales/fr/dialogue-misc-male.json rename src/locales/fr/{dialogue-misc-female.json => dialogue-misc.json} (100%) rename src/locales/fr/{dialogue-male.json => dialogue.json} (95%) delete mode 100644 src/locales/it/dialogue-double-battle-male.json rename src/locales/{ca_ES/dialogue-misc-male.json => it/dialogue-double-battle.json} (100%) delete mode 100644 src/locales/it/dialogue-female.json delete mode 100644 src/locales/it/dialogue-final-boss-female.json delete mode 100644 src/locales/it/dialogue-final-boss-male.json rename src/locales/{es/dialogue-double-battle-female.json => it/dialogue-final-boss.json} (100%) delete mode 100644 src/locales/it/dialogue-male.json delete mode 100644 src/locales/it/dialogue-misc-female.json delete mode 100644 src/locales/it/dialogue-misc-male.json rename src/locales/{es/dialogue-double-battle-male.json => it/dialogue-misc.json} (100%) rename src/locales/{es/dialogue-final-boss-female.json => it/dialogue.json} (100%) delete mode 100644 src/locales/ja/dialogue-double-battle-female.json delete mode 100644 src/locales/ja/dialogue-double-battle-male.json rename src/locales/{es/dialogue-final-boss-male.json => ja/dialogue-double-battle.json} (100%) delete mode 100644 src/locales/ja/dialogue-female.json delete mode 100644 src/locales/ja/dialogue-final-boss-female.json delete mode 100644 src/locales/ja/dialogue-final-boss-male.json rename src/locales/{es/dialogue-misc-female.json => ja/dialogue-final-boss.json} (100%) delete mode 100644 src/locales/ja/dialogue-male.json delete mode 100644 src/locales/ja/dialogue-misc-female.json delete mode 100644 src/locales/ja/dialogue-misc-male.json rename src/locales/{es/dialogue-misc-male.json => ja/dialogue-misc.json} (100%) rename src/locales/{it/dialogue-double-battle-female.json => ja/dialogue.json} (100%) delete mode 100644 src/locales/ko/dialogue-double-battle-male.json rename src/locales/ko/{dialogue-double-battle-female.json => dialogue-double-battle.json} (100%) delete mode 100644 src/locales/ko/dialogue-female.json delete mode 100644 src/locales/ko/dialogue-final-boss-male.json rename src/locales/ko/{dialogue-final-boss-female.json => dialogue-final-boss.json} (100%) delete mode 100644 src/locales/ko/dialogue-misc-male.json rename src/locales/ko/{dialogue-misc-female.json => dialogue-misc.json} (100%) rename src/locales/ko/{dialogue-male.json => dialogue.json} (100%) delete mode 100644 src/locales/pt_BR/dialogue-double-battle-female.json rename src/locales/pt_BR/{dialogue-double-battle-male.json => dialogue-double-battle.json} (93%) delete mode 100644 src/locales/pt_BR/dialogue-female.json delete mode 100644 src/locales/pt_BR/dialogue-final-boss-female.json rename src/locales/pt_BR/{dialogue-final-boss-male.json => dialogue-final-boss.json} (55%) delete mode 100644 src/locales/pt_BR/dialogue-misc-female.json rename src/locales/pt_BR/{dialogue-misc-male.json => dialogue-misc.json} (100%) rename src/locales/pt_BR/{dialogue-male.json => dialogue.json} (87%) delete mode 100644 src/locales/zh_CN/dialogue-double-battle-male.json rename src/locales/zh_CN/{dialogue-double-battle-female.json => dialogue-double-battle.json} (100%) delete mode 100644 src/locales/zh_CN/dialogue-final-boss-male.json rename src/locales/zh_CN/{dialogue-final-boss-female.json => dialogue-final-boss.json} (100%) delete mode 100644 src/locales/zh_CN/dialogue-male.json delete mode 100644 src/locales/zh_CN/dialogue-misc-male.json rename src/locales/zh_CN/{dialogue-misc-female.json => dialogue-misc.json} (100%) rename src/locales/zh_CN/{dialogue-female.json => dialogue.json} (100%) delete mode 100644 src/locales/zh_TW/dialogue-double-battle-male.json rename src/locales/zh_TW/{dialogue-double-battle-female.json => dialogue-double-battle.json} (100%) delete mode 100644 src/locales/zh_TW/dialogue-final-boss-male.json rename src/locales/zh_TW/{dialogue-final-boss-female.json => dialogue-final-boss.json} (100%) delete mode 100644 src/locales/zh_TW/dialogue-male.json delete mode 100644 src/locales/zh_TW/dialogue-misc-male.json rename src/locales/zh_TW/{dialogue-misc-female.json => dialogue-misc.json} (100%) rename src/locales/zh_TW/{dialogue-female.json => dialogue.json} (100%) diff --git a/src/locales/ca_ES/config.ts b/src/locales/ca_ES/config.ts index 514c7fb63c7..4d8f6c9dc59 100644 --- a/src/locales/ca_ES/config.ts +++ b/src/locales/ca_ES/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const caEsConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/ca_ES/dialogue-double-battle-female.json b/src/locales/ca_ES/dialogue-double-battle.json similarity index 100% rename from src/locales/ca_ES/dialogue-double-battle-female.json rename to src/locales/ca_ES/dialogue-double-battle.json diff --git a/src/locales/ca_ES/dialogue-double-battle-male.json b/src/locales/ca_ES/dialogue-final-boss.json similarity index 100% rename from src/locales/ca_ES/dialogue-double-battle-male.json rename to src/locales/ca_ES/dialogue-final-boss.json diff --git a/src/locales/ca_ES/dialogue-female.json b/src/locales/ca_ES/dialogue-misc.json similarity index 100% rename from src/locales/ca_ES/dialogue-female.json rename to src/locales/ca_ES/dialogue-misc.json diff --git a/src/locales/ca_ES/dialogue-final-boss-female.json b/src/locales/ca_ES/dialogue.json similarity index 100% rename from src/locales/ca_ES/dialogue-final-boss-female.json rename to src/locales/ca_ES/dialogue.json diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index afefd98a0cb..772bfb6d1d5 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const deConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/de/dialogue-double-battle-male.json b/src/locales/de/dialogue-double-battle-male.json deleted file mode 100644 index ec7cf375c0c..00000000000 --- a/src/locales/de/dialogue-double-battle-male.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "Blau: Hey Rot, lass uns ihnen zeigen, was wir drauf haben!\n$Rot: ...\n$Blau: Das ist die Macht von Alabastia!" - }, - "victory": { - "1": "Blau: Das war ein großartiger Kampf!\n$Rot: ..." - } - }, - "red_blue_double": { - "encounter": { - "1": "Rot: ...!\n$Blau: Er redet nicht viel...\n$Blau: Aber lass dich davon nicht täuschen! Er ist schließlich ein Champ!" - }, - "victory": { - "1": "Rot: ...!\n$Blau: Das nächste Mal gewinnen wir!" - } - }, - "tate_liza_double": { - "encounter": { - "1": "Ben: Hehehe...Bist du überrascht?\n$Svenja: Wir sind zwei Arenaleiter auf einmal!\n$Ben: Wir sind Zwillinge!\n$Svenja: Wir müssen nicht reden um uns gegenseitig zu verstehen!\n$Ben: Die doppelte Kraft...\n$Svenja: Kannst du ihr standhalten?" - }, - "victory": { - "1": "Ben: Was? Unsere Kombination war perfekt!\n$Svenja: Sieht so aus als müssten wir wohl mehr tranieren..." - } - }, - "liza_tate_double": { - "encounter": { - "1": "Svenja: Hihihi... Bist du überrascht?\n$Ben: Ja, wir sind wirklich zwei Arenaleiter auf einmal!\n$Svenja: Das ist mein Zwillingsbruder Ben!\n$Ben: Und das meine Zwillingsschwester Svenja!\n$Svenja: Wir sind die perfekte Kombo!" - }, - "victory": { - "1": "Svenja: Sind wir...\n$Ben: ...nicht so stark wie wir dachten?" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "Troy: Wassili, lass uns ihnen die Kraft von Champions zeigen!\n$Wassili: Wir zeigen dir die Kraft von Hoenn!\n$Troy: Los gehts!" - }, - "victory": { - "1": "Troy: Das war ein großartiger Kampf!\n$Wassili: Das nächste Mal gewinnen wir!" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "Troy: Hast du irgendwelche seltenen Pokémon?\n$Wassili: Troy... Wir sind hier um zu kämpfen und nicht um mit unseren Pokémon zu prahlen...\n$Troy: Oh... Wenn das so ist... Lass uns anfangen!" - }, - "victory": { - "1": "Troy: Jetzt da wir mit Kämpfen fertig sind... Lass uns mit unsereren Pokémon prahlen!\n$Wassili: Troy..." - } - }, - "alder_iris_double": { - "encounter": { - "1": "Lauro: Wir sind die stärksten Trainer aus Einall!\n$Lilia: Kämpfe gegen starke Trainer machen am meisten Spaß!" - }, - "victory": { - "1": "Lauro: Wow! Du bist super stark!\n$Lilia: Beim nächsten Mal schlagen wir dich!" - } - }, - "iris_alder_double": { - "encounter": { - "1": "Lilia: Willkommen Herausforderer! Ich bin DER Champion von Einall!\n$Lauro: Lilia, bist du nicht etwas zu aufgeregt?" - }, - "victory": { - "1": "Lilia: Eine solche Niederlage ist nicht einfach zu verkraften...\n$Lauro: Aber wir wachsen an unseren Niederlagen und werden immer besser!" - } - }, - "marnie_piers_double": { - "encounter": { - "1": "Mary: Bruder, lass uns ihnen die Kraft von Spikeford zeigen!\n$Nezz: Wir bringen die Dunkelheit!" - }, - "victory": { - "1": "Mary: Du hast Licht in unsere Dunkelheit gebracht!\n$Piers: Es ist viel zu hell..." - } - }, - "piers_marnie_double": { - "encounter": { - "1": "Nezz: Bereit für ein Konzert?\n$Mary: Bruder...Sie sind hier um zu kämpfen, nicht um zu singen..." - }, - "victory": { - "1": "Nezz: Das war mal ein großartiges Konzert!\n$Marnie: Bruder..." - } - } -} \ No newline at end of file diff --git a/src/locales/de/dialogue-double-battle-female.json b/src/locales/de/dialogue-double-battle.json similarity index 100% rename from src/locales/de/dialogue-double-battle-female.json rename to src/locales/de/dialogue-double-battle.json diff --git a/src/locales/de/dialogue-final-boss-male.json b/src/locales/de/dialogue-final-boss-male.json deleted file mode 100644 index bffbd779be0..00000000000 --- a/src/locales/de/dialogue-final-boss-male.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "encounter": "Es scheint, als wäre es wieder mal an der Zeit.\nDu weißt, warum du hierher kommen musst, oder?\n$Dich hat es hierher gezogen, du warst bereits hier.\nUnzählige Male.\n$Obwohl, vielleicht doch nicht unzählig.\nUm genau zu sein, dies ist der {{cycleCount}}te Zyklus.\n$Du verlierst jeden Zyklus dein Gedächtnis. Trotzdem \nbleibt etwas, ein Teil deines ehemaligen Ichs, erhalten.\n$Bis jetzt hast du es noch nicht vollbracht zu siegen, aber dieses Mal spüre ich eine andere Präsenz in dir.\n\n$Du bist der Einzige hier, aber es kommt mir so vor als wäre da...jemand anderes.\n$Wirst du endlich beweisen, dass du ein würdiger Herausforder bist?\nDie Herausforderung auf die ich seit Jahrtausenden warte?\n$Lass uns beginnen.","firstStageWin": "Ahh verstehe. Diese Präsenz, die ich gespürt habe, ist wirklich real.\nEs scheint als müsste ich micht nicht länger zurück halten.\n$Enttäusche mich nicht.", - "secondStageWin": "…Herrlich." -} \ No newline at end of file diff --git a/src/locales/de/dialogue-final-boss-female.json b/src/locales/de/dialogue-final-boss.json similarity index 100% rename from src/locales/de/dialogue-final-boss-female.json rename to src/locales/de/dialogue-final-boss.json diff --git a/src/locales/de/dialogue-male.json b/src/locales/de/dialogue-male.json deleted file mode 100644 index e5bcb81ce52..00000000000 --- a/src/locales/de/dialogue-male.json +++ /dev/null @@ -1,2691 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "Hey, willst du kämpfen?", - "2": "Bist du auch ein neuer Trainer?", - "3": "Hey, ich habe dich noch nie gesehen. Lass uns kämpfen!", - "4": "Ich habe gerade verloren und suche nach neuen Pokémon.\nWarte! Du siehst schwach aus! Lass uns kämpfen!", - "5": "Haben wir uns schon mal getroffen oder nicht? Ich erinnere mich nicht wirklich\n$Nun, ich denke, es ist trotzdem schön, dich zu treffen!", - "6": "Okay, lass uns kämpfen!", - "7": "Okay, hier komme ich! Ich zeige dir meine Kraft!", - "8": "Fan fan fan... Ich zeige dir wie fantastisch meine Pokémon sind!", - "9": "Es ist nicht nötig, Zeit mit Begrüßungen zu verschwenden.\nSobald du bereit bist geht es los!", - "10": "Lass deine Deckung nicht fallen, sonst weinst du, wenn dich ein Kind besiegt.", - "11": "Ich habe meine Pokémon mit großer Sorgfalt aufgezogen. Du darfst ihnen nicht wehtun!", - "12": "Schön, dass du es geschafft hast! Von hier an wird es nicht einfacher.", - "13": "Die Kämpfe gehen immer weiter! Willkommen in der Welt ohne Ende!" - }, - "victory": { - "1": "Wow! Du bist stark!", - "2": "Ich hatte keine Chance, oder?", - "3": "Wenn ich älter bin, werde ich dich besiegen!", - "4": "Ugh. Ich habe keine Pokémon mehr.", - "5": "Das kann nicht sein… DAS KANN NICHT SEIN! Wie konnte ich schon wieder verlieren…", - "6": "Nein! Ich habe verloren!", - "7": "Wow! Du bist unglaublich! Ich bin erstaunt und überrascht!", - "8": "Kann es sein… Wie… Meine Pokémon und ich sind die stärksten, aber…", - "9": "Das nächste Mal werde ich dich besiegen! Lass uns wieder kämpfen!", - "10": "Man! Kannst du nicht sehen, dass ich nur ein Kind bin? Es war nicht fair von dir, so hart zu kämpfen!", - "11": "Deine Pokémon sind unglaublich! Tauschst du mit mir?", - "12": "Ich habe mich ein bisschen mitreißen lassen, worüber habe ich vorhin gesprochen?", - "13": "Ahaha! Da ist es! Genau! Du bist schon jetzt in dieser Welt zu Hause!" - } - }, - "lass": { - "encounter": { - "1": "Lass uns kämpfen, wollen wir?", - "2": "Du siehst wie ein neuer Trainer aus. Lass uns kämpfen!", - "3": "Ich erkenne dich nicht. Wie wäre es mit einem Kampf?", - "4": "Lass uns einen lustigen Pokémon-Kampf haben!", - "5": "Ich zeige dir, wie man Pokémon wirklich einsetzt!", - "6": "Ein ernsthafter Kampf beginnt mit einem ernsten Anfang! Bist du sicher, dass du bereit bist?", - "7": "Du bist nur einmal jung. Und du hast nur eine Chance bei einem bestimmten Kampf.\n$Bald wirst du nur noch eine Erinnerung sein.", - "8": "Du solltest es leicht mit mir angehen, OK? Aber ich kämpfe ernsthaft!", - "9": "Die Schule ist langweilig. Ich habe nichts zu tun. Gähn. Ich kämpfe nur, um die Zeit totzuschlagen." - }, - "victory": { - "1": "Das war beeindruckend! Ich habe noch viel zu lernen.", - "2": "Ich dachte nicht, dass du mich so schlagen würdest…", - "3": "Ich hoffe, wir haben eines Tages ein Rematch.", - "4": "Das war ziemlich erstaunlich! Du hast mich total erschöpft…", - "5": "Du hast mir tatsächlich eine Lektion erteilt! Du bist ziemlich erstaunlich!", - "6": "Ernsthaft, ich habe verloren. Das ist, wie, ernsthaft deprimierend, aber du warst ernsthaft cool.", - "7": "Ich brauche keine Erinnerungen wie diese. Löschen der Erinnerung…", - "8": "Hey! Ich habe dir gesagt, du sollst es leicht mit mir angehen!\n$Trotzdem bist du ziemlich cool, wenn du ernsthaft bist.", - "9": "Ich werde langsam müde vom Kämpfen… Es muss etwas Neues zu tun geben…" - } - }, - "breeder": { - "encounter": { - "1": "Gehorsame Pokémon, eigensinnige Pokémon… Pokémon haben einzigartige Eigenschaften.", - "2": "Auch wenn meine Erziehung und mein Verhalten schlecht sind, habe ich meine Pokémon gut aufgezogen.", - "3": "Hmm, disziplinierst du deine Pokémon? Zu viel Verwöhnen ist nicht gut." - }, - "victory": { - "1": "Es ist wichtig, die Eigenschaften jedes Pokémon zu pflegen und zu trainieren.", - "2": "Im Gegensatz zu meinem teuflischen Selbst sind dies einige gute Pokémon.", - "3": "Zu viel Lob kann sowohl Pokémon als auch Menschen verwöhnen." - }, - "defeat": { - "1": "Du solltest nicht wütend auf deine Pokémon werden, auch wenn du einen Kampf verlierst.", - "2": "Richtig? Ziemlich gute Pokémon, oder? Ich bin dafür geeignet, Dinge großzuziehen.", - "3": "Egal wie sehr du deine Pokémon liebst,\n$du musst sie trotzdem disziplinieren, wenn sie sich schlecht benehmen." - } - }, - "breeder_female": { - "encounter": { - "1": "Pokémon verraten dich nie. Sie erwidern die ganze Liebe, die du ihnen gibst.", - "2": "Soll ich dir einen Tipp geben, wie man gute Pokémon trainiert?", - "3": "Ich habe diese sehr speziellen Pokémon mit einer speziellen Methode aufgezogen." - }, - "victory": { - "1": "Ugh… So sollte das nicht laufen. Habe ich die falsche Mischung verabreicht?", - "2": "Wie konnte das meinen Pokémon passieren… Was fütterst du deine Pokémon?", - "3": "Wenn ich verliere, sagt dir das, dass ich nur die Zeit totgeschlagen habe.\n$Es verletzt mein Ego überhaupt nicht." - }, - "defeat": { - "1": "Das beweist, dass meine Pokémon meine Liebe angenommen haben.", - "2": "Der wahre Trick, um gute Pokémon zu trainieren, besteht darin, gute Pokémon zu fangen.", - "3": "Pokémon werden stark oder schwach, je nachdem, wie du sie großziehst." - } - }, - "fisherman": { - "encounter": { - "1": "Aack! Du hast mich einen Biss verlieren lassen!\nWas wirst du dagegen tun?", - "2": "Geh weg! Du erschreckst die Pokémon!", - "3": "Mal sehen, ob du einen Sieg an Land ziehen kannst!" - }, - "victory": { - "1": "Vergiss es einfach.", - "2": "Nächstes Mal werde ich den Triumph an Land ziehen!", - "3": "Ich glaube, ich habe die Strömungen diesmal unterschätzt." - } - }, - "fisherman_female": { - "encounter": { - "1": "Woah! Ich habe einen großen Fang gemacht!", - "2": "Die Leine ist drin, bereit, den Erfolg an Land zu ziehen!", - "3": "Bereit, Wellen zu schlagen!" - }, - "victory": { - "1": "Ich komme mit einem stärkeren Haken zurück.", - "2": "Ich werde das nächste Mal den Sieg an Land ziehen.", - "3": "Ich schärfe nur meine Haken für das Comeback!" - } - }, - "swimmer": { - "encounter": { - "1": "Zeit, einzutauchen!", - "2": "Lass uns die Wellen des Sieges reiten!", - "3": "Bereit, einen Sprung ins Wasser zu machen!" - }, - "victory": { - "1": "Getränkt in Niederlage!", - "2": "Eine Welle der Niederlage!", - "3": "Zurück ans Ufer, schätze ich." - } - }, - "backpacker": { - "encounter": { - "1": "Packe deine Sachen, es geht los!", - "2": "Mal sehen, ob du mithalten kannst!", - "3": "Bereit machen, Herausforderer!", - "4": "Ich habe 20 Jahre damit verbracht, mich selbst zu finden… Aber wo bin ich?" - }, - "victory": { - "1": "Diesmal bin ich gestolpert!", - "2": "Oh, ich glaube, ich bin verloren.", - "3": "Sackgasse!", - "4": "Warte eine Sekunde! Hey! Weißt du nicht, wer ich bin?" - } - }, - "ace_trainer": { - "encounter": { - "1": "Du scheinst ziemlich zuversichtlich zu sein.", - "2": "Deine Pokémon… Zeig sie mir…", - "3": "Weil ich ein Ass-Trainer bin, denken die Leute, ich sei stark.", - "4": "Weißt du, was es braucht, um ein Ass-Trainer zu sein?" - }, - "victory": { - "1": "Ja… Du hast gute Pokémon…", - "2": "Was?! Aber ich bin ein Kampfgott!", - "3": "Natürlich, du bist der Hauptcharakter!", - "4": "OK! OK! Du könntest ein Ass-Trainer sein!" - }, - "defeat": { - "1": "Ich widme meinen Körper und meine Seele den Pokémon-Kämpfen!", - "2": "Alles innerhalb meiner Erwartungen… Nichts Überraschendes…", - "3": "Ich dachte, ich würde zu einem zerbrechlichen Menschen heranwachsen, \n$der aussieht, als würde er zerbrechen, wenn du ihn zu fest drückst.", - "4": "Natürlich bin ich stark und verliere nicht. Es ist wichtig, dass ich anmutig gewinne." - } - }, - "parasol_lady": { - "encounter": { - "1": "Zeit, das Schlachtfeld mit Eleganz und Anmut zu betreten!" - }, - "victory": { - "1": "Meine Eleganz bleibt ungebrochen!" - } - }, - "twins": { - "encounter": { - "1": "Mach dich bereit, denn wenn wir zusammenarbeiten, gibt es doppelten Ärger!", - "2": "Zwei Herzen, eine Strategie – mal sehen, ob du mit unserer Zwillingskraft mithalten kannst!", - "3": "Hoffe, du bist bereit für doppelten Ärger, denn wir werden dir einheizen!" - }, - "victory": { - "1": "Wir haben vielleicht diese Runde verloren, aber unsere Bindung bleibt unzerbrechlich!", - "2": "Unser Zwillingsgeist wird nicht lange getrübt bleiben.", - "3": "Wir werden als dynamisches Duo stärker zurückkommen!" - }, - "defeat": { - "1": "Zwillingskraft herrscht vor!", - "2": "Zwei Herzen, ein Triumph!", - "3": "Doppelte Freude, doppelter Siegestanz!" - } - }, - "cyclist": { - "encounter": { - "1": "Mach dich bereit, meinen Staub zu schlucken!", - "2": "Mach dich bereit, Herausforderer! Ich werde dich im Staub zurücklassen!", - "3": "Volle Fahrt voraus, mal sehen, ob du mithalten kannst!" - }, - "victory": { - "1": "Die Speichen stehen still, aber die Entschlossenheit dreht weiter.", - "2": "Abgehängt!", - "3": "Der Weg zum Sieg hat viele Kurven und Wendungen, die es noch zu erkunden gilt." - } - }, - "black_belt": { - "encounter": { - "1": "Ich lobe deinen Mut, mich herauszufordern! Denn ich bin derjenige mit dem stärksten Tritt!", - "2": "Oh, ich verstehe. Möchtest du in Stücke geschnitten werden? Oder bevorzugst du die Rolle des Punchingballs?" - }, - "victory": { - "1": "Oh. Die Pokémon haben gekämpft. Mein starker Tritt hat überhaupt nicht geholfen.", - "2": "Hmmm… Wenn ich sowieso verlieren würde, wollte ich wenigstens total vermöbelt werden." - } - }, - "battle_girl": { - "encounter": { - "1": "Du musst mich nicht beeindrucken. Du kannst gegen mich verlieren." - }, - "victory": { - "1": "Es ist schwer, sich zu verabschieden, aber uns läuft die Zeit davon…" - } - }, - "hiker": { - "encounter": { - "1": "Mein mittelalterlicher Bauch gibt mir so viel Gravitas wie die Berge, die ich besteige!", - "2": "Ich habe diesen kräftigen Körper von meinen Eltern geerbt… Ich bin wie eine lebende Bergkette…" - }, - "victory": { - "1": "Zumindest kann ich nicht verlieren, wenn es um BMI geht!", - "2": "Es ist nicht genug… Es ist nie genug. Mein schlechtes Cholesterin ist nicht hoch genug…" - } - }, - "ranger": { - "encounter": { - "1": "Wenn ich von der Natur umgeben bin, hören die meisten anderen Dinge auf, wichtig zu sein.", - "2": "Wenn ich ohne die Natur in meinem Leben lebe, fühle ich mich wie ein Fisch ohne Wasser." - }, - "victory": { - "1": "Es spielt keine Rolle für die Weite der Natur, ob ich gewinne oder verliere…", - "2": "So etwas ist ziemlich trivial im Vergleich zu den erdrückenden Gefühlen des Stadtlebens." - }, - "defeat": { - "1": "Ich habe den Kampf gewonnen. Aber der Sieg ist nichts im Vergleich zur Weite der Natur…", - "2": "Ich bin sicher, das mein Sieg nur dank der Natur möglich war." - } - }, - "scientist": { - "encounter": { - "1": "Meine Forschung wird diese Welt zu Frieden und Freude führen." - }, - "victory": { - "1": "Ich bin ein Genie… Ich sollte nicht gegen jemanden wie dich verlieren…" - } - }, - "school_kid": { - "encounter": { - "1": "…Heehee. Ich bin zuversichtlich in meine Berechnungen und Analysen.", - "2": "Ich sammle so viel Erfahrung wie möglich, weil ich eines Tages ein Arenaleiter sein möchte." - }, - "victory": { - "1": "Ohhhh… Berechnungen und Analysen sind kein Gegner für den Zufall…", - "2": "Auch schwierige, anstrengende Erfahrungen haben ihren Zweck, denke ich." - } - }, - "artist": { - "encounter": { - "1": "Früher war ich beliebt, aber jetzt bin ich völlig veraltet." - }, - "victory": { - "1": "Mit der Zeit ändern sich auch die Werte. Das habe ich zu spät erkannt." - } - }, - "guitarist": { - "encounter": { - "1": "Mach dich bereit, den Rhythmus der Niederlage zu spüren, während ich meinen Weg zum Sieg spiele!" - }, - "victory": { - "1": "Für den Moment zum Schweigen gebracht, aber meine Melodie der Widerstandsfähigkeit wird weiterspielen." - } - }, - "worker": { - "encounter": { - "1": "Es stört mich, dass die Leute mich immer missverstehen. Ich bin garnicht so grob wie alle denken." - }, - "victory": { - "1": "Ich will wirklich nicht, dass meine Haut verbrennt, also möchte ich im Schatten arbeiten." - } - }, - "worker_female": { - "encounter": { - "1": "Es stört mich, dass die Leute mich immer missverstehen. Ich bin garnicht so grob wie alle denken." - }, - "victory": { - "1": "Ich will wirklich nicht, dass meine Haut verbrennt, also möchte ich im Schatten arbeiten." - }, - "defeat": { - "1": "Mein Körper und mein Geist sind nicht immer unbedingt synchron." - } - }, - "worker_double": { - "encounter": { - "1": "Ich zeige dir, dass wir dich brechen können. Wir haben auf dem Feld trainiert!" - }, - "victory": { - "1": "Wie seltsam… Wie konnte das passieren… Ich hätte nicht ausgemuskelt werden sollen." - } - }, - "hex_maniac": { - "encounter": { - "1": "Ich höre normalerweise nur klassische Musik, aber wenn ich verliere,\n$werde ich ein bisschen New Age ausprobieren!", - "2": "Ich werde mit jeder Träne stärker, die ich weine." - }, - "victory": { - "1": "Ist das der Beginn des Zeitalters des Wassermanns? Ich bin bereit für die Veränderung.", - "2": "Jetzt kann ich noch stärker werden. Ich wachse mit jedem Groll." - }, - "defeat": { - "1": "New Age bezieht sich einfach auf Komponisten der klassischen Musik des 20. Jahrhunderts, richtig?", - "2": "Lass dich nicht von Traurigkeit oder Frustration aufhalten.\n$Du kannst deine Groll nutzen, um dich zu motivieren." - } - }, - "psychic": { - "encounter": { - "1": "Hallo! Konzentrier dich!" - }, - "victory": { - "1": "Eeeeek!" - } - }, - "officer": { - "encounter": { - "1": "Bereite dich vor, denn die Gerechtigkeit wird gleich vollstreckt!", - "2": "Bereit, das Gesetz zu verteidigen und die Gerechtigkeit auf dem Schlachtfeld zu wahren!" - }, - "victory": { - "1": "Die Gerechtigkeit auf meinen Schultern fühlt sich schwerer an denn je…", - "2": "Die Schatten der Niederlage schweben über dem Revier." - } - }, - "beauty": { - "encounter": { - "1": "Mein letzter Kampf überhaupt… So möchte ich, dass wir diesen Kampf sehen…" - }, - "victory": { - "1": "Es war schön… Lass uns irgendwann wieder einen letzten Kampf haben…" - } - }, - "baker": { - "encounter": { - "1": "Hoffe, du bist bereit, die Niederlage zu schmecken!" - }, - "victory": { - "1": "Ich werde ein Comeback backen." - } - }, - "biker": { - "encounter": { - "1": "Zeit, aufzudrehen und dich im Staub zurückzulassen!" - }, - "victory": { - "1": "Ich werde für das nächste Rennen tunen." - } - }, - "firebreather": { - "encounter": { - "1": "Meine Flammen werden dich verschlingen!", - "2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!", - "3": "Komm näher und sieh dir meine Flammen an!" - }, - "victory": { - "1": "Verbrannt bis zur Asche...", - "2": "Yow! Das ist heiß!", - "3": "Auuu! Ich habe mir die Nasenspitze verbrannt!" - } - }, - "sailor": { - "encounter": { - "1": "Matrose, du gehst über Bord, wenn du verlierst!", - "2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!", - "3": "Ahoj! Bist du seekrank?" - }, - "victory": { - "1": "Argh! Von einem Kind besiegt!", - "2": "Dein Geist hat mich versenkt!", - "3": "Ich glaube, ich bin der der seekrank ist..." - } - }, - "archer": { - "encounter": { - "1": "Bevor du weitergehst, lass uns sehen, wie du dich gegen uns, Team Rocket, schlägst!", - "2": "Ich habe Berichte erhalten, dass deine Fähigkeiten nicht unbedeutend sind.\n$Mal sehen, ob sie wahr sind.", - "3": "Ich bin Atlas, ein Vorstand von Team Rocket.\n$Und ich mache es den Feinden unserer Organisation nicht leicht." - }, - "victory": { - "1": "Was für ein Fehler!", - "2": "Mit meinen aktuellen Fähigkeiten war ich der Aufgabe doch nicht gewachsen.", - "3": "V-verzeih mir, Giovanni... Dass ich von einem einfachen Trainer besiegt wurde..." - } - }, - "ariana": { - "encounter": { - "1": "Halt! Wir können niemanden herumlaufen lassen. \n$Es ist schädlich für den Stolz von Team Rocket, verstehst du.", - "2": "Ich weiß nicht und es ist mir egal, ob das, was ich tue, richtig oder falsch ist...\n$Ich vertraue einfach auf Giovanni und tue, was mir gesagt wird.", - "3": "Dein Trip endet hier. Ich werde dich erledigen!" - }, - "victory": { - "1": "Tch, du bist wirklich stark. Es ist schade. \n$Wenn du Team Rocket beitreten würdest, könntest du ein Vorstand werden.", - "2": "Ich... ich bin zerstört...", - "3": "Aaaieeeee! Das kann nicht passieren! Ich habe hart gekämpft, aber trotzdem verloren..." - } - }, - "proton": { - "encounter": { - "1": "Was willst du? Wenn du unsere Arbeit unterbrichst, erwarte keine Gnade!", - "2": "Was haben wir hier? Ich werde oft als der gruseligste und grausamste Typ bei Team Rocket bezeichnet…\n$Ich rate dir dringend, dich nicht in unsere Geschäfte einzumischen!", - "3": "Ich bin Proton, ein Admin von Team Rocket. Ich bin hier, um deinem Einmischen ein Ende zu setzen!" - }, - "victory": { - "1": "Die Festung ist gefallen! Alle Mann zurückziehen!", - "2": "Du hast diesmal gewonnen… Aber alles, was du getan hast, war, den Zorn von Team Rocket zu vergrößern…", - "3": "Ich bin besiegt… Aber ich werde das nicht vergessen!" - } - }, - "petrel": { - "encounter": { - "1": "Muhahaha, wir haben auf dich gewartet. Ich? Du weißt nicht, wer ich bin? Ich bin Giovanni.\n$Der majestätische Giovanni höchstpersönlich! Wahahaha!\n$…Huh? Ich klinge überhaupt nicht wie Giovanni?\n$Ich sehe nicht einmal aus wie Giovanni?\n$Wie kommt das? Ich habe so hart daran gearbeitet, ihn nachzuahmen!", - "2": "Ich bin Lambda, ein Admin von Team Rocket. Ich werde nicht zulassen, dass du unsere Pläne störst!", - "3": "Rocket Vorstand Lambda wird sich um diesen Eindringling kümmern!" - }, - "victory": { - "1": "OK, OK. Ich sage dir, wo er ist.", - "2": "Ich… Ich konnte nichts tun… Giovanni, bitte vergib mir…", - "3": "Nein, ich kann das nicht auf mich sitzen lassen. Ich muss die anderen informieren…" - } - }, - "tabitha": { - "encounter": { - "1": "Hehehe! Du bist also bis hierher gekommen! Aber du bist zu spät!", - "2": "Hehehe... Schon hier, oder? Wir haben dich unterschätzt! Aber das war's! \n$Ich bin eine Klasse über den Rüpeln, die du bisher gesehen hast. Ich halte dich nicht hin.\n$Ich werde dich zermalmen!", - "3": "Ich werde dir eine kleine Kostprobe des Schmerzes geben! Ergebe dich!" - }, - "victory": { - "1": "Hehehe! Du hast mich vielleicht besiegt, aber du hast keine Chance gegen den Boss!\n$Wenn du jetzt aufgibst, musst du dich keiner ordentlichen Tracht Prügel stellen!", - "2": "Hehehe... Also habe ich auch verloren...", - "3": "Ahya! Wie konnte das passieren? Ein Vorstand wie ich von einem zufälligen Trainer besiegt..." - } - }, - "courtney": { - "encounter": { - "1": "Stellt euch...Mir NICHT...IN DEN WEEEG...!!", - "2": "... Nun dann... Auslöschen...", - "3": "...?! Du... Hm... ♪ Das trifft sich ausgezeichnet... ♪\n$Dann hole ich mir eben zuerst deine Pokémon... Her damit..." - }, - "victory": { - "1": "... ...Ändere... die Welt.", - "2": "Wie erwartet. Unerwartet. Du. Ziel erfasst... abgeschlossen.\n$Beginne... Experiment. Du. Für immer. Aha... ♪", - "3": "...Schon wieder? Das war unerwartet. ...Ich wusste es. Du... bist interessant! ...Haha. ♪" - } - }, - "shelly": { - "encounter": { - "1": "Ahahahaha! Du wirst dich in die Angelegenheiten von Team Aqua einmischen?\n$Du bist entweder absolut furchtlos, einfach unwissend oder beides!\n$Du bist so süß, dass es ekelhaft ist! Ich werde dich erledigen.", - "2": "Was ist das? Wer ist dieser verwöhnte Gör?", - "3": "Beruhige dich. Sei geduldig. Ich werde dich gleich zermalmen." - }, - "victory": { - "1": "Ahahahaha! Wir wurden unerwartet gestört! Uns bleiben keine Optionen.\n$Wir müssen uns zurückziehen. Aber das ist nicht das letzte Mal, dass du Team Aqua siehst!\n$Wir haben andere Pläne! Vergiss das nicht!", - "2": "Ahhh?! War ich zu nachsichtig mit dir?!", - "3": "Uh. Willst du mir sagen, dass du während des Kampfes noch besser geworden bist?\n$Du bist ein Gör mit einer glänzenden Zukunft…\n$Meine Pokémon und ich haben keine Kraft mehr zu kämpfen…\n$Geh weiter… Geh und werde von Adrian zerstört." - } - }, - "matt": { - "encounter": { - "1": "Hoohahaha! Was, hast du eine Schraube locker oder so?\n$Sieh dich an, kleiner Makuhita-ähnlicher Trainer!", - "2": "Oho! Du! Du bist das lustige Kind!", - "3": "Was machst du hier? Bist du uns gefolgt?" - }, - "victory": { - "1": "Bwaarharharharhar!! Ich hab zwar verloren, aber das hat Spaß gemacht!", - "2": "Ich kann es fühlen! Ich kann es spüren, das ist klar! Die Stärke, die von dir ausgeht!\n$Mehr! Ich will noch mehr! Aber es sieht so aus, als hätten wir keine Zeit mehr...", - "3": "Das war Spaß! Ich wusste, dass du mir eine gute Zeit bieten würdest!\n$Ich freue mich darauf, dich eines Tages wieder zu treffen!" - } - }, - "mars": { - "encounter": { - "1": "Ich bin Mars, eine der obersten Commander von Team Galaktik.", - "2": "Die Vision von Team Galaktik für die Zukunft ist unbeirrt. Opposition wird gnadenlos zerschlagen!", - "3": "Fühlst du dich nervös? Das solltest du!" - }, - "victory": { - "1": "Das kann nicht passieren! Wie habe ich verloren?!", - "2": "Du hast etwas Können, das muss ich zugeben.", - "3": "Besiegt... Das war ein teurer Fehler." - } - }, - "jupiter": { - "encounter": { - "1": "Jupiter, Commander von Team Galaktik, zu Diensten.", - "2": "Widerstand ist zwecklos. Team Galaktik wird siegen!", - "3": "Du zitterst... Schon Angst?" - }, - "victory": { - "1": "Unmöglich... Ich habe verloren?!", - "2": "Beeindruckend, du hast Mut!", - "3": "So zu verlieren... Wie peinlich." - } - }, - "saturn": { - "encounter": { - "1": "Ich bin Saturn, Commander von Team Galaktik.", - "2": "Unsere Mission ist absolut. Jeder Widerstand wird vernichtet!", - "3": "Ist das Angst, die ich in deinen Augen sehe?" - }, - "victory": { - "1": "Unmöglich... Von dir besiegt?!", - "2": "Du hast dich als würdiger Gegner erwiesen.", - "3": "Besiegt in der Niederlage... Das ist inakzeptabel." - } - }, - "zinzolin": { - "encounter": { - "1": "Du könntest eine Bedrohung für Team Plasma werden, also werden wir dich hier und jetzt eliminieren!", - "2": "Oh, zum Heulen... Ich hatte nicht erwartet, in dieser eisigen Kälte kämpfen zu müssen!", - "3": "Du bist ein beeindruckender Trainer, dass du es so weit geschafft hast. Aber hier endet es." - }, - "victory": { - "1": "G-Cis... Ich habe versagt...", - "2": "Es ist bitterkalt. Ich zittere. Ich leide. Doch ich stehe immer noch siegreich da.", - "3": "Hm. Du bist ein klügerer Trainer, als ich erwartet habe, aber nicht klug genug." - } - }, - "rood": { - "encounter": { - "1": "Du bist eine Bedrohung für Team Plasma. Wir können dich hier und jetzt nicht laufen lassen!", - "2": "Oh, dieser eisige Wind... Ich hätte nie gedacht, dass ich hier kämpfen müsste!", - "3": "Du bist ein bemerkenswerter Trainer, dass du es bis hierher geschafft hast. Aber hier wird es enden." - }, - "victory": { - "1": "G-Cis... Ich habe meine Mission nicht erfüllt...", - "2": "Die Kälte ist durchdringend. Ich zittere. Ich leide. Doch ich habe gesiegt.", - "3": "Hm. Du bist ein talentierter Trainer, aber leider nicht talentiert genug." - } - }, - "xerosic": { - "encounter": { - "1": "Ah ha ha! Es wäre mir ein Vergnügen. Komm schon, kleiner Trainer! Zeig mir, was du drauf hast!", - "2": "Hm... Du bist mächtiger, als du aussiehst. Ich frage mich, wie viel Energie in dir steckt.", - "3": "Ich habe auf dich gewartet! Ich muss ein wenig Forschung an dir betreiben! Komm, lass uns beginnen!" - }, - "victory": { - "1": "Ah, du bist ziemlich stark. Oh ja—sehr stark, in der Tat.", - "2": "Ding-ding-ding! Du hast es geschafft! Dem Sieger gebührt die Beute!", - "3": "Wunderbar! Erstaunlich! Du hast enorme Fähigkeiten und Mut!" - } - }, - "bryony": { - "encounter": { - "1": "Ich bin Begonia, und es wäre mir ein Vergnügen, gegen dich zu kämpfen. Zeig mir, was du drauf hast.", - "2": "Beeindruckend... Du bist mächtiger, als du aussiehst. Zeig mir das wahre Ausmaß deiner Energie.", - "3": "Ich habe deine Ankunft erwartet. Es ist Zeit für einen kleinen Test. Sollen wir beginnen?" - }, - "victory": { - "1": "Du bist ziemlich stark. Oh ja—sehr stark, in der Tat.", - "2": "Ding-ding-ding! Du hast dich gut geschlagen. Der Sieg gehört dir.", - "3": "Wunderbar! Bemerkenswert! Deine Fähigkeiten und dein Mut sind lobenswert." - } - }, - "rocket_grunt": { - "encounter": { - "1": "Jetzt gibt es Ärger!…\n$und es kommt noch härter!\n$Wir wollen über die Erde regieren…\n$und naja du kennst den Rest…!", - "2": "Wir führen gerade eine große Operation durch. Hast du vor uns zu stören?", - "3": "Gib uns deine Pokémon, oder stelle dich dem Zorn von Team Rocket!", - "4": "Team Rocket wird seinen Plan zur Vollendung bringen, Aus dem Weg!", - "5": "Los, gib uns deine Pokémon. Wir brauchen sie für unseren Plan!" - }, - "victory": { - "1": "Das war mal wieder ein Schuss in den Ofen!", - "2": "Dem Boss wird das aber nicht gefallen!", - "3": "Ich habe es vermasselt!", - "4": "Meine Kollegen werden das nicht tolerieren!", - "5": "Team Rocket wird wiederkehren! Das sage ich Jessie und James!" - } - }, - "magma_grunt": { - "encounter": { - "1": "Keiner, der sich Team Magma in den Weg stellt, bekommt Gnade, nicht einmal Kinder!", - "2": "Störe besser nicht unsere Pläne! Wir formen die Welt nach unseren Vorstellungen!", - "3": "Du stehst uns im Weg! Team Magma hat keine Zeit für Störenfriede wie dich!", - "4": "Bereite dich auf die Hölle vor, denn es wird bald sehr heiß!", - "5": "Wir werden die Macht des Vulkans entfesseln! Es wird gewaltig sein! Mach dich bereit!" - }, - "victory": { - "1": "Wie kann das sein? Ich bin Teil des mächtigen Team Magma! Wir streben nach der Verbesserung der Welt...", - "2": "Unglaublich, dass ich verloren habe! Mit meinen mächtigen Pokémon.", - "3": "Das kann nicht sein! Ich hab doch viel mehr Erfahrung als du!", - "4": "Verdammt... Ich hätte sofort in unser Versteck fliehen sollen...", - "5": "Du hast mich besiegt... Der Boss wird mich dafür zur Rechenschaft ziehen." - } - }, - "aqua_grunt": { - "encounter": { - "1": "Du willst dich also mit Team Aqua anlegen? Du traust dich ja was… Dich werfe ich über Bord!", - "2": "Du hast ganz schön Mut, dich mit Team Aqua anzulegen!", - "3": "Ich hoffe du hast einen Regenschirm dabei. Hier wird es jetzt nass!", - "4": "Wir, Team Aqua, existieren zum Wohle aller!", - "5": "Bereite dich darauf vor, von den Fluten meiner Pokémon weggespült zu werden!" - }, - "victory": { - "1": "Vielleicht sollte ich wohl lieber selber über die Planke gehen…", - "2": "Arrgh, ich habe nicht damit gerechnet, von einer Landratte gestört zu werden!", - "3": "Ich habe verloren?! Ich schätze, ich muss jetzt zurück zum Versteck schwimmen...", - "4": "Oh Mann, was für eine Katastrophe... Der Boss wird wütend sein...", - "5": "Du hast mich besiegt... Meinst du, der Boss wird mich dafür kielholen lassen?" - } - }, - "galactic_grunt": { - "encounter": { - "1": "Team Galaktik wird die Welt in eine bessere verwandeln! Und du wirst uns nicht aufhalten!", - "2": "Erlebe die Macht unserer Technologie und die Zukunft, die wir uns vorstellen!", - "3": "Im Namen von Team Galaktik werde ich jeden beseitigen, der uns im Weg steht!", - "4": "Mach dich bereit zu verlieren!", - "5": "Hoffentlich bist du bereit für eine kosmische Niederlage!" - }, - "victory": { - "1": "Zyrus wird uns für diese Niederlage bestrafen…", - "2": "Dieser Rückschlag bedeutet nichts in Hinsicht unseres großen Plans.", - "3": "Unsere Pläne sind größer als diese Niederlage.", - "4": "Wie ist das möglich?!", - "5": "Notiz an mich selbst: Pokémon-Kämpfe üben, so bald wie möglich." - } - }, - "plasma_grunt": { - "encounter": { - "1": "Pokémon sollten frei sein! Team Plasma wird sie befreien!", - "2": "Wenn ich gegen dich gewinne, lass deine Pokémon frei!", - "3": "Wenn du Team Plasma im Weg stehst, werde ich mich um dich kümmern!", - "4": "Team Plasma wird Pokémon von egoistischen Menschen wie dir befreien!", - "5": "Lass dich von unserem Aussehen nicht täuschen. Unsere Kampffähigkeiten sind überragend!" - }, - "victory": { - "1": "Wie konnte ich verlieren? Ich dachte, ich würde die Welt retten...", - "2": "Wie konnte ich nur verlieren...", - "3": "...Dieses Pokémon ist zu schwach, ich werde stärkere beschaffen müssen!", - "4": "Große Pläne stoßen immer auf Hindernisse.", - "5": "Das ist ein schwerer Rückschlag für Team Plasma..." - } - }, - "flare_grunt": { - "encounter": { - "1": "Deine Pokémon haben keine Chance gegen die Überlegenheit von Team Flare.", - "2": "Mach dich bereit, denn gleich wird es hier lichterloh brennen!", - "3": "Team Flare wird die Welt von allen Makeln befreien!", - "4": "Bereite dich auf die unvergleichliche Macht von Team Flare vor!", - "5": "Unsere Mission steht über allem, sogar über der Mode!" - }, - "victory": { - "1": "Diese Niederlage wirft einen Schatten auf meine Zukunft.", - "2": "Es scheint, dass ich meine Strategien überdenken muss. Zurück ans Reißbrett.", - "3": "Unglaublich?! Ich habe verloren?!", - "4": "Selbst in der Niederlage bleibt Team Flare unübertroffen in seiner Eleganz.", - "5": "Du hast mich besiegt, aber Team Flare wird immer in Glanz und Stil erstrahlen." - } - }, - "aether_grunt": { - "encounter": { - "1": "Ich werde dich mit allem, was ich habe, bekämpfen. Ich werde dich auslöschen!", - "2": "Mir ist egal, ob du ein simpler Trainer bist oder nicht.\n$Ich werde dich hochkant rauswerfen, wenn du uns bedrohst!", - "3": "Mir wurde gesagt, Trainer abzuweisen, egal wer sie sind!", - "4": "Ich zeige dir die Macht des Æther-Paradies", - "5": "Jetzt da du die Wahre Natur des Æther-Paradies kennst, müssen wir dich leider beseitigen!" - }, - "victory": { - "1": "Hmph! Du scheinst ziemlich geschickt zu sein.", - "2": "Was hat das zu bedeuten? Was hat das zu bedeuten!", - "3": "Hey, du bist so stark, dass ich dich nicht abweisen kann!", - "4": "Hmm... Es scheint, als hätte ich verloren.", - "5": "Ich hätte das Blitzdings benutzen sollen..." - } - }, - "faba": { - "encounter": { - "1": "Ich bin Regionalleiter Fabian und ich werde dir zeigen, wie hart die Welt sein kann!", - "2": "Die letzte Verteidigungslinie des Æther-Paradieses kämpft gegen einen simplen Trainer?", - "3": "Ich Fabian, bin der Regionalleiter der Æther Foundation.\n$Der einzige auf der Welt, ich bin unersetzlich." - }, - "victory": { - "1": "Aiyee!", - "2": "W-w-wie kann das sein?! Wie konnte dieser Trainer...", - "3": "Das ist der Grund... warum ich andere Menschen nicht ausstehen kann." - } - }, - "skull_grunt": { - "encounter": { - "1": "Wir sind nicht böse, wir sind einfach nur nicht nett!", - "2": "Willst du Stress, oder was? Das ist unsere Art, Hallo zu sagen! Tschüss, du Punk!", - "3": "Wir sind nur ein paar Typen und Mädels mit großem Interesse an den Pokémon anderer Leute!", - "4": "Wieso machst du einen auf hart, wenn wir schon hart wie Knochen sind, Homie?", - "5": "Yo, platz hier nich’ rein, ♪ wie’n wildes Kleinstein! ♪ Wenn du meinst, dass Team Skull ♪\n$an nix denkt als Krawall, ♪ hast du leider ’nen Knall, ♪ denn das is’ nich’ der Fall! ♪\n$Wir woll’n hier nur gammeln ♪ und gechillt Staub ansammeln! ♪" - }, - "victory": { - "1": "Wie jetzt? Schon vorbei?", - "2": "Woah, lass uns lieber die Kurve kratzen, yo! Kein Bock, hier meinen Schädel zu riskieren...", - "3": "Wir brauchen deine schwachen Pokémon eh nicht!", - "4": "Was? Deine Stärke spür ich bis in die Knochen...", - "5": "Mein Homie und ich sind also weniger wert als Pokémon? Willste uns dissen, oder was?" - } - }, - "plumeria": { - "encounter": { - "1": "..Hmph. Du siehst nicht so aus, als wärst du etwas Besonderes.", - "2": "Die blöden Rüpel brauchen viel zu lange, um mit euch gewöhnlichen Trainern fertig zu werden...", - "3": "Lege dich mit irgendjemandem in Team Skull an, und ich zeige dir, wie ernst ich werden kann." - }, - "victory": { - "1": "Du bist ziemlich stark. Das muss ich zugeben.", - "2": "Jetzt versteh ich, warum meine Rüpel so viel Zeit damit verschwenden...", - "3": "Ich denke, ich muss diese Niederlage einfach hinnehmen." - } - }, - "macro_grunt": { - "encounter": { - "1": "Achtung hier ist Endstation für dich!", - "2": "Du bist ein Trainer, oder? Wir von MC Wertpapiere wissen so etwas.\n$Ich fürchte, das gibt dir trotzdem nicht das Recht, sich in unsere Arbeit einzumischen.", - "3": "Ich bin von MC Versicherungen! Hast du eine Lebensversicherung?" - }, - "victory": { - "1": "Ich habe keine andere Wahl, als respektvoll zurückzutreten.", - "2": "Mein Erspartes aufzugeben bringt mich in die roten Zahlen...", - "3": "Okay zurück an die Arbeit. Versicherungen verkauft sich nicht von alleine." - } - }, - "oleana": { - "encounter": { - "1": "Ich werde keine Störung von Präsident Roses Plänen zulassen!", - "2": "Du hast es also durch die Mitarbeiter der Tochterunternehmen geschafft,\n$die ich beauftragt habe, um dich aufzuhalten. Ich hätte nichts anderes erwartet.", - "3": "Für den Präsidenten! Ich werde nicht verlieren! \n$Mach dich bereit mit Macro Cosmos Airlines nach Hause zu fliegen!" - }, - "victory": { - "1": "Ich habe es nicht geschafft... Olivia... du bist wirklich eine hoffnungslose Frau.", - "2": "Arghhh! Das ist unentschuldbar... Was habe ich mir dabei gedacht...\n$Jeder Trainer, der es so weit geschafft hat, muss ein harter Brocken sein...", - "3": "Ich bin eine müde Olivia... Ob es Macro Cosmos Betten gibt?" - } - }, - "rocket_boss_giovanni_1": { - "encounter": { - "1": "Ich bin beeindruckt, du hast es bis hierher geschafft!\n$Ich bin Giovanni, der Anführer von Team Rocket!\n$Wir regieren den Untergrund von Kanto!\n$Und wir lassen sicherlich nicht zu, dass ein Kind uns aufhält!" - }, - "victory": { - "1": "Ich ziehe mich zurück, aber ich werde zurückkehren! Team Rocket wird niemals besiegt werden!" - }, - "defeat": { - "1": "Merke dir meine Worte. Nicht in der Lage zu sein,\n$deine eigene Stärke zu messen, zeigt, dass du immer noch ein Kind bist." - } - }, - "rocket_boss_giovanni_2": { - "encounter": { - "1": "Du schon wieder… Wie hast du mich gefunden? Team Rocket wird dich endlich aus der Welt schaffen!" - }, - "victory": { - "1": "Wie ist das möglich...? Der kostbare Traum von Team Rocket ist nicht mehr als eine Illusion geworden..." - }, - "defeat": { - "1": "Team Rocket wird niemals besiegt werden! Ich werde zurückkehren!" - } - }, - "magma_boss_maxie_1": { - "encounter": { - "1": "Die Welt ist nicht perfekt. Ich werde sie verbessern, indem ich sie neu erschaffe!\n$Wir brauchen mehr Landmassen um zu leben! Team Magma wird dieses Ziel mit aller Macht erreichen!" - }, - "victory": { - "1": "Ugh! Das entspricht nicht meinen Berechnungen! Wie konnte ich verlieren? Wir sehen uns wieder!" - }, - "defeat": { - "1": "Team Magma wird weiterhin die Welt verbessern!" - } - }, - "magma_boss_maxie_2": { - "encounter": { - "1": "Du bist das letzte Hindernis, das zwischen mir und meinen Zielen steht.\n$Mach dich bereit durch die Macht von Team Magma besiegt zu werden!" - }, - "victory": { - "1": "Das... Das kann nicht sein..." - }, - "defeat": { - "1": "Und jetzt werde ich diesen Planeten terraformen, um ihn ideal für die Menschheit zu machen." - } - }, - "aqua_boss_archie_1": { - "encounter": { - "1": "Ich bin Adrian, der Anführer von Team Aqua! Wir werden die Welt mit Wasser überfluten!" - }, - "victory": { - "1": "Lass uns mal wieder treffen. Ich werde mir sicher sein, dass ich dieses Gesicht wiedererkenne." - }, - "defeat": { - "1": "Brilliant! Mein Team wird jetzt nicht zurückhalten!" - } - }, - "aqua_boss_archie_2": { - "encounter": { - "1": "Ich habe lange auf diesen Tag gewartet. Das ist die wahre Macht von Team Aqua!" - }, - "victory": { - "1": "So habe ich mir das nicht vorgestellt..." - }, - "defeat": { - "1": "Ich werde alles in dieser Welt in seinen ursprünglichen, reinen Zustand zurückversetzen!!" - } - }, - "galactic_boss_cyrus_1": { - "encounter": { - "1": "Du wurdest von leerer Gefühlsduselei hierher getrieben.\n$Ich werde dich bereuen lassen, auf dein Herz gehört zu haben!" - }, - "victory": { - "1": "Interessant. Und ziemlich eigenartig." - }, - "defeat": { - "1": "Ich werde meine neue Welt erschaffen..." - } - }, - "galactic_boss_cyrus_2": { - "encounter": { - "1": "So sehen wir uns wieder. Es scheint, als wären unsere Schicksale miteinander verflochten.\n$Aber hier und jetzt werde ich diese Verbindung brechen!" - }, - "victory": { - "1": "Wie? Wie? WIE?!" - }, - "defeat": { - "1": "Bis bald." - } - }, - "plasma_boss_ghetsis_1": { - "encounter": { - "1": "Ich werde nicht zulassen, dass mich jemand aufhält! Egal wer es auch sein mag!" - }, - "victory": { - "1": "Wie kann das sein? Ich bin der Schöpfer von Team Plasma! Ich bin perfekt!" - }, - "defeat": { - "1": "Ich bin der perfekte Herrscher einer perfekten neuen Welt! Mwa ha ha!" - } - }, - "plasma_boss_ghetsis_2": { - "encounter": { - "1": "Komm schon! Ich will dein Gesicht sehen, in dem Moment, in dem du alle Hoffnung verlierst!" - }, - "victory": { - "1": "Meine Berechnungen... Nein! Meine sorgfältigen Pläne! Die Welt sollte mir gehören!" - }, - "defeat": { - "1": "Kyurem! Verwende Absorptionsfusion!" - } - }, - "flare_boss_lysandre_1": { - "encounter": { - "1": "DU willst mich aufhalten? Dann zeig mir deine Stärke in einem Kampf!" - }, - "victory": { - "1": "Du bist hier, um mich aufzuhalten. Aber ich bitte dich zu warten.\n$Ich bin so kurz davor, meine Vision zu verwirklichen." - }, - "defeat": { - "1": "Pokémon... Sollten nicht mehr existieren." - } - }, - "flare_boss_lysandre_2": { - "encounter": { - "1": "Die Zukunft, die du willst, oder die Zukunft, die ich will...\n$Lass uns sehen, welche mehr zu existieren verdient, sollen wir?" - }, - "victory": { - "1": "Die Zukunft, die ich erschaffen wollte... Es ist vorbei..." - }, - "defeat": { - "1": "Narren ohne Vision werden weiterhin diese wunderschöne Welt verunreinigen." - } - }, - "aether_boss_lusamine_1": { - "encounter": { - "1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Bestien sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen." - }, - "victory": { - "1": "Wie kann eine Person nur so grausam sein?!" - }, - "defeat": { - "1": "Und jetzt, mein süßes Biest, komm zu Mama!" - } - }, - "aether_boss_lusamine_2": { - "encounter": { - "1": "Wieso musst du mich weiterhin belästigen?! Ich habe die Nase voll von dir.\n$Du machst mich krank! Genug mit diesem nutzlosen Gerede... \n$Mit der Kraft von Anego, von uns als UB-01 Schmarotzer klassifiziert,\n$werde ich dir zeigen, wie falsch du warst, hierher zu kommen!" - }, - "victory": { - "1": "Aaauuuggghhhhhhhhh!!!" - }, - "defeat": { - "1": "Alles, was ich will, ist mein kostbares Biest! Der Rest von euch ist mir egal!" - } - }, - "skull_boss_guzma_1": { - "encounter": { - "1": "Kein Erbarmen! Keine Gnade! Ich bin dein schlimmster Alptraum! \n$Oh yeah, ich bin der große, böse Bromley!" - }, - "victory": { - "1": "Irgendwann mach ich dich platt! Ich hab noch ein Ass im Ärmel. Du wirst schon sehen." - }, - "defeat": { - "1": "Du hast den langen Weg hierher DAFÜR aufgenommen? Pah!" - } - }, - "skull_boss_guzma_2": { - "encounter": { - "1": "Mir ist egal, wer du bist. Ich mach dich platt!! Das schreibt mir mein Ego vor. Ich bin Bromley!" - }, - "victory": { - "1": "Bromley!!! Was ist falsch mit dir?!" - }, - "defeat": { - "1": "Ihr seid wirklich selten dämlich." - } - }, - "macro_boss_rose_1": { - "encounter": { - "1": "Mein Name ist Rose. Ich bin der Präsident der Galar Pokémon-Liga und Geschäftsführer von Macro Cosmos\n$Ich habe eine Aufgabe, eine Berufung! Ich muss die Galar-Region mit unbegrenzter Energie versorgen,\n$damit sie sich bis in alle Ewigkeit in Frieden fortentwickeln kann!" - }, - "victory": { - "1": "Du versteht es einfach nicht...So können wir die Geschichte nicht verändern!" - }, - "defeat": { - "1": "Ohne deine Einmischung kann ich jetzt endlich weiterarbeiten!" - } - }, - "macro_boss_rose_2": { - "encounter": { - "1": "Ich bin fest entschlossen, das Energieproblem in der Galar-Region\n$und natürlich auf der ganzen Welt zu lösen.\n$Meine Erfahrungen und Erfolge, die Macro Cosmos zu einem Erfolg gemacht haben,\n$sind der Beweis, dass meine Methoden funktionieren.\n$Ich habe nicht vor, meine Meinung zu ändern, selbst wenn ich verliere." - }, - "victory": { - "1": "Ich hatte vergessen, wie großartig Pokémon-Kämpfe sind! Es ist so lange her, dass ich gekämpft habe...\n$Das war wirklich befriedigend, ich akzeptiere die Niederlage für diesen Kampf." - }, - "defeat": { - "1": "Ich nehme an, es muss den Anschein haben, dass ich etwas Schreckliches tue.\n$Ich erwarte nicht, dass du es verstehst. Aber ich muss der Galar-Region grenzenlose Energie\n$bereitstellen, um ewigen Wohlstand zu gewährleisten." - } - }, - "brock": { - "encounter": { - "1": "Meine Expertise in Bezug auf Gesteins-Pokémon wird dich besiegen! Komm schon!", - "2": "Meine felsenfeste Entschlossenheit wird dich überwältigen!", - "3": "Ich bin ein harter Fels, der nicht so leicht zu brechen ist!" - }, - "victory": { - "1": "Die Stärke deiner Pokémon hat meine steinharte Verteidigung überwunden!", - "2": "Die Welt ist riesig! Ich bin froh, dass ich die Chance hatte, gegen dich zu kämpfen.", - "3": "Perhaps I should go back to pursuing my dream as a Pokémon Breeder…" - }, - "defeat": { - "1": "Der beste Angriff ist eine gute Verteidigung!\nDas ist meine Art, Dinge zu tun!", - "2": "Komm und studiere Felsen mit mir, um besser zu lernen wie man gegen sie kämpft!", - "3": "Meine Reisen durch die Regionen zahlen sich aus!" - } - }, - "misty": { - "encounter": { - "1": "Meine Taktik ist ein Frontalangriff mit Wasser-Pokémon!", - "2": "Hiya! Ich zeige dir die Stärke meiner Wasser-Pokémon!", - "3": "Mein Traum war es, auf eine Reise zu gehen und gegen starke Trainer zu kämpfen… \n$Wirst du eine ausreichende Herausforderung sein?" - }, - "victory": { - "1": "Du bist wirklich stark… Ich gebe zu, du hast es drauf…", - "2": "Du weißt, dass du nur Glück hattest, oder?", - "3": "Wow, ich kann nicht glauben, dass du mich besiegt hast!" - }, - "defeat": { - "1": "War die mächtige Misty zu viel für dich?", - "2": "Ich hoffe, du hast die eleganten Schwimmtechniken meiner Pokémon gesehen!", - "3": "Deine Pokémon waren keine Herausforderung für meine geliebten Pokémon!" - } - }, - "lt_surge": { - "encounter": { - "1": "Meine Elektro-Pokémon haben mich im Krieg gerettet! Ich werde dir zeigen, wie!", - "2": "Du wirst um Gnade winseln, wenn ich dich geschockt habe!", - "3": "Ich werde dich genau so zappen, wie ich es mit all meinen Feinden im Kampf mache!" - }, - "victory": { - "1": "Whoa! Dein Team ist echt stark!", - "2": "Aaargh, du bist stark! Selbst meine elektrischen Tricks haben gegen dich verloren.", - "3": "Das war ein absolut schockierender Verlust!" - }, - "defeat": { - "1": "Oh ja! Wenn es um Elektro-Pokémon geht, bin ich weltweit die Nummer eins!", - "2": "Hahaha! Das war ein elektrisierender Kampf!", - "3": "Ein Pokémon-Kampf ist Krieg, und ich habe dir den Nahkampf gezeigt!" - } - }, - "erika": { - "encounter": { - "1": "Ah, das Wetter ist hier so schön…\nOh, ein Kampf? Nun gut.", - "2": "Meine Pokémon-Kampffähigkeiten stehen in Konkurrenz zu meinen Blumenarrangierfähigkeiten.", - "3": "Oh, ich hoffe, der angenehme Duft meiner Pokémon lässt mich nicht wieder einschlafen…", - "4": "Blumen in einem Garten zu sehen ist so beruhigend." - }, - "victory": { - "1": "Oh! Ich gestehe meine Niederlage ein.", - "2": "Dieser Kampf war so entspannend.", - "3": "Ah, es scheint, dass ich verloren habe…", - "4": "Na immerhin habe ich noch meine Blumen." - }, - "defeat": { - "1": "Ich hatte Angst, dass ich einschlafen würde…", - "2": "Es scheint, als hätten meine Pflanzen-Pokémon dich überwältigt.", - "3": "Dieser Kampf war eine so beruhigende Erfahrung.", - "4": "Das war alles?" - } - }, - "janine": { - "encounter": { - "1": "Ich meistere die Kunst der giftigen Angriffe. Ich werde heute mit dir trainieren!", - "2": "Vater vertraut darauf, dass ich mich behaupten kann. Ich werde ihm recht geben!", - "3": "Meine Ninja-Techniken sind nur zweitrangig zu denen meines Vaters! Kannst du mithalten?" - }, - "victory": { - "1": "Selbst jetzt brauche ich noch Training… Ich verstehe.", - "2": "Dein Kampfstil hat meinen überwältigt.", - "3": "Ich werde mich wirklich anstrengen und meine Fähigkeiten verbessern." - }, - "defeat": { - "1": "Fufufu… das Gift hat dir all deine Kraft zum Kämpfen geraubt.", - "2": "Ha! Du hattest keine Chance gegen meine überlegenen Ninja-Fähigkeiten!", - "3": "Vaters Vertrauen in mich war nicht unbegründet." - } - }, - "sabrina": { - "encounter": { - "1": "Ich habe deine Ankunft in einer Vision gesehen!", - "2": "Ich mag es nicht zu kämpfen, aber wenn du darauf bestehst, werde ich dir meine Kräfte zeigen!", - "3": "Ich spüre große Ambitionen in dir. Ich werde sehen, ob sie begründet sind." - }, - "victory": { - "1": "Deine Kraft… Sie übertrifft bei weitem das, was ich vorausgesehen habe…", - "2": "Ich habe es nicht geschafft, deine Stärke genau vorherzusagen.", - "3": "Selbst mit meinen immensen psychischen Kräften kann ich niemanden spüren, der stärker ist als du." - }, - "defeat": { - "1": "Dieser Sieg… Genau so habe ich ihn in meinen Visionen gesehen!", - "2": "Vielleicht war es jemand anderes, den ich spürte…", - "3": "Verfeinere deine Fähigkeiten, bevor du unüberlegt in den Kampf stürzt.\n$Du weißt nie, was die Zukunft bereithält, wenn du es tust…" - } - }, - "blaine": { - "encounter": { - "1": "Hah! Ich hoffe, du hast Feuerheiler mitgebracht!", - "2": "Meine feurigen Pokémon werden alle Herausforderer verbrennen!", - "3": "Mach dich bereit, mit dem Feuer zu spielen!" - }, - "victory": { - "1": "Ich habe mich bis auf die Knochen verbrannt! Nicht einmal Asche bleibt!", - "2": "Habe ich die Flammen nicht hoch genug geschürt?", - "3": "Ich bin komplett ausgebrannt… Aber das lässt meine Motivation, mich zu verbessern, noch heißer brennen!" - }, - "defeat": { - "1": "Mein wütendes Inferno kann nicht gelöscht werden!", - "2": "Meine Pokémon sind durch die Hitze dieses Sieges gestärkt worden!", - "3": "Hah! Meine Leidenschaft brennt heller als deine!" - } - }, - "giovanni": { - "encounter": { - "1": "Ich, der Anführer von Team Rocket, werde dir eine Welt voller Schmerz bereiten!", - "2": "Mein Training hier wird entscheidend sein, bevor ich mich wieder meinen alten Kollegen stelle.", - "3": "Ich denke dass du nicht auf die Ausmaße des Scheiterns vorbereitet bist, die du gleich erleben wirst!" - }, - "victory": { - "1": "WAS! Ich, verlieren?! Es gibt nichts, was ich dir sagen möchte!", - "2": "Hmm… Du wirst nie verstehen können, was ich zu erreichen versuche.", - "3": "Diese Niederlage ist nur ein kleiner Rückschlag.\nTeam Rocket wird aus der Asche auferstehen." - }, - "defeat": { - "1": "Das du nicht in der Lage bist, deine eigene Stärke einzuschätzen, zeigt, dass du noch ein Kind bist.", - "2": "Versuche nicht, dich wieder in meine Angelegenheiten einzumischen.", - "3": "Ich hoffe, du verstehst, wie dumm es war, mich herauszufordern." - } - }, - "roxanne": { - "encounter": { - "1": "Wärs du so freundlich und würdest mir zeigen, wie du kämpfst?", - "2": "Man lernt so viel, wenn man gegen viele Trainer kämpft.", - "3": "Oh, du hast mich beim Strategie entwickeln erwischt. Möchtest du kämpfen?" - }, - "victory": { - "1": "Oh, es scheint, als hätte ich verloren.", - "2": "Es scheint, als hätte ich noch so viel mehr zu lernen, wenn es um Kämpfe geht.", - "3": "Ich werde mir zu Herzen nehmen, was ich heute gelernt habe." - }, - "defeat": { - "1": "Ich habe so viele Dinge aus unserem Kampf gelernt. Ich hoffe, du auch.", - "2": "Ich freue mich darauf, wieder gegen dich zu kämpfen.\n$Ich hoffe, du wirst das, was du hier gelernt hast, anwenden.", - "3": "Ich habe gewonnen, weil ich alles gelernt habe." - } - }, - "brawly": { - "encounter": { - "1": "Oh man, ein Herausforderer!\nLass uns sehen, was du kannst!", - "2": "Du scheinst auf große Auftritte zu stehen.\nLass uns kämpfen", - "3": "Zeit, einen Sturm zu entfachen!\nLos geht's!" - }, - "victory": { - "1": "Oh wow, du hast mich überrumpelt!", - "2": "Du hast meinen Flow übernommen und mich besiegt!", - "3": "Ich fühle mich als hätte ich mich in der Granithöhle verirrt!" - }, - "defeat": { - "1": "Haha, ich surfe die große Welle! Fordere mich irgendwann wieder heraus.", - "2": "Surfe mal wieder mit mir!", - "3": "Genau wie die Gezeiten kommen und gehen, hoffe ich, dass du zurückkommst, um mich herauszufordern." - } - }, - "wattson": { - "encounter": { - "1": "Zeit, geschockt zu werden! Wahahahaha!", - "2": "Ich lass die Funken fliegen! Wahahahaha!", - "3": "Ich hoffe, du hast Para-Heiler dabei! Wahahahaha!" - }, - "victory": { - "1": "Scheint als wäre ich entladen! Wahahahaha!", - "2": "Du hast mich komplett geerdet! Wahahahaha!", - "3": "Danke für den Nervenkitzel! Wahahahaha!" - }, - "defeat": { - "1": "Lade deine Batterien wieder auf und fordere mich irgendwann wieder heraus! Wahahahaha!", - "2": "Ich hoffe du fandest unseren Kampf elektrisierend! Wahahahaha!", - "3": "Bist du nicht geschockt, dass ich gewonnen habe? Wahahahaha!" - } - }, - "flannery": { - "encounter": { - "1": "Nett dich zu kennenzulernen! Warte, nein… Ich werde dich zermalmen!", - "2": "Ich bin noch nicht lange Arenaleiterin, aber ich werde dich grillen!", - "3": "Es ist Zeit, dir die Kampftechniken zu zeigen, die mein Großvater mir beigebracht hat! Lass uns kämpfen!" - }, - "victory": { - "1": "Du erinnerst mich an meinen Großvater… Kein Wunder, dass ich verloren habe.", - "2": "Strenge ich mich zu sehr an? Ich sollte mich entspannen, ich darf mich nicht zu sehr aufregen.", - "3": "Zu verlieren wird meine Flamme nicht ersticken. Zeit, das Training wieder zu entfachen!" - }, - "defeat": { - "1": "Ich hoffe, ich habe meinen Großvater stolz gemacht… Lass uns irgendwann wieder kämpfen.", - "2": "Ich… Ich kann nicht glauben, dass ich gewonnen habe! Meine Art zu kämpfen hat funktioniert!", - "3": "Lass uns bald wieder heiße Moves austauschen!" - } - }, - "norman": { - "encounter": { - "1": "Ich bin überrascht, dass du es bis hierher geschafft hast. Lass uns kämpfen.", - "2": "Ich werde alles in meiner Macht stehende tun, um als Arenaleiter zu gewinnen. Los geht's!", - "3": "Du solltest alles geben! Lasst uns kämpfen!" - }, - "victory": { - "1": "Ich habe gegen dich verloren…? Das ist eine Überraschung.", - "2": "War der Umzug nach Hoenn die richtige Entscheidung? Ich bin mir nicht sicher.", - "3": "Ich kann es nicht fasen. Das war ein großartiger Kampf." - }, - "defeat": { - "1": "Wir haben beide unser Bestes gegeben. Ich hoffe, wir können bald wieder kämpfen.", - "2": "Du solltest versuchen, mein Kind herauszufordern. Du könntest etwas lernen!", - "3": "Danke für den tollen Kampf. Viel Glück beim nächsten Mal." - } - }, - "winona": { - "encounter": { - "1": "Ich bin durch die Lüfte geflogen und habe nach Beute gesucht… und du bist mein Ziel!", - "2": "Egal, wie unser Kampf ausgeht, meine Flug-Pokémon und ich werden mit Anmut triumphieren. Auf in den Kampf!", - "3": "Ich hoffe, du hast keine Höhenangst. Lasst uns aufsteigen!" - }, - "victory": { - "1": "Du bist der erste Trainer, den ich gesehen habe, der mehr Anmut hat als ich. Ausgezeichnet", - "2": "Meine Flug-Pokémon sind abgestürzt! Na gut.", - "3": "Auch wenn ich gefallen sein mag, meine Pokémon werden weiter fliegen!" - }, - "defeat": { - "1": "Meine Flug-Pokémon und ich werden für immer elegant tanzen!", - "2": "Ich hoffe du hast die Show genossen. Unser anmutiger Tanz ist beendet.", - "3": "Wirst du zurückkommen und unsere elegante Choreographie noch einmal sehen?" - } - }, - "tate": { - "encounter": { - "1": "Hehehe… Bist du überrascht, mich ohne meine Schwester zu sehen?", - "2": "Ich kann sehen, was du denkst… Du willst kämpfen!", - "3": "Wie kannst du jemanden besiegen der deine Gedanken lesen kann?" - }, - "victory": { - "1": "Ich kann es nicht ändern… Ich vermisse Svenja…", - "2": "Die Bande zwischen dir und deinen Pokémon ist stärker als meine.", - "3": "Zusammen mit Svenja wären wir unschlagbar gewesen. Wir können gegenseitig unsere Sätze beenden!" - }, - "defeat": { - "1": "Meine Pokémon und ich sind siegreich.", - "2": "Wenn du mich nicht besiegen kannst, wirst du auch niemals Svenja besiegen können.", - "3": "All das verdanke ich meinem strengen Training mit Svenja. Meine Pokémon und ich sind eins." - } - }, - "liza": { - "encounter": { - "1": "Hihihi… Bist du überrascht, mich ohne meinen Bruder zu sehen?", - "2": "Ich kann sehen, wonach du verlangst… Du willst kämpfen, oder?", - "3": "Wie kannst du jemanden besiegen, der eins mit seinen Pokémon ist?" - }, - "victory": { - "1": "Ich kann es nicht ändern… Ich vermisse Ben…", - "2": "Das Band zwischen dir und deinen Pokémon ist stärker als meins.", - "3": "Zusammen mit Ben wären wir unschlagbar gewesen. Wir können gegenseitig unsere Sätze beenden!" - }, - "defeat": { - "1": "Meine Pokémon und ich sind siegreich.", - "2": "Wenn du mich nicht besiegen kannst, wirst du auch niemals Ben besiegen können.", - "3": "All das verdanke ich meinem strengen Training mit Ben. Meine Pokémon und ich sind eins." - } - }, - "juan": { - "encounter": { - "1": "Jetzt ist nicht die Zeit, schüchtern zu sein. Lass uns kämpfen!", - "2": "Ahahaha, Du wirst Zeuge meiner Kunstfertigkeit mit Wasser-Pokémon!", - "3": "Ein Taifun nähert sich! Wirst du mich testen können?", - "4": "Bitte, du wirst Zeuge unserer Kunstfertigkeit.\n$Eine großartige Illusion aus Wasser, die von meinen Pokémon und mir geschaffen wurde!" - }, - "victory": { - "1": "Du bist ein Genie, das Wasilli herausfordern kann!", - "2": "Ich habe mich auf Eleganz konzentriert, während du trainiert hast.\n$Es kein Wunder, dass du gewonnen hast.", - "3": "Ahahaha! Nun gut, dieses Mal hast du gewonnen.", - "4": "Ich spüre den Glanz deines Könnens, der alles überwinden wird." - }, - "defeat": { - "1": "Meine Pokémon und ich haben eine Illusion aus Wasser geschaffen und sind siegreich hervorgegangen.", - "2": "Ahahaha, Ich habe gewonnen, und du hast verloren.", - "3": "Soll ich dir mein Outfit leihen? Es könnte dir beim Kampf helfen! Ahahaha, ich scherze!", - "4": "Ich bin der Gewinner! Das heißt, du hast verloren." - } - }, - "crasher_wake": { - "encounter": { - "1": "Aufgepasst! Wellenbrecher Marinus… ist… da!", - "2": "Brechende Wellen! Ich bin Wellenbrecher Marinus!", - "3": "Ich bin die Flutwelle der Macht, die dich wegspült!" - }, - "victory": { - "1": "Das bringt ein Grinsen in mein Gesicht! Guhahaha! Das war ein Spaß!", - "2": "Hunwah! Es ist vorbei! Wie soll ich das sagen… Ich will mehr! Ich wollte viel mehr kämpfen!", - "3": "WAAAS?!" - }, - "defeat": { - "1": "Yeeeeah! So muss das sein!", - "2": "Ich habe gewonnen, aber ich will mehr! Ich wollte viel mehr kämpfen!", - "3": "Bis bald! Ich freue mich auf den nächsten Kampf!" - } - }, - "falkner": { - "encounter": { - "1": "Ich werde dir die wahre Kraft der prächtigen Flug-Pokémon zeigen!", - "2": "Winde, bleibt bei mir!", - "3": "Vater! Ich hoffe, du siehst mir beim Kampf von oben zu!" - }, - "victory": { - "1": "Ich verstehe… Ich werde mich anmutig zurückziehen.", - "2": "Eine Niederlage ist eine Niederlage. Du bist wirklich stark.", - "3": "…Verdammt! Ich habe verloren!" - }, - "defeat": { - "1": "Vater! Ich habe mit deinen geliebten Flug-Pokémon gewonnen…", - "2": "Flug-Pokémon sind die Besten!", - "3": "Ich habe das Gefühl, dass ich meinem Vater näher komme!" - } - }, - "nessa": { - "encounter": { - "1": "Egal, welchen Plan dein raffinierter Verstand auch schmiedet,\n$mein Partner und ich werden ihn mit Sicherheit zu Fall bringen.", - "2": "Ich bin nicht hier, um zu plaudern. Ich bin hier, um zu gewinnen!", - "3": "Das ist ein kleines Geschenk von meinen Pokémon… Ich hoffe, du kannst es annehmen!" - }, - "victory": { - "1": "Du und deine Pokémon sind einfach zu stark…", - "2": "Wie…? Wie kann das sein?", - "3": "Ich wurde total weggespült!" - }, - "defeat": { - "1": "Die wütenede Welle schlägt wieder zu!", - "2": "Es ist Zeit, die Welle des Sieges zu reiten!", - "3": "Ehehe!" - } - }, - "melony": { - "encounter": { - "1": "Ich halte mich nicht zurück!", - "2": "Okay, ich denke, wir sollten anfangen.", - "3": "Ich werde dich einfrieren!" - }, - "victory": { - "1": "Du… Du bist ziemlich gut, oder?", - "2": "Wenn du Mac triffst, haue ihn für mich um, ja?", - "3": "Ich denke, du hast 'das Eis brechen' ein wenig zu wörtlich genommen…" - }, - "defeat": { - "1": "Siehst du jetzt, wie ernst Kämpfe sein können?", - "2": "Hee! Es sieht so aus, als hätte ich wieder gewonnen!", - "3": "Hältst du dich zurück?" - } - }, - "marlon": { - "encounter": { - "1": "Du siehst stark aus! Los geht's!", - "2": "Ich bin stark wie das weite Meer. Du wirst weggespült, das ist sicher.", - "3": "Oh ho, ich treffe auf dich! Das ist abgefahren." - }, - "victory": { - "1": "Du hast total gerockt! Du ziehst einige krasse Pokémon groß. Du hast das Trainer-Ding drauf!", - "2": "Du siehst nicht nur stark aus, du bist auch stark! Eh, ich wurde auch weggespült!", - "3": "Du bist stark wie eine spektakuläre Welle!" - }, - "defeat": { - "1": "Du bist stark, aber nicht stark genug, um das Meer zu beeinflussen, 'OK!", - "2": "Hee! Sieht so aus, als hätte ich wieder gewonnen!", - "3": "Süßer, süßer Sieg!" - } - }, - "shauntal": { - "encounter": { - "1": "Entschuldigung. Du bist ein Herausforderer, oder?\nIch bin Anissa, die Geist-Pokémon-Nutzerin\n$der Top Vier. Ich werde dich in die Welt der Bücher entführen.", - "2": "Ich liebe es, über Trainer und deren Pokémon zu schreiben.\n$Könnte ich dich als Inspiration verwenden?", - "3": "Jeder, der mit Pokémon arbeitet, hat eine Geschichte zu erzählen. Welche Geschichte wird erzählt?" - }, - "victory": { - "1": "Wow. Ich bin sprachlos!", - "2": "E-entschuldigung! Zuerst muss ich mich bei meinen Pokémon entschuldigen…\n$Es tut mir wirklich leid, dass ihr wegen mir eine schlechte Erfahrung gemacht habt.", - "3": "Selbst in Anbetracht dessen, bin ich immer noch eine der Top Vier!" - }, - "defeat": { - "1": "Eheh.", - "2": "Das war exzellentes Material für meinen nächsten Roman!", - "3": "Und wenn sie nicht gestorben sind, dann leben sie noch heute…" - } - }, - "marshal": { - "encounter": { - "1": "Mein Mentor, Lauro, sieht Potential in dir. Ich werde dich testen,\n$dich an die Grenzen deiner Stärke bringen. Kiai!", - "2": "Ein Sieg, ein entscheidender Sieg, das ist mein Ziel! Herausforderer, hier komme ich!", - "3": "Ich selber suche die Stärke eines Kämpfers zu entwickeln und jede Schwäche in mir zu brechen!" - }, - "victory": { - "1": "Puh! Gut gemacht!", - "2": "Während deine Kämpfe weitergehen, strebe nach noch größeren Höhen!", - "3": "Die Stärke, die du und deine Pokémon gezeigt haben, hat mich tief beeindruckt..." - }, - "defeat": { - "1": "Hmm.", - "2": "Das war ein guter Kampf.", - "3": "Haaah! Haaah! Haiyaaaah!" - } - }, - "cheren": { - "encounter": { - "1": "Du erinnerst mich an einen alten Freund. Das macht mich gespannt auf diesen Pokémon-Kampf!", - "2": "Pokémon-Kämpfe haben keinen Sinn, wenn man nicht darüber nachdenkt, warum man kämpft.\n$Oder besser gesagt, es macht das Kämpfen mit Pokémon sinnlos.", - "3": "Ich heiße Cheren! Ich bin ein Arenaleiter und Lehrer! Freut mich, dich kennenzulernen." - }, - "victory": { - "1": "Danke! Ich habe gesehen, was mir gefehlt hat.", - "2": "Danke! Ich habe das Gefühl, ein Stück meines Ideals entdeckt zu haben.", - "3": "Hmm… Das ist problematisch." - }, - "defeat": { - "1": "Als Arenaleiter will ich eine Hürde für dich sein, die du überwinden musst.", - "2": "In Ordnung!", - "3": "Ich bin so weit gekommen, weil Pokémon an meiner Seite waren.\n$Vielleicht sollten wir darüber nachdenken, warum Pokémon uns helfen,\n$nicht als Pokémon und Trainer, sondern als Beziehung zwischen Lebewesen." - } - }, - "chili": { - "encounter": { - "1": "Jaaaa! Zeit, mit dem Feuer zu spielen! Ich bin der Stärkste von uns Brüdern!", - "2": "Ta-da! Der Feuer-Typ-Kämpfer Maik --das bin ich-- wird dein Gegner sein!", - "3": "Ich werde dir zeigen, was ich und meine feurigen Pokémon draufhaben!" - }, - "victory": { - "1": "Du hast mich besiegt. Ich bin... ausgebrannt...", - "2": "Whoa ho! Du brennst vor Energie!", - "3": "Autsch! Du hast mich erwischt!" - }, - "defeat": { - "1": "Ich brenne! Spiel mit mir, und du wirst dich verbrennen!", - "2": "Wenn du mit Feuer spielst, wirst du verbrannt!", - "3": "Ich meine, komm schon, dein Gegner war ich! Du hattest keine Chance!" - } - }, - "cilan": { - "encounter": { - "1": "Nichts Persönliches... Keine harten Gefühle... Ich und meine Pflanzen-Pokémon werden...\n$Ähm... Wir werden kämpfen, egal was passiert.", - "2": "Also, ähm, wenn es für dich in Ordnung ist, werde ich, ähm, alles geben, um, äh, dein Gegner zu sein.", - "3": "OK… Also, ähm, ich bin Benny, ich mag Pflanzen-Pokémon." - }, - "victory": { - "1": "Ähm… Ist es jetzt vorbei?", - "2": "…Was für eine Überraschung. Du bist sehr stark, nicht wahr? \n$Ich glaube, meine Brüder hätten dich auch nicht besiegen können…", - "3": "…Hmm. Sieht aus, als wäre mein Timing, ähm, schlecht gewesen?" - }, - "defeat": { - "1": "Huh? Habe ich gewonnen?", - "2": "Ich denke... Ich habe wohl gewonnen, weil ich mit meinen Brüdern Maik und Colin traniert habe,\n$und wir so alle stärker geworden sind.", - "3": "Es... es war ein ziemlich aufregendes Erlebnis..." - } - }, - "roark": { - "encounter": { - "1": "Ich muss dein Potenzial als Trainer und die Stärke der Pokémon sehen, die mit dir kämpfen!", - "2": "Los geht's! Dies sind meine Gesteins-Pokémon, mein ganzer Stolz!", - "3": "Gesteins-Pokémon sind einfach die besten!", - "4": "Ich muss dein Potenzial als Trainer und die Stärke der Pokémon sehen, die mit dir kämpfen!" - }, - "victory": { - "1": "W-was? Das kann nicht sein! Meine total tranierten Pokémon!", - "2": "…Wir haben die Kontrolle verloren. Beim nächsten Mal fordere ich dich\n$zu einem Fossilien-Ausgrabungswettbewerb heraus.", - "3": "Mit deinem Können ist es nur natürlich, dass du gewinnst.", - "4": "W-was?! Das kann nicht sein! Selbst das war nicht genug?", - "5": "Ich habe es vermasselt." - }, - "defeat": { - "1": "Siehst du? Ich bin stolz auf meinen steinigen Kampfstil!", - "2": "Danke! Der Kampf hat mir Vertrauen gegeben, dass ich vielleicht meinen Vater besiegen kann!", - "3": "Ich fühle mich, als hätte ich gerade einen wirklich hartnäckigen Felsen durchbrochen!" - } - }, - "morty": { - "encounter": { - "1": "Mit ein bisschen mehr könnte ich eine Zukunft sehen, in der ich das legendäre Pokémon treffe.\n$Du wirst mir helfen, dieses Level zu erreichen!", - "2": "Es heißt, dass ein regenbogenfarbenes Pokémon vor einem wirklich starken Trainer erscheinen wird.\n$Ich habe an diese Geschichte geglaubt, deshalb habe ich mein ganzes Leben lang heimlich trainiert.\n$Als Ergebnis kann ich jetzt Dinge sehen, die andere nicht sehen.\n$Ich sehe einen Schatten der Person, die das Pokémon erscheinen lassen wird.\n$Ich glaube, diese Person bin ich! Du wirst mir helfen, dieses Level zu erreichen!", - "3": "Ob du es glaubst oder nicht, mystische Kräfte existieren.", - "4": "Du kannst die Früchte meines Trainings bezeugen.", - "5": "Du musst deine Seele mit der eines Pokémon vereinen. Kannst du das?", - "6": "Sag mal, willst du an meinem Training teilnehmen?" - }, - "victory": { - "1": "Ich bin noch nicht gut genug...", - "2": "Ich sehe... Deine Reise hat dich an weit entfernte Orte geführt und du hast viel mehr gesehen als ich.\n$Ich beneide dich darum...", - "3": "Wie ist das möglich...", - "4": "Ich glaube nicht, dass unser Potenzial so unterschiedlich ist.\n$Aber du scheinst etwas mehr zu haben... Sei es drum.", - "5": "Ich brauche wohl mehr Training.", - "6": "Das ist schade." - }, - "defeat": { - "1": "Ich habe... einen weiteren Schritt nach vorne gemacht.", - "2": "Fufufu...", - "3": "W-was?! Das kann nicht sein! Selbst das war nicht genug?", - "4": "Ich fühle mich, als hätte ich gerade einen wirklich hartnäckigen Felsen durchbrochen!", - "5": "Ahahahah!", - "6": "Ich wusste, dass ich gewinnen würde!" - } - }, - "crispin": { - "encounter": { - "1": "Ich will gewinnen, also werde ich genau das tun!", - "2": "Ich kämpfe, weil ich kämpfen will! Und weißt du was? So sollte es sein!" - }, - "victory": { - "1": "Ich wollte gewinnen... aber ich habe verloren!", - "2": "Ich habe verloren... weil ich nicht gewinnen konnte!" - }, - "defeat": { - "1": "Hey, warte mal. Habe ich gerade gewonnen? Ich glaube, ich habe gewonnen! Das ist befriedigend!", - "2": "Wooo! Das war unglaublich!" - } - }, - "amarys": { - "encounter": { - "1": "Ich möchte jemandem helfen. Daher kann ich es mir nicht leisten, zu verlieren.\n$… Unser Kampf beginnt jetzt." - }, - "victory": { - "1": "Ich bin... nicht genug, wie ich sehe." - }, - "defeat": { - "1": "Der Sieg gehört mir. Gut gekämpft." - } - }, - "lacey": { - "encounter": { - "1": "Ich werde dir mit meinem gewohnten Team, als Mitglied der Top Vier gegenüberstehen." - }, - "victory": { - "1": "Das war ein großartiger Kampf!" - }, - "defeat": { - "1": "Geben wir deinem Pokémon einen kräftigen Applaus für ihre Bemühungen!" - } - }, - "drayton": { - "encounter": { - "1": "Mann, ich liebe Stühle. Liebst du nicht auch Stühle? Was für Lebensretter.\n$Ich verstehe nicht, warum nicht jeder einfach die ganze Zeit sitzt. Stehen ist anstrengend!" - }, - "victory": { - "1": "Ich hätte damit rechnen sollen!" - }, - "defeat": { - "1": "Heh heh! Macht nichts, ich habe hier nur einen Sieg eingefahren.\n$Ich verstehe, wenn du sauer bist, aber geh nicht völlig auf mich los, okay?" - } - }, - "ramos": { - "encounter": { - "1": "Hast du den Garten-Spielplatz genossen, den ich mit all diesen kräftigen Pflanzen angelegt habe?\n$Ihre Stärke ist ein Zeichen meiner Stärke als Gärtner und Arenaleiter! \n$Bist du sicher, dass du bereit bist, dich dem zu stellen?" - }, - "victory": { - "1": "Du glaubst an deine Pokémon... Und sie glauben an dich... Es war ein feiner Kampf, Sprössling." - }, - "defeat": { - "1": "Hohoho... In der Tat. Schwache kleine Grashalme brechen selbst durch Beton." - } - }, - "viola": { - "encounter": { - "1": "Ob es die Tränen der Frustration nach einer Niederlage sind\n$oder das Aufblühen der Freude nach einem Sieg...\n$Beides sind großartige Motive für meine Kamera! Fantastisch! Das wird einfach fantastisch!\n$Jetzt komm auf mich zu!", - "2": "Mein Objektiv ist immer auf den Sieg fokussiert - ich lasse mir diesen Moment nicht entgehen!" - }, - "victory": { - "1": "Du und deine Pokémon haben mir eine ganz neue Tiefenschärfe gezeigt! Einfach fantastisch!", - "2": "Die Welt, die du durch ein Objektiv siehst, und die Welt,\n$die du mit einem Pokémon an deiner Seite siehst...\n$Die gleiche Welt kann völlig anders aussehen, je nach Blickwinkel." - }, - "defeat": { - "1": "Das Foto vom Moment meines Sieges wird ein echter Gewinner sein!", - "2": "Ja! Ich habe einige großartige Fotos gemacht!" - } - }, - "candice": { - "encounter": { - "1": "Du willst Frida herausfordern? Klar! Ich habe auf jemanden Starken gewartet!\n$Aber ich sollte dir sagen, ich bin stark, weil ich weiß, wie man sich konzentriert.", - "2": "Pokémon, Mode, Romantik... Es geht alles um Konzentration!\n$Ich werde dir zeigen, was ich meine. Mach dich bereit zu verlieren!" - }, - "victory": { - "1": "Ich muss sagen, ich bin von dir angetan! Vielleicht bewundere ich dich sogar ein bisschen.", - "2": "Wow! Du bist großartig! Du hast meinen Respekt verdient!\n$Ich denke, dein Fokus und Wille haben uns völlig umgehauen." - }, - "defeat": { - "1": "Ich habe deinen Siegeswillen gespürt, aber ich verliere nicht!", - "2": "Siehst du? Fridas Fokus! Der Fokus meiner Pokémon ist auch großartig!" - } - }, - "gardenia": { - "encounter": { - "1": "Du hast eine Sieger-Aura. Also, das wird Spaß machen. Lass uns kämpfen!" - }, - "victory": { - "1": "Unglaublich! Du bist sehr gut, nicht wahr?" - }, - "defeat": { - "1": "Ja! Meine Pokémon und ich sind perfekt abgestimmt!" - } - }, - "aaron": { - "encounter": { - "1": "Okay! Lass mich gegen dich antreten!" - }, - "victory": { - "1": "Kämpfen ist eine tiefe und komplexe Angelegenheit..." - }, - "defeat": { - "1": "Ein Sieg über ein Mitglied der Top Vier ist nicht leicht zu erringen." - } - }, - "cress": { - "encounter": { - "1": "Das ist korrekt! Ich und meine geschätzten Wasser-Pokémon werden deine Gegner im Kampf sein!" - }, - "victory": { - "1": "Verlieren? Ich? Das glaube ich nicht." - }, - "defeat": { - "1": "Das ist das passende Ergebnis, wenn ich dein Gegner bin." - } - }, - "allister": { - "encounter": { - "1": "'N-Nio.\nH-hier… g-geht's los…" - }, - "victory": { - "1": "Ich hätte beinahe meine Maske vor Schock verloren... Das war...\n$Wow. Ich sehe dein Können, wie es wirklich ist." - }, - "defeat": { - "1": "D-das war klasse!" - } - }, - "clay": { - "encounter": { - "1": "Harrumph! Du hast mich warten lassen, oder? Gut, jetzt will ich sehen, was du drauf hast!" - }, - "victory": { - "1": "Mann oh Mann... Es fühlt sich gut an, alles zu geben und trotzdem besiegt zu werden!" - }, - "defeat": { - "1": "Was wichtig ist, ist wie du auf eine Niederlage reagierst.\n$Deshalb sind Leute, die Niederlagen als Ansporn nutzen, um besser zu werden, stark." - } - }, - "kofu": { - "encounter": { - "1": "Ich werde dir ein ganzes Menü aus Wasser-Pokémon servieren! Aber versuch nicht, sie zu essen!" - }, - "victory": { - "1": "Vaultin' Veluza! Du bist ein lebhafter Mensch, nicht wahr!\n$Ein bisschen ZU lebhaft, wenn ich das so sagen darf!" - }, - "defeat": { - "1": "Komm bald wieder zu mir, hörst du?" - } - }, - "tulip": { - "encounter": { - "1": "Erlaube mir, meine Fähigkeiten einzusetzen, um deine niedlichen kleinen Pokémon noch schöner zu machen!" - }, - "victory": { - "1": "Deine Stärke hat eine Magie, die nicht wegzuwaschen ist." - }, - "defeat": { - "1": "Weißt du, in meinem Beruf verschwinden Menschen,\n$die in einem Bereich kein Talent haben, oft schnell und werden nie wieder gesehen." - } - }, - "sidney": { - "encounter": { - "1": "Mir gefällt der Blick, den du mir zuwirfst. Ich denke, du wirst mir einen guten Kampf liefern.\n$Das ist gut! Sieht wirklich gut aus! In Ordnung!\n$Du und ich, lass uns einen Kampf genießen, der nur hier stattfinden kann!" - }, - "victory": { - "1": "Nun, wie gefällt dir das? Ich habe verloren! Eh, es hat Spaß gemacht, also ist es egal." - }, - "defeat": { - "1": "Wir sind hier nicht nachtragend, okay?" - } - }, - "phoebe": { - "encounter": { - "1": "Während meines Trainings habe ich die Fähigkeit erlangt, mit Geister-Pokémon zu kommunizieren.\n$Ja, die Bindung, die ich zu Pokémon entwickelt habe, ist extrem stark.\n$Also komm, versuche nur, meinen Pokémon Schaden zuzufügen!" - }, - "victory": { - "1": "Oh, Mist. Ich habe verloren." - }, - "defeat": { - "1": "Ich freue mich darauf, dich irgendwann wieder zu bekämpfen!" - } - }, - "glacia": { - "encounter": { - "1": "Alles, was ich gesehen habe, sind Herausforderungen von schwachen Trainern und ihren Pokémon.\n$Und du? Es würde mich überaus freuen, wenn ich gegen dich alles geben könnte!" - }, - "victory": { - "1": "Du und deine Pokémon… Wie heiß eure Geister brennen!\n$Die alles verzehrende Hitze überwältigt.\n$Es ist kein Wunder, dass meine eisigen Fähigkeiten dir nichts anhaben konnten." - }, - "defeat": { - "1": "Ein leidenschaftlicher Kampf, in der Tat." - } - }, - "drake": { - "encounter": { - "1": "Um mit Pokémon als Partner zu kämpfen, weißt du, was dafür nötig ist? Weißt du, was gebraucht wird?\n$Wenn nicht, wirst du nie gegen mich gewinnen!" - }, - "victory": { - "1": "Hervorragend, muss ich sagen." - }, - "defeat": { - "1": "Ich habe alles für diesen Kampf gegeben!" - } - }, - "wallace": { - "encounter": { - "1": "Da ist etwas an dir… Eine Veränderung in deinem Auftreten.\n$Ich denke, ich spüre das bei dir. Zeig es mir. Zeig mir die Kraft, die du mit deinen Pokémon hast.\n$Und ich werde dir im Gegenzug eine Vorstellung von\n$Illusionen im Wasser von mir und meinen Pokémon präsentieren!" - }, - "victory": { - "1": "Bravo. Ich erkenne jetzt deine Authentizität und Großartigkeit als Pokémon-Trainer.\n$Ich freue mich sehr, dich und deine Pokémon kennengelernt zu haben. Du hast dich als würdig erwiesen." - }, - "defeat": { - "1": "Eine große Illusion!" - } - }, - "lorelei": { - "encounter": { - "1": "Niemand kann mich bei eisigen Pokémon übertreffen! Gefrierende Angriffe sind mächtig!\n$Deine Pokémon werden mir ausgeliefert sein, wenn sie erst einmal eingefroren sind! Hahaha!\n$Bist du bereit?" - }, - "victory": { - "1": "Wie kannst du es wagen!" - }, - "defeat": { - "1": "Es gibt nichts, was du tun kannst, wenn du erst einmal eingefroren bist." - } - }, - "will": { - "encounter": { - "1": "Ich habe auf der ganzen Welt trainiert und meine Psycho-Pokémon stark gemacht.\n$Ich kann nur besser werden! Verlieren ist keine Option!" - }, - "victory": { - "1": "Ich... ich kann es nicht... glauben..." - }, - "defeat": { - "1": "Das war knapp. Ich frage mich, was dir fehlt." - } - }, - "malva": { - "encounter": { - "1": "Ich fühle mich, als könnte mein Herz in Flammen aufgehen.\n$Ich brenne vor Hass auf dich, Wicht!" - }, - "victory": { - "1": "Was für Neuigkeiten... Ein neuer Herausforderer hat Pachira besiegt!" - }, - "defeat": { - "1": "Ich bin begeistert! Ja, begeistert, dass ich dich unter meinen Fußsohlen zerquetschen konnte." - } - }, - "hala": { - "encounter": { - "1": "Der alte Hala ist hier, um dich zum Schreien zu bringen!" - }, - "victory": { - "1": "Ich konnte die Kraft spüren, die du auf deiner Reise gewonnen hast." - }, - "defeat": { - "1": "Haha! Was für ein erfreulicher Kampf!" - } - }, - "molayne": { - "encounter": { - "1": "Ich habe die Kapitänsposition meinem Cousin Chrys gegeben,\n$aber ich bin zuversichtlich in meine Fähigkeiten.\n$Meine Stärke ist wie die einer Supernova!" - }, - "victory": { - "1": "Ich habe sicherlich einen interessanten Trainer zum Kämpfen gefunden!" - }, - "defeat": { - "1": "Ahaha. Was für ein interessanter Kampf." - } - }, - "rika": { - "encounter": { - "1": "Ich würde sagen, ich werde es dir leicht machen, aber... das wäre gelogen! Denke schnell!" - }, - "victory": { - "1": "Nicht schlecht, wirklich!" - }, - "defeat": { - "1": "Nahahaha! Du bist wirklich etwas Besonderes!" - } - }, - "bruno": { - "encounter": { - "1": "Wir werden dich mit unserer überlegenen Kraft niederschmettern! Hoo hah!" - }, - "victory": { - "1": "Warum? Wie konnte ich verlieren?" - }, - "defeat": { - "1": "Du kannst mich herausfordern, so oft du willst, aber das Ergebnis wird sich nie ändern!" - } - }, - "bugsy": { - "encounter": { - "1": "Ich bin Kai, der Arenaleiter von Azalea City. Ich bin ein großer Fan von Käfer-Pokémon." - }, - "victory": { - "1": "Wow, erstaunlich! Du bist ein Experte für Pokémon!\n$Meine Forschung ist noch nicht abgeschlossen. OK, du gewinnst." - }, - "defeat": { - "1": "Danke! Dank unseres Kampfes konnte ich auch Fortschritte in meiner Forschung machen!" - } - }, - "koga": { - "encounter": { - "1": "Fwahahahaha! Pokémon sind nicht nur rohe Gewalt - das wirst du bald genug sehen!" - }, - "victory": { - "1": "Ah! Du hast deinen Wert bewiesen!" - }, - "defeat": { - "1": "Hast du gelernt, die Techniken der Ninja zu fürchten?" - } - }, - "bertha": { - "encounter": { - "1": "Nun, würdest du dieser alten Dame zeigen, wie viel du gelernt hast?" - }, - "victory": { - "1": "Nun! Liebes Kind, ich muss sagen, das war sehr beeindruckend.\n$Deine Pokémon haben an dich geglaubt und ihr Bestes gegeben, um dir den Sieg zu sichern.\n$Obwohl ich verloren habe, finde ich mich mit einem dummen Grinsen wieder!" - }, - "defeat": { - "1": "Hahahahah! Sieht so aus, als hätte diese alte Dame gewonnen!" - } - }, - "lenora": { - "encounter": { - "1": "Nun denn, Herausforderer, ich werde erforschen,\n$wie du mit den Pokémon kämpfst, die du so liebevoll aufgezogen hast!" - }, - "victory": { - "1": "Meine Theorie über dich war korrekt. Du bist mehr als nur talentiert... \n$Du bist motiviert! Ich salutier' dir!" - }, - "defeat": { - "1": "Ah ha ha! Wenn du verlierst, analysiere warum und nutze dieses Wissen im nächsten Kampf!" - } - }, - "siebold": { - "encounter": { - "1": "Solange ich lebe, werde ich danach streben, die ultimative Küche...\n$und die stärksten Gegner im Kampf zu finden!" - }, - "victory": { - "1": "Ich werde die Erinnerung an dich und deine Pokémon für immer in meinem Herzen bewahren." - }, - "defeat": { - "1": "Unser Pokémon-Kampf war wie Nahrung für meine Seele. Er wird mich weiter antreiben.\n$So werde ich dir meinen Respekt erweisen, dass du alles im Kampf gegeben hast!" - } - }, - "roxie": { - "encounter": { - "1": "Mach dich bereit! Ich werde dir den Verstand aus dem Kopf schlagen!" - }, - "victory": { - "1": "Wahnsinn! Deine Vernunft ist schon giftiger als meine!" - }, - "defeat": { - "1": "Hey, komm schon! Sei ernst! Du musst mehr geben!" - } - }, - "olivia": { - "encounter": { - "1": "Hier ist keine Einführung nötig. Zeit, gegen mich, Mayla, zu kämpfen!" - }, - "victory": { - "1": "Wirklich lieblich... Sowohl du als auch deine Pokémon..." - }, - "defeat": { - "1": "Mmm-hmm." - } - }, - "poppy": { - "encounter": { - "1": "Oooh! Willst du einen Pokémon-Kampf mit mir führen?" - }, - "victory": { - "1": "Uagh?! Mmmuuuggghhh..." - }, - "defeat": { - "1": "Jaaa! Ich hab's geschafft! Ich hab dich besiegt! Du kannst kommen für... Für... Einen Revanchekampf?\n$Komm jederzeit für einen Revanchekampf!" - } - }, - "agatha": { - "encounter": { - "1": "Pokémon sind zum Kämpfen da! Ich zeige dir, wie ein echter Trainer kämpft!" - }, - "victory": { - "1": "Oh mein Gott! Du bist etwas Besonderes, Kind!" - }, - "defeat": { - "1": "Bahaha. So wird ein richtiger Kampf geführt!" - } - }, - "flint": { - "encounter": { - "1": "Hoffentlich bist du aufgewärmt, denn hier kommt der Urknall!" - }, - "victory": { - "1": "Unglaublich! Deine Moves sind so heiß, dass meine im Vergleich lauwarm wirken!" - }, - "defeat": { - "1": "Huh? War das alles? Ich denke, du brauchst etwas mehr Leidenschaft." - } - }, - "grimsley": { - "encounter": { - "1": "Der Gewinner nimmt alles, und es bleibt nichts für den Verlierer." - }, - "victory": { - "1": "Wenn man verliert, verliert man alles... Das nächste, wonach ich suche, wird auch der Sieg sein!" - }, - "defeat": { - "1": "Wenn jemand gewinnt, verliert derjenige, der gegen diese Person gekämpft hat." - } - }, - "caitlin": { - "encounter": { - "1": "Ich bin es, die erschien, als die Blume sich öffnete. Du, der du gewartet hast…\n$Du siehst aus wie ein Pokémon-Trainer mit verfeinerter Stärke und vertiefter Freundlichkeit.\n$Was ich in meinem Gegner suche, ist überlegene Stärke…\n$Bitte entfessle deine Kraft in vollem Umfang!" - }, - "victory": { - "1": "Meine Pokémon und ich haben so viel gelernt! Ich danke dir." - }, - "defeat": { - "1": "Ich strebe danach, mit Eleganz und Anmut zu siegen." - } - }, - "diantha": { - "encounter": { - "1": "Gegen dich und deine Pokémon zu kämpfen, die alle voller Hoffnung für die Zukunft sind...\n$Ehrlich gesagt, es erfüllt mich mit der Energie, die ich brauche, um jeden neuen Tag anzugehen!\n$Wirklich!" - }, - "victory": { - "1": "Den edlen Geist von dir und deinen Pokémon im Kampf zu erleben, hat mein Herz wirklich berührt..." - }, - "defeat": { - "1": "Oh, fantastisch! Was denkst du? Mein Team war ziemlich cool, oder?" - } - }, - "wikstrom": { - "encounter": { - "1": "Guten Tag, junger Herausforderer! Wahrlich, ich bin die berühmte Klinge aus gehärtetem Stahl,\n$Herzog Thymelot! Lasst den Kampf beginnen! En garde!" - }, - "victory": { - "1": "Ruhmreich! Das Vertrauen, das du mit deinen ehrenvollen Pokémon teilst, übertrifft sogar meines!" - }, - "defeat": { - "1": "Was für eine Magie ist das? Mein Herz, es hämmert unaufhörlich in meiner Brust!\n$Gegen einen so würdigen Gegner zu gewinnen, verleiht meiner Seele Flügel - so fliege ich!" - } - }, - "acerola": { - "encounter": { - "1": "Kämpfen macht einfach Spaß! Komm schon, ich schaffe das!" - }, - "victory": { - "1": "Ich bin... sprachlos! Wie hast du das gemacht?!" - }, - "defeat": { - "1": "Ehaha! Was für ein erstaunlicher Sieg!" - } - }, - "larry_elite": { - "encounter": { - "1": "Hallo... Ich bin's, Aoki.\n$Ich bin auch Mitglied der Top Vier, ja... Leider für mich." - }, - "victory": { - "1": "Nun, das hat uns den Wind aus den Segeln genommen..." - }, - "defeat": { - "1": "Es ist Zeit für ein Treffen mit dem Boss." - } - }, - "lance": { - "encounter": { - "1": "Ich habe auf dich gewartet. Erlaube mir, deine Fähigkeiten zu testen.", - "2": "Ich dachte, du würdest es so weit schaffen. Lass uns anfangen." - }, - "victory": { - "1": "Du hast mich besiegt. Du bist großartig!", - "2": "Ich hätte nie erwartet, dass ein anderer Trainer mich schlägt... Ich bin überrascht." - }, - "defeat": { - "1": "Das war knapp. Willst du es nochmal versuchen?", - "2": "Es ist nicht so, dass du schwach bist. Lass dich davon nicht stören." - } - }, - "karen": { - "encounter": { - "1": "Ich bin Melanie. Möchtest du einen Kampf mit meinen Unlicht-Pokémon?", - "2": "Ich bin anders als die, die du bereits getroffen hast.", - "3": "Du hast ein charmantes Team zusammengestellt. Unser Kampf wird sicher gut." - }, - "victory": { - "1": "Nein! Ich kann nicht gewinnen. Wie bist du so stark geworden?", - "2": "Ich werde nicht von meinem gewählten Weg abweichen.", - "3": "Der Champion freut sich darauf, dich kennenzulernen." - }, - "defeat": { - "1": "Das habe ich erwartet.", - "2": "Nun, das war relativ unterhaltsam.", - "3": "Komm mich jederzeit besuchen." - } - }, - "milo": { - "encounter": { - "1": "Es scheint, als würdest du Pokémon wirklich gut verstehen.\n$Das wird ein harter Kampf!\n$Ich muss mein Pokémon Dynamaximieren, wenn ich gewinnen will!" - }, - "victory": { - "1": "Die Kraft des Grases ist verwelkt... Was für ein unglaublicher Herausforderer!" - }, - "defeat": { - "1": "Das wird dich wirklich schockieren und in Ehrfurcht versetzen." - } - }, - "lucian": { - "encounter": { - "1": "Einen Moment, bitte. Das Buch, das ich lese, hat fast seinen spannenden Höhepunkt erreicht...\n$Der Held hat ein mystisches Schwert erlangt und steht vor seiner letzten Prüfung... Ah, egal.\n$Da du es so weit geschafft hast, lege ich das beiseite und kämpfe gegen dich.\n$Lass mich sehen, ob du genauso viel Ruhm erlangen wirst wie der Held meines Buches!" - }, - "victory": { - "1": "Ich sehe... Es scheint, als hättest du mich schachmatt gesetzt." - }, - "defeat": { - "1": "Ich habe einen Ruf zu wahren." - } - }, - "drasna": { - "encounter": { - "1": "Du musst ein starker Trainer sein. Ja, ganz stark...\n$Das sind wunderbare Neuigkeiten! Gegen Gegner wie dich und dein Team zu kämpfen,\n$lässt meine Pokémon wie Unkraut wachsen!" - }, - "victory": { - "1": "Oh, meine Güte. Das war wirklich ein schneller Kampf... Ich hoffe, du kommst bald wieder!" - }, - "defeat": { - "1": "Wie kann das sein?" - } - }, - "kahili": { - "encounter": { - "1": "Also, da bist du… Warum sehen wir nicht, wen die Winde heute begünstigen, dich… oder mich?" - }, - "victory": { - "1": "Es frustriert mich als Mitglied der Top Vier, aber es scheint, dass deine Stärke echt ist." - }, - "defeat": { - "1": "Das war ein Ass!" - } - }, - "hassel": { - "encounter": { - "1": "Bereite dich darauf vor, aus erster Hand zu erfahren,\n$wie sich der feurige Atem eines erbitterten Kampfes anfühlt!" - }, - "victory": { - "1": "Das Glück hat mir dieses Mal gelächelt, aber...\n$Angesichts des Verlaufs des Kampfes, wer weiß, ob ich das nächste Mal so viel Glück haben werde." - }, - "defeat": { - "1": "Das war ein Ass!" - } - }, - "blue": { - "encounter": { - "1": "Du musst ziemlich gut sein, um so weit zu kommen." - }, - "victory": { - "1": "Ich habe nur gegen ihn und jetzt gegen dich verloren… Ihn? Haha..." - }, - "defeat": { - "1": "Siehst du? Meine Stärke hat mich hierher gebracht." - } - }, - "piers": { - "encounter": { - "1": "Mach dich bereit für einen Moshpit mit mir und meiner Truppe! Spikeford, es ist Zeit zu rocken!" - }, - "victory": { - "1": "Ich und mein Team haben unser Bestes gegeben. Lass uns irgendwann wieder zu einem Kampf treffen..." - }, - "defeat": { - "1": "Meine Kehle ist heiser vom Schreien... Aber das war ein aufregender Kampf!" - } - }, - "red": { - "encounter": { - "1": "…!" - }, - "victory": { - "1": "…?" - }, - "defeat": { - "1": "…!" - } - }, - "jasmine": { - "encounter": { - "1": "Oh... Deine Pokémon sind beeindruckend. Ich denke, ich werde das genießen." - }, - "victory": { - "1": "Du bist wirklich stark. Ich muss mich auch viel mehr anstrengen." - }, - "defeat": { - "1": "Ich habe nie erwartet zu gewinnen." - } - }, - "lance_champion": { - "encounter": { - "1": "Ich bin immer noch der Champion. Ich werde nichts zurückhalten." - }, - "victory": { - "1": "Dies ist das Aufkommen eines neuen Champions." - }, - "defeat": { - "1": "Ich habe meinen Titel erfolgreich verteidigt." - } - }, - "steven": { - "encounter": { - "1": "Erzähl mir... Was hast du auf deiner Reise mit deinen Pokémon gesehen?\n$Was hast du gefühlt, als du so viele andere Trainer getroffen hast?\n$Durch dieses reiche Land zu reisen... Hat es etwas in dir geweckt?\n$Ich möchte, dass du mir alles zeigst, was du gelernt hast.\n$Meine Pokémon und ich werden dir im Gegenzug mit allem antworten, was wir wissen!" - }, - "victory": { - "1": "Also falle ich, der Champion, in der Niederlage..." - }, - "defeat": { - "1": "Das war gut verbrachte Zeit! Danke!" - } - }, - "cynthia": { - "encounter": { - "1": "Ich, Cynthia, akzeptiere deine Herausforderung! Es wird keine Pause von mir geben!" - }, - "victory": { - "1": "Egal wie viel Spaß der Kampf macht, er wird irgendwann enden..." - }, - "defeat": { - "1": "Selbst wenn du verlierst, verliere niemals deine Liebe zu Pokémon." - } - }, - "iris": { - "encounter": { - "1": "Weißt du was? Ich freue mich wirklich darauf, ernsthafte Kämpfe mit starken Trainern zu führen!\n$Ich meine, komm schon! Die Trainer, die es hierher schaffen, sind Trainer,\n$die den Sieg mit jeder Faser ihres Seins anstreben!\n$Und sie kämpfen Seite an Seite mit Pokémon, die unzählige schwierige Kämpfe durchgemacht haben!\n$Wenn ich mit solchen Leuten kämpfe, werde nicht nur ich stärker, sondern auch meine Pokémon!\n$Und wir werden uns noch besser kennenlernen! OK! Mach dich bereit!\n$Ich bin Iris, die Champion der Pokémon-Liga, und ich werde dich besiegen!" - }, - "victory": { - "1": "Aghhhh... Ich habe mein Bestes gegeben, aber wir haben verloren..." - }, - "defeat": { - "1": "Juhu! Wir haben gewonnen!" - } - }, - "hau": { - "encounter": { - "1": "Ich frage mich, ob ein Trainer anders kämpft,\n$je nachdem, ob er aus einer warmen oder einer kalten Region stammt.\n$Lass es uns testen!" - }, - "victory": { - "1": "Das war großartig! Ich denke, ich verstehe dein Vibe jetzt ein bisschen besser!" - }, - "defeat": { - "1": "Ma-an, das war eine Art Kampf!" - } - }, - "geeta": { - "encounter": { - "1": "Ich habe mich entschieden, erneut meinen Hut in den Ring zu werfen.\n$Komm jetzt... Zeig mir die Früchte deines Trainings." - }, - "victory": { - "1": "Ich freue mich auf Neuigkeiten über all deine Erfolge!" - }, - "defeat": { - "1": "Was ist los? Das ist doch nicht alles, oder?" - } - }, - "nemona": { - "encounter": { - "1": "Yesss! Ich bin so aufgeregt! Zeit, dass wir uns austoben!" - }, - "victory": { - "1": "Na gut, das ist ärgerlich, aber ich hatte trotzdem Spaß! Ich werde dich nächstes Mal erwischen!" - }, - "defeat": { - "1": "Das war ein großartiger Kampf! Definitiv fruchtbar." - } - }, - "leon": { - "encounter": { - "1": "Wir werden eine absolut großartige Zeit haben!" - }, - "victory": { - "1": "Meine Zeit als Champion ist vorbei...\n$Aber was für eine großartige Zeit war das!\n$Danke für den großartigsten Kampf, den ich je hatte!" - }, - "defeat": { - "1": "Das war eine absolut großartige Zeit!" - } - }, - "whitney": { - "encounter": { - "1": "Hey! Findest du nicht auch, dass Pokémon total süß sind?" - }, - "victory": { - "1": "Waaah! Waaah! Du bist so gemein!" - }, - "defeat": { - "1": "Und das war's!" - } - }, - "chuck": { - "encounter": { - "1": "Ha! Du willst mich herausfordern? Bist du mutig oder einfach nur unwissend?" - }, - "victory": { - "1": "Du bist stark! Würdest du mich bitte zu deinem Schüler machen?" - }, - "defeat": { - "1": "Da. Merkst du, wie viel mächtiger ich bin als du?" - } - }, - "katy": { - "encounter": { - "1": "Lass deine Wachsamkeit nicht nach, es sei denn, du willst von den Füßen gerissen werden!" - }, - "victory": { - "1": "Alle meine süßen kleinen Pokémon fielen wie Fliegen!" - }, - "defeat": { - "1": "Iss auf, mein süßes kleines Vivillon!" - } - }, - "pryce": { - "encounter": { - "1": "Jugend allein garantiert keinen Sieg! Erfahrung ist, was zählt." - }, - "victory": { - "1": "Hervorragend! Das war perfekt. Versuche nicht zu vergessen, was du jetzt fühlst." - }, - "defeat": { - "1": "Genau wie ich es mir vorgestellt habe." - } - }, - "clair": { - "encounter": { - "1": "Weißt du, wer ich bin? Und du wagst es trotzdem, mich herauszufordern?" - }, - "victory": { - "1": "Ich frage mich, wie weit du mit deinem Können kommen wirst. Das sollte faszinierend sein." - }, - "defeat": { - "1": "Das war's." - } - }, - "maylene": { - "encounter": { - "1": "Ich bin gekommen, um dich jetzt herauszufordern, und ich werde nichts zurückhalten.\n$Bitte bereite dich auf den Kampf vor!" - }, - "victory": { - "1": "Ich gestehe die Niederlage ein..." - }, - "defeat": { - "1": "Das war großartig." - } - }, - "fantina": { - "encounter": { - "1": "Du wirst mich herausfordern, ja? Aber ich werde gewinnen.\n$Das tut der Arenaleiter von Herzhofen, non?" - }, - "victory": { - "1": "Du bist so fantastisch stark. Ich weiß, warum ich verloren habe." - }, - "defeat": { - "1": "Ich bin so, so, sehr glücklich!" - } - }, - "byron": { - "encounter": { - "1": "Trainer! Du bist jung, genau wie mein Sohn, Veit. \n$Mit mehr jungen Trainern, die das Kommando übernehmen, ist die Zukunft der Pokémon hell! \n$Also, als Hürde für junge Leute nehme ich deine Herausforderung an!" - }, - "victory": { - "1": "Hmm! Meine robusten Pokémon - besiegt!" - }, - "defeat": { - "1": "Gwahahaha! Wie waren meine robusten Pokémon?!" - } - }, - "olympia": { - "encounter": { - "1": "Ein alter Brauch entscheidet über das Schicksal. Der Kampf beginnt!" - }, - "victory": { - "1": "Schaffe deinen eigenen Weg. Lass dir nichts in den Weg stellen. Dein Schicksal, deine Zukunft." - }, - "defeat": { - "1": "Unser Weg ist jetzt klar." - } - }, - "volkner": { - "encounter": { - "1": "Da du so weit gekommen bist, musst du ziemlich stark sein…\n$Ich hoffe, du bist der Trainer, der mich daran erinnert, wie viel Spaß es macht zu kämpfen!" - }, - "victory": { - "1": "Du hast mich besiegt…\n$Dein Verlangen und die edle Art, wie deine Pokémon für dich gekämpft haben…\n$Ich habe mich sogar während unseres Kampfes begeistert gefühlt. Das war ein sehr guter Kampf." - }, - "defeat": { - "1": "Es war überhaupt nicht schockierend…\n$Das ist nicht das, was ich wollte!" - } - }, - "burgh": { - "encounter": { - "1": "M'hm… Wenn ich diesen Kampf gewinne, habe ich das Gefühl,\n$dass ich ein Bild malen kann, das es so noch nie gegeben hat.\n$OK! Ich höre meine Kampf-Muse laut und deutlich. Lass uns gleich loslegen!", - "2": "Natürlich bin ich wirklich stolz auf all meine Pokémon! \n$Nun, dann... Lass uns gleich loslegen!" - }, - "victory": { - "1": "Ist es vorbei? Hat mich meine Muse verlassen?", - "2": "Hmm… Es ist vorbei! Du bist unglaublich!" - }, - "defeat": { - "1": "Wow… Irgendwie ist es doch schön, nicht wahr?", - "2": "Manchmal höre ich Leute sagen, es war ein hässlicher Sieg. \n$Ich denke, wenn du dein Bestes gibst, ist jeder Sieg schön." - } - }, - "elesa": { - "encounter": { - "1": "C'est fini! Wenn ich mir dessen sicher bin,\n$fühle ich einen elektrischen Stoß durch meinen Körper laufen!\n$Ich möchte dieses Gefühl erleben, also werden meine geliebten Pokémon\n$jetzt deinen Kopf zum Drehen bringen!" - }, - "victory": { - "1": "Ich wollte deinen Kopf zum Drehen bringen, aber du hast mich schockiert." - }, - "defeat": { - "1": "Das war irgendwie unbefriedigend… Wirst du nächstes Mal alles geben?" - } - }, - "skyla": { - "encounter": { - "1": "Es ist endlich Zeit für ein Duell! Das bedeutet den Pokémon-Kampf,\n$der entscheidet, wer an der Spitze steht, richtig? \n$Ich liebe es, auf dem Gipfel zu stehen! Weil man von hohen Orten aus für immer und ewig sehen kann! \n$Also, wie wäre es, wenn wir beide Spaß haben?" - }, - "victory": { - "1": "Dein Gegner im Kampf zu sein, ist eine neue Kraftquelle für mich. Danke!" - }, - "defeat": { - "1": "Gewinnen oder verlieren, man lernt immer etwas aus einem Kampf, richtig?" - } - }, - "brycen": { - "encounter": { - "1": "Es gibt auch Stärke darin, mit anderen Menschen und Pokémon zusammen zu sein. \n$Ihre Unterstützung zu erhalten, macht dich stärker. Ich werde dir diese Kraft zeigen!" - }, - "victory": { - "1": "Die wunderbare Kombination aus dir und deinen Pokémon! Was für eine schöne Freundschaft!" - }, - "defeat": { - "1": "Extreme Bedingungen testen und trainieren dich wirklich!" - } - }, - "drayden": { - "encounter": { - "1": "Was ich finden möchte, ist ein junger Trainer, der mir eine helle Zukunft zeigen kann.\n$Lass uns mit allem kämpfen, was wir haben: dein Können, meine Erfahrung und die Liebe,\n$mit der wir unsere Pokémon großgezogen haben!" - }, - "victory": { - "1": "Dieses intensive Gefühl, das mich nach einer Niederlage überkommt…\n$Ich weiß nicht, wie ich es beschreiben soll." - }, - "defeat": { - "1": "Harrumph! Ich weiß, dass deine Fähigkeit größer ist als das!" - } - }, - "grant": { - "encounter": { - "1": "Es gibt nur eine Sache, die ich mir wünsche. \n$Dass wir, indem wir einander übertreffen, einen Weg zu noch größeren Höhen finden." - }, - "victory": { - "1": "Du bist eine Mauer, die ich nicht überwinden kann!" - }, - "defeat": { - "1": "Gib nicht auf.\n$Das ist wirklich alles, was es dazu gibt.\n$Die wichtigsten Lektionen im Leben sind einfach." - } - }, - "korrina": { - "encounter": { - "1": "Zeit für Lady Connies großen Auftritt!" - }, - "victory": { - "1": "Es ist dein Wesen, das es deinen Pokémon ermöglicht, sich zu entwickeln!" - }, - "defeat": { - "1": "Was für ein explosiver Kampf!" - } - }, - "clemont": { - "encounter": { - "1": "Oh! Ich bin froh, dass wir uns getroffen haben!" - }, - "victory": { - "1": "Deine Leidenschaft für den Kampf inspiriert mich!" - }, - "defeat": { - "1": "Es sieht so aus, als würde meine Trainer-Wachstumsmaschine, Mach 2, wirklich funktionieren!" - } - }, - "valerie": { - "encounter": { - "1": "Oh, wenn das nicht ein junger Trainer ist… Es ist schön, dich so zu treffen.\n$Dann nehme ich an, du hast dir das Recht auf einen Kampf verdient, als Belohnung für deine Bemühungen.\n$Die schwer fassbare Fee mag zart wie eine Brise und empfindlich wie eine Blüte erscheinen,\n$aber sie ist stark." - }, - "victory": { - "1": "Ich hoffe, dass du morgen Dinge finden wirst, über die du lächeln kannst…" - }, - "defeat": { - "1": "Oh mein Gott, wie schade…" - } - }, - "wulfric": { - "encounter": { - "1": "Weißt du was? Wir reden alle groß über das, was man vom Kämpfen und von Bindungen lernt und all das…\n$Aber eigentlich mache ich es nur, weil es Spaß macht. \n$Wen kümmert das Prahlen? Lass uns kämpfen!" - }, - "victory": { - "1": "Hervorragend! Ich bin so hart wie ein Eisberg, aber du hast mich komplett durchschlagen!" - }, - "defeat": { - "1": "Kämpfe mit mir, und das passiert!" - } - }, - "kabu": { - "encounter": { - "1": "Jeder Trainer und jedes Pokémon trainiert hart, um den Sieg zu erringen.\n$Aber das bedeutet, dass auch dein Gegner hart arbeitet, um zu gewinnen.\n$Am Ende wird das Match von der Seite entschieden, die ihr wahres Potenzial entfesseln kann." - }, - "victory": { - "1": "Ich bin froh, dass ich heute gegen dich kämpfen konnte!" - }, - "defeat": { - "1": "Das ist eine großartige Möglichkeit für mich, mein eigenes Wachstum zu spüren!" - } - }, - "bea": { - "encounter": { - "1": "Hast du einen unerschütterlichen Geist, der sich nicht bewegt, egal wie du angegriffen wirst? \n$Ich denke, ich werde das einfach mal testen, oder?" - }, - "victory": { - "1": "Ich habe den Kampfgeist deiner Pokémon gespürt, als du sie in den Kampf geführt hast." - }, - "defeat": { - "1": "Das war die beste Art von Match, die man sich je wünschen kann." - } - }, - "opal": { - "encounter": { - "1": "Lass mich sehen, wie du und dein Partner-Pokémon euch verhalten!" - }, - "victory": { - "1": "Dein Rosa fehlt noch, aber du bist ein ausgezeichneter Trainer mit ausgezeichneten Pokémon." - }, - "defeat": { - "1": "Schade für dich, denke ich." - } - }, - "bede": { - "encounter": { - "1": "Ich nehme an, ich sollte zweifelsfrei beweisen, wie erbärmlich du bist und wie stark ich bin." - }, - "victory": { - "1": "Ich verstehe... Nun, das ist in Ordnung. Ich habe mich sowieso nicht wirklich angestrengt." - }, - "defeat": { - "1": "Nicht schlecht, muss ich sagen." - } - }, - "gordie": { - "encounter": { - "1": "Also, lass uns das hinter uns bringen." - }, - "victory": { - "1": "Ich möchte einfach in ein Loch kriechen... Nun, ich denke, es wäre eher wie ein Sturz von hier." - }, - "defeat": { - "1": "Kämpfe wie immer, der Sieg wird folgen!" - } - }, - "marnie": { - "encounter": { - "1": "Die Wahrheit ist, am Ende des Tages... Ich möchte wirklich nur Champion für mich selbst werden!\n$Also nimm es nicht persönlich, wenn ich dir den Hintern versohle!" - }, - "victory": { - "1": "OK, ich habe verloren... Aber ich habe viele gute Seiten von dir und deinen Pokémon gesehen!" - }, - "defeat": { - "1": "Ich hoffe, du hast unsere Kampfstrategien genossen." - } - }, - "raihan": { - "encounter": { - "1": "Ich werde den Champion besiegen, das ganze Turnier gewinnen und der Welt beweisen,\n$wie stark der großartige Roy wirklich ist!" - }, - "victory": { - "1": "Ich sehe sogar gut aus, wenn ich verliere.\n$Es ist ein echter Fluch.\n$Ich denke, es ist Zeit für ein weiteres Selfie!" - }, - "defeat": { - "1": "Lass uns ein Selfie zur Erinnerung machen." - } - }, - "brassius": { - "encounter": { - "1": "Ich nehme an, du bist bereit? Lassen wir unser gemeinsames Kunstwerk beginnen!" - }, - "victory": { - "1": "Ahhh... avant-garde!" - }, - "defeat": { - "1": "Ich werde sofort mit einem neuen Stück beginnen!" - } - }, - "iono": { - "encounter": { - "1": "Hey, Leute! Es ist Zeit für Enigmaras EnigmaTV!!! Naaaa, alles klärchen?\n$Hola, ciao und hallöle! Und schon bist du gefangen in meinem Elektronetz!\n$Wer ich bin, fragst du? Na, Enigmara natürlich! Ich bin hier die Arenaleiterin." - }, - "victory": { - "1": "Du leuchtest ja so hell wie ein tausendfacher Donnerblitz!" - }, - "defeat": { - "1": "Deine Augen gehören MIR!" - } - }, - "larry": { - "encounter": { - "1": "Wenn alles gesagt und getan ist, ist Einfachheit am stärksten." - }, - "victory": { - "1": "Eine Portion Niederlage, hm?" - }, - "defeat": { - "1": "Ich mache Schluss für heute." - } - }, - "ryme": { - "encounter": { - "1": "Komm schon, Baby! Bring mich zum Zittern bis auf die Knochen!" - }, - "victory": { - "1": "Du bist cool, mein Freund - du bewegst meine SEELE!" - }, - "defeat": { - "1": "Bis später, Baby!" - } - }, - "grusha": { - "encounter": { - "1": "Alles, was ich tun muss, ist sicherzustellen, dass die Kraft meiner Pokémon dich bis auf die Knochen kühlt!" - }, - "victory": { - "1": "Deine brennende Leidenschaft... Ich mag sie ehrlich gesagt irgendwie." - }, - "defeat": { - "1": "Es hat nicht für dich gereicht." - } - }, - "marnie_elite": { - "encounter": { - "1": "Du hast es so weit geschafft, hm? Mal sehen, ob du mit meinen Pokémon umgehen kannst!", - "2": "Ich werde mein Bestes geben, aber denke nicht, dass ich es dir leicht machen werde!" - }, - "victory": { - "1": "Ich kann nicht glauben, dass ich verloren habe... Aber du hast den Sieg verdient. Gut gemacht!", - "2": "Es sieht so aus, als hätte ich noch viel zu lernen. Toller Kampf trotzdem!" - }, - "defeat": { - "1": "Du hast gut gekämpft, aber ich habe den Vorteil! Viel Glück beim nächsten Mal!", - "2": "Es scheint, als hätte sich mein Training ausgezahlt. Danke für den Kampf!" - } - }, - "nessa_elite": { - "encounter": { - "1": "Die Gezeiten wenden sich zu meinen Gunsten. Bereit, weggespült zu werden?", - "2": "Lass uns mit diesem Kampf Wellen schlagen! Ich hoffe, du bist vorbereitet!" - }, - "victory": { - "1": "Du hast diese Gewässer perfekt navigiert... Gut gemacht!", - "2": "Es sieht so aus, als wären meine Strömungen kein Match für dich. Tolle Arbeit!" - }, - "defeat": { - "1": "Wasser findet immer einen Weg. Das war ein erfrischender Kampf!", - "2": "Du hast gut gekämpft, aber die Macht des Ozeans ist unaufhaltsam!" - } - }, - "bea_elite": { - "encounter": { - "1": "Bereite dich vor! Mein Kampfgeist brennt hell!", - "2": "Mal sehen, ob du mit meinem unaufhaltsamen Tempo mithalten kannst!" - }, - "victory": { - "1": "Deine Stärke... Sie ist beeindruckend. Du hast diesen Sieg wirklich verdient.", - "2": "Ich habe diese Intensität noch nie zuvor gespürt. Unglaubliche Leistung!" - }, - "defeat": { - "1": "Ein weiterer Sieg für mein intensives Trainingsprogramm! Gut gemacht!", - "2": "Du hast Stärke, aber ich habe härter trainiert. Toller Kampf!" - } - }, - "allister_elite": { - "encounter": { - "1": "Die Schatten fallen... Bist du bereit, dich deinen Ängsten zu stellen?", - "2": "Mal sehen, ob du mit der Dunkelheit, die ich befehle, umgehen kannst." - }, - "victory": { - "1": "Du hast die Schatten vertrieben... Für jetzt. Gut gemacht.", - "2": "Dein Licht hat meine Dunkelheit durchdrungen. Tolle Leistung." - }, - "defeat": { - "1": "Die Schatten haben gesprochen... Deine Stärke reicht nicht aus.", - "2": "Die Dunkelheit triumphiert... Vielleicht wirst du nächstes Mal das Licht sehen." - } - }, - "raihan_elite": { - "encounter": { - "1": "Ein Sturm zieht auf! Mal sehen, ob du diesen Kampf überstehst!", - "2": "Mach dich bereit, dem Auge des Sturms zu begegnen!" - }, - "victory": { - "1": "Du hast den Sturm bezwungen... Unglaubliche Leistung!", - "2": "Du hast die Winde perfekt geritten... Toller Kampf!" - }, - "defeat": { - "1": "Ein weiterer Sturm überstanden, ein weiterer Sieg errungen! Gut gekämpft!", - "2": "Du bist in meinen Sturm geraten! Viel Glück beim nächsten Mal!" - } - }, - "alder": { - "encounter": { - "1": "Mach dich bereit für einen Kampf gegen den stärksten Trainer in Einall! Mich - Lauro!" - }, - "victory": { - "1": "Gut gemacht! Du hast wirklich ein unvergleichliches Talent." - }, - "defeat": { - "1": "Ein frischer Wind weht durch mein Herz...\n$Was für ein außergewöhnliches Gefühl!" - } - }, - "kieran": { - "encounter": { - "1": "Durch harte Arbeit werde ich immer stärker und stärker!\n$Ich verliere nicht." - }, - "victory": { - "1": "Ich kann es nicht glauben...\n$Was für ein lustiger und herzzerreißender Kampf!" - }, - "defeat": { - "1": "Wow, was für ein Kampf!\n$Es ist Zeit für dich, noch härter zu trainieren." - } - }, - "rival": { - "encounter": { - "1": "@c{smile}Hey, ich habe dich gesucht! Ich weiß, dass du es nicht erwarten konntest loszugehen,\n$aber hättest ja wenigstens Tschüss sagen können...\n$@c{smile_eclosed}Du verfolgst also wirklich deinen Traum?\nIch kann es kaum glauben.\n$@c{serious_smile_fists}Da wir schon einmal hier sind, wie wäre es mit einem Kampf?\nImmerhin muss ich doch sicherstellen, dass du bereit bist.\n$@c{serious_mopen_fists}Halte dich nicht zurück, zeig mir alles was du hast!" - }, - "victory": { - "1": "@c{shock}Wow…Du hast mich komplett überrumpelt.\nBist du wirklich ein Anfänger?\n$@c{smile}Vielleicht war es einfach etwas Glück, aber…\nWer weiß, vielleicht schaffst du es irgendwann\n$ja wirklich ganz groß raus zu kommen.\n$Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Die sehen wirklich cool aus.\n$@c{serious_smile_fists}Viel Glück da draußen!" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}Da bist du! Ich habe schon überall nach dir gesucht!\n@c{angry_mopen}Hast du etwas vergessen\n$deiner besten Freundin Tschüss zu sagen?\n$@c{smile_ehalf}Du folgst deinem Traum, oder?\nDas ist wirklich heute…\n$@c{smile}Naja, ich vergeben dir, dass du mich vergessen hast, aber nur unter einer Bedingung. @c{smile_wave_wink}Du musst gegen mich kämpfen!\n$@c{angry_mopen}Gib alles! Wir wollen doch nicht, dass dein Abenteuer endet bevor es begonnen hat, richtig?" - }, - "victory": { - "1": "@c{shock}Du hast gerade erst angefangen und bist schon so stark?!@d{96} @c{angry}Du hast sowas von betrogen, oder?\n$@c{smile_wave_wink}Ich mach nur Spaß!@d{64} @c{smile_eclosed}Ich habe ehrlich verloren… Ich habe das Gefühl, dass du es dort draußen weit bringen wirst.\n$@c{smile}Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Ich hoffe sie sind hilfreich!\n$@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich!" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}Hey, du auch hier?\n@c{smile_eclosed}Immernoch ungeschlagen, hmm…?\n$@c{serious_mopen_fists}Ich weiß es sieht so aus, als wäre ich dir hierher gefolgt, aber das ist so nicht ganz richtig.\n$@c{serious_smile_fists}Ehrlicherweise kann ich es, seit du mich damals besiegt hast, garnicht erwarten erneut gegen dich zu kämpfen.\n$Ich habe selbst hart traniert. Ich werde dir diesesmal also ein würdigerer Gegner sein!.\n$@c{serious_mopen_fists}Halt dich nicht zurück, genauso wie beim letzten Mal!\nLos gehts!" - }, - "victory": { - "1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf!" - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}Oh, wie schön dich hier zu trefen. Sieht so aus als wärst du noch ungeschlagen. @c{angry_mopen}Hmm… Nicht schlecht!\n$@c{angry_mopen}Ich weiß was du denkst, und nein, ich habe dich nicht verfolgt. @c{smile_eclosed}Ich bin einfach in der Gegend gewesen.\n$@c{smile_ehalf}Ich freu mich für dich, aber ich muss dich wissen lassen, dass es auch Ok ist ab und zu mal zu verlieren.\n$@c{smile}Wir lernen oft mehr aus unseren Fehlern, als aus unseren Erfolgen.\n$@c{angry_mopen}Auf jeden Fall habe ich für unseren Rückkampf hart traniert. Also zeig mir was du drauf hast!" - }, - "victory": { - "1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark!" - }, - "defeat": { - "1": "Es ist Ok manchmal zu verlieren…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}Hey, schau mal wen wir hier haben! Ist schon eine Weile her.\n@c{neutral}Du bist… immernoch ungeschlagen?\n$@c{neutral_eclosed}Die Dinge waren irgendwie... seltsam.\nEs ist Zuhause einfach nicht das Gleiche ohne dich.\n$@c{serious}Ich weiß es ist selbstsüchtig, aber ich musste das einfach mal loswerden.\n$@c{neutral_eclosed}Denkst du nicht, dass du dich etwas übernommen hast?\n$@c{serious}Es ist nicht realistisch immer zu gewinnen\nWir müssen manchmal verlieren. Um daran zu wachsen.\n$@c{neutral_eclosed}Du hattest einen guten Lauf, aber es liegt noch so viel vor dir. Es wird nicht gerade einfacher. @c{neutral}Bist du bereit dafür?\n$@c{serious_mopen_fists}Falls ja, beweise es mir!" - }, - "victory": { - "1": "@c{angry_mhalf}Das ist doch Schwachsinn… Ich habe kaum aufgehört zu tranieren…\n$Warum bin ich immernoch so viel schwächer?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}Lange nicht gesehen! Immernoch nicht verloren?\n@c{angry}Du fängst mich an zu nerven. @c{smile_wave_wink}Ich mach nur Spaß!\n$@c{smile_ehalf}Aber ehrlich, vermisst du dein Zuhause garnicht? Oder mich?\n$Ich… Ich meine, wir vermissen dich wirklich.\n$@c{smile_eclosed}Ich unterstütze dich bei deinem Traum, aber die Realität ist, du wirst früher oder später verlieren.\n$@c{smile}Und ich bin für dich da falls du es tust, wie immer.\n@c{angry_mopen}Also, zeig mir wie stark du geworden bist!" - }, - "victory": { - "1": "@c{shock}Nach allem was ich getan habe… war es immernoch nicht genug…?\n$Wenn es so weiter geht hole ich nie auf…" - }, - "defeat": { - "1": "Du hast dein Bestes gegeben. Lass uns nach Hause gehen." - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}Hey.\n$Ich werde jetzt keine Gefälligkeiten mit dir austauschen.\n@c{neutral_eclosed}Ich bin hier um zu gewinnen. Mehr nicht.\n$@c{serious_mhalf_fists}Durch mein Traning habe ich gelernt mein Potenzial zu maximieren.\n$@c{smile}Man hat deutlich mehr Zeit, wenn man auf Schlaf und unnötige soziale Interaktionen verzichtet. \n$@c{serious_mopen_fists}Das ist alles nicht mehr wichtig, nicht solange ich nicht gewonnen habe.\n$@c{neutral_eclosed}Ich bin an dem Punkt an dem ich nicht mehr verliere.\n@c{smile_eclosed}Ich schätze deine Einstellung war doch nicht so falsch.\n$@c{angry_mhalf}Nur die Schwachen verlieren, und ich bin nicht mehr schwach.\n$@c{serious_mopen_fists}Bereite dich vor zu verlieren." - }, - "victory": { - "1": "@c{neutral}Was…@d{64} Was bist du?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}Ich bins! Du hast mich doch nicht vergessen, oder?\n$@c{smile}Du solltest stolz auf dich sein. Du hast es soweit gebracht. Glückwunsch!\n$Aber hier endet deine Reise jetzt.\n$@c{smile_eclosed}Du hast etwas in mir erwachen lassen, etwas von dem ich nicht wusste, dass es da war.\n$Alles was ich jetzt mache ist tranieren. @c{smile_ehalf}Ich esse oder schlafe kaum. \n$Ich traniere meine Pokémon den ganzen Tag. Und werde immer stärker.\n$@c{neutral}Genau genommen, erkenne ich mich garnicht wieder.\n$Und jetzt habe ich endlich meinen Höhepunkt erreicht.\nNiemand kann mich jetzt noch schlagen.\n$Und weißt du was? Das ist alles wegen dir.\n@c{smile_ehalf}Ich weiß nicht ob ich dir danken, oder dich hassen soll!\n$@c{angry_mopen}Mach dich bereit!" - }, - "victory": { - "1": "@c{neutral}Was…@d{64} Was bist du?" - }, - "defeat": { - "1": "$@c{smile}Du solltest stolz darauf sein wie weit du es geschafft hast." - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}So sehen wir uns wieder.\n$@c{neutral}Ich hatte Zeit über alles nachzudenken.\nÜber den Grund, warum alles so merkwürdig erscheint.\n$@c{neutral_eclosed}Dein Traum, mein Antrieb dich besiegen zu wollen…\nEs ist alles Teil von etwas Größerem.\n$@c{serious}Es geht nicht um dich, oder mich… Es geht um diese Welt.\n@c{serious_mhalf_fists}Es ist mein Schicksal dich an deine Grenzen zu treiben.\n$@c{neutral_eclosed}Ob ich meine Aufgabe erfüllt habe kann ich nicht sagen, aber ich habe alles getan was ich konnte.\n$@c{neutral}Der Ort an dem wir uns befinden ist angsteinflößend… \n$Trotzdem fühlt es sich so an, als würde mich das nicht stören, als wäre ich bereits schonmal hier gewesen.\n$@c{serious_mhalf_fists}Dir geht es doch genauso, oder?\n$@c{serious}…und irgendwas hier spricht zu mir.\nDas ist alles was die Welt seit langem kennt.\n$Die Zeiten die wir zusammen verbracht haben, die so nah erscheinen, sind nichts als eine ferne Erinnerung.\n$@c{neutral_eclosed}Wer weiß, ob sie jemals real waren?\n$@c{serious_mopen_fists}Du musst weiter gehen, denn wenn du es nicht tust, wird es nie enden. Du bist der Einzige, der das schaffen kann.\n$@c{serious_smile_fists}Ich… Ich weiß nicht was das alles bedeutet, aber ich fühle, dass es wahr ist.\n$@c{serious_mopen_fists}Wenn du mich nicht hier und jetzt besiegen kannst, hast du keine Chance." - }, - "victory": { - "1": "@c{smile_eclosed}Es sieht so aus, als wäre meine Arbeit getan.\n$Ich will dass du mir eine Sache versprichst.\n@c{smile}Komm bitte nach Hause nachdem du die Welt gerettet hast." - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}Jetzt sind es wieder nur wir zwei.\n$@c{smile_eclosed}Weißt du, egal wie ich es drehe und wende…\n$@c{smile_ehalf}Irgendwas stört mich an der ganzen Sache, es erscheint mir irgendwie komisch…\n$@c{smile}Du hast deinen Traum, und ich habe diesen Antrieb…\n$Ich kann nicht anders, als zu glauben, dass es einen größeren Zweck gibt.\n$@c{smile_eclosed}Ich denke, ich sollte dich an deine Grenzen treiben.\n$@c{smile_ehalf}Ich bin mir nicht sicher, ob ich meine Aufgabe erfüllt habe, aber ich habe mein Bestes gegeben.\n$Irgendwas an diesem komischen und furchteinflößenden Ort… All das scheint so klar…\n$Es… ist alles was die Welt seit langem kennt.\n$@c{smile_eclosed}Es kommt mir so vor als könnte ich mich kaum an die Erinnerungen erinnern, die wir zusammen hatten.\n$@c{smile_ehalf}Waren sie jemals real? Sie scheinen so weit weg…\n$@c{angry_mopen}Du musst weiter gehen, denn wenn du es nicht tust, wird es nie enden. Du bist der Einzige, der das schaffen kann.\n$@c{smile_ehalf}Ich… Ich weiß nicht was das alles bedeutet, aber ich fühle, dass es wahr ist.\n$@c{neutral}Wenn du mich nicht hier und jetzt besiegen kannst, hast du keine Chance." - }, - "victory": { - "1": "@c{smile_ehalf}Ich… Ich denke ich habe meine Aufgabe erfüllt.\n$@c{smile_eclosed}Versprich mir… Nachdem du die Welt geheilt hast… Komm bitte sicher nach Hause. \n$@c{smile_ehalf}…Danke." - } - } -} diff --git a/src/locales/de/dialogue-misc-male.json b/src/locales/de/dialogue-misc-male.json deleted file mode 100644 index 1529831d7c5..00000000000 --- a/src/locales/de/dialogue-misc-male.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ending": "@c{smile}Oh? Du hast gewonnen?@d{96} @c{smile_eclosed}Ich schätze, das hätte ich wissen sollen.\n$Aber, du bist jetzt zurück.\n$@c{smile}Es ist vorbei.@d{64} Du hast die Schleife beendet.\n$@c{serious_smile_fists}Du hast auch deinen Traum erfüllt, nicht wahr?\nDu hast nicht einmal verloren.\n$@c{neutral}Ich bin der Einzige, der sich daran erinnern wird, was du getan hast.@d{96}\n$Ich schätze, das ist in Ordnung, oder?\n$@c{serious_smile_fists}Deine Legende wird immer in unseren Herzen weiterleben.\n$@c{smile_eclosed}Wie auch immer, ich habe genug von diesem Ort, oder nicht? Lass uns nach Hause gehen.\n$@c{serious_smile_fists}Vielleicht können wir, wenn wir zurück sind, noch einen Kampf haben?\n$Wenn du dazu bereit bist.", - "ending_female": "@c{shock}Du bist zurück?@d{32} Bedeutet das…@d{96} du hast gewonnen?!\n$@c{smile_ehalf}Ich hätte wissen sollen, dass du es in dir hast.\n$@c{smile_eclosed}Natürlich… ich hatte immer dieses Gefühl.\n$@c{smile}Es ist jetzt vorbei, richtig? Du hast die Schleife beendet.\n$@c{smile_ehalf}Du hast auch deinen Traum erfüllt, nicht wahr?\n$Du hast nicht einmal verloren.\n$Ich werde die Einzige sein, die sich daran erinnert, was du getan hast.\n$@c{angry_mopen}Ich werde versuchen, es nicht zu vergessen!\n$@c{smile_wave_wink}Nur ein Scherz!@d{64} @c{smile}Ich würde es nie vergessen.@d{32}\n$Deine Legende wird in unseren Herzen weiterleben.\n$@c{smile_wave}Wie auch immer,@d{64} es wird spät…@d{96} denke ich?\nEs ist schwer zu sagen an diesem Ort.\n$Lass uns nach Hause gehen. \n$@c{smile_wave_wink}Vielleicht können wir morgen noch einen Kampf haben, der alten Zeiten willen?", - "ending_endless": "Glückwunsch! Du hast das aktuelle Ende erreicht!\nWir arbeiten an mehr Spielinhalten.", - "ending_name": "Entwickler" -} diff --git a/src/locales/de/dialogue-misc-female.json b/src/locales/de/dialogue-misc.json similarity index 100% rename from src/locales/de/dialogue-misc-female.json rename to src/locales/de/dialogue-misc.json diff --git a/src/locales/de/dialogue-female.json b/src/locales/de/dialogue.json similarity index 100% rename from src/locales/de/dialogue-female.json rename to src/locales/de/dialogue.json diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index 36593befb8f..024f7f10108 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const enConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/en/dialogue-double-battle-male.json b/src/locales/en/dialogue-double-battle-male.json deleted file mode 100644 index 8e8e1d813fb..00000000000 --- a/src/locales/en/dialogue-double-battle-male.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "Blue: Hey Red, let's show them what we're made of!\n$Red: ...\n$Blue: This is Pallet Town Power!" - }, - "victory": { - "1": "Blue: That was a great battle!\n$Red: ..." - } - }, - "red_blue_double": { - "encounter": { - "1": "Red: ...!\n$Blue: He never talks much.\n$Blue: But dont let that fool you! He is a champ after all!" - }, - "victory": { - "1": "Red: ...!\n$Blue: Next time we will beat you!" - } - }, - "tate_liza_double": { - "encounter": { - "1": "Tate: Are you surprised?\n$Liza: We are two gym leaders at once!\n$Tate: We are twins!\n$Liza: We dont need to talk to understand each other!\n$Tate: Twice the power...\n$Liza: Can you handle it?" - }, - "victory": { - "1": "Tate: What? Our combination was perfect!\n$Liza: Looks like we need to train more..." - } - }, - "liza_tate_double": { - "encounter": { - "1": "Liza: Hihihi... Are you surprised?\n$Tate: Yes, we are really two gym leaders at once!\n$Liza: This is my twin brother Tate!\n$Tate: And this is my twin sister Liza!\n$Liza: Don't you think we are a perfect combination?" - }, - "victory": { - "1": "Liza: Are we...\n$Tate: ...not as strong as we thought?" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "Steven: Wallace, let's show them the power of the champions!\n$Wallace: We will show you the power of Hoenn!\n$Steven: Let's go!" - }, - "victory": { - "1": "Steven: That was a great battle!\n$Wallace: We will win next time!" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "Steven: Do you have any rare Pokémon?\n$Wallace: Steven... We are here for a battle, not to show off our Pokémon.\n$Steven: Oh... I see... Let's go then!" - }, - "victory": { - "1": "Steven: Now that we are done with the battle, let's show off our Pokémon!\n$Wallace: Steven..." - } - }, - "alder_iris_double": { - "encounter": { - "1": "Alder: We are the strongest trainers in Unova!\n$Iris: Fights against strong trainers are the best!" - }, - "victory": { - "1": "Alder: Wow! You are super strong!\n$Iris: We will win next time!" - } - }, - "iris_alder_double": { - "encounter": { - "1": "Iris: Welcome Challenger! I am THE Unova Champion!\n$Alder: Iris, aren't you a bit too excited?" - }, - "victory": { - "1": "Iris: A loss like this is not easy to take...\n$Alder: But we will only get stronger with every loss!" - } - }, - "piers_marnie_double": { - "encounter": { - "1": "Marnie: Brother, let's show them the power of Spikemuth!\n$Piers: We bring darkness!" - }, - "victory": { - "1": "Marnie: You brought light to our darkness!\n$Piers: Its too bright..." - } - }, - "marnie_piers_double": { - "encounter": { - "1": "Piers: Ready for a concert?\n$Marnie: Brother... They are here to fight, not to sing..." - }, - "victory": { - "1": "Piers: Now that was a great concert!\n$Marnie: Brother..." - } - } -} \ No newline at end of file diff --git a/src/locales/en/dialogue-double-battle-female.json b/src/locales/en/dialogue-double-battle.json similarity index 95% rename from src/locales/en/dialogue-double-battle-female.json rename to src/locales/en/dialogue-double-battle.json index 8e8e1d813fb..9484aa2edcc 100644 --- a/src/locales/en/dialogue-double-battle-female.json +++ b/src/locales/en/dialogue-double-battle.json @@ -57,7 +57,8 @@ }, "iris_alder_double": { "encounter": { - "1": "Iris: Welcome Challenger! I am THE Unova Champion!\n$Alder: Iris, aren't you a bit too excited?" + "1": "Iris: Welcome Challenger! I am THE Unova Champion!\n$Alder: Iris, aren't you a bit too excited?", + "1_female": null }, "victory": { "1": "Iris: A loss like this is not easy to take...\n$Alder: But we will only get stronger with every loss!" @@ -73,7 +74,8 @@ }, "marnie_piers_double": { "encounter": { - "1": "Piers: Ready for a concert?\n$Marnie: Brother... They are here to fight, not to sing..." + "1": "Piers: Ready for a concert?\n$Marnie: Brother... They are here to fight, not to sing...", + "1_female": null }, "victory": { "1": "Piers: Now that was a great concert!\n$Marnie: Brother..." diff --git a/src/locales/en/dialogue-female.json b/src/locales/en/dialogue-female.json deleted file mode 100644 index b58fbbb36ec..00000000000 --- a/src/locales/en/dialogue-female.json +++ /dev/null @@ -1,2691 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "Hey, wanna battle?", - "2": "Are you a new trainer too?", - "3": "Hey, I haven't seen you before. Let's battle!", - "4": "I just lost, so I'm trying to find more Pokémon.\nWait! You look weak! Come on, let's battle!", - "5": "Have we met or not? I don't really remember. Well, I guess it's nice to meet you anyway!", - "6": "All right! Let's go!", - "7": "All right! Here I come! I'll show you my power!", - "8": "Haw haw haw... I'll show you how hawesome my Pokémon are!", - "9": "No need to waste time saying hello. Bring it on whenever you're ready!", - "10": "Don't let your guard down, or you may be crying when a kid beats you.", - "11": "I've raised my Pokémon with great care. You're not allowed to hurt them!", - "12": "Glad you made it! It won't be an easy job from here.", - "13": "The battles continue forever! Welcome to the world with no end!" - }, - "victory": { - "1": "Wow! You're strong!", - "2": "I didn't stand a chance, huh?", - "3": "I'll find you again when I'm older and beat you!", - "4": "Ugh. I don't have any more Pokémon.", - "5": "No way… NO WAY! How could I lose again…", - "6": "No! I lost!", - "7": "Whoa! You are incredible! I'm amazed and surprised!", - "8": "Could it be… How… My Pokémon and I are the strongest, though…", - "9": "I won't lose next time! Let's battle again sometime!", - "10": "Sheesh! Can't you see that I'm just a kid! It wasn't fair of you to go all out like that!", - "11": "Your Pokémon are more amazing! Trade with me!", - "12": "I got a little carried away earlier, but what job was I talking about?", - "13": "Ahaha! There it is! That's right! You're already right at home in this world!" - } - }, - "lass": { - "encounter": { - "1": "Let's have a battle, shall we?", - "2": "You look like a new trainer. Let's have a battle!", - "3": "I don't recognize you. How about a battle?", - "4": "Let's have a fun Pokémon battle!", - "5": "I'll show you the ropes of how to really use Pokémon!", - "6": "A serious battle starts from a serious beginning! Are you sure you're ready?", - "7": "You're only young once. And you only get one shot at a given battle. Soon, you'll be nothing but a memory.", - "8": "You'd better go easy on me, OK? Though I'll be seriously fighting!", - "9": "School is boring. I've got nothing to do. Yawn. I'm only battling to kill the time." - }, - "victory": { - "1": "That was impressive! I've got a lot to learn.", - "2": "I didn't think you'd beat me that bad…", - "3": "I hope we get to have a rematch some day.", - "4": "That was pretty amazingly fun! You've totally exhausted me…", - "5": "You actually taught me a lesson! You're pretty amazing!", - "6": "Seriously, I lost. That is, like, seriously depressing, but you were seriously cool.", - "7": "I don't need memories like this. Deleting memory…", - "8": "Hey! I told you to go easy on me! Still, you're pretty cool when you're serious.", - "9": "I'm actually getting tired of battling… There's gotta be something new to do…" - } - }, - "breeder": { - "encounter": { - "1": "Obedient Pokémon, selfish Pokémon… Pokémon have unique characteristics.", - "2": "Even though my upbringing and behavior are poor, I've raised my Pokémon well.", - "3": "Hmm, do you discipline your Pokémon? Pampering them too much is no good." - }, - "victory": { - "1": "It is important to nurture and train each Pokémon's characteristics.", - "2": "Unlike my diabolical self, these are some good Pokémon.", - "3": "Too much praise can spoil both Pokémon and people." - }, - "defeat": { - "1": "You should not get angry at your Pokémon, even if you lose a battle.", - "2": "Right? Pretty good Pokémon, huh? I'm suited to raising things.", - "3": "No matter how much you love your Pokémon, you still have to discipline them when they misbehave." - } - }, - "breeder_female": { - "encounter": { - "1": "Pokémon never betray you. They return all the love you give them.", - "2": "Shall I give you a tip for training good Pokémon?", - "3": "I have raised these very special Pokémon using a special method." - }, - "victory": { - "1": "Ugh… It wasn't supposed to be like this. Did I administer the wrong blend?", - "2": "How could that happen to my Pokémon… What are you feeding your Pokémon?", - "3": "If I lose, that tells you I was just killing time. It doesn't damage my ego at all." - }, - "defeat": { - "1": "This proves my Pokémon have accepted my love.", - "2": "The real trick behind training good Pokémon is catching good Pokémon.", - "3": "Pokémon will be strong or weak depending on how you raise them." - } - }, - "fisherman": { - "encounter": { - "1": "Aack! You made me lose a bite!\nWhat are you going to do about it?", - "2": "Go away! You're scaring the Pokémon!", - "3": "Let's see if you can reel in a victory!" - }, - "victory": { - "1": "Just forget about it.", - "2": "Next time, I'll be reelin' in the triumph!", - "3": "Guess I underestimated the currents this time." - } - }, - "fisherman_female": { - "encounter": { - "1": "Woah! I've hooked a big one!", - "2": "Line's in, ready to reel in success!", - "3": "Ready to make waves!" - }, - "victory": { - "1": "I'll be back with a stronger hook.", - "2": "I'll reel in victory next time.", - "3": "I'm just sharpening my hooks for the comeback!" - } - }, - "swimmer": { - "encounter": { - "1": "Time to dive in!", - "2": "Let's ride the waves of victory!", - "3": "Ready to make a splash!" - }, - "victory": { - "1": "Drenched in defeat!", - "2": "A wave of defeat!", - "3": "Back to shore, I guess." - } - }, - "backpacker": { - "encounter": { - "1": "Pack up, game on!", - "2": "Let's see if you can keep pace!", - "3": "Gear up, challenger!", - "4": "I've spent 20 years trying to find myself… But where am I?" - }, - "victory": { - "1": "Tripped up this time!", - "2": "Oh, I think I'm lost.", - "3": "Dead end!", - "4": "Wait up a second! Hey! Don't you know who I am?" - } - }, - "ace_trainer": { - "encounter": { - "1": "You seem quite confident.", - "2": "Your Pokémon… Show them to me…", - "3": "Because I'm an Ace Trainer, people think I'm strong.", - "4": "Are you aware of what it takes to be an Ace Trainer?" - }, - "victory": { - "1": "Yes… You have good Pokémon…", - "2": "What?! But I'm a battling genius!", - "3": "Of course, you are the main character!", - "4": "OK! OK! You could be an Ace Trainer!" - }, - "defeat": { - "1": "I am devoting my body and soul to Pokémon battles!", - "2": "All within my expectations… Nothing to be surprised about…", - "3": "I thought I'd grow up to be a frail person who looked like they would break if you squeezed them too hard.", - "4": "Of course I'm strong and don't lose. It's important that I win gracefully." - } - }, - "parasol_lady": { - "encounter": { - "1": "Time to grace the battlefield with elegance and poise!" - }, - "victory": { - "1": "My elegance remains unbroken!" - } - }, - "twins": { - "encounter": { - "1": "Get ready, because when we team up, it's double the trouble!", - "2": "Two hearts, one strategy – let's see if you can keep up with our twin power!", - "3": "Hope you're ready for double trouble, because we're about to bring the heat!" - }, - "victory": { - "1": "We may have lost this round, but our bond remains unbreakable!", - "2": "Our twin spirit won't be dimmed for long.", - "3": "We'll come back stronger as a dynamic duo!" - }, - "defeat": { - "1": "Twin power reigns supreme!", - "2": "Two hearts, one triumph!", - "3": "Double the smiles, double the victory dance!" - } - }, - "cyclist": { - "encounter": { - "1": "Get ready to eat my dust!", - "2": "Gear up, challenger! I'm about to leave you in the dust!", - "3": "Pedal to the metal, let's see if you can keep pace!" - }, - "victory": { - "1": "Spokes may be still, but determination pedals on.", - "2": "Outpaced!", - "3": "The road to victory has many twists and turns yet to explore." - } - }, - "black_belt": { - "encounter": { - "1": "I praise your courage in challenging me! For I am the one with the strongest kick!", - "2": "Oh, I see. Would you like to be cut to pieces? Or do you prefer the role of punching bag?" - }, - "victory": { - "1": "Oh. The Pokémon did the fighting. My strong kick didn't help a bit.", - "2": "Hmmm… If I was going to lose anyway, I was hoping to get totally messed up in the process." - } - }, - "battle_girl": { - "encounter": { - "1": "You don't have to try to impress me. You can lose against me." - }, - "victory": { - "1": "It's hard to say good-bye, but we are running out of time…" - } - }, - "hiker": { - "encounter": { - "1": "My middle-age spread has given me as much gravitas as the mountains I hike!", - "2": "I inherited this big-boned body from my parents… I'm like a living mountain range…" - }, - "victory": { - "1": "At least I cannot lose when it comes to BMI!", - "2": "It's not enough… It's never enough. My bad cholesterol isn't high enough…" - } - }, - "ranger": { - "encounter": { - "1": "When I am surrounded by nature, most other things cease to matter.", - "2": "When I'm living without nature in my life, sometimes I'll suddenly feel an anxiety attack coming on." - }, - "victory": { - "1": "It doesn't matter to the vastness of nature whether I win or lose…", - "2": "Something like this is pretty trivial compared to the stifling feelings of city life." - }, - "defeat": { - "1": "I won the battle. But victory is nothing compared to the vastness of nature…", - "2": "I'm sure how you feel is not so bad if you compare it to my anxiety attacks…" - } - }, - "scientist": { - "encounter": { - "1": "My research will lead this world to peace and joy." - }, - "victory": { - "1": "I am a genius… I am not supposed to lose against someone like you…" - } - }, - "school_kid": { - "encounter": { - "1": "…Heehee. I'm confident in my calculations and analysis.", - "2": "I'm gaining as much experience as I can because I want to be a Gym Leader someday." - }, - "victory": { - "1": "Ohhhh… Calculation and analysis are perhaps no match for chance…", - "2": "Even difficult, trying experiences have their purpose, I suppose." - } - }, - "artist": { - "encounter": { - "1": "I used to be popular, but now I am all washed up." - }, - "victory": { - "1": "As times change, values also change. I realized that too late." - } - }, - "guitarist": { - "encounter": { - "1": "Get ready to feel the rhythm of defeat as I strum my way to victory!" - }, - "victory": { - "1": "Silenced for now, but my melody of resilience will play on." - } - }, - "worker": { - "encounter": { - "1": "It bothers me that people always misunderstand me. I'm a lot more pure than everyone thinks." - }, - "victory": { - "1": "I really don't want my skin to burn, so I want to stay in the shade while I work." - } - }, - "worker_female": { - "encounter": { - "1": "It bothers me that people always misunderstand me.\n$I'm a lot more pure than everyone thinks." - }, - "victory": { - "1": "I really don't want my skin to burn, so I want to stay in the shade while I work." - }, - "defeat": { - "1": "My body and mind aren't necessarily always in sync." - } - }, - "worker_double": { - "encounter": { - "1": "I'll show you we can break you. We've been training in the field!" - }, - "victory": { - "1": "How strange… How could this be… I shouldn't have been outmuscled." - } - }, - "hex_maniac": { - "encounter": { - "1": "I normally only ever listen to classical music, but if I lose, I think I shall try a bit of new age!", - "2": "I grow stronger with each tear I cry." - }, - "victory": { - "1": "Is this the dawning of the age of Aquarius?", - "2": "Now I can get even stronger. I grow with every grudge." - }, - "defeat": { - "1": "New age simply refers to twentieth century classical composers, right?", - "2": "Don't get hung up on sadness or frustration. You can use your grudges to motivate yourself." - } - }, - "psychic": { - "encounter": { - "1": "Hi! Focus!" - }, - "victory": { - "1": "Eeeeek!" - } - }, - "officer": { - "encounter": { - "1": "Brace yourself, because justice is about to be served!", - "2": "Ready to uphold the law and serve justice on the battlefield!" - }, - "victory": { - "1": "The weight of justice feels heavier than ever…", - "2": "The shadows of defeat linger in the precinct." - } - }, - "beauty": { - "encounter": { - "1": "My last ever battle… That's the way I'd like us to view this match…" - }, - "victory": { - "1": "It's been fun… Let's have another last battle again someday…" - } - }, - "baker": { - "encounter": { - "1": "Hope you're ready to taste defeat!" - }, - "victory": { - "1": "I'll bake a comeback." - } - }, - "biker": { - "encounter": { - "1": "Time to rev up and leave you in the dust!" - }, - "victory": { - "1": "I'll tune up for the next race." - } - }, - "firebreather": { - "encounter": { - "1": "My flames shall devour you!", - "2": "My soul is on fire. I'll show you how hot it burns!", - "3": "Step right up and take a look!" - }, - "victory": { - "1": "I burned down to ashes...", - "2": "Yow! That's hot!", - "3": "Ow! I scorched the tip of my nose!" - } - }, - "sailor": { - "encounter": { - "1": "Matey, you're walking the plank if you lose!", - "2": "Come on then! My sailor's pride is at stake!", - "3": "Ahoy there! Are you seasick?" - }, - "victory": { - "1": "Argh! Beaten by a kid!", - "2": "Your spirit sank me!", - "3": "I think it's me that's seasick..." - } - }, - "archer": { - "encounter": { - "1": "Before you go any further, let's see how you fare against us, Team Rocket!", - "2": "I have received reports that your skills are not insignificant. Let's see if they are true.", - "3": "I am Archer, an Admin of Team Rocket. And I do not go easy on enemies of our organization." - }, - "victory": { - "1": "What a blunder!", - "2": "With my current skills, I was not up to the task after all.", - "3": "F-forgive me, Giovanni... For me to be defeated by a mere trainer..." - } - }, - "ariana": { - "encounter": { - "1": "Hold it right there! We can't someone on the loose.\n$It's harmful to Team Rocket's pride, you see.", - "2": "I don't know or care if what I'm doing is right or wrong...\n$I just put my faith in Giovanni and do as I am told", - "3": "Your trip ends here. I'm going to take you down!" - }, - "victory": { - "1": "Tch, you really are strong. It's too bad.\n$If you were to join Team Rocket, you could become an Executive.", - "2": "I... I'm shattered...", - "3": "Aaaieeeee! This can't be happening! I fought hard, but I still lost…" - } - }, - "proton": { - "encounter": { - "1": "What do you want? If you interrupt our work, don't expect any mercy!", - "2": "What do we have here? I am often labeled as the scariest and cruelest guy in Team Rocket…\n$I strongly urge you not to interfere with our business!", - "3": "I am Proton, an Admin of Team Rocket. I am here to put an end to your meddling!" - }, - "victory": { - "1": "The fortress came down!", - "2": "You may have won this time… But all you did was make Team Rocket's wrath grow…", - "3": "I am defeated… But I will not forget this!" - } - }, - "petrel": { - "encounter": { - "1": "Muhahaha, we've been waiting for you. Me? You don't know who I am? It is me, Giovanni.\n$The majestic Giovanni himself! Wahahaha! …Huh? I don't sound anything like Giovanni?\n$I don't even look like Giovanni? How come? I've worked so hard to mimic him!", - "2": "I am Petrel, an Admin of Team Rocket. I will not allow you to interfere with our plans!", - "3": "Rocket Executive Petrel will deal with this intruder!" - }, - "victory": { - "1": "OK, OK. I'll tell you where he is.", - "2": "I… I couldn't do a thing… Giovanni, please forgive me…", - "3": "No, I can't let this affect me. I have to inform the others…" - } - }, - "tabitha": { - "encounter": { - "1": "Hehehe! So you've come all the way here! But you're too late!", - "2": "Hehehe... Got here already, did you? We underestimated you! But this is it! \n$I'm a cut above the Grunts you've seen so far. I'm not stalling for time.\n$I'm going to pulverize you!", - "3": "I'm going to give you a little taste of pain! Resign yourself to it!" - }, - "victory": { - "1": "Hehehe! You might have beaten me, but you don't stand a chance against the Boss!\n$If you get lost now, you won't have to face a sound whipping!", - "2": "Hehehe... So, I lost, too...", - "3": "Ahya! How could this be? For an Admin like me to lose to some random trainer..." - } - }, - "courtney": { - "encounter": { - "1": "The thing...The thing that you hold...That is what... That's what we of Team Magma seek...", - "2": "... Well then...Deleting...", - "3": "...Ha. ...Analyzing... ...Hah♪" - }, - "victory": { - "1": "... ...Change...the world.", - "2": "As anticipated. Unanticipated. You. Target lock...completed.\n$Commencing...experiment. You. Forever. Aha... ♪", - "3": "...Again? That's unanticipated. ...I knew it. You...are interesting! ...Haha. ♪" - } - }, - "shelly": { - "encounter": { - "1": "Ahahahaha! You're going to meddle in Team Aqua's affairs?\n$You're either absolutely fearless, simply ignorant, or both!\n$You're so cute, you're disgusting! I'll put you down", - "2": "What's this? Who's this spoiled brat?", - "3": "Cool your jets. Be patient. I'll crush you shortly." - }, - "victory": { - "1": "Ahahahaha! We got meddled with unexpectedly! We're out of options.\n$We'll have to pull out. But this isn't the last you'll see of Team Aqua!\n$We have other plans! Don't you forget it!", - "2": "Ahhh?! Did I go too easy on you?!", - "3": "Uh. Are you telling me you've upped your game even more during the fight?\n$You're a brat with a bright future… My Pokémon and I don't have any strength left to fight…\n$Go on… Go and be destroyed by Archie." - } - }, - "matt": { - "encounter": { - "1": "Hoohahaha! What, you got a screw loose or something? Look at you, little Makuhita person!", - "2": "Oho! You! You're that funny kid!", - "3": "What are you doing here? Did you follow us?" - }, - "victory": { - "1": "All right then, until the Boss has time for you, I'll be your opponent!", - "2": "I can feel it! I can feel it, all right! The strength coming offa you!\n$More! I still want more! But looks like we're outta time...", - "3": "That was fun! I knew you'd show me a good time! I look forward to facing you again someday!" - } - }, - "mars": { - "encounter": { - "1": "I'm Mars, one of Team Galactic's top Commanders.", - "2": "Team Galactic's vision for the future is unwavering. Opposition will be crushed without mercy!", - "3": "Feeling nervous? You should be!" - }, - "victory": { - "1": "This can't be happening! How did I lose?!", - "2": "You have some skill, I'll give you that.", - "3": "Defeated... This was a costly mistake." - } - }, - "jupiter": { - "encounter": { - "1": "Jupiter, Commander of Team Galactic, at your service.", - "2": "Resistance is futile. Team Galactic will prevail!", - "3": "You're trembling... scared already?" - }, - "victory": { - "1": "No way... I lost?!", - "2": "Impressive, you've got guts!", - "3": "Losing like this... How embarrassing." - } - }, - "saturn": { - "encounter": { - "1": "I am Saturn, Commander of Team Galactic.", - "2": "Our mission is absolute. Any hindrance will be obliterated!", - "3": "Is that fear I see in your eyes?" - }, - "victory": { - "1": "Impossible... Defeated by you?!", - "2": "You have proven yourself a worthy adversary.", - "3": "Bestowed in defeat... This is unacceptable." - } - }, - "zinzolin": { - "encounter": { - "1": "You could become a threat to Team Plasma, so we will eliminate you here and now!", - "2": "Oh, for crying out loud... I didn't expect to have to battle in this freezing cold!", - "3": "You're an impressive Trainer to have made it this far. But it ends here." - }, - "victory": { - "1": "Ghetsis... I have failed you...", - "2": "It's bitter cold. I'm shivering. I'm suffering. Yet, I still stand victorious.", - "3": "Hmph. You're a smarter Trainer than I expected, but not smart enough." - } - }, - "rood": { - "encounter": { - "1": "You are a threat to Team Plasma. We cannot let you walk away from here and now!", - "2": "Oh, this icy wind... I never thought I'd have to fight here!", - "3": "You are a remarkable Trainer to have made it this far. But this is where it ends." - }, - "victory": { - "1": "Ghetsis... I have failed my mission...", - "2": "The cold is piercing. I'm shivering. I'm suffering. Yet, I have triumphed.", - "3": "Hm. You are a talented Trainer, but unfortunately not talented enough." - } - }, - "xerosic": { - "encounter": { - "1": "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!", - "2": "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.", - "3": "I've been waiting for you! I need to do a little research on you! Come, let us begin!" - }, - "victory": { - "1": "Ah, you're quite strong. Oh yes—very strong, indeed.", - "2": "Ding-ding-ding! You did it! To the victor go the spoils!", - "3": "Wonderful! Amazing! You have tremendous skill and bravery!" - } - }, - "bryony": { - "encounter": { - "1": "I am Bryony, and it would be my pleasure to battle you. Show me what you've got.", - "2": "Impressive... You're more powerful than you appear. Let's see the true extent of your energy.", - "3": "I've anticipated your arrival. It's time for a little test. Shall we begin?" - }, - "victory": { - "1": "You're quite strong. Oh yes—very strong, indeed.", - "2": "Ding-ding-ding! You've done well. Victory is yours.", - "3": "Wonderful! Remarkable! Your skill and bravery are commendable." - } - }, - "rocket_grunt": { - "encounter": { - "1": "Prepare for trouble!", - "2": "We're pulling a big job here! Get lost, kid!", - "3": "Hand over your Pokémon, or face the wrath of Team Rocket!", - "4": "You're about to experience the true terror of Team Rocket!", - "5": "Hey, kid! Me am a Team Rocket member kind of guy!" - }, - "victory": { - "1": "Team Rocket blasting off again!", - "2": "Oh no! I dropped the Lift Key!", - "3": "I blew it!", - "4": "My associates won't stand for this!", - "5": "You say what? Team Rocket bye-bye a go-go? Broken it is says you?" - } - }, - "magma_grunt": { - "encounter": { - "1": "If you get in the way of Team Magma, don’t expect any mercy!", - "2": "You'd better not interfere with our plans! We're making the world a better place!", - "3": "You're in the way! Team Magma has no time for kids like you!", - "4": "I hope you brought marshmallows because things are about to heat up!", - "5": "We're going to use the power of a volcano! It's gonna be... explosive! Get it? Heh heh!" - }, - "victory": { - "1": "Huh? I lost?!", - "2": "I can't believe I lost! I even skipped lunch for this", - "3": "No way! You're just a kid!", - "4": "Urrrgh... I should've ducked into our hideout right away...", - "5": "You beat me... Do you think the boss will dock my pay for this?" - } - }, - "aqua_grunt": { - "encounter": { - "1": "No one who crosses Team Aqua gets any mercy, not even kids!", - "2": "Grrr... You've got some nerve meddling with Team Aqua!", - "3": "You're about to get soaked! And not just from my water Pokémon!", - "4": "We, Team Aqua, exist for the good of all!", - "5": "Prepare to be washed away by the tides of my... uh, Pokémon! Yeah, my Pokémon!" - }, - "victory": { - "1": "You're kidding me!", - "2": "Arrgh, I didn't count on being meddled with by some meddling kid!", - "3": "I lost?! Guess I'll have to swim back to the hideout now...", - "4": "Oh, man, what a disaster... The boss is going to be furious...", - "5": "You beat me... Do you think the boss will make me walk the plank for this?" - } - }, - "galactic_grunt": { - "encounter": { - "1": "Don't mess with Team Galactic!", - "2": "Witness the power of our technology and the future we envision!", - "3": "In the name of Team Galactic, I'll eliminate anyone who stands in our way!", - "4": "Get ready to lose!", - "5": "Hope you're ready for a cosmic beatdown!" - }, - "victory": { - "1": "Shut down...", - "2": "This setback means nothing in the grand scheme.", - "3": "Our plans are bigger than this defeat.", - "4": "How?!", - "5": "Note to self: practice Pokémon battling, ASAP." - } - }, - "plasma_grunt": { - "encounter": { - "1": "We won't tolerate people who have different ideas!", - "2": "If I win against you, release your Pokémon!", - "3": "If you get in the way of Team Plasma, I'll take care of you!", - "4": "Team Plasma will liberate Pokémon from selfish humans like you!", - "5": "Our hairstyles are out of this world... but our battling skills? You'll find out soon enough." - }, - "victory": { - "1": "Plasmaaaaaaaaa!", - "2": "How could I lose...", - "3": "...What a weak Pokémon, I'll just have to go steal some better ones!", - "4": "Great plans are always interrupted.", - "5": "This is bad... Badbadbadbadbadbadbad! Bad for Team Plasma! Or Plasbad, for short!" - } - }, - "flare_grunt": { - "encounter": { - "1": "Your Pokémon are no match for the elegance of Team Flare.", - "2": "Hope you brought your sunglasses, because things are about to get bright!", - "3": "Team Flare will cleanse the world of imperfection!", - "4": "Prepare to face the brilliance of Team Flare!", - "5": "Fashion is most important to us!" - }, - "victory": { - "1": "The future doesn't look bright for me.", - "2": "Perhaps there's more to battling than I thought. Back to the drawing board.", - "3": "Gahh?! I lost?!", - "4": "Even in defeat, Team Flare's elegance shines through.", - "5": "You may have beaten me, but when I lose, I go out in style!" - } - }, - "aether_grunt": { - "encounter": { - "1": "I'll fight you with all I have to wipe you out!", - "2": "I don't care if you're a kid or what. I'll send you flying if you threaten us!", - "3": "I was told to turn away Trainers, whomever they might be!", - "4": "I'll show you the power of Aether Paradise!", - "5": "Now that you've learned of the darkness at the heart of Aether Paradise, we'll need you to conveniently disappear!" - }, - "victory": { - "1": "Hmph! You seem to have a lot of skill.", - "2": "What does this mean? What does this mean!", - "3": "Hey! You're so strong that there's no way I can turn you away!", - "4": "Hmm... It seems as though I may have lost.", - "5": "Here's an impression for you: Aiyee!" - } - }, - "faba": { - "encounter": { - "1": "I, Branch Chief Faba, shall show you the harshness of the real world!", - "2": "The man who is called Aether Paradise's last line of defense is to battle a mere child?", - "3": "I, Faba, am the Aether Branch Chief. The only one in the world, I'm irreplaceable." - }, - "victory": { - "1": "Aiyee!", - "2": "H-h-how can this be?! How could this child...", - "3": "This is why... This is why I can't bring myself to like children." - } - }, - "skull_grunt": { - "encounter": { - "1": "We're not bad-we're just hard!", - "2": "You want some? That's how we say hello! Nice knowing you, punks!", - "3": "We're just a bunch of guys and gals with a great interest in other people's Pokémon!", - "4": "Why you trying to act hard when we're already hard as bones out here, homie?", - "5": "Team Skull represent! We can't pay the rent! Had a lot of fun, but our youth was misspent!" - }, - "victory": { - "1": "Huh? Is it over already?", - "2": "Time for us to break out, yo! Gotta tell y'all peace out, yo!", - "3": "We don't need your wack Pokémon anyway!", - "4": "Wha-?! This kid's way too strong-no bones about it!", - "5": "So, what? I'm lower than a Pokémon?! I already got self-esteem issues, man." - } - }, - "plumeria": { - "encounter": { - "1": " ...Hmph. You don't look like anything special to me.", - "2": "It takes these dumb Grunts way too long to deal with you kids...", - "3": "Mess with anyone in Team Skull, and I'll show you how serious I can get." - }, - "victory": { - "1": "Hmmph! You're pretty strong. I'll give you that.", - "2": "Hmmph. Guess you are pretty tough. Now I understand why my Grunts waste so much time battling kids.", - "3": "Hmmph! I guess I just have to hold that loss." - } - }, - "macro_grunt": { - "encounter": { - "1": "It looks like this is the end of the line for you!", - "2": "You are a trainer aren't you? I'm afraid that doesn't give you the right to interfere in our work.", - "3": "I'm from Macro Cosmos Insurance! Do you have a life insurance policy?" - }, - "victory": { - "1": "I have little choice but to respectfully retreat.", - "2": "Having to give up my pocket money... Losing means I'm back in the red...", - "3": "Nobody can beat Macro Cosmos when it comes to our dedication to our work!" - } - }, - "oleana": { - "encounter": { - "1": "I won't let anyone interfere with Mr. Rose's plan!", - "2": "So, you got through all of the special staff that I had ordered to stop you. I would expect nothing less.", - "3": "For the chairman! I won't lose!" - }, - "victory": { - "1": "*sigh* I wasn't able to win... Oleana...you really are a hopeless woman.", - "2": "Arghhh! This is inexcusable... What was I thinking... Any trainer who's made it this far would be no pushover..", - "3": "*sigh* I am one tired Oleana..." - } - }, - "rocket_boss_giovanni_1": { - "encounter": { - "1": "So! I must say, I am impressed you got here!" - }, - "victory": { - "1": "WHAT! This cannot be!" - }, - "defeat": { - "1": "Mark my words. Not being able to measure your own strength shows that you are still a child." - } - }, - "rocket_boss_giovanni_2": { - "encounter": { - "1": "My old associates need me... Are you going to get in my way?" - }, - "victory": { - "1": "How is this possible...? The precious dream of Team Rocket has become little more than an illusion..." - }, - "defeat": { - "1": "Team Rocket will be reborn again, and I will rule the world!" - } - }, - "magma_boss_maxie_1": { - "encounter": { - "1": "I will bury you by my own hand. I hope you appreciate this honor!" - }, - "victory": { - "1": "Ugh! You are... quite capable...\nI fell behind, but only by an inch..." - }, - "defeat": { - "1": "Team Magma will prevail!" - } - }, - "magma_boss_maxie_2": { - "encounter": { - "1": "You are the final obstacle remaining between me and my goals.\n$Brace yourself for my ultimate attack! Fuhahaha!" - }, - "victory": { - "1": "This... This is not.. Ngh..." - }, - "defeat": { - "1": "And now... I will transform this planet to a land ideal for humanity." - } - }, - "aqua_boss_archie_1": { - "encounter": { - "1": "I'm the leader of Team Aqua, so I'm afraid it's the rope's end for you." - }, - "victory": { - "1": "Let's meet again somewhere. I'll be sure to remember that face." - }, - "defeat": { - "1": "Brilliant! My team won't hold back now!" - } - }, - "aqua_boss_archie_2": { - "encounter": { - "1": "I've been waiting so long for this day to come.\nThis is the true power of my team!" - }, - "victory": { - "1": "Like I figured..." - }, - "defeat": { - "1": "I'll return everything in this world to its original, pure state!!" - } - }, - "galactic_boss_cyrus_1": { - "encounter": { - "1": "You were compelled to come here by such vacuous sentimentality.\n$I will make you regret paying heed to your heart!" - }, - "victory": { - "1": "Interesting. And quite curious." - }, - "defeat": { - "1": "I will create my new world..." - } - }, - "galactic_boss_cyrus_2": { - "encounter": { - "1": "So we meet again. It seems our fates have become intertwined.\n$But here and now, I will finally break that bond!" - }, - "victory": { - "1": "How? How? HOW?!" - }, - "defeat": { - "1": "Farewell." - } - }, - "plasma_boss_ghetsis_1": { - "encounter": { - "1": "I won't allow anyone to stop me! No matter who does what!" - }, - "victory": { - "1": "How can this be? I'm the creator of Team Plasma! I'm perfect!" - }, - "defeat": { - "1": "I am the perfect ruler of a perfect new world! Mwa ha ha!" - } - }, - "plasma_boss_ghetsis_2": { - "encounter": { - "1": "Come now! I want to see your face at the moment you lose all hope!" - }, - "victory": { - "1": "My calculations... No! My careful schemes! The world should be mine!" - }, - "defeat": { - "1": "Kyurem! Use Absofusion!" - } - }, - "flare_boss_lysandre_1": { - "encounter": { - "1": "Do you want to stop me? Show me in battle." - }, - "victory": { - "1": "You are here to stop me. But I ask you to wait. " - }, - "defeat": { - "1": "Pokemon...Shall no longer exist." - } - }, - "flare_boss_lysandre_2": { - "encounter": { - "1": "The future you want, or the future I want... Let us see which one is more deserving, shall we?" - }, - "victory": { - "1": "Whaugh!" - }, - "defeat": { - "1": "Fools with no vision will continue to befoul this beautiful world." - } - }, - "aether_boss_lusamine_1": { - "encounter": { - "1": "You're going to startle my sweet beast! It looks like I'll need to silence you first." - }, - "victory": { - "1": "How... how can you be so awful!" - }, - "defeat": { - "1": "Hmph..." - } - }, - "aether_boss_lusamine_2": { - "encounter": { - "1": "Why must you continue to pester me?! I am sick of you. Sick through and through!\n$Enough with this useless talk.. with Nihilego's power I will show you how wrong you were to come here!" - }, - "victory": { - "1": "Aaauuuggghhhhhhhhh!!!" - }, - "defeat": { - "1": "All that I want is my precious beast! I don't care about any of the rest of you!" - } - }, - "skull_boss_guzma_1": { - "encounter": { - "1": "The hated boss who beats you down and beats you down and never lets up...\n$Yeah. Big bad Guzma is here!" - }, - "victory": { - "1": "Tch. I'm gonna beat you down one of these days!" - }, - "defeat": { - "1": "And you came all the way out here just for that, huh?" - } - }, - "skull_boss_guzma_2": { - "encounter": { - "1": "Doesn't matter who I'm up against, I'm gonna beat them down!\n$That's what big bad Guzma is all about!" - }, - "victory": { - "1": "Guzma!!! What is wrong with you?!" - }, - "defeat": { - "1": "Y'all are stupid!" - } - }, - "macro_boss_rose_1": { - "encounter": { - "1": "I must provide limitless energy to ensure everlasting prosperity for everyone...\n$It is my purpose, my duty, my destiny!" - }, - "victory": { - "1": "You still don't understand, trainer...\n$We... No, I am going to change the course of history!" - }, - "defeat": { - "1": "You still don't understand a thing!" - } - }, - "macro_boss_rose_2": { - "encounter": { - "1": "I'm committed to solving the energy problem in the Galar region—and, of course, around the world.\n$My experience and accomplishments that made Macro Cosmos a success are proof my methods work.\n$I don't intend to change my mind, even if I lose." - }, - "victory": { - "1": "I'd forgotten how great Pokémon battles are! It's been so long since I battled...\n$That sure was satisfying, I accept defeat for this battle." - }, - "defeat": { - "1": "I suppose it must seem that I am doing something terrible. I don't expect you to understand.\n$But I must provide the Galar region with limitless energy to ensure everlasting prosperity." - } - }, - "brock": { - "encounter": { - "1": "My expertise on Rock-type Pokémon will take you down! Come on!", - "2": "My rock-hard willpower will overwhelm you!", - "3": "Allow me to show you the true strength of my Pokémon!" - }, - "victory": { - "1": "Your Pokémon's strength have overcome my rock-hard defenses!", - "2": "The world is huge! I'm glad to have had a chance to battle you.", - "3": "Perhaps I should go back to pursuing my dream as a Pokémon Breeder…" - }, - "defeat": { - "1": "The best offense is a good defense!\nThat's my way of doing things!", - "2": "Come study rocks with me next time to better learn how to fight them!", - "3": "Hah, all my traveling around the regions is paying off!" - } - }, - "misty": { - "encounter": { - "1": "My policy is an all out offensive with Water-type Pokémon!", - "2": "Hiya, I'll show you the strength of my aquatic Pokémon!", - "3": "My dream was to go on a journey and battle powerful trainers…\nWill you be a sufficient challenge?" - }, - "victory": { - "1": "You really are strong… I'll admit that you are skilled…", - "2": "Grrr… You know you just got lucky, right?!", - "3": "Wow, you're too much! I can't believe you beat me!" - }, - "defeat": { - "1": "Was the mighty Misty too much for you?", - "2": "I hope you saw my Pokémon's elegant swimming techniques!", - "3": "Your Pokémon were no match for my pride and joys!" - } - }, - "lt_surge": { - "encounter": { - "1": "My Electric Pokémon saved me during the war! I'll show you how!", - "2": "Ten-hut! I'll shock you into surrender!", - "3": "I'll zap you just like I do to all my enemies in battle!" - }, - "victory": { - "1": "Whoa! Your team's the real deal, kid!", - "2": "Aaargh, you're strong! Even my electric tricks lost against you.", - "3": "That was an absolutely shocking loss!" - }, - "defeat": { - "1": "Oh yeah! When it comes to Electric-type Pokémon, I'm number one in the world!", - "2": "Hahaha! That was an electrifying battle, kid!", - "3": "A Pokémon battle is war, and I have showed you first-hand combat!" - } - }, - "erika": { - "encounter": { - "1": "Ah, the weather is lovely here…\nOh, a battle? Very well then.", - "2": "My Pokémon battling skills rival that of my flower arranging skills.", - "3": "Oh, I hope the pleasant aroma of my Pokémon doesn't put me to sleep again…", - "4": "Seeing flowers in a garden is so soothing." - }, - "victory": { - "1": "Oh! I concede defeat.", - "2": "That match was most delightful.", - "3": "Ah, it appears it is my loss…", - "4": "Oh, my goodness." - }, - "defeat": { - "1": "I was afraid I would doze off…", - "2": "Oh my, it seems my Grass Pokémon overwhelmed you.", - "3": "That battle was such a soothing experience.", - "4": "Oh… Is that all?" - } - }, - "janine": { - "encounter": { - "1": "I am mastering the art of poisonous attacks.\nI shall spar with you today!", - "2": "Father trusts that I can hold my own.\nI will prove him right!", - "3": "My ninja techniques are only second to my Father's!\nCan you keep up?" - }, - "victory": { - "1": "Even now, I still need training… I understand.", - "2": "Your battle technique has outmatched mine.", - "3": "I'm going to really apply myself and improve my skills." - }, - "defeat": { - "1": "Fufufu… the poison has sapped all your strength to battle.", - "2": "Ha! You didn't stand a chance against my superior ninja skills!", - "3": "Father's faith in me has proven to not be misplaced." - } - }, - "sabrina": { - "encounter": { - "1": "Through my psychic ability, I had a vision of your arrival!", - "2": "I dislike fighting, but if you wish, I will show you my powers!", - "3": "I can sense great ambition in you. I shall see if it not unfounded." - }, - "victory": { - "1": "Your power… It far exceeds what I foresaw…", - "2": "I failed to accurately predict your power.", - "3": "Even with my immense psychic powers, I cannot sense another as strong as you." - }, - "defeat": { - "1": "This victory… It is exactly as I foresaw in my visions!", - "2": "Perhaps it was another I sensed a great desire in…", - "3": "Hone your abilities before recklessly charging into battle.\nYou never know what the future may hold if you do…" - } - }, - "blaine": { - "encounter": { - "1": "Hah! Hope you brought a Burn Heal!", - "2": "My fiery Pokémon will incinerate all challengers!", - "3": "Get ready to play with fire!" - }, - "victory": { - "1": "I have burned down to nothing! Not even ashes remain!", - "2": "Didn't I stoke the flames high enough?", - "3": "I'm all burned out… But this makes my motivation to improve burn even hotter!" - }, - "defeat": { - "1": "My raging inferno cannot be quelled!", - "2": "My Pokémon have been powered up with the heat from this victory!", - "3": "Hah! My passion burns brighter than yours!" - } - }, - "giovanni": { - "encounter": { - "1": "I, the leader of Team Rocket, will make you feel a world of pain!", - "2": "My training here will be vital before I am to face my old associates again.", - "3": "I do not think you are prepared for the level of failure you are about to experience!" - }, - "victory": { - "1": "WHAT! Me, lose?! There is nothing I wish to say to you!", - "2": "Hmph… You could never understand what I hope to achieve.", - "3": "This defeat is merely delaying the inevitable.\nI will rise Team Rocket from the ashes in due time." - }, - "defeat": { - "1": "Not being able to measure your own strength shows that you are still but a child.", - "2": "Do not try to interfere with me again.", - "3": "I hope you understand how foolish challenging me was." - } - }, - "roxanne": { - "encounter": { - "1": "Would you kindly demonstrate how you battle?", - "2": "You can learn many things by battling many trainers.", - "3": "Oh, you caught me strategizing.\nWould you like to battle?" - }, - "victory": { - "1": "Oh, I appear to have lost.\nI understand.", - "2": "It seems that I still have so much more to learn when it comes to battle.", - "3": "I'll take what I learned here today to heart." - }, - "defeat": { - "1": "I have learned many things from our battle.\nI hope you have too.", - "2": "I look forward to battling you again.\nI hope you'll use what you've learned here.", - "3": "I won due to everything I have learned." - } - }, - "brawly": { - "encounter": { - "1": "Oh man, a challenger!\nLet's see what you can do!", - "2": "You seem like a big splash.\nLet's battle!", - "3": "Time to create a storm!\nLet's go!" - }, - "victory": { - "1": "Oh woah, you've washed me out!", - "2": "You surfed my wave and crashed me down!", - "3": "I feel like I'm lost in Granite Cave!" - }, - "defeat": { - "1": "Haha, I surfed the big wave!\nChallenge me again sometime.", - "2": "Surf with me again some time!", - "3": "Just like the tides come in and out, I hope you return to challenge me again." - } - }, - "wattson": { - "encounter": { - "1": "Time to get shocked!\nWahahahaha!", - "2": "I'll make sparks fly!\nWahahahaha!", - "3": "I hope you brought Paralyz Heal!\nWahahahaha!" - }, - "victory": { - "1": "Seems like I'm out of charge!\nWahahahaha!", - "2": "You've completely grounded me!\nWahahahaha!", - "3": "Thanks for the thrill!\nWahahahaha!" - }, - "defeat": { - "1": "Recharge your batteries and challenge me again sometime!\nWahahahaha!", - "2": "I hope you found our battle electrifying!\nWahahahaha!", - "3": "Aren't you shocked I won?\nWahahahaha!" - } - }, - "flannery": { - "encounter": { - "1": "Nice to meet you! Wait, no…\nI will crush you!", - "2": "I've only been a leader for a little while, but I'll smoke you!", - "3": "It's time to demonstrate the moves my grandfather has taught me! Let's battle!" - }, - "victory": { - "1": "You remind me of my grandfather…\nNo wonder I lost.", - "2": "Am I trying too hard?\nI should relax, can't get too heated.", - "3": "Losing isn't going to smother me out.\nTime to reignite training!" - }, - "defeat": { - "1": "I hope I've made my grandfather proud…\nLet's battle again some time.", - "2": "I…I can't believe I won!\nDoing things my way worked!", - "3": "Let's exchange burning hot moves again soon!" - } - }, - "norman": { - "encounter": { - "1": "I'm surprised you managed to get here.\nLet's battle.", - "2": "I'll do everything in my power as a Gym Leader to win.\nLet's go!", - "3": "You better give this your all.\nIt's time to battle!" - }, - "victory": { - "1": "I lost to you…?\nRules are rules, though.", - "2": "Was moving from Olivine a mistake…?", - "3": "I can't believe it.\nThat was a great match." - }, - "defeat": { - "1": "We both tried our best.\nI hope we can battle again soon.", - "2": "You should try challenging my kid instead.\nYou might learn something!", - "3": "Thank you for the excellent battle.\nBetter luck next time." - } - }, - "winona": { - "encounter": { - "1": "I've been soaring the skies looking for prey…\nAnd you're my target!", - "2": "No matter how our battle is, my Flying Pokémon and I will triumph with grace. Let's battle!", - "3": "I hope you aren't scared of heights.\nLet's ascend!" - }, - "victory": { - "1": "You're the first Trainer I've seen with more grace than I.\nExcellently played.", - "2": "Oh, my Flying Pokémon have plummeted!\nVery well.", - "3": "Though I may have fallen, my Pokémon will continue to fly!" - }, - "defeat": { - "1": "My Flying Pokémon and I will forever dance elegantly!", - "2": "I hope you enjoyed our show.\nOur graceful dance is finished.", - "3": "Won't you come see our elegant choreography again?" - } - }, - "tate": { - "encounter": { - "1": "Hehehe…\nWere you surprised to see me without my sister?", - "2": "I can see what you're thinking…\nYou want to battle!", - "3": "How can you defeat someone…\nWho knows your every move?" - }, - "victory": { - "1": "It can't be helped…\nI miss Liza…", - "2": "Your bond with your Pokémon was stronger than mine.", - "3": "If I were with Liza, we would have won.\nWe can finish each other's thoughts!" - }, - "defeat": { - "1": "My Pokémon and I are superior!", - "2": "If you can't even defeat me, you'll never be able to defeat Liza either.", - "3": "It's all thanks to my strict training with Liza.\nI can make myself one with Pokémon." - } - }, - "liza": { - "encounter": { - "1": "Fufufu…\nWere you surprised to see me without my brother?", - "2": "I can determine what you desire…\nYou want to battle, don't you?", - "3": "How can you defeat someone…\nWho's one with their Pokémon?" - }, - "victory": { - "1": "It can't be helped…\nI miss Tate…", - "2": "Your bond with your Pokémon…\nIt's stronger than mine.", - "3": "If I were with Tate, we would have won.\nWe can finish each other's sentences!" - }, - "defeat": { - "1": "My Pokémon and I are victorious.", - "2": "If you can't even defeat me, you'll never be able to defeat Tate either.", - "3": "It's all thanks to my strict training with Tate.\nI can synchronize myself with my Pokémon." - } - }, - "juan": { - "encounter": { - "1": "Now's not the time to act coy.\nLet's battle!", - "2": "Ahahaha, You'll be witness to my artistry with Water Pokémon!", - "3": "A typhoon approaches!\nWill you be able to test me?", - "4": "Please, you shall bear witness to our artistry.\nA grand illusion of water sculpted by my Pokémon and myself!" - }, - "victory": { - "1": "You may be a genius who can take on Wallace!", - "2": "I focused on elegance while you trained.\nIt's only natural that you defeated me.", - "3": "Ahahaha!\nVery well, You have won this time.", - "4": "From you, I sense the brilliant shine of skill that will overcome all." - }, - "defeat": { - "1": "My Pokémon and I have sculpted an illusion of Water and come out victorious.", - "2": "Ahahaha, I have won, and you have lost.", - "3": "Shall I loan you my outfit? It may help you battle!\nAhahaha, I jest!", - "4": "I'm the winner! Which is to say, you lost." - } - }, - "crasher_wake": { - "encounter": { - "1": "Crash! Crash! Watch out!\nCrasher Wake…is…heeere!", - "2": "Crash! Crash! Crasher Wake!", - "3": "I'm the tidal wave of power to wash you away!" - }, - "victory": { - "1": "That puts a grin on my face!\nGuhahaha! That was a blast!", - "2": "Hunwah! It's gone and ended!\nHow will I say this…\nI want more! I wanted to battle a lot more!", - "3": "WHAAAAT!?" - }, - "defeat": { - "1": "Yeeeeah! That's right!", - "2": "I won, but I want more! I wanted to battle a lot more!", - "3": "So long!" - } - }, - "falkner": { - "encounter": { - "1": "I'll show you the real power of the magnificent bird Pokémon!", - "2": "Winds, stay with me!", - "3": "Dad! I hope you're watching me battle from above!" - }, - "victory": { - "1": "I understand… I'll bow out gracefully.", - "2": "A defeat is a defeat. You are strong indeed.", - "3": "…Shoot! Yeah, I lost." - }, - "defeat": { - "1": "Dad! I won with your cherished bird Pokémon…", - "2": "Bird Pokémon are the best after all!", - "3": "Feels like I'm catching up to my dad!" - } - }, - "nessa": { - "encounter": { - "1": "No matter what kind of plan your refined mind may be plotting, my partner and I will be sure to sink it.", - "2": "I'm not here to chat. I'm here to win!", - "3": "This is a little gift from my Pokémon… I hope you can take it!" - }, - "victory": { - "1": "You and your Pokémon are just too much…", - "2": "How…? How can this be?!", - "3": "I was totally washed away!" - }, - "defeat": { - "1": "The raging wave crashes again!", - "2": "Time to ride the wave of victory!", - "3": "Ehehe!" - } - }, - "melony": { - "encounter": { - "1": "I'm not going to hold back!", - "2": "All righty, I suppose we should get started.", - "3": "I'll freeze you solid!" - }, - "victory": { - "1": "You… You're pretty good, huh?", - "2": "If you find Gordie around, be sure to give him a right trashing, would you?", - "3": "I think you took breaking the ice a little too literally…" - }, - "defeat": { - "1": "Now do you see how severe battles can be?", - "2": "Hee! Looks like I went and won again!", - "3": "Are you holding back?" - } - }, - "marlon": { - "encounter": { - "1": "You look strong! Shoots! Let's start!", - "2": "I'm strong like the ocean's wide. You're gonna get swept away, fo' sho'.", - "3": "Oh ho, so I'm facing you! That's off the wall." - }, - "victory": { - "1": "You totally rocked that! You're raising some wicked Pokémon. You got this Trainer thing down!", - "2": "You don't just look strong, you're strong fo' reals! Eh, I was swept away, too!", - "3": "You're strong as a gnarly wave!" - }, - "defeat": { - "1": "You're tough, but it's not enough to sway the sea, 'K!", - "2": "Hee! Looks like I went and won again!", - "3": "Sweet, sweet victory!" - } - }, - "shauntal": { - "encounter": { - "1": "Excuse me. You're a challenger, right?\nI'm the Elite Four's Ghost-type Pokémon user, Shauntal, and I shall be your opponent.", - "2": "I absolutely love writing about Trainers who come here and the Pokémon they train.\nCould I use you and your Pokémon as a subject?", - "3": "Every person who works with Pokémon has a story to tell.\nWhat story is about to be told?" - }, - "victory": { - "1": "Wow. I'm dumbstruck!", - "2": "S-sorry! First, I must apologize to my Pokémon…\n\nI'm really sorry you had a bad experience because of me!", - "3": "Even in light of that, I'm still one of the Elite Four!" - }, - "defeat": { - "1": "Eheh.", - "2": "That gave me excellent material for my next novel!", - "3": "And so, another tale ends…" - } - }, - "marshal": { - "encounter": { - "1": "My mentor, Alder, sees your potential as a Trainer and is taking an interest in you.\nIt is my intention to test you--to take you to the limits of your strength. Kiai!", - "2": "Victory, decisive victory, is my intention! Challenger, here I come!", - "3": "In myself, I seek to develop the strength of a fighter and shatter any weakness in myself!\nPrevailing with the force of my convictions!" - }, - "victory": { - "1": "Whew! Well done!", - "2": "As your battles continue, aim for even greater heights!", - "3": "The strength shown by you and your Pokémon has deeply impressed me…" - }, - "defeat": { - "1": "Hmm.", - "2": "That was good battle.", - "3": "Haaah! Haaah! Haiyaaaah!" - } - }, - "cheren": { - "encounter": { - "1": "You remind me of an old friend. That makes me excited about this Pokémon battle!", - "2": "Pokémon battles have no meaning if you don't think why you battle.\n$Or better said, it makes battling together with Pokémon meaningless.", - "3": "My name's Cheren! I'm a Gym Leader and a teacher! Pleasure to meet you." - }, - "victory": { - "1": "Thank you! I saw what was missing in me.", - "2": "Thank you! I feel like I saw a little of the way toward my ideals.", - "3": "Hmm… This is problematic." - }, - "defeat": { - "1": "As a Gym Leader, I aim to be a wall for you to overcome.", - "2": "All right!", - "3": "I made it where I am because Pokémon were by my side.\nPerhaps we need to think about why Pokémon help us not in terms of Pokémon and Trainers but as a relationship between living beings." - } - }, - "chili": { - "encounter": { - "1": "Yeeeeooow! Time to play with FIRE!! I'm the strongest of us brothers!", - "2": "Ta-da! The Fire-type scorcher Chili--that's me--will be your opponent!", - "3": "I'm going to show you what me and my blazing Fire types can do!" - }, - "victory": { - "1": "You got me. I am… burned… out…", - "2": "Whoa ho! You're on fire!", - "3": "Augh! You got me!" - }, - "defeat": { - "1": "I'm on fire! Play with me, and you'll get burned!", - "2": "When you play with fire, you get burned!", - "3": "I mean, c'mon, your opponent was me! You didn't have a chance!" - } - }, - "cilan": { - "encounter": { - "1": "Nothing personal... No hard feelings... Me and my Grass-type Pokémon will...\n$Um... We're gonna battle come what may.", - "2": "So, um, if you're OK with me, I'll, um, put everything I've got into being, er, you know, your opponent.", - "3": "OK… So, um, I'm Cilan, I like Grass-type Pokémon." - }, - "victory": { - "1": "Er… Is it over now?", - "2": "…What a surprise. You are very strong, aren't you? \n$I guess my brothers wouldn't have been able to defeat you either…", - "3": "…Huh. Looks like my timing was, um, off?" - }, - "defeat": { - "1": "Huh? Did I win?", - "2": "I guess… \n$I suppose I won, because I've been competing with my brothers Chili and Cress, and we all were able to get tougher.", - "3": "It…it was quite a thrilling experience…" - } - }, - "roark": { - "encounter": { - "1": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", - "2": "Here goes! These are my rocking Pokémon, my pride and joy!", - "3": "Rock-type Pokémon are simply the best!", - "4": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!" - }, - "victory": { - "1": "W-what? That can't be! My buffed-up Pokémon!", - "2": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.", - "3": "With skill like yours, it's natural for you to win.", - "4": "Wh-what?! It can't be! Even that wasn't enough?", - "5": "I blew it." - }, - "defeat": { - "1": "See? I'm proud of my rocking battle style!", - "2": "Thanks! The battle gave me confidence that I may be able to beat my dad!", - "3": "I feel like I just smashed through a really stubborn boulder!" - } - }, - "morty": { - "encounter": { - "1": "With a little more, I could see a future in which I meet the legendary Pokémon.\n$You're going to help me reach that level!", - "2": "It's said that a rainbow-hued Pokémon will come down to appear before a truly powerful Trainer. \n$I believed that tale, so I have secretly trained here all my life. As a result, I can now see what others cannot. \n$I see a shadow of the person who will make the Pokémon appear. \n$I believe that person is me! You're going to help me reach that level!", - "3": "Whether you choose to believe or not, mystic power does exist.", - "4": "You can bear witness to the fruits of my training.", - "5": "You must make your soul one with that of Pokémon. Can you do this?", - "6": "Say, do you want to be part of my training?" - }, - "victory": { - "1": "I'm not good enough yet…", - "2": "I see… Your journey has taken you to far-away places and you have witnessed much more than I.\n$I envy you for that…", - "3": "How is this possible…", - "4": "I don't think our potentials are so different.\n$But you seem to have something more than that… So be it.", - "5": "Guess I need more training.", - "6": "That's a shame." - }, - "defeat": { - "1": "I moved… one step ahead again.", - "2": "Fufufu…", - "3": "Wh-what?! It can't be! Even that wasn't enough?", - "4": "I feel like I just smashed through a really stubborn boulder!", - "5": "Ahahahah!", - "6": "I knew I would win!" - } - }, - "crispin": { - "encounter": { - "1": "I wanna win, so that's exactly what I'll do!", - "2": "I battle because I wanna battle! And you know what? That's how it should be!" - }, - "victory": { - "1": "I wanted to win…but I lost!", - "2": "I lost…'cause I couldn't win!" - }, - "defeat": { - "1": "Hey, wait a sec. Did I just win? I think I just won! Talk about satisfying!", - "2": "Wooo! That was amazing!" - } - }, - "amarys": { - "encounter": { - "1": "I want to be the one to help a certain person. That being the case, I cannot afford to lose.\n$… Our battle starts now." - }, - "victory": { - "1": "I am… not enough, I see." - }, - "defeat": { - "1": "Victory belongs to me. Well fought." - } - }, - "lacey": { - "encounter": { - "1": "I'll be facing you with my usual party as a member of the Elite Four." - }, - "victory": { - "1": "That was a great battle!" - }, - "defeat": { - "1": "Let's give your Pokémon a nice round of applause for their efforts!" - } - }, - "drayton": { - "encounter": { - "1": "Man, I love chairs. Don't you love chairs? What lifesavers. \n$I don't get why everyone doesn't just sit all the time. Standing up's tiring work!" - }, - "victory": { - "1": "Guess I should've expected that!" - }, - "defeat": { - "1": "Heh heh! Don't mind me, just scooping up a W over here. I get it if you're upset, but don't go full Kieran on me, OK?" - } - }, - "ramos": { - "encounter": { - "1": "Did yeh enjoy the garden playground I made with all these sturdy plants o' mine?\n$Their strength is a sign o' my strength as a gardener and a Gym Leader! Yeh sure yer up to facing all that?" - }, - "victory": { - "1": "Yeh believe in yer Pokémon… And they believe in yeh, too… It was a fine battle, sprout." - }, - "defeat": { - "1": "Hohoho… Indeed. Frail little blades o' grass'll break through even concrete." - } - }, - "viola": { - "encounter": { - "1": "Whether it's the tears of frustration that follow a loss or the blossoming of joy that comes with victory…\n$They're both great subjects for my camera! Fantastic! This'll be just fantastic! \n$Now come at me!", - "2": "My lens is always focused on victory--I won't let anything ruin this shot!" - }, - "victory": { - "1": "You and your Pokémon have shown me a whole new depth of field! Fantastic! Just fantastic!", - "2": "The world you see through a lens, and the world you see with a Pokémon by your side…\n$The same world can look entirely different depending on your view." - }, - "defeat": { - "1": "The photo from the moment of my victory will be a real winner, all right!", - "2": "Yes! I took some great photos!" - } - }, - "candice": { - "encounter": { - "1": "You want to challenge Candice? Sure thing! I was waiting for someone tough! \n$But I should tell you, I'm tough because I know how to focus.", - "2": "Pokémon, fashion, romance… It's all about focus! \n$I'll show you just what I mean. Get ready to lose!" - }, - "victory": { - "1": "I must say, I'm warmed up to you! I might even admire you a little.", - "2": "Wow! You're great! You've earned my respect! \n$I think your focus and will bowled us over totally. " - }, - "defeat": { - "1": "I sensed your will to win, but I don't lose!", - "2": "See? Candice's focus! My Pokémon's focus is great, too!" - } - }, - "gardenia": { - "encounter": { - "1": "You have a winning aura about you. So, anyway, this will be fun. Let's have our battle!" - }, - "victory": { - "1": "Amazing! You're very good, aren't you?" - }, - "defeat": { - "1": "Yes! My Pokémon and I are perfectly good!" - } - }, - "aaron": { - "encounter": { - "1": "Ok! Let me take you on!" - }, - "victory": { - "1": "Battling is a deep and complex affair…" - }, - "defeat": { - "1": "Victory over an Elite Four member doesn't come easily." - } - }, - "cress": { - "encounter": { - "1": "That is correct! It shall be I and my esteemed Water types that you must face in battle!" - }, - "victory": { - "1": "Lose? Me? I don't believe this." - }, - "defeat": { - "1": "This is the appropriate result when I'm your opponent." - } - }, - "allister": { - "encounter": { - "1": "'M Allister.\nH-here… I go…" - }, - "victory": { - "1": "I nearly lost my mask from the shock… That was…\n$Wow. I can see your skill for what it is." - }, - "defeat": { - "1": "Th-that was ace!" - } - }, - "clay": { - "encounter": { - "1": "Harrumph! Kept me waitin', didn't ya, kid? All right, time to see what ya can do!" - }, - "victory": { - "1": "Man oh man… It feels good to go all out and still be defeated!" - }, - "defeat": { - "1": "What's important is how ya react to losin'. \n$That's why folks who use losin' as fuel to get better are tough." - } - }, - "kofu": { - "encounter": { - "1": "I'mma serve you a full course o' Water-type Pokémon! Don't try to eat 'em, though!" - }, - "victory": { - "1": "Vaultin' Veluza! Yer a lively one, aren't ya! A little TOO lively, if I do say so myself!" - }, - "defeat": { - "1": "You come back to see me again now, ya hear?" - } - }, - "tulip": { - "encounter": { - "1": "Allow me to put my skills to use to make your cute little Pokémon even more beautiful!" - }, - "victory": { - "1": "Your strength has a magic to it that cannot be washed away." - }, - "defeat": { - "1": "You know, in my line of work, people who lack talent in one area or the other often fade away quickly—never to be heard of again." - } - }, - "sidney": { - "encounter": { - "1": "I like that look you're giving me. I guess you'll give me a good match.\n$That's good! Looking real good! All right!\n$You and me, let's enjoy a battle that can only be staged here!" - }, - "victory": { - "1": "Well, how do you like that? I lost! Eh, it was fun, so it doesn't matter." - }, - "defeat": { - "1": "No hard feelings, alright?" - } - }, - "phoebe": { - "encounter": { - "1": "While I trained, I gained the ability to commune with Ghost-type Pokémon. \n$Yes, the bond I developed with Pokémon is extremely tight. \n$So, come on, just try and see if you can even inflict damage on my Pokémon!" - }, - "victory": { - "1": "Oh, darn. I've gone and lost." - }, - "defeat": { - "1": "I look forward to battling you again sometime!" - } - }, - "glacia": { - "encounter": { - "1": "All I have seen are challenges by weak Trainers and their Pokémon. \n$What about you? It would please me to no end if I could go all out against you!" - }, - "victory": { - "1": "You and your Pokémon… How hot your spirits burn!\n$The all-consuming heat overwhelms. \n$It's no surprise that my icy skills failed to harm you." - }, - "defeat": { - "1": "A fiercely passionate battle, indeed." - } - }, - "drake": { - "encounter": { - "1": "For us to battle with Pokémon as partners, do you know what it takes? Do you know what is needed? \n$If you don't, then you will never prevail over me!" - }, - "victory": { - "1": "Superb, it should be said." - }, - "defeat": { - "1": "I gave my all for that battle!" - } - }, - "wallace": { - "encounter": { - "1": "There's something about you… A difference in your demeanor. \n$I think I sense that in you. Now, show me. Show me the power you wield with your Pokémon. \n$And I, in turn, shall present you with a performance of illusions in water by me and my Pokémon!" - }, - "victory": { - "1": "Bravo. I realize now your authenticity and magnificence as a Pokémon Trainer. \n$I find much joy in having met you and your Pokémon. You have proven yourself worthy." - }, - "defeat": { - "1": "A grand illusion!" - } - }, - "lorelei": { - "encounter": { - "1": "No one can best me when it comes to icy Pokémon! Freezing moves are powerful!\n$Your Pokémon will be at my mercy when they are frozen solid! Hahaha! Are you ready?" - }, - "victory": { - "1": "How dare you!" - }, - "defeat": { - "1": "There's nothing you can do once you're frozen." - } - }, - "will": { - "encounter": { - "1": "I have trained all around the world, making my psychic Pokémon powerful.\n$I can only keep getting better! Losing is not an option!" - }, - "victory": { - "1": "I… I can't… believe it…" - }, - "defeat": { - "1": "That was close. I wonder what it is that you lack." - } - }, - "malva": { - "encounter": { - "1": "I feel like my heart might just burst into flames. \n$I'm burning up with my hatred for you, runt!" - }, - "victory": { - "1": "What news… So a new challenger has defeated Malva!" - }, - "defeat": { - "1": "I am delighted! Yes, delighted that I could squash you beneath my heel." - } - }, - "hala": { - "encounter": { - "1": "Old Hala is here to make you holler!" - }, - "victory": { - "1": "I could feel the power you gained on your journey." - }, - "defeat": { - "1": "Haha! What a delightful battle!" - } - }, - "molayne": { - "encounter": { - "1": "I gave the captain position to my cousin Sophocles, but I'm confident in my ability. \n$My strength is like that of a supernova!" - }, - "victory": { - "1": "I certainly found an interesting Trainer to face!" - }, - "defeat": { - "1": "Ahaha. What an interesting battle." - } - }, - "rika": { - "encounter": { - "1": "I'd say I'll go easy on you, but… I'd be lying! Think fast!" - }, - "victory": { - "1": "Not bad, kiddo." - }, - "defeat": { - "1": "Nahahaha! You really are something else, kiddo!" - } - }, - "bruno": { - "encounter": { - "1": "We will grind you down with our superior power! Hoo hah!" - }, - "victory": { - "1": "Why? How could I lose?" - }, - "defeat": { - "1": "You can challenge me all you like, but the results will never change!" - } - }, - "bugsy": { - "encounter": { - "1": "I'm Bugsy! I never lose when it comes to bug Pokémon!" - }, - "victory": { - "1": "Whoa, amazing! You're an expert on Pokémon!\nMy research isn't complete yet. OK, you win." - }, - "defeat": { - "1": "Thanks! Thanks to our battle, I was also able to make progress in my research!" - } - }, - "koga": { - "encounter": { - "1": "Fwahahahaha! Pokémon are not merely about brute force--you shall see soon enough!" - }, - "victory": { - "1": "Ah! You've proven your worth!" - }, - "defeat": { - "1": "Have you learned to fear the techniques of the ninja?" - } - }, - "bertha": { - "encounter": { - "1": "Well, would you show this old lady how much you've learned?" - }, - "victory": { - "1": "Well! Dear child, I must say, that was most impressive. \n$Your Pokémon believed in you and did their best to earn you the win. \n$Even though I've lost, I find myself with this silly grin!" - }, - "defeat": { - "1": "Hahahahah! Looks like this old lady won!" - } - }, - "lenora": { - "encounter": { - "1": "Well then, challenger, I'm going to research how you battle with the Pokémon you've so lovingly raised!" - }, - "victory": { - "1": "My theory about you was correct. You're more than just talented… You're motivated! I salute you!" - }, - "defeat": { - "1": "Ah ha ha! If you lose, make sure to analyze why, and use that knowledge in your next battle!" - } - }, - "siebold": { - "encounter": { - "1": "As long as I am alive, I shall strive onward to seek the ultimate cuisine... and the strongest opponents in battle!" - }, - "victory": { - "1": "I shall store my memory of you and your Pokémon forever away within my heart." - }, - "defeat": { - "1": "Our Pokémon battle was like food for my soul. It shall keep me going. \n$That is how I will pay my respects to you for giving your all in battle!" - } - }, - "roxie": { - "encounter": { - "1": "Get ready! I'm gonna knock some sense outta ya!" - }, - "victory": { - "1": "Wild! Your reason's already more toxic than mine!" - }, - "defeat": { - "1": "Hey, c'mon! Get serious! You gotta put more out there!" - } - }, - "olivia": { - "encounter": { - "1": "No introduction needed here. Time to battle me, Olivia!" - }, - "victory": { - "1": "Really lovely… Both you and your Pokémon…" - }, - "defeat": { - "1": "Mmm-hmm." - } - }, - "poppy": { - "encounter": { - "1": "Oooh! Do you wanna have a Pokémon battle with me?" - }, - "victory": { - "1": "Uagh?! Mmmuuuggghhh…" - }, - "defeat": { - "1": "Yaaay! I did it! I de-feet-ed you! You can come for… For… An avenge match? \n$Come for an avenge match anytime you want!" - } - }, - "agatha": { - "encounter": { - "1": "Pokémon are for battling! I'll show you how a real Trainer battles!" - }, - "victory": { - "1": "Oh my! You're something special, child!" - }, - "defeat": { - "1": "Bahaha. That's how a proper battle's done!" - } - }, - "flint": { - "encounter": { - "1": "Hope you're warmed up, cause here comes the Big Bang!" - }, - "victory": { - "1": "Incredible! Your moves are so hot, they make mine look lukewarm!" - }, - "defeat": { - "1": "Huh? Is that it? I think you need a bit more passion." - } - }, - "grimsley": { - "encounter": { - "1": "The winner takes everything, and there's nothing left for the loser." - }, - "victory": { - "1": "When one loses, they lose everything… The next thing I'll look for will be victory, too!" - }, - "defeat": { - "1": "If somebody wins, the person who fought against that person will lose." - } - }, - "caitlin": { - "encounter": { - "1": "It's me who appeared when the flower opened up. You who have been waiting…\n$You look like a Pokémon Trainer with refined strength and deepened kindness. \n$What I look for in my opponent is superb strength… \n$Please unleash your power to the fullest!" - }, - "victory": { - "1": "My Pokémon and I learned so much! I offer you my thanks." - }, - "defeat": { - "1": "I aspire to claim victory with elegance and grace." - } - }, - "diantha": { - "encounter": { - "1": "Battling against you and your Pokémon, all of you brimming with hope for the future… \n$Honestly, it just fills me up with energy I need to keep facing each new day! It does!" - }, - "victory": { - "1": "Witnessing the noble spirits of you and your Pokémon in battle has really touched my heart…" - }, - "defeat": { - "1": "Oh, fantastic! What did you think? My team was pretty cool, right?" - } - }, - "wikstrom": { - "encounter": { - "1": "Well met, young challenger! Verily am I the famed blade of hardened steel, Duke Wikstrom! \n$Let the battle begin! En garde!" - }, - "victory": { - "1": "Glorious! The trust that you share with your honorable Pokémon surpasses even mine!" - }, - "defeat": { - "1": "What manner of magic is this? My heart, it doth hammer ceaselessly in my breast! \n$Winning against such a worthy opponent doth give my soul wings--thus do I soar!" - } - }, - "acerola": { - "encounter": { - "1": "Battling is just plain fun! Come on, I can take you!" - }, - "victory": { - "1": "I'm… I'm speechless! How did you do it?!" - }, - "defeat": { - "1": "Ehaha! What an amazing victory!" - } - }, - "larry_elite": { - "encounter": { - "1": "Hello there… It's me, Larry.\n$I serve as a member of the Elite Four too, yes… Unfortunately for me." - }, - "victory": { - "1": "Well, that took the wind from under our wings…" - }, - "defeat": { - "1": "It's time for a meeting with the boss." - } - }, - "lance": { - "encounter": { - "1": "I've been waiting for you. Allow me to test your skill.", - "2": "I thought that you would be able to get this far. Let's get this started." - }, - "victory": { - "1": "You got me. You are magnificent!", - "2": "I never expected another trainer to beat me… I'm surprised." - }, - "defeat": { - "1": "That was close. Want to try again?", - "2": "It's not that you are weak. Don't let it bother you." - } - }, - "karen": { - "encounter": { - "1": "I am Karen. Would you care for a showdown with my Dark-type Pokémon?", - "2": "I am unlike those you've already met.", - "3": "You've assembled a charming team. Our battle should be a good one." - }, - "victory": { - "1": "No! I can't win. How did you become so strong?", - "2": "I will not stray from my chosen path.", - "3": "The Champion is looking forward to meeting you." - }, - "defeat": { - "1": "That's about what I expected.", - "2": "Well, that was relatively entertaining.", - "3": "Come visit me anytime." - } - }, - "milo": { - "encounter": { - "1": "Sure seems like you understand Pokémon real well. \n$This is gonna be a doozy of a battle! \n$I'll have to Dynamax my Pokémon if I want to win!" - }, - "victory": { - "1": "The power of Grass has wilted… What an incredible Challenger!" - }, - "defeat": { - "1": "This'll really leave you in shock and awe." - } - }, - "lucian": { - "encounter": { - "1": "Just a moment, please. The book I'm reading has nearly reached its thrilling climax… \n$The hero has obtained a mystic sword and is about to face their final trial… Ah, never mind. \n$Since you've made it this far, I'll put that aside and battle you. \n$Let me see if you'll achieve as much glory as the hero of my book!" - }, - "victory": { - "1": "I see… It appears you've put me in checkmate." - }, - "defeat": { - "1": "I have a reputation to uphold." - } - }, - "drasna": { - "encounter": { - "1": "You must be a strong Trainer. Yes, quite strong indeed…\n$That's just wonderful news! Facing opponents like you and your team will make my Pokémon grow like weeds!" - }, - "victory": { - "1": "Oh, dear me. That sure was a quick battle… I do hope you'll come back again sometime!" - }, - "defeat": { - "1": "How can this be?" - } - }, - "kahili": { - "encounter": { - "1": "So, here you are… Why don't we see who the winds favor today, you… Or me?" - }, - "victory": { - "1": "It's frustrating to me as a member of the Elite Four, but it seems your strength is the real deal." - }, - "defeat": { - "1": "That was an ace!" - } - }, - "hassel": { - "encounter": { - "1": "Prepare to learn firsthand how the fiery breath of ferocious battle feels!" - }, - "victory": { - "1": "Fortune smiled on me this time, but… \n$Judging from how the match went, who knows if I will be so lucky next time." - }, - "defeat": { - "1": "That was an ace!" - } - }, - "blue": { - "encounter": { - "1": "You must be pretty good to get this far." - }, - "victory": { - "1": "I've only lost to him and now to you… Him? Hee, hee…" - }, - "defeat": { - "1": "See? My power is what got me here." - } - }, - "piers": { - "encounter": { - "1": "Get ready for a mosh pit with me and my party! Spikemuth, it's time to rock!" - }, - "victory": { - "1": "Me an' my team gave it our best. Let's meet up again for a battle some time…" - }, - "defeat": { - "1": "My throat's ragged from shoutin'… But 'at was an excitin' battle!" - } - }, - "red": { - "encounter": { - "1": "…!" - }, - "victory": { - "1": "…?" - }, - "defeat": { - "1": "…!" - } - }, - "jasmine": { - "encounter": { - "1": "Oh… Your Pokémon are impressive. I think I will enjoy this." - }, - "victory": { - "1": "You are truly strong. I'll have to try much harder, too." - }, - "defeat": { - "1": "I never expected to win." - } - }, - "lance_champion": { - "encounter": { - "1": "I am still the Champion. I won't hold anything back." - }, - "victory": { - "1": "This is the emergence of a new Champion." - }, - "defeat": { - "1": "I successfully defended my Championship." - } - }, - "steven": { - "encounter": { - "1": "Tell me… What have you seen on your journey with your Pokémon? \n$What have you felt, meeting so many other Trainers out there? \n$Traveling this rich land… Has it awoken something inside you? \n$I want you to come at me with all that you've learned. \n$My Pokémon and I will respond in turn with all that we know!" - }, - "victory": { - "1": "So I, the Champion, fall in defeat…" - }, - "defeat": { - "1": "That was time well spent! Thank you!" - } - }, - "cynthia": { - "encounter": { - "1": "I, Cynthia, accept your challenge! There won't be any letup from me!" - }, - "victory": { - "1": "No matter how fun the battle is, it will always end sometime…" - }, - "defeat": { - "1": "Even if you lose, never lose your love of Pokémon." - } - }, - "iris": { - "encounter": { - "1": "Know what? I really look forward to having serious battles with strong Trainers! \n$I mean, come on! The Trainers who make it here are Trainers who desire victory with every fiber of their being! \n$And they are battling alongside Pokémon that have been through countless difficult battles! \n$If I battle with people like that, not only will I get stronger, my Pokémon will, too! \n$And we'll get to know each other even better! OK! Brace yourself! \n$I'm Iris, the Pokémon League Champion, and I'm going to defeat you!" - }, - "victory": { - "1": "Aghhhh… I did my best, but we lost…" - }, - "defeat": { - "1": "Yay! We won!" - } - }, - "hau": { - "encounter": { - "1": "I wonder if a Trainer battles differently depending on whether they're from a warm region or a cold region.\n$Let's test it out!" - }, - "victory": { - "1": "That was awesome! I think I kinda understand your vibe a little better now!" - }, - "defeat": { - "1": "Ma-an, that was some kinda battle!" - } - }, - "geeta": { - "encounter": { - "1": "I decided to throw my hat in the ring once more. \n$Come now… Show me the fruits of your training." - }, - "victory": { - "1": "I eagerly await news of all your achievements!" - }, - "defeat": { - "1": "What's the matter? This isn't all, is it?" - } - }, - "nemona": { - "encounter": { - "1": "Yesss! I'm so psyched! Time for us to let loose!" - }, - "victory": { - "1": "Well, that stinks, but I still had fun! I'll getcha next time!" - }, - "defeat": { - "1": "Well, that was a great battle! Fruitful for sure." - } - }, - "leon": { - "encounter": { - "1": "We're gonna have an absolutely champion time!" - }, - "victory": { - "1": "My time as Champion is over… \n$But what a champion time it's been! \n$Thank you for the greatest battle I've ever had!" - }, - "defeat": { - "1": "An absolute champion time, that was!" - } - }, - "whitney": { - "encounter": { - "1": "Hey! Don't you think Pokémon are, like, super cute?" - }, - "victory": { - "1": "Waaah! Waaah! You're so mean!" - }, - "defeat": { - "1": "And that's that!" - } - }, - "chuck": { - "encounter": { - "1": "Hah! You want to challenge me? Are you brave or just ignorant?" - }, - "victory": { - "1": "You're strong! Would you please make me your apprentice?" - }, - "defeat": { - "1": "There. Do you realize how much more powerful I am than you?" - } - }, - "katy": { - "encounter": { - "1": "Don't let your guard down unless you would like to find yourself knocked off your feet!" - }, - "victory": { - "1": "All of my sweet little Pokémon dropped like flies!" - }, - "defeat": { - "1": "Eat up, my cute little Vivillon!" - } - }, - "pryce": { - "encounter": { - "1": "Youth alone does not ensure victory! Experience is what counts." - }, - "victory": { - "1": "Outstanding! That was perfect. Try not to forget what you feel now." - }, - "defeat": { - "1": "Just as I envisioned." - } - }, - "clair": { - "encounter": { - "1": "Do you know who I am? And you still dare to challenge me?" - }, - "victory": { - "1": "I wonder how far you can get with your skill level. This should be fascinating." - }, - "defeat": { - "1": "That's that." - } - }, - "maylene": { - "encounter": { - "1": "I've come to challenge you now, and I won't hold anything back. \n$Please prepare yourself for battle!" - }, - "victory": { - "1": "I admit defeat…" - }, - "defeat": { - "1": "That was awesome." - } - }, - "fantina": { - "encounter": { - "1": "You shall challenge me, yes? But I shall win. \n$That is what the Gym Leader of Hearthome does, non?" - }, - "victory": { - "1": "You are so fantastically strong. I know why I have lost." - }, - "defeat": { - "1": "I am so, so, very happy!" - } - }, - "byron": { - "encounter": { - "1": "Trainer! You're young, just like my son, Roark. \n$With more young Trainers taking charge, the future of Pokémon is bright! \n$So, as a wall for young people, I'll take your challenge!" - }, - "victory": { - "1": "Hmm! My sturdy Pokémon--defeated!" - }, - "defeat": { - "1": "Gwahahaha! How were my sturdy Pokémon?!" - } - }, - "olympia": { - "encounter": { - "1": "An ancient custom deciding one's destiny. The battle begins!" - }, - "victory": { - "1": "Create your own path. Let nothing get in your way. Your fate, your future." - }, - "defeat": { - "1": "Our path is clear now." - } - }, - "volkner": { - "encounter": { - "1": "Since you've come this far, you must be quite strong…\n$I hope you're the Trainer who'll make me remember how fun it is to battle!" - }, - "victory": { - "1": "You've got me beat…\n$Your desire and the noble way your Pokémon battled for you… \n$I even felt thrilled during our match. That was a very good battle." - }, - "defeat": { - "1": "It was not shocking at all… \n$That is not what I wanted!" - } - }, - "burgh": { - "encounter": { - "1": "M'hm… If I win this battle, I feel like I can draw a picture unlike any before it. \n$OK! I can hear my battle muse loud and clear. Let's get straight to it!", - "2": "Of course, I'm really proud of all of my Pokémon! \n$Well now… Let's get right to it!" - }, - "victory": { - "1": "Is it over? Has my muse abandoned me?", - "2": "Hmm… It's over! You're incredible!" - }, - "defeat": { - "1": "Wow… It's beautiful somehow, isn't it…", - "2": "Sometimes I hear people say something was an ugly win. \n$I think if you're trying your best, any win is beautiful." - } - }, - "elesa": { - "encounter": { - "1": "C'est fini! When I'm certain of that, I feel an electric jolt run through my body! \n$I want to feel the sensation, so now my beloved Pokémon are going to make your head spin!" - }, - "victory": { - "1": "I meant to make your head spin, but you shocked me instead." - }, - "defeat": { - "1": "That was unsatisfying somehow… Will you give it your all next time?" - } - }, - "skyla": { - "encounter": { - "1": "It's finally time for a showdown! That means the Pokémon battle that decides who's at the top, right? \n$I love being on the summit! 'Cause you can see forever and ever from high places! \n$So, how about you and I have some fun?" - }, - "victory": { - "1": "Being your opponent in battle is a new source of strength to me. Thank you!" - }, - "defeat": { - "1": "Win or lose, you always gain something from a battle, right?" - } - }, - "brycen": { - "encounter": { - "1": "There is also strength in being with other people and Pokémon. \n$Receiving their support makes you stronger. I'll show you this power!" - }, - "victory": { - "1": "The wonderful combination of you and your Pokémon! What a beautiful friendship!" - }, - "defeat": { - "1": "Extreme conditions really test you and train you!" - } - }, - "drayden": { - "encounter": { - "1": "What I want to find is a young Trainer who can show me a bright future. \n$Let's battle with everything we have: your skill, my experience, and the love we've raised our Pokémon with!" - }, - "victory": { - "1": "This intense feeling that floods me after a defeat… I don't know how to describe it." - }, - "defeat": { - "1": "Harrumph! I know your ability is greater than that!" - } - }, - "grant": { - "encounter": { - "1": "There is only one thing I wish for. \n$That by surpassing one another, we find a way to even greater heights." - }, - "victory": { - "1": "You are a wall that I am unable to surmount!" - }, - "defeat": { - "1": "Do not give up. \n$That is all there really is to it. \n$The most important lessons in life are simple." - } - }, - "korrina": { - "encounter": { - "1": "Time for Lady Korrina's big appearance!" - }, - "victory": { - "1": "It's your very being that allows your Pokémon to evolve!" - }, - "defeat": { - "1": "What an explosive battle!" - } - }, - "clemont": { - "encounter": { - "1": "Oh! I'm glad that we got to meet!" - }, - "victory": { - "1": "Your passion for battle inspires me!" - }, - "defeat": { - "1": "Looks like my Trainer-Grow-Stronger Machine, Mach 2 is really working!" - } - }, - "valerie": { - "encounter": { - "1": "Oh, if it isn't a young Trainer… It is lovely to get to meet you like this. \n$Then I suppose you have earned yourself the right to a battle, as a reward for your efforts. \n$The elusive Fairy may appear frail as the breeze and delicate as a bloom, but it is strong." - }, - "victory": { - "1": "I hope that you will find things worth smiling about tomorrow…" - }, - "defeat": { - "1": "Oh goodness, what a pity…" - } - }, - "wulfric": { - "encounter": { - "1": "You know what? We all talk big about what you learn from battling and bonds and all that…\n$But really, I just do it 'cause it's fun. \n$Who cares about the grandstanding? Let's get to battling!" - }, - "victory": { - "1": "Outstanding! I'm tough as an iceberg, but you smashed me through and through!" - }, - "defeat": { - "1": "Tussle with me and this is what happens!" - } - }, - "kabu": { - "encounter": { - "1": "Every Trainer and Pokémon trains hard in pursuit of victory. \n$But that means your opponent is also working hard to win. \n$In the end, the match is decided by which side is able to unleash their true potential." - }, - "victory": { - "1": "I'm glad I could battle you today!" - }, - "defeat": { - "1": "That's a great way for me to feel my own growth!" - } - }, - "bea": { - "encounter": { - "1": "Do you have an unshakable spirit that won't be moved, no matter how you are attacked? \n$I think I'll just test that out, shall I?" - }, - "victory": { - "1": "I felt the fighting spirit of your Pokémon as you led them in battle." - }, - "defeat": { - "1": "That was the best sort of match anyone could ever hope for." - } - }, - "opal": { - "encounter": { - "1": "Let me have a look at how you and your partner Pokémon behave!" - }, - "victory": { - "1": "Your pink is still lacking, but you're an excellent Trainer with excellent Pokémon." - }, - "defeat": { - "1": "Too bad for you, I guess." - } - }, - "bede": { - "encounter": { - "1": "I suppose I should prove beyond doubt just how pathetic you are and how strong I am." - }, - "victory": { - "1": "I see… Well, that's fine. I wasn't really trying all that hard anyway." - }, - "defeat": { - "1": "Not a bad job, I suppose." - } - }, - "gordie": { - "encounter": { - "1": "So, let's get this over with." - }, - "victory": { - "1": "I just want to climb into a hole… Well, I guess it'd be more like falling from here." - }, - "defeat": { - "1": "Battle like you always do, victory will follow!" - } - }, - "marnie": { - "encounter": { - "1": "The truth is, when all's said and done… I really just wanna become Champion for myself! \n$So don't take it personal when I kick your butt!" - }, - "victory": { - "1": "OK, so I lost… But I got to see a lot of the good points of you and your Pokémon!" - }, - "defeat": { - "1": "Hope you enjoyed our battle tactics." - } - }, - "raihan": { - "encounter": { - "1": "I'm going to defeat the Champion, win the whole tournament, and prove to the world just how strong the great Raihan really is!" - }, - "victory": { - "1": "I look this good even when I lose. \n$It's a real curse. \n$Guess it's time for another selfie!" - }, - "defeat": { - "1": "Let's take a selfie to remember this." - } - }, - "brassius": { - "encounter": { - "1": "I assume you are ready? Let our collaborative work of art begin!" - }, - "victory": { - "1": "Ahhh…vant-garde!" - }, - "defeat": { - "1": "I will begin on a new piece at once!" - } - }, - "iono": { - "encounter": { - "1": "How're ya feelin' about this battle?\n$...\n$Let's get this show on the road! How strong is our challenger? \n$I 'unno! Let's find out together!" - }, - "victory": { - "1": "You're as flashy and bright as a 10,000,000-volt Thunderbolt, friendo!" - }, - "defeat": { - "1": "Your eyeballs are MINE!" - } - }, - "larry": { - "encounter": { - "1": "When all's said and done, simplicity is strongest." - }, - "victory": { - "1": "A serving of defeat, huh?" - }, - "defeat": { - "1": "I'll call it a day." - } - }, - "ryme": { - "encounter": { - "1": "Come on, baby! Rattle me down to the bone!" - }, - "victory": { - "1": "You're cool, my friend—you move my SOUL!" - }, - "defeat": { - "1": "Later, baby!" - } - }, - "grusha": { - "encounter": { - "1": "All I need to do is make sure the power of my Pokémon chills you to the bone!" - }, - "victory": { - "1": "Your burning passion… I kinda like it, to be honest." - }, - "defeat": { - "1": "Things didn't heat up for you." - } - }, - "marnie_elite": { - "encounter": { - "1": "You've made it this far, huh? Let's see if you can handle my Pokémon!", - "2": "I'll give it my best shot, but don't think I'll go easy on you!" - }, - "victory": { - "1": "I can't believe I lost... But you deserved that win. Well done!", - "2": "Looks like I've still got a lot to learn. Great battle, though!" - }, - "defeat": { - "1": "You put up a good fight, but I've got the edge! Better luck next time!", - "2": "Seems like my training's paid off. Thanks for the battle!" - } - }, - "nessa_elite": { - "encounter": { - "1": "The tides are turning in my favor. Ready to get swept away?", - "2": "Let's make some waves with this battle! I hope you're prepared!" - }, - "victory": { - "1": "You navigated those waters perfectly... Well done!", - "2": "Looks like my currents were no match for you. Great job!" - }, - "defeat": { - "1": "Water always finds a way. That was a refreshing battle!", - "2": "You fought well, but the ocean's power is unstoppable!" - } - }, - "bea_elite": { - "encounter": { - "1": "Prepare yourself! My fighting spirit burns bright!", - "2": "Let's see if you can keep up with my relentless pace!" - }, - "victory": { - "1": "Your strength... It's impressive. You truly deserve this win.", - "2": "I've never felt this intensity before. Amazing job!" - }, - "defeat": { - "1": "Another victory for my intense training regimen! Well done!", - "2": "You've got strength, but I trained harder. Great battle!" - } - }, - "allister_elite": { - "encounter": { - "1": "Shadows fall... Are you ready to face your fears?", - "2": "Let's see if you can handle the darkness that I command." - }, - "victory": { - "1": "You've dispelled the shadows... For now. Well done.", - "2": "Your light pierced through my darkness. Great job." - }, - "defeat": { - "1": "The shadows have spoken... Your strength isn't enough.", - "2": "Darkness triumphs... Maybe next time you'll see the light." - } - }, - "raihan_elite": { - "encounter": { - "1": "Storm's brewing! Let's see if you can weather this fight!", - "2": "Get ready to face the eye of the storm!" - }, - "victory": { - "1": "You've bested the storm... Incredible job!", - "2": "You rode the winds perfectly... Great battle!" - }, - "defeat": { - "1": "Another storm weathered, another victory claimed! Well fought!", - "2": "You got caught in my storm! Better luck next time!" - } - }, - "alder": { - "encounter": { - "1": "Prepare yourself for a match against the strongest Trainer in Unova!" - }, - "victory": { - "1": "Well done! You certainly are an unmatched talent." - }, - "defeat": { - "1": "A fresh wind blows through my heart...\n$What an extraordinary effort!" - } - }, - "kieran": { - "encounter": { - "1": "Through hard work, I become stronger and stronger!\n$I don't lose." - }, - "victory": { - "1": "I don't believe it...\n$What a fun and heart-pounding battle!" - }, - "defeat": { - "1": "Wowzers, what a battle!\n$Time for you to train even harder." - } - }, - "rival": { - "encounter": { - "1": "@c{smile}Hey, I was looking for you! I knew you were eager to get going but I expected at least a goodbye…$@c{smile_eclosed}So you're really pursuing your dream after all? I almost can't believe it.$@c{serious_smile_fists}Since we're here, how about a battle?\nAfter all, I want to make sure you're ready.$@c{serious_mopen_fists}Don't hold back, I want you to give me everything you've got!" - }, - "victory": { - "1": "@c{shock}Wow… You cleaned me out.\nAre you actually a beginner?$@c{smile}Maybe it was a bit of luck but…Who knows you might just be able to go all the way.$By the way, the professor asked me to give you these items. They look pretty cool.$@c{serious_smile_fists}Good luck out there!" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}There you are! I've been looking everywhere for you!\n@c{angry_mopen}Did you forget to say goodbye to your best friend?\n$@c{smile_ehalf}You're going after your dream, huh?\nThat day is really today isn't it…\n$@c{smile}Anyway, I'll forgive you for forgetting me, but on one condition. @c{smile_wave_wink}You have to battle me!\n$@c{angry_mopen}Give it your all! Wouldn't want your adventure to be over before it started, right?" - }, - "victory": { - "1": "@c{shock}You just started and you're already this strong?!@d{96}\n@c{angry}You totally cheated, didn't you?\n$@c{smile_wave_wink}Just kidding!@d{64} @c{smile_eclosed}I lost fair and square… I have a feeling you're going to do really well out there.\n$@c{smile}By the way, the professor wanted me to give you some items. Hopefully they're helpful!\n$@c{smile_wave}Do your best like always! I believe in you!\n" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}Hey, you're here too?\n@c{smile_eclosed}Still a perfect record, huh…?\n$@c{serious_mopen_fists}I know it kind of looks like I followed you here, but that's mostly not true.\n$@c{serious_smile_fists}Honestly though, I've been itching for a rematch since you beat me back at home.\n$I've been doing a lot of my own training so I'll definitely put up a fight this time.\n$@c{serious_mopen_fists}Don't hold back, just like before!\nLet's go!" - }, - "victory": { - "1": "@c{neutral_eclosed}Oh. I guess I was overconfident.\n$@c{smile}That's alright, though. I figured this might happen.\n@c{serious_mopen_fists}It just means I need to try harder for next time!\n\n$@c{smile}Oh, not that you really need the help, but I had an extra one of each of these lying around and figured you might want them.\n\n$@c{serious_smile_fists}Don't expect another one after this, though!\nI can't keep giving my opponent an advantage after all." - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}Oh, fancy meeting you here. Looks like you're still undefeated. @c{angry_mopen}Huh… Not bad!\n$@c{angry_mopen}I know what you're thinking, and no, I wasn't creeping on you. @c{smile_eclosed}I just happened to be in the area.\n$@c{smile_ehalf}I'm happy for you but I just want to let you know that it's OK to lose sometimes.\n$@c{smile}We learn from our mistakes, often more than we would if we kept succeeding.\n$@c{angry_mopen}In any case, I've been training hard for our rematch, so you'd better give it your all!" - }, - "victory": { - "1": "@c{neutral}I… wasn't supposed to lose that time…\n$@c{smile}Aw well. That just means I'll have to train even harder for next time!\n$@c{smile_wave}I also got you another two of these!\n@c{smile_wave_wink}No need to thank me~.\n$@c{angry_mopen}This is the last one, though! You won't be getting anymore freebies from me after this!" - }, - "defeat": { - "1": "It's OK to lose sometimes…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}Hey, look who it is! It's been a while.\n@c{neutral}You're… still undefeated? Huh.\n$@c{neutral_eclosed}Things have been kind of… strange.\nIt's not the same back home without you.\n$@c{serious}I know it's selfish, but I need to get this off my chest.\n@c{neutral_eclosed}I think you're in over your head here.\n$@c{serious}Never losing once is just unrealistic.\nWe need to lose sometimes in order to grow.\n$@c{neutral_eclosed}You've had a great run but there's still so much ahead, and it only gets harder. @c{neutral}Are you prepared for that?\n$@c{serious_mopen_fists}If so, prove it to me." - }, - "victory": { - "1": "@c{angry_mhalf}This is ridiculous… I've hardly stopped training…\nHow are we still so far apart?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}Long time no see! Still haven't lost, huh.\n@c{angry}You're starting to get on my nerves. @c{smile_wave_wink}Just kidding!\n$@c{smile_ehalf}But really, don't you miss home by now? Or… me?\nI… I mean, we've really missed you.\n$@c{smile_eclosed}I support you in your dream and everything, but the reality is you're going to lose sooner or later.\n$@c{smile}And when you do, I'll be there for you like always.\n@c{angry_mopen}Now, let me show you how strong I've become!" - }, - "victory": { - "1": "@c{shock}After all that… it wasn't enough…?\nYou'll never come back at this rate…" - }, - "defeat": { - "1": "You gave it your best, now let's go home." - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}Hey.\n$I won't mince words or pleasantries with you.\n@c{neutral_eclosed}I'm here to win, plain and simple.\n$@c{serious_mhalf_fists}I've learned to maximize my potential by putting all my time into training.\n$@c{smile}You get a lot of extra time when you cut out the unnecessary sleep and social interaction.\n$@c{serious_mopen_fists}None of that matters anymore, not until I win.\n$@c{neutral_eclosed}I've even reached the point where I don't lose anymore.\n@c{smile_eclosed}I suppose your philosophy wasn't so wrong after all.\n$@c{angry_mhalf}Losing is for the weak, and I'm not weak anymore.\n$@c{serious_mopen_fists}Prepare yourself." - }, - "victory": { - "1": "@c{neutral}What…@d{64} What are you?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}It's me! You didn't forget about me again… did you?\n$@c{smile}You should be proud of how far you made it. Congrats!\nBut it looks like it's the end of your journey.\n$@c{smile_eclosed}You've awoken something in me I never knew was there.\nIt seems like all I do now is train.\n$@c{smile_ehalf}I hardly even eat or sleep now, I just train my Pokémon all day, getting stronger every time.\n$@c{neutral}In fact, I… hardly recognize myself.\n$And now, I've finally reached peak performance.\nI don't think anyone could beat me now.\n$And you know what? It's all because of you.\n@c{smile_ehalf}I don't know whether to thank you or hate you.\n$@c{angry_mopen}Prepare yourself." - }, - "victory": { - "1": "@c{neutral}What…@d{64} What are you?" - }, - "defeat": { - "1": "$@c{smile}You should be proud of how far you made it." - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}We meet again.\n$@c{neutral}I've had some time to reflect on all this.\nThere's a reason this all seems so strange.\n$@c{neutral_eclosed}Your dream, my drive to beat you…\nIt's all a part of something greater.\n$@c{serious}This isn't about me, or about you… This is about the world, @c{serious_mhalf_fists}and it's my purpose to push you to your limits.\n$@c{neutral_eclosed}Whether I've fulfilled that purpose I can't say, but I've done everything in my power.\n$@c{neutral}This place we ended up in is terrifying… Yet somehow I feel unphased, like I've been here before.\n$@c{serious_mhalf_fists}You feel the same, don't you?\n$@c{serious}…and it's like something here is speaking to me.\nThis is all the world's known for a long time now.\n$Those times we cherished together that seem so recent are nothing but a distant memory.\n$@c{neutral_eclosed}Who can say whether they were ever even real in the first place.\n$@c{serious_mopen_fists}You need to keep pushing, because if you don't, it will never end. You're the only one who can do this.\n$@c{serious_smile_fists}I hardly know what any of this means, I just know that it's true.\n$@c{serious_mopen_fists}If you can't defeat me here and now, you won't stand a chance." - }, - "victory": { - "1": "@c{smile_eclosed}It looks like my work is done here.\n$I want you to promise me one thing.\n@c{smile}After you heal the world, please come home." - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}So it's just us again.\n$@c{smile_eclosed}You know, I keep going around and around in my head…\n$@c{smile_ehalf}There's something to all this, why everything seems so strange now…\n$@c{smile}You have your dream, and I have this ambition in me…\n$I just can't help but feel there's a greater purpose to all this, to what we're doing, you and I.\n$@c{smile_eclosed}I think I'm supposed to push you… to your limits.\n$@c{smile_ehalf}I'm not sure if I've been doing a good job at that, but I've tried my best up to now.\n$It's something about this strange and dreadful place… Everything seems so clear…\n$This… is all the world's known for a long time now.\n$@c{smile_eclosed}It's like I can barely remember the memories we cherished together.\n$@c{smile_ehalf}Were they even real? They seem so far away now…\n$@c{angry_mopen}You need to keep pushing, because if you don't, it will never end. You're the only one who can do this.\n$@c{smile_ehalf}I… don't know what all this means… but I feel it's true.\n$@c{neutral}If you can't defeat me here and now, you won't stand a chance." - }, - "victory": { - "1": "@c{smile_ehalf}I… I think I fulfilled my purpose…\n$@c{smile_eclosed}Promise me… After you heal the world… Please… come home safe.\n$@c{smile_ehalf}…Thank you." - } - } -} diff --git a/src/locales/en/dialogue-final-boss-male.json b/src/locales/en/dialogue-final-boss-male.json deleted file mode 100644 index 2e03b6e15e3..00000000000 --- a/src/locales/en/dialogue-final-boss-male.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "encounter": "It appears the time has finally come once again.\nYou know why you have come here, do you not?\n$You were drawn here, because you have been here before.\nCountless times.\n$Though, perhaps it can be counted.\nTo be precise, this is in fact your {{cycleCount}} cycle.\n$Each cycle your mind reverts to its former state.\nEven so, somehow, remnants of your former selves remain.\n$Until now you have yet to succeed, but I sense a different presence in you this time.\n\n$You are the only one here, though it is as if there is… another.\n$Will you finally prove a formidable challenge to me?\nThe challenge I have longed after for millennia?\n$We begin.", - "firstStageWin": "I see. The presence I felt was indeed real.\nIt appears I no longer need to hold back.\n$Do not disappoint me.", - "secondStageWin": "…Magnificent." -} \ No newline at end of file diff --git a/src/locales/en/dialogue-final-boss-female.json b/src/locales/en/dialogue-final-boss.json similarity index 96% rename from src/locales/en/dialogue-final-boss-female.json rename to src/locales/en/dialogue-final-boss.json index 2e03b6e15e3..48a5aa439f3 100644 --- a/src/locales/en/dialogue-final-boss-female.json +++ b/src/locales/en/dialogue-final-boss.json @@ -1,5 +1,6 @@ { "encounter": "It appears the time has finally come once again.\nYou know why you have come here, do you not?\n$You were drawn here, because you have been here before.\nCountless times.\n$Though, perhaps it can be counted.\nTo be precise, this is in fact your {{cycleCount}} cycle.\n$Each cycle your mind reverts to its former state.\nEven so, somehow, remnants of your former selves remain.\n$Until now you have yet to succeed, but I sense a different presence in you this time.\n\n$You are the only one here, though it is as if there is… another.\n$Will you finally prove a formidable challenge to me?\nThe challenge I have longed after for millennia?\n$We begin.", + "encounter_female": null, "firstStageWin": "I see. The presence I felt was indeed real.\nIt appears I no longer need to hold back.\n$Do not disappoint me.", "secondStageWin": "…Magnificent." } \ No newline at end of file diff --git a/src/locales/en/dialogue-misc-male.json b/src/locales/en/dialogue-misc-male.json deleted file mode 100644 index f5c63a85410..00000000000 --- a/src/locales/en/dialogue-misc-male.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ending": "@c{smile}Oh? You won?@d{96} @c{smile_eclosed}I guess I should've known.\nBut, you're back now.\n$@c{smile}It's over.@d{64} You ended the loop.\n$@c{serious_smile_fists}You fulfilled your dream too, didn't you?\nYou didn't lose even once.\n$@c{neutral}I'm the only one who'll remember what you did.@d{96}\nI guess that's okay, isn't it?\n$@c{serious_smile_fists}Your legend will always live on in our hearts.\n$@c{smile_eclosed}Anyway, I've had about enough of this place, haven't you? Let's head home.\n$@c{serious_smile_fists}Maybe when we get back, we can have another battle?\nIf you're up to it.", - "ending_female": "@c{shock}You're back?@d{32} Does that mean…@d{96} you won?!\n@c{smile_ehalf}I should have known you had it in you.\n$@c{smile_eclosed}Of course… I always had that feeling.\n@c{smile}It's over now, right? You ended the loop.\n$@c{smile_ehalf}You fulfilled your dream too, didn't you?\nYou didn't lose even once.\n$I'll be the only one to remember what you did.\n@c{angry_mopen}I'll try not to forget!\n$@c{smile_wave_wink}Just kidding!@d{64} @c{smile}I'd never forget.@d{32}\nYour legend will live on in our hearts.\n$@c{smile_wave}Anyway,@d{64} it's getting late…@d{96} I think?\nIt's hard to tell in this place.\n$Let's go home. @c{smile_wave_wink}Maybe tomorrow, we can have another battle, for old time's sake?", - "ending_endless": "Congratulations on reaching the current end!\nMore content is coming soon.", - "ending_name": "Devs" -} \ No newline at end of file diff --git a/src/locales/en/dialogue-misc-female.json b/src/locales/en/dialogue-misc.json similarity index 100% rename from src/locales/en/dialogue-misc-female.json rename to src/locales/en/dialogue-misc.json diff --git a/src/locales/en/dialogue-male.json b/src/locales/en/dialogue.json similarity index 95% rename from src/locales/en/dialogue-male.json rename to src/locales/en/dialogue.json index ed4082f411e..7bb2df0b1cd 100644 --- a/src/locales/en/dialogue-male.json +++ b/src/locales/en/dialogue.json @@ -3,24 +3,31 @@ "encounter": { "1": "Hey, wanna battle?", "2": "Are you a new trainer too?", + "2_female": null, "3": "Hey, I haven't seen you before. Let's battle!", "4": "I just lost, so I'm trying to find more Pokémon.\nWait! You look weak! Come on, let's battle!", + "4_female": null, "5": "Have we met or not? I don't really remember. Well, I guess it's nice to meet you anyway!", "6": "All right! Let's go!", "7": "All right! Here I come! I'll show you my power!", "8": "Haw haw haw... I'll show you how hawesome my Pokémon are!", "9": "No need to waste time saying hello. Bring it on whenever you're ready!", + "9_female": null, "10": "Don't let your guard down, or you may be crying when a kid beats you.", "11": "I've raised my Pokémon with great care. You're not allowed to hurt them!", "12": "Glad you made it! It won't be an easy job from here.", - "13": "The battles continue forever! Welcome to the world with no end!" + "12_female": null, + "13": "The battles continue forever! Welcome to the world with no end!", + "13_female": null }, "victory": { "1": "Wow! You're strong!", + "1_female": null, "2": "I didn't stand a chance, huh?", "3": "I'll find you again when I'm older and beat you!", "4": "Ugh. I don't have any more Pokémon.", "5": "No way… NO WAY! How could I lose again…", + "5_female": null, "6": "No! I lost!", "7": "Whoa! You are incredible! I'm amazed and surprised!", "8": "Could it be… How… My Pokémon and I are the strongest, though…", @@ -35,10 +42,12 @@ "encounter": { "1": "Let's have a battle, shall we?", "2": "You look like a new trainer. Let's have a battle!", + "2_female": null, "3": "I don't recognize you. How about a battle?", "4": "Let's have a fun Pokémon battle!", "5": "I'll show you the ropes of how to really use Pokémon!", "6": "A serious battle starts from a serious beginning! Are you sure you're ready?", + "6_female": null, "7": "You're only young once. And you only get one shot at a given battle. Soon, you'll be nothing but a memory.", "8": "You'd better go easy on me, OK? Though I'll be seriously fighting!", "9": "School is boring. I've got nothing to do. Yawn. I'm only battling to kill the time." @@ -46,12 +55,15 @@ "victory": { "1": "That was impressive! I've got a lot to learn.", "2": "I didn't think you'd beat me that bad…", + "2_female": null, "3": "I hope we get to have a rematch some day.", "4": "That was pretty amazingly fun! You've totally exhausted me…", "5": "You actually taught me a lesson! You're pretty amazing!", "6": "Seriously, I lost. That is, like, seriously depressing, but you were seriously cool.", + "6_female": null, "7": "I don't need memories like this. Deleting memory…", "8": "Hey! I told you to go easy on me! Still, you're pretty cool when you're serious.", + "8_female": null, "9": "I'm actually getting tired of battling… There's gotta be something new to do…" } }, @@ -142,6 +154,7 @@ "ace_trainer": { "encounter": { "1": "You seem quite confident.", + "1_female": null, "2": "Your Pokémon… Show them to me…", "3": "Because I'm an Ace Trainer, people think I'm strong.", "4": "Are you aware of what it takes to be an Ace Trainer?" @@ -150,7 +163,9 @@ "1": "Yes… You have good Pokémon…", "2": "What?! But I'm a battling genius!", "3": "Of course, you are the main character!", - "4": "OK! OK! You could be an Ace Trainer!" + "3_female": null, + "4": "OK! OK! You could be an Ace Trainer!", + "4_female": null }, "defeat": { "1": "I am devoting my body and soul to Pokémon battles!", @@ -171,7 +186,8 @@ "encounter": { "1": "Get ready, because when we team up, it's double the trouble!", "2": "Two hearts, one strategy – let's see if you can keep up with our twin power!", - "3": "Hope you're ready for double trouble, because we're about to bring the heat!" + "3": "Hope you're ready for double trouble, because we're about to bring the heat!", + "3_female": null }, "victory": { "1": "We may have lost this round, but our bond remains unbreakable!", @@ -199,7 +215,8 @@ "black_belt": { "encounter": { "1": "I praise your courage in challenging me! For I am the one with the strongest kick!", - "2": "Oh, I see. Would you like to be cut to pieces? Or do you prefer the role of punching bag?" + "2": "Oh, I see. Would you like to be cut to pieces? Or do you prefer the role of punching bag?", + "2_female": null }, "victory": { "1": "Oh. The Pokémon did the fighting. My strong kick didn't help a bit.", @@ -310,7 +327,8 @@ }, "defeat": { "1": "New age simply refers to twentieth century classical composers, right?", - "2": "Don't get hung up on sadness or frustration. You can use your grudges to motivate yourself." + "2": "Don't get hung up on sadness or frustration. You can use your grudges to motivate yourself.", + "2_female": null } }, "psychic": { @@ -341,7 +359,8 @@ }, "baker": { "encounter": { - "1": "Hope you're ready to taste defeat!" + "1": "Hope you're ready to taste defeat!", + "1_female": null }, "victory": { "1": "I'll bake a comeback." @@ -371,7 +390,8 @@ "encounter": { "1": "Matey, you're walking the plank if you lose!", "2": "Come on then! My sailor's pride is at stake!", - "3": "Ahoy there! Are you seasick?" + "3": "Ahoy there! Are you seasick?", + "3_female": null }, "victory": { "1": "Argh! Beaten by a kid!", @@ -399,6 +419,7 @@ }, "victory": { "1": "Tch, you really are strong. It's too bad.\n$If you were to join Team Rocket, you could become an Executive.", + "1_female": null, "2": "I... I'm shattered...", "3": "Aaaieeeee! This can't be happening! I fought hard, but I still lost…" } @@ -436,7 +457,8 @@ "victory": { "1": "Hehehe! You might have beaten me, but you don't stand a chance against the Boss!\n$If you get lost now, you won't have to face a sound whipping!", "2": "Hehehe... So, I lost, too...", - "3": "Ahya! How could this be? For an Admin like me to lose to some random trainer..." + "3": "Ahya! How could this be? For an Admin like me to lose to some random trainer...", + "3_female": null } }, "courtney": { @@ -455,12 +477,14 @@ "encounter": { "1": "Ahahahaha! You're going to meddle in Team Aqua's affairs?\n$You're either absolutely fearless, simply ignorant, or both!\n$You're so cute, you're disgusting! I'll put you down", "2": "What's this? Who's this spoiled brat?", - "3": "Cool your jets. Be patient. I'll crush you shortly." + "3": "Cool your jets. Be patient. I'll crush you shortly.", + "3_female": null }, "victory": { "1": "Ahahahaha! We got meddled with unexpectedly! We're out of options.\n$We'll have to pull out. But this isn't the last you'll see of Team Aqua!\n$We have other plans! Don't you forget it!", "2": "Ahhh?! Did I go too easy on you?!", - "3": "Uh. Are you telling me you've upped your game even more during the fight?\n$You're a brat with a bright future… My Pokémon and I don't have any strength left to fight…\n$Go on… Go and be destroyed by Archie." + "3": "Uh. Are you telling me you've upped your game even more during the fight?\n$You're a brat with a bright future… My Pokémon and I don't have any strength left to fight…\n$Go on… Go and be destroyed by Archie.", + "3_female": null } }, "matt": { @@ -472,14 +496,16 @@ "victory": { "1": "All right then, until the Boss has time for you, I'll be your opponent!", "2": "I can feel it! I can feel it, all right! The strength coming offa you!\n$More! I still want more! But looks like we're outta time...", - "3": "That was fun! I knew you'd show me a good time! I look forward to facing you again someday!" + "3": "That was fun! I knew you'd show me a good time! I look forward to facing you again someday!", + "3_female": null } }, "mars": { "encounter": { "1": "I'm Mars, one of Team Galactic's top Commanders.", "2": "Team Galactic's vision for the future is unwavering. Opposition will be crushed without mercy!", - "3": "Feeling nervous? You should be!" + "3": "Feeling nervous? You should be!", + "3_female": null }, "victory": { "1": "This can't be happening! How did I lose?!", @@ -514,20 +540,25 @@ "zinzolin": { "encounter": { "1": "You could become a threat to Team Plasma, so we will eliminate you here and now!", + "1_female": null, "2": "Oh, for crying out loud... I didn't expect to have to battle in this freezing cold!", - "3": "You're an impressive Trainer to have made it this far. But it ends here." + "3": "You're an impressive Trainer to have made it this far. But it ends here.", + "3_female": null }, "victory": { "1": "Ghetsis... I have failed you...", "2": "It's bitter cold. I'm shivering. I'm suffering. Yet, I still stand victorious.", - "3": "Hmph. You're a smarter Trainer than I expected, but not smart enough." + "3": "Hmph. You're a smarter Trainer than I expected, but not smart enough.", + "3_female": null } }, "rood": { "encounter": { "1": "You are a threat to Team Plasma. We cannot let you walk away from here and now!", + "1_female": null, "2": "Oh, this icy wind... I never thought I'd have to fight here!", - "3": "You are a remarkable Trainer to have made it this far. But this is where it ends." + "3": "You are a remarkable Trainer to have made it this far. But this is where it ends.", + "3_female": null }, "victory": { "1": "Ghetsis... I have failed my mission...", @@ -538,12 +569,15 @@ "xerosic": { "encounter": { "1": "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!", + "1_female": null, "2": "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.", + "2_female": null, "3": "I've been waiting for you! I need to do a little research on you! Come, let us begin!" }, "victory": { "1": "Ah, you're quite strong. Oh yes—very strong, indeed.", "2": "Ding-ding-ding! You did it! To the victor go the spoils!", + "2_female": null, "3": "Wonderful! Amazing! You have tremendous skill and bravery!" } }, @@ -551,6 +585,7 @@ "encounter": { "1": "I am Bryony, and it would be my pleasure to battle you. Show me what you've got.", "2": "Impressive... You're more powerful than you appear. Let's see the true extent of your energy.", + "2_female": null, "3": "I've anticipated your arrival. It's time for a little test. Shall we begin?" }, "victory": { @@ -563,9 +598,11 @@ "encounter": { "1": "Prepare for trouble!", "2": "We're pulling a big job here! Get lost, kid!", + "2_female": null, "3": "Hand over your Pokémon, or face the wrath of Team Rocket!", "4": "You're about to experience the true terror of Team Rocket!", - "5": "Hey, kid! Me am a Team Rocket member kind of guy!" + "5": "Hey, kid! Me am a Team Rocket member kind of guy!", + "5_female": null }, "victory": { "1": "Team Rocket blasting off again!", @@ -587,6 +624,7 @@ "1": "Huh? I lost?!", "2": "I can't believe I lost! I even skipped lunch for this", "3": "No way! You're just a kid!", + "3_female": null, "4": "Urrrgh... I should've ducked into our hideout right away...", "5": "You beat me... Do you think the boss will dock my pay for this?" } @@ -613,7 +651,8 @@ "2": "Witness the power of our technology and the future we envision!", "3": "In the name of Team Galactic, I'll eliminate anyone who stands in our way!", "4": "Get ready to lose!", - "5": "Hope you're ready for a cosmic beatdown!" + "5": "Hope you're ready for a cosmic beatdown!", + "5_female": null }, "victory": { "1": "Shut down...", @@ -643,6 +682,7 @@ "encounter": { "1": "Your Pokémon are no match for the elegance of Team Flare.", "2": "Hope you brought your sunglasses, because things are about to get bright!", + "2_female": null, "3": "Team Flare will cleanse the world of imperfection!", "4": "Prepare to face the brilliance of Team Flare!", "5": "Fashion is most important to us!" @@ -743,7 +783,8 @@ "1": "WHAT! This cannot be!" }, "defeat": { - "1": "Mark my words. Not being able to measure your own strength shows that you are still a child." + "1": "Mark my words. Not being able to measure your own strength shows that you are still a child.", + "1_female": null } }, "rocket_boss_giovanni_2": { @@ -803,7 +844,8 @@ }, "galactic_boss_cyrus_1": { "encounter": { - "1": "You were compelled to come here by such vacuous sentimentality.\n$I will make you regret paying heed to your heart!" + "1": "You were compelled to come here by such vacuous sentimentality.\n$I will make you regret paying heed to your heart!", + "1_female": null }, "victory": { "1": "Interesting. And quite curious." @@ -953,6 +995,7 @@ "misty": { "encounter": { "1": "My policy is an all out offensive with Water-type Pokémon!", + "1_female": null, "2": "Hiya, I'll show you the strength of my aquatic Pokémon!", "3": "My dream was to go on a journey and battle powerful trainers…\nWill you be a sufficient challenge?" }, @@ -970,12 +1013,14 @@ "lt_surge": { "encounter": { "1": "My Electric Pokémon saved me during the war! I'll show you how!", + "1_female": null, "2": "Ten-hut! I'll shock you into surrender!", "3": "I'll zap you just like I do to all my enemies in battle!" }, "victory": { "1": "Whoa! Your team's the real deal, kid!", "2": "Aaargh, you're strong! Even my electric tricks lost against you.", + "2_female": null, "3": "That was an absolutely shocking loss!" }, "defeat": { @@ -1000,6 +1045,7 @@ "defeat": { "1": "I was afraid I would doze off…", "2": "Oh my, it seems my Grass Pokémon overwhelmed you.", + "2_female": null, "3": "That battle was such a soothing experience.", "4": "Oh… Is that all?" } @@ -1059,7 +1105,8 @@ "encounter": { "1": "I, the leader of Team Rocket, will make you feel a world of pain!", "2": "My training here will be vital before I am to face my old associates again.", - "3": "I do not think you are prepared for the level of failure you are about to experience!" + "3": "I do not think you are prepared for the level of failure you are about to experience!", + "3_female": null }, "victory": { "1": "WHAT! Me, lose?! There is nothing I wish to say to you!", @@ -1092,6 +1139,7 @@ "brawly": { "encounter": { "1": "Oh man, a challenger!\nLet's see what you can do!", + "1_female": null, "2": "You seem like a big splash.\nLet's battle!", "3": "Time to create a storm!\nLet's go!" }, @@ -1119,6 +1167,7 @@ }, "defeat": { "1": "Recharge your batteries and challenge me again sometime!\nWahahahaha!", + "1_female": null, "2": "I hope you found our battle electrifying!\nWahahahaha!", "3": "Aren't you shocked I won?\nWahahahaha!" } @@ -1165,6 +1214,7 @@ }, "victory": { "1": "You're the first Trainer I've seen with more grace than I.\nExcellently played.", + "1_female": null, "2": "Oh, my Flying Pokémon have plummeted!\nVery well.", "3": "Though I may have fallen, my Pokémon will continue to fly!" }, @@ -1177,6 +1227,7 @@ "tate": { "encounter": { "1": "Hehehe…\nWere you surprised to see me without my sister?", + "1_female": null, "2": "I can see what you're thinking…\nYou want to battle!", "3": "How can you defeat someone…\nWho knows your every move?" }, @@ -1194,6 +1245,7 @@ "liza": { "encounter": { "1": "Fufufu…\nWere you surprised to see me without my brother?", + "1_female": null, "2": "I can determine what you desire…\nYou want to battle, don't you?", "3": "How can you defeat someone…\nWho's one with their Pokémon?" }, @@ -1265,8 +1317,10 @@ "nessa": { "encounter": { "1": "No matter what kind of plan your refined mind may be plotting, my partner and I will be sure to sink it.", + "1_female": null, "2": "I'm not here to chat. I'm here to win!", - "3": "This is a little gift from my Pokémon… I hope you can take it!" + "3": "This is a little gift from my Pokémon… I hope you can take it!", + "3_female": null }, "victory": { "1": "You and your Pokémon are just too much…", @@ -1287,6 +1341,7 @@ }, "victory": { "1": "You… You're pretty good, huh?", + "1_female": null, "2": "If you find Gordie around, be sure to give him a right trashing, would you?", "3": "I think you took breaking the ice a little too literally…" }, @@ -1300,10 +1355,12 @@ "encounter": { "1": "You look strong! Shoots! Let's start!", "2": "I'm strong like the ocean's wide. You're gonna get swept away, fo' sho'.", + "2_female": null, "3": "Oh ho, so I'm facing you! That's off the wall." }, "victory": { "1": "You totally rocked that! You're raising some wicked Pokémon. You got this Trainer thing down!", + "1_female": null, "2": "You don't just look strong, you're strong fo' reals! Eh, I was swept away, too!", "3": "You're strong as a gnarly wave!" }, @@ -1316,6 +1373,7 @@ "shauntal": { "encounter": { "1": "Excuse me. You're a challenger, right?\nI'm the Elite Four's Ghost-type Pokémon user, Shauntal, and I shall be your opponent.", + "1_female": null, "2": "I absolutely love writing about Trainers who come here and the Pokémon they train.\nCould I use you and your Pokémon as a subject?", "3": "Every person who works with Pokémon has a story to tell.\nWhat story is about to be told?" }, @@ -1333,6 +1391,7 @@ "marshal": { "encounter": { "1": "My mentor, Alder, sees your potential as a Trainer and is taking an interest in you.\nIt is my intention to test you--to take you to the limits of your strength. Kiai!", + "1_female": null, "2": "Victory, decisive victory, is my intention! Challenger, here I come!", "3": "In myself, I seek to develop the strength of a fighter and shatter any weakness in myself!\nPrevailing with the force of my convictions!" }, @@ -1351,7 +1410,8 @@ "encounter": { "1": "You remind me of an old friend. That makes me excited about this Pokémon battle!", "2": "Pokémon battles have no meaning if you don't think why you battle.\n$Or better said, it makes battling together with Pokémon meaningless.", - "3": "My name's Cheren! I'm a Gym Leader and a teacher! Pleasure to meet you." + "3": "My name's Cheren! I'm a Gym Leader and a teacher! Pleasure to meet you.", + "3_female": null }, "victory": { "1": "Thank you! I saw what was missing in me.", @@ -1367,47 +1427,65 @@ "chili": { "encounter": { "1": "Yeeeeooow! Time to play with FIRE!! I'm the strongest of us brothers!", + "1_female": null, "2": "Ta-da! The Fire-type scorcher Chili--that's me--will be your opponent!", - "3": "I'm going to show you what me and my blazing Fire types can do!" + "2_female": null, + "3": "I'm going to show you what me and my blazing Fire types can do!", + "3_female": null }, "victory": { "1": "You got me. I am… burned… out…", + "1_female": null, "2": "Whoa ho! You're on fire!", + "2_female": null, "3": "Augh! You got me!" }, "defeat": { "1": "I'm on fire! Play with me, and you'll get burned!", + "1_female": null, "2": "When you play with fire, you get burned!", - "3": "I mean, c'mon, your opponent was me! You didn't have a chance!" + "3": "I mean, c'mon, your opponent was me! You didn't have a chance!", + "3_female": null } }, "cilan": { "encounter": { "1": "Nothing personal... No hard feelings... Me and my Grass-type Pokémon will...\n$Um... We're gonna battle come what may.", + "1_female": null, "2": "So, um, if you're OK with me, I'll, um, put everything I've got into being, er, you know, your opponent.", - "3": "OK… So, um, I'm Cilan, I like Grass-type Pokémon." + "2_female": null, + "3": "OK… So, um, I'm Cilan, I like Grass-type Pokémon.", + "3_female": null }, "victory": { "1": "Er… Is it over now?", + "1_female": null, "2": "…What a surprise. You are very strong, aren't you? \n$I guess my brothers wouldn't have been able to defeat you either…", + "2_female": null, "3": "…Huh. Looks like my timing was, um, off?" }, "defeat": { "1": "Huh? Did I win?", + "1_female": null, "2": "I guess… \n$I suppose I won, because I've been competing with my brothers Chili and Cress, and we all were able to get tougher.", - "3": "It…it was quite a thrilling experience…" + "2_female": null, + "3": "It…it was quite a thrilling experience…", + "3_female": null } }, "roark": { "encounter": { "1": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", + "1_female": null, "2": "Here goes! These are my rocking Pokémon, my pride and joy!", "3": "Rock-type Pokémon are simply the best!", - "4": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!" + "4": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", + "4_female": null }, "victory": { "1": "W-what? That can't be! My buffed-up Pokémon!", "2": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.", + "2_female": null, "3": "With skill like yours, it's natural for you to win.", "4": "Wh-what?! It can't be! Even that wasn't enough?", "5": "I blew it." @@ -1430,6 +1508,7 @@ "victory": { "1": "I'm not good enough yet…", "2": "I see… Your journey has taken you to far-away places and you have witnessed much more than I.\n$I envy you for that…", + "2_female": null, "3": "How is this possible…", "4": "I don't think our potentials are so different.\n$But you seem to have something more than that… So be it.", "5": "Guess I need more training.", @@ -1488,12 +1567,14 @@ "1": "Guess I should've expected that!" }, "defeat": { - "1": "Heh heh! Don't mind me, just scooping up a W over here. I get it if you're upset, but don't go full Kieran on me, OK?" + "1": "Heh heh! Don't mind me, just scooping up a W over here. I get it if you're upset, but don't go full Kieran on me, OK?", + "1_female": null } }, "ramos": { "encounter": { - "1": "Did yeh enjoy the garden playground I made with all these sturdy plants o' mine?\n$Their strength is a sign o' my strength as a gardener and a Gym Leader! Yeh sure yer up to facing all that?" + "1": "Did yeh enjoy the garden playground I made with all these sturdy plants o' mine?\n$Their strength is a sign o' my strength as a gardener and a Gym Leader! Yeh sure yer up to facing all that?", + "1_female": null }, "victory": { "1": "Yeh believe in yer Pokémon… And they believe in yeh, too… It was a fine battle, sprout." @@ -1523,7 +1604,8 @@ }, "victory": { "1": "I must say, I'm warmed up to you! I might even admire you a little.", - "2": "Wow! You're great! You've earned my respect! \n$I think your focus and will bowled us over totally. " + "2": "Wow! You're great! You've earned my respect! \n$I think your focus and will bowled us over totally. ", + "2_female": null }, "defeat": { "1": "I sensed your will to win, but I don't lose!", @@ -1535,7 +1617,8 @@ "1": "You have a winning aura about you. So, anyway, this will be fun. Let's have our battle!" }, "victory": { - "1": "Amazing! You're very good, aren't you?" + "1": "Amazing! You're very good, aren't you?", + "1_female": null }, "defeat": { "1": "Yes! My Pokémon and I are perfectly good!" @@ -1576,7 +1659,8 @@ }, "clay": { "encounter": { - "1": "Harrumph! Kept me waitin', didn't ya, kid? All right, time to see what ya can do!" + "1": "Harrumph! Kept me waitin', didn't ya, kid? All right, time to see what ya can do!", + "1_female": null }, "victory": { "1": "Man oh man… It feels good to go all out and still be defeated!" @@ -1590,7 +1674,8 @@ "1": "I'mma serve you a full course o' Water-type Pokémon! Don't try to eat 'em, though!" }, "victory": { - "1": "Vaultin' Veluza! Yer a lively one, aren't ya! A little TOO lively, if I do say so myself!" + "1": "Vaultin' Veluza! Yer a lively one, aren't ya! A little TOO lively, if I do say so myself!", + "1_female": null }, "defeat": { "1": "You come back to see me again now, ya hear?" @@ -1656,7 +1741,8 @@ "1": "There's something about you… A difference in your demeanor. \n$I think I sense that in you. Now, show me. Show me the power you wield with your Pokémon. \n$And I, in turn, shall present you with a performance of illusions in water by me and my Pokémon!" }, "victory": { - "1": "Bravo. I realize now your authenticity and magnificence as a Pokémon Trainer. \n$I find much joy in having met you and your Pokémon. You have proven yourself worthy." + "1": "Bravo. I realize now your authenticity and magnificence as a Pokémon Trainer. \n$I find much joy in having met you and your Pokémon. You have proven yourself worthy.", + "1_female": null }, "defeat": { "1": "A grand illusion!" @@ -1664,13 +1750,15 @@ }, "lorelei": { "encounter": { - "1": "No one can best me when it comes to icy Pokémon! Freezing moves are powerful!\n$Your Pokémon will be at my mercy when they are frozen solid! Hahaha! Are you ready?" + "1": "No one can best me when it comes to icy Pokémon! Freezing moves are powerful!\n$Your Pokémon will be at my mercy when they are frozen solid! Hahaha! Are you ready?", + "1_female": null }, "victory": { "1": "How dare you!" }, "defeat": { - "1": "There's nothing you can do once you're frozen." + "1": "There's nothing you can do once you're frozen.", + "1_female": null } }, "will": { @@ -1686,10 +1774,12 @@ }, "malva": { "encounter": { - "1": "I feel like my heart might just burst into flames. \n$I'm burning up with my hatred for you, runt!" + "1": "I feel like my heart might just burst into flames. \n$I'm burning up with my hatred for you, runt!", + "1_female": null }, "victory": { - "1": "What news… So a new challenger has defeated Malva!" + "1": "What news… So a new challenger has defeated Malva!", + "1_female": null }, "defeat": { "1": "I am delighted! Yes, delighted that I could squash you beneath my heel." @@ -1711,7 +1801,8 @@ "1": "I gave the captain position to my cousin Sophocles, but I'm confident in my ability. \n$My strength is like that of a supernova!" }, "victory": { - "1": "I certainly found an interesting Trainer to face!" + "1": "I certainly found an interesting Trainer to face!", + "1_female": null }, "defeat": { "1": "Ahaha. What an interesting battle." @@ -1722,10 +1813,12 @@ "1": "I'd say I'll go easy on you, but… I'd be lying! Think fast!" }, "victory": { - "1": "Not bad, kiddo." + "1": "Not bad, kiddo.", + "1_female": null }, "defeat": { - "1": "Nahahaha! You really are something else, kiddo!" + "1": "Nahahaha! You really are something else, kiddo!", + "1_female": null } }, "bruno": { @@ -1744,7 +1837,8 @@ "1": "I'm Bugsy! I never lose when it comes to bug Pokémon!" }, "victory": { - "1": "Whoa, amazing! You're an expert on Pokémon!\nMy research isn't complete yet. OK, you win." + "1": "Whoa, amazing! You're an expert on Pokémon!\nMy research isn't complete yet. OK, you win.", + "1_female": null }, "defeat": { "1": "Thanks! Thanks to our battle, I was also able to make progress in my research!" @@ -1774,10 +1868,12 @@ }, "lenora": { "encounter": { - "1": "Well then, challenger, I'm going to research how you battle with the Pokémon you've so lovingly raised!" + "1": "Well then, challenger, I'm going to research how you battle with the Pokémon you've so lovingly raised!", + "1_female": null }, "victory": { - "1": "My theory about you was correct. You're more than just talented… You're motivated! I salute you!" + "1": "My theory about you was correct. You're more than just talented… You're motivated! I salute you!", + "1_female": null }, "defeat": { "1": "Ah ha ha! If you lose, make sure to analyze why, and use that knowledge in your next battle!" @@ -1802,7 +1898,8 @@ "1": "Wild! Your reason's already more toxic than mine!" }, "defeat": { - "1": "Hey, c'mon! Get serious! You gotta put more out there!" + "1": "Hey, c'mon! Get serious! You gotta put more out there!", + "1_female": null } }, "olivia": { @@ -1840,7 +1937,8 @@ }, "flint": { "encounter": { - "1": "Hope you're warmed up, cause here comes the Big Bang!" + "1": "Hope you're warmed up, cause here comes the Big Bang!", + "1_female": null }, "victory": { "1": "Incredible! Your moves are so hot, they make mine look lukewarm!" @@ -1862,7 +1960,8 @@ }, "caitlin": { "encounter": { - "1": "It's me who appeared when the flower opened up. You who have been waiting…\n$You look like a Pokémon Trainer with refined strength and deepened kindness. \n$What I look for in my opponent is superb strength… \n$Please unleash your power to the fullest!" + "1": "It's me who appeared when the flower opened up. You who have been waiting…\n$You look like a Pokémon Trainer with refined strength and deepened kindness. \n$What I look for in my opponent is superb strength… \n$Please unleash your power to the fullest!", + "1_female": null }, "victory": { "1": "My Pokémon and I learned so much! I offer you my thanks." @@ -1884,13 +1983,16 @@ }, "wikstrom": { "encounter": { - "1": "Well met, young challenger! Verily am I the famed blade of hardened steel, Duke Wikstrom! \n$Let the battle begin! En garde!" + "1": "Well met, young challenger! Verily am I the famed blade of hardened steel, Duke Wikstrom! \n$Let the battle begin! En garde!", + "1_female": null }, "victory": { - "1": "Glorious! The trust that you share with your honorable Pokémon surpasses even mine!" + "1": "Glorious! The trust that you share with your honorable Pokémon surpasses even mine!", + "1_female": null }, "defeat": { - "1": "What manner of magic is this? My heart, it doth hammer ceaselessly in my breast! \n$Winning against such a worthy opponent doth give my soul wings--thus do I soar!" + "1": "What manner of magic is this? My heart, it doth hammer ceaselessly in my breast! \n$Winning against such a worthy opponent doth give my soul wings--thus do I soar!", + "1_female": null } }, "acerola": { @@ -1922,11 +2024,14 @@ }, "victory": { "1": "You got me. You are magnificent!", - "2": "I never expected another trainer to beat me… I'm surprised." + "1_female": null, + "2": "I never expected another trainer to beat me… I'm surprised.", + "2_female": null }, "defeat": { "1": "That was close. Want to try again?", - "2": "It's not that you are weak. Don't let it bother you." + "2": "It's not that you are weak. Don't let it bother you.", + "2_female": null } }, "karen": { @@ -1951,7 +2056,8 @@ "1": "Sure seems like you understand Pokémon real well. \n$This is gonna be a doozy of a battle! \n$I'll have to Dynamax my Pokémon if I want to win!" }, "victory": { - "1": "The power of Grass has wilted… What an incredible Challenger!" + "1": "The power of Grass has wilted… What an incredible Challenger!", + "1_female": null }, "defeat": { "1": "This'll really leave you in shock and awe." @@ -1970,7 +2076,8 @@ }, "drasna": { "encounter": { - "1": "You must be a strong Trainer. Yes, quite strong indeed…\n$That's just wonderful news! Facing opponents like you and your team will make my Pokémon grow like weeds!" + "1": "You must be a strong Trainer. Yes, quite strong indeed…\n$That's just wonderful news! Facing opponents like you and your team will make my Pokémon grow like weeds!", + "1_female": null }, "victory": { "1": "Oh, dear me. That sure was a quick battle… I do hope you'll come back again sometime!" @@ -2003,7 +2110,8 @@ }, "blue": { "encounter": { - "1": "You must be pretty good to get this far." + "1": "You must be pretty good to get this far.", + "1_female": null }, "victory": { "1": "I've only lost to him and now to you… Him? Hee, hee…" @@ -2050,7 +2158,8 @@ "1": "I am still the Champion. I won't hold anything back." }, "victory": { - "1": "This is the emergence of a new Champion." + "1": "This is the emergence of a new Champion.", + "1_female": null }, "defeat": { "1": "I successfully defended my Championship." @@ -2138,7 +2247,8 @@ "1": "Hey! Don't you think Pokémon are, like, super cute?" }, "victory": { - "1": "Waaah! Waaah! You're so mean!" + "1": "Waaah! Waaah! You're so mean!", + "1_female": null }, "defeat": { "1": "And that's that!" @@ -2146,7 +2256,8 @@ }, "chuck": { "encounter": { - "1": "Hah! You want to challenge me? Are you brave or just ignorant?" + "1": "Hah! You want to challenge me? Are you brave or just ignorant?", + "1_female": null }, "victory": { "1": "You're strong! Would you please make me your apprentice?" @@ -2157,7 +2268,8 @@ }, "katy": { "encounter": { - "1": "Don't let your guard down unless you would like to find yourself knocked off your feet!" + "1": "Don't let your guard down unless you would like to find yourself knocked off your feet!", + "1_female": null }, "victory": { "1": "All of my sweet little Pokémon dropped like flies!" @@ -2190,7 +2302,8 @@ }, "maylene": { "encounter": { - "1": "I've come to challenge you now, and I won't hold anything back. \n$Please prepare yourself for battle!" + "1": "I've come to challenge you now, and I won't hold anything back. \n$Please prepare yourself for battle!", + "1_female": null }, "victory": { "1": "I admit defeat…" @@ -2212,7 +2325,8 @@ }, "byron": { "encounter": { - "1": "Trainer! You're young, just like my son, Roark. \n$With more young Trainers taking charge, the future of Pokémon is bright! \n$So, as a wall for young people, I'll take your challenge!" + "1": "Trainer! You're young, just like my son, Roark. \n$With more young Trainers taking charge, the future of Pokémon is bright! \n$So, as a wall for young people, I'll take your challenge!", + "1_female": null }, "victory": { "1": "Hmm! My sturdy Pokémon--defeated!" @@ -2234,7 +2348,8 @@ }, "volkner": { "encounter": { - "1": "Since you've come this far, you must be quite strong…\n$I hope you're the Trainer who'll make me remember how fun it is to battle!" + "1": "Since you've come this far, you must be quite strong…\n$I hope you're the Trainer who'll make me remember how fun it is to battle!", + "1_female": null }, "victory": { "1": "You've got me beat…\n$Your desire and the noble way your Pokémon battled for you… \n$I even felt thrilled during our match. That was a very good battle." @@ -2336,7 +2451,8 @@ }, "valerie": { "encounter": { - "1": "Oh, if it isn't a young Trainer… It is lovely to get to meet you like this. \n$Then I suppose you have earned yourself the right to a battle, as a reward for your efforts. \n$The elusive Fairy may appear frail as the breeze and delicate as a bloom, but it is strong." + "1": "Oh, if it isn't a young Trainer… It is lovely to get to meet you like this. \n$Then I suppose you have earned yourself the right to a battle, as a reward for your efforts. \n$The elusive Fairy may appear frail as the breeze and delicate as a bloom, but it is strong.", + "1_female": null }, "victory": { "1": "I hope that you will find things worth smiling about tomorrow…" @@ -2383,7 +2499,8 @@ "1": "Let me have a look at how you and your partner Pokémon behave!" }, "victory": { - "1": "Your pink is still lacking, but you're an excellent Trainer with excellent Pokémon." + "1": "Your pink is still lacking, but you're an excellent Trainer with excellent Pokémon.", + "1_female": null }, "defeat": { "1": "Too bad for you, I guess." @@ -2391,7 +2508,8 @@ }, "bede": { "encounter": { - "1": "I suppose I should prove beyond doubt just how pathetic you are and how strong I am." + "1": "I suppose I should prove beyond doubt just how pathetic you are and how strong I am.", + "1_female": null }, "victory": { "1": "I see… Well, that's fine. I wasn't really trying all that hard anyway." @@ -2435,7 +2553,8 @@ }, "brassius": { "encounter": { - "1": "I assume you are ready? Let our collaborative work of art begin!" + "1": "I assume you are ready? Let our collaborative work of art begin!", + "1_female": null }, "victory": { "1": "Ahhh…vant-garde!" @@ -2446,10 +2565,12 @@ }, "iono": { "encounter": { - "1": "How're ya feelin' about this battle?\n$...\n$Let's get this show on the road! How strong is our challenger? \n$I 'unno! Let's find out together!" + "1": "How're ya feelin' about this battle?\n$...\n$Let's get this show on the road! How strong is our challenger? \n$I 'unno! Let's find out together!", + "1_female": null }, "victory": { - "1": "You're as flashy and bright as a 10,000,000-volt Thunderbolt, friendo!" + "1": "You're as flashy and bright as a 10,000,000-volt Thunderbolt, friendo!", + "1_female": null }, "defeat": { "1": "Your eyeballs are MINE!" @@ -2471,7 +2592,8 @@ "1": "Come on, baby! Rattle me down to the bone!" }, "victory": { - "1": "You're cool, my friend—you move my SOUL!" + "1": "You're cool, my friend—you move my SOUL!", + "1_female": null }, "defeat": { "1": "Later, baby!" @@ -2505,7 +2627,9 @@ "nessa_elite": { "encounter": { "1": "The tides are turning in my favor. Ready to get swept away?", - "2": "Let's make some waves with this battle! I hope you're prepared!" + "1_female": null, + "2": "Let's make some waves with this battle! I hope you're prepared!", + "2_female": null }, "victory": { "1": "You navigated those waters perfectly... Well done!", @@ -2533,6 +2657,7 @@ "allister_elite": { "encounter": { "1": "Shadows fall... Are you ready to face your fears?", + "1_female": null, "2": "Let's see if you can handle the darkness that I command." }, "victory": { @@ -2555,7 +2680,8 @@ }, "defeat": { "1": "Another storm weathered, another victory claimed! Well fought!", - "2": "You got caught in my storm! Better luck next time!" + "2": "You got caught in my storm! Better luck next time!", + "2_female": null } }, "alder": { diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index edc7dd8b0d7..8f75c08f3f6 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const esConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/ca_ES/dialogue-final-boss-male.json b/src/locales/es/dialogue-double-battle.json similarity index 100% rename from src/locales/ca_ES/dialogue-final-boss-male.json rename to src/locales/es/dialogue-double-battle.json diff --git a/src/locales/ca_ES/dialogue-male.json b/src/locales/es/dialogue-final-boss.json similarity index 100% rename from src/locales/ca_ES/dialogue-male.json rename to src/locales/es/dialogue-final-boss.json diff --git a/src/locales/es/dialogue-male.json b/src/locales/es/dialogue-male.json deleted file mode 100644 index cbd7dbf39ad..00000000000 --- a/src/locales/es/dialogue-male.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "aether_grunt": { - "encounter": { - "1": "¡Lucharé con toda mi fuerza para detenerte!", - "2": "Me da igual que seas un crío. Eres una amenaza y debes irte.", - "3": "Me dijeron que mandara a todos los entrenadores por donde venían, ¡sin excepciones!", - "4": "¡Te mostraré el poder del Paraíso Æther!", - "5": "Ahora que conoces la oscuridad en lo profundo del Paraíso Æther, es hora de que vayas desapareciendo..." - }, - "victory": { - "1": "¡Vaya! Demuestras habilidad.", - "2": "¿Qué quiere decir esto? ¿Eh?", - "3": "¡Vaya! Con esa fuerza, ¡no creo que pueda detenerte!", - "4": "Vaya... parece que puede que haya perdido.", - "5": "¡Mira, te hago una mueca!: ¡Aiyee!" - } - }, - "faba": { - "encounter": { - "1": "¡Yo, Subdirector Fabio, te mostraré la cruda realidad del mundo!", - "2": "¿Yo, la última línea de defensa de Æther, battallando a un mero crío?", - "3": "Yo, Fabio, soy el Subdirector de la Fundación Æther. Soy el único en el mundo, soy irremplazable." - }, - "victory": { - "1": "¡Aaaah!", - "2": "¿C-c-cómo puede ser? Eres tan solo un niño...", - "3": "Este... este es el motivo por el que odio a los niños." - } - }, - "aether_boss_lusamine_1": { - "encounter": { - "1": "¡Vas a asustar a mi pobre criatura! Parece que tendré que silenciarte cuanto antes." - }, - "victory": { - "1": "¿Cómo?¿Cómo puedes ser tan terrible?" - }, - "defeat": { - "1": "Buff." - } - }, - "aether_boss_lusamine_2": { - "encounter": { - "1": "¡¿Por qué me sigues molestando?! Estoy cansada de ti. ¡Hasta las narices!\n$Se acabó esta charla innecesaria. Este es el poder de Nihilego, ¡te demostraré cuánto te equivocas al venir aquí!" - }, - "victory": { - "1": "¡¡¡Aaauuuggghhhhhhhhh!!!" - }, - "defeat": { - "1": "¡Todo lo que quiero es a esta preciosa criatura! ¡Los demás no me importáis!" - } - } -} diff --git a/src/locales/ca_ES/dialogue-misc-female.json b/src/locales/es/dialogue-misc.json similarity index 100% rename from src/locales/ca_ES/dialogue-misc-female.json rename to src/locales/es/dialogue-misc.json diff --git a/src/locales/es/dialogue-female.json b/src/locales/es/dialogue.json similarity index 100% rename from src/locales/es/dialogue-female.json rename to src/locales/es/dialogue.json diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 668812e6432..f79374cd3b9 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const frConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/fr/dialogue-double-battle-female.json b/src/locales/fr/dialogue-double-battle-female.json deleted file mode 100644 index 55bb5da9800..00000000000 --- a/src/locales/fr/dialogue-double-battle-female.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "Blue : Hé Red, montrons-lui de quel bois on se chauffe !\n$Red : …\n$Blue : Voilà la puissance du Bourg Palette !" - }, - "victory": { - "1": "Blue : C’était un magnifique combat !\n$Red : …" - } - }, - "red_blue_double": { - "encounter": { - "1": "Red : … !\n$Blue : Il est pas très loquace.\n$Blue : Mais ne te laisse pas avoir, ça reste un Maitre Pokémon !" - }, - "victory": { - "1": "Red : … !\n$Blue : La prochaine fois, on va te battre !" - } - }, - "tate_liza_double": { - "encounter": { - "1": "Lévy : Héhéhé… Tu en fais une drôle de tête.\n$Tatia : Tu ne t’attendais pas à rencontrer deux Champions, n’est-ce pas ?\n$Lévy : Nous sommes des jumeaux !\n$Tatia : Nous n’avons pas besoin de parler entre nous !\n$Lévy : Tu crois pouvoir briser…\n$Tatia : … Notre duo parfait ?" - }, - "victory": { - "1": "Lévy : Quoi ? Notre combinaison était parfaite !\n$Tatia : Nous avons encore besoin d’entrainement…" - } - }, - "liza_tate_double": { - "encounter": { - "1": "Tatia : Hihih… Si tu voyais ta tête !\n$Lévy : Oui, nous sommes deux Champions en un !\n$Tatia : Voici mon frère, Lévy…\n$Lévy : … Et ma sœur, Tatia !\n$Tatia : Tu ne penses pas que notre combinaison est parfaite ?" - }, - "victory": { - "1": "Tatia : Quoi ? Notre combinaison…\n$Lévy : … a échoué !" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "Pierre R. : Marc, montrons-lui la puissance des Maitres !\n$Marc : Tu vas gouter au pouvoir de Hoenn !\n$Pierre R. : C’est parti !" - }, - "victory": { - "1": "Pierre R. : C’était un beau combat !\n$Marc : Ce sera notre tour la prochaine fois !" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "Pierre R. : Excuse-moi, aurais-tu des Pokémon rares ?\n$Marc : Pierre… Nous sommes là pour nous battre, pas pour frimer avec nos Pokémon.\n$Pierre R. : Oh… Je vois… Commençons alors !" - }, - "victory": { - "1": "Pierre R. : Bien, maintenant que ce combat est clos, montrons-nous nos Pokémon !\n$Marc : Pierre…" - } - }, - "alder_iris_double": { - "encounter": { - "1": "Goyah : Nous sommes l’élite des Dresseurs d’Unys !\n$Iris : Rien de mieux que des combats contre des prodiges !" - }, - "victory": { - "1": "Goyah : INCROYABLE ! T’es trop doué !\n$Iris : On gagnera la prochaine fois !" - } - }, - "iris_alder_double": { - "encounter": { - "1": "Iris : Bienvenue, Dresseur ! Je suis LA Maitresse d’Unys !\n$Goyah : Iris, concentre-toi s’il te plait…" - }, - "victory": { - "1": "Iris : On a tout donné et pourtant…\n$Goyah : Cette défaite ne pourra que nous être bénéfique !" - } - }, - "piers_marnie_double": { - "encounter": { - "1": "Rosemary : Frérot, montrons-lui la puissance de Smashings !\n$Peterson : Nous sommes les ténèbres !" - }, - "victory": { - "1": "Rosemary : T’as amené la lumière dans les ténèbres !\n$Peterson : P’têtre un peu trop…" - } - }, - "marnie_piers_double": { - "encounter": { - "1": "Peterson : Chauds pour un concert ?\n$Rosemary : Frérot… Elle est pas là pour chanter, mais se battre…" - }, - "victory": { - "1": "Peterson : Ça c’est du rock !\n$Rosemary : Frérot…" - } - } -} diff --git a/src/locales/fr/dialogue-double-battle-male.json b/src/locales/fr/dialogue-double-battle.json similarity index 94% rename from src/locales/fr/dialogue-double-battle-male.json rename to src/locales/fr/dialogue-double-battle.json index 188b27ca143..d35e9d87ced 100644 --- a/src/locales/fr/dialogue-double-battle-male.json +++ b/src/locales/fr/dialogue-double-battle.json @@ -73,7 +73,8 @@ }, "marnie_piers_double": { "encounter": { - "1": "Peterson : Chauds pour un concert ?\n$Rosemary : Frérot… Il est pas là pour chanter, mais se battre…" + "1": "Peterson : Chauds pour un concert ?\n$Rosemary : Frérot… Il est pas là pour chanter, mais se battre…", + "1_female": "Peterson : Chauds pour un concert ?\n$Rosemary : Frérot… Elle est pas là pour chanter, mais se battre…" }, "victory": { "1": "Peterson : Ça c’est du rock !\n$Rosemary : Frérot…" diff --git a/src/locales/fr/dialogue-female.json b/src/locales/fr/dialogue-female.json deleted file mode 100644 index 82e3a4efd46..00000000000 --- a/src/locales/fr/dialogue-female.json +++ /dev/null @@ -1,577 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "Hé ! Combat ?", - "2": "Toi aussi tu débutes ?", - "3": "Hé, j’me souviens pas de ta tête. Combat !", - "4": "J’ai perdu, alors j’essaye de capturer d’autres Pokémon.\nHé, t’as l’air faible toi ! Allez, combat !", - "5": "On s’connait ? J’ai comme un doute. Dans tous les cas, sympa de te rencontrer !", - "6": "Allez, c’est parti !", - "7": "Attention, me voilà !\nTu vas voir comment j’suis fort !", - "8": "Coucou… Tu veux voir mes bô Pokémon ?", - "9": "Trève de mondanités. Ramène-toi quand tu le sens !", - "10": "Baisse pas ta garde si tu veux pas pleurer d’avoir perdu face à un gamin.", - "11": "J’ai tout donné pour élever mes Pokémon. Attention à toi si tu leur fait du mal !", - "12": "Incroyable que t’y sois parvenue ! Mais la suite va pas être une partie de plaisir.", - "13": "Les combats sont éternels ! Bienvenue dans un monde sans fin !" - }, - "victory": { - "1": "Hé, mais t’es trop forte !", - "2": "En vrai j’avais aucune chance hein ?", - "3": "J’te retrouverai un jour, et là j’te battrai !", - "4": "Arg… J’ai plus aucun Pokémon.", - "5": "Non… IMPOSSIBLE ! Pourquoi j’ai encore perdu…", - "6": "Non ! J’ai perdu !", - "7": "Waah ! T’es trop incroyable ! J’suis bouche bée !", - "8": "Pourquoi… Comment… Pourtant on est les plus forts, mes Pokémon et moi…", - "9": "J’perdrai pas la prochaine fois ! Remettons ça un jour !", - "10": "Weeeesh ! Tu vois que j’suis qu’un gamin ? C’est pas juste de me bully comme ça !", - "11": "Tes Pokémon sont trop incroyables !\n… P’tit échange ?", - "12": "Je me suis fait un peu aider plus tôt, mais de quel taf je parlais ?", - "13": "Ahaha ! Et voilà, ça y est !\nT’es déjà comme chez toi dans ce monde !" - } - }, - "lass": { - "encounter": { - "1": "Affrontons-nous, d’accord ?", - "2": "T’as l’air d’une nouvelle Dresseuse. Battons nous !", - "3": "Je te connais pas. Ça te dis de te battre ?", - "4": "Prenons du bon temps avec ce combat Pokémon !", - "5": "Je vais t’apprendre à te battre avec tes Pokémon !", - "6": "Un combat doit toujours être pris au sérieux.\nT’es prête à te battre ?", - "7": "Tu seras pas jeune éternellement. T’as qu’une chance pendant un combat. Bientôt, tu seras plus qu’un souvenir.", - "8": "Tu ferais mieux d’y aller doucement avec moi. Mais je vais me battre sérieusement !", - "9": "Je m’ennuie à l’école. Y’a rien à y faire. *Baille*\nJe me bats juste pour passer le temps." - }, - "victory": { - "1": "Wah, c’était impressionnant ! J’ai encore beaucoup à apprendre.", - "2": "Je pensais pas que je perdrais comme ça…", - "3": "J’espère que j’aurai ma revanche un jour.", - "4": "C’était super amusant ! Mais ce combat m’a épuisée…", - "5": "Tu m’as appris une belle leçon ! T’es vraiment incroyable !", - "6": "Vraiment ? J’ai perdu… ? C’est des choses qui arrivent, ça me déprime mais t’es vraiment très cool.", - "7": "J’ai pas besoin de ce genre de souvenirs.\n*Suppression de mémoire en cours…*", - "8": "Hé ! Je t’avais dit d’y aller doucement avec moi ! Mais t’es vraiment si cool quand tu te bats sérieusement…", - "9": "J’en ai marre des combats Pokémon…\nJe vais chercher d’autres trucs à faire…" - } - }, - "breeder": { - "encounter": { - "1": "Qu’ils soient obéissants ou égoïstes… Les Pokémon ont des caractéristiques uniques.", - "2": "Même si mes choix et ma personnalité ne sont pas fous, je pense quand même bien avoir élevé mes Pokémon.", - "3": "Hum, t’es pas trop laxiste avec tes Pokémon ?\nTrop les chouchouter n’est pas bon." - }, - "victory": { - "1": "Il est primordial de nourir et développer toutes les caractéristiques de chaque Pokémon.", - "2": "Contrairement à moi, ces Pokémon ont un bon fond.", - "3": "Trop d’éloges peut ruiner les Pokémon et les gens." - }, - "defeat": { - "1": "Tu ne devrais pas t’énerver sur tes Pokémon, même après une défaite.", - "2": "Alors ? Pas mal mes Pokémon, hein ? Je suis fait pour ça.", - "3": "Peu importe à quel point t’aimes tes Pokémon, il faut toujours de la discipline s’ils se comportent mal." - } - }, - "breeder_female": { - "encounter": { - "1": "Les Pokémon ne trahissent jamais. Ils te rendront toujours l’amour que tu leur donne.", - "2": "Puis-je te donner une astuce pour mieux élever tes Pokémon ?", - "3": "J’ai élevé mes Pokémon en utilisant une méthode très spéciale." - }, - "victory": { - "1": "Arg… C’était pas supposé se passer comme ça. Leur ai-je administré la mauvaise préparation ?", - "2": "Comment ça a pu arriver…\nAvec quoi nourris-tu tes Pokémon ?", - "3": "Si je perds, c’est juste pour te dire que je tuais le temps. Mon ego n’est absolument pas touché…" - }, - "defeat": { - "1": "C’est la preuve que mes Pokémon reconnaissent tout mon amour.", - "2": "Le seul secret derrière des Pokémon bien entrainés, c’est surtout d’en capturer des bons.", - "3": "La force des Pokémon dépend de ta capacité à savoir les élever correctement." - } - }, - "fisherman": { - "encounter": { - "1": "Aaah non ! J’avais une touche !\nTu comptes faire quoi pour arranger ça ?", - "2": "Bouge de là ! Tu fais peur aux Pokémon !", - "3": "Voyons si t’arrives à ferrer une victoire !" - }, - "victory": { - "1": "Vas-y là, oublie.", - "2": "La prochaine fois, je vais me repêcher !", - "3": "Je présume que j’ai sous-estimé les courants…" - } - }, - "fisherman_female": { - "encounter": { - "1": "Oh la belle prise !", - "2": "Ma ligne est en place, prête à ferrer le succès !", - "3": "Prête à faire des vagues !" - }, - "victory": { - "1": "Je suppose que je vais avoir besoin d’un plus gros hameçon.", - "2": "La ligne s’est brisée, j’ai pas pu la ferrer…", - "3": "Attends que j’aiguise mes hameçons pour la revanche !" - } - }, - "swimmer": { - "encounter": { - "1": "C’est l’heure de plonger dans le vif !", - "2": "C’est le moment de surfer sur les vagues de la victoire !", - "3": "Je vais t’éclabousser de mon talent !" - }, - "victory": { - "1": "Tu m’as complètement séché", - "2": "Il semblerait que ce soit celles de la défaite…", - "3": "Retour sur la terre ferme je suppose" - } - }, - "backpacker": { - "encounter": { - "1": "Fais ton sac, on y va !", - "2": "Voyons si t’arrives à garder le rythme !", - "3": "Accélère le pas, camarade !", - "4": "J’ai passé 20 ans à la recherche de moi-même…\nMais où suis-je ?" - }, - "victory": { - "1": "J’ai trébuché !", - "2": "Ah, je crois que je me suis paumé.", - "3": "Ah, une impasse !", - "4": "Hé ! Attends une seconde…\nTu saurais pas qui je suis ?" - } - }, - "ace_trainer": { - "encounter": { - "1": "T’as l’air plutôt confiante.", - "2": "Tes Pokémon… Montre-les-moi…", - "3": "Les gens pensent que je suis fort par que je suis un Topdresseur.", - "4": "T’es au courant de ce que ça signifie d’être un Topdresseur ?" - }, - "victory": { - "1": "Très bien… T’as de bons Pokémon…", - "2": "Quoi ?! Mais c’est moi le génie des combats !", - "3": "Évidemment que t’es le personnage principal !", - "4": "OK ! OK ! Tu pourrais être une Topdresseuse !" - }, - "defeat": { - "1": "Je me dévoue corps et âme aux combats Pokémon !", - "2": "Comme prévu… Vraiment aucune surprise…", - "3": "Et moi qui pensais qu’en grandissant, j’allais rester frêle et fragile, à me briser à la moindre étreinte.", - "4": "Évidemment que je suis fort et encore moins un perdant. C’est important de gagner avec grâce." - } - }, - "parasol_lady": { - "encounter": { - "1": "Honorons ce terrain de combat avec élégance et équilibre !" - }, - "victory": { - "2": "Mon élégance demeure inébranlable !" - } - }, - "rocket_grunt": { - "encounter": { - "1": "Nous sommes de retour !", - "2": "Ça bosse dur, ici ! Alors du balai !", - "3": "File-nous tes Pokémon ou tu vas gouter à la colère de la Team Rocket !", - "4": "Sois témoin de ce qu’est une vraie terreur de la Team Rocket!", - "5": "Hé gamine ! Moi être guy member of la Team Rocket !" - }, - "victory": { - "1": "Une fois de plus la Team Rocket s’envole vers d’autres cieux !", - "2": "Mince! J’ai laissé tomber\nla Clé Ascenseur !", - "3": "J’ai tout foiré !", - "4": "Mes compagnons vont me venger !", - "5": "Toi dire quoi ? Forget que tu m’as vu !\nYou n’as rien seen !" - } - }, - "magma_grunt": { - "encounter": { - "1": "N’espère pas recevoir de la pitié si tu te mets sur le chemin de la Team Magma !", - "2": "Ne te mêle pas de nos affaires ! On va rendre ce monde meilleur !", - "3": "Hors de mon chemin ! La Team Magma n’a pas de temps pour les gamins !", - "4": "J’espère que t’as quelques marshmallows, car ça va chauffer !", - "5": "On va utiliser le puissance d’un volcan ! Ça va être… explosif ! Tu l’as… ? Héhé !" - }, - "victory": { - "1": "Je…?\nJ’ai perdu ?!", - "2": "Je peux pas croire que j’ai pas pris mon déjeuner juste pour ça…", - "3": "Impossible ! T’es qu’une gosse !", - "4": "Aahhh…\nJ’aurais dû directement rentrer à la planque…", - "5": "Tu m’as démoli… Tu crois que le boss va suspendre mon salaire ?" - } - }, - "aqua_grunt": { - "encounter": { - "1": "Aucune pitié si tu te mets sur le chemin de la Team Aqua, même pour un gamin !", - "2": "Grrr…\nTu as eu le culot de t’opposer à la Team Aqua !", - "3": "Je vais te liquéfier !\nEt ce sera pas qu’à cause des mes Pokémon Eau !", - "4": "Nous, la Team Aqua, existons pour le bien commun !", - "5": "Prépare-toi à te faire emporter par le courant de…\nEuh… Mes Pokémon ! Oui, mes Pokémon !" - }, - "victory": { - "1": "Comment ça ?", - "2": "Ah, j’avais pas prévu d’être gêné par un mouflet qui se mêle de tout !", - "3": "J’ai perdu ?! Super, j’ai plus qu’à nager jusqu’à la planque maintenant…", - "4": "Oh non quelle angoisse…\nLe boss va me démonter…", - "5": "Je suis battu… Tu penses que le boss va me faire subir le supplice de la planche ?…" - } - }, - "galactic_grunt": { - "encounter": { - "1": "Ne te mets pas en travers de la Team Galaxie !", - "2": "Sois témoin de la puissance de notre technologie et du futur qui se profile !", - "3": "Au nom de la Team Galaxie, j’éliminerai quiconque se mettera sur notre route !", - "4": "Prépare ta défaite !", - "5": "J’espère que t’es prête à te prendre une raclée de l’espace !" - }, - "victory": { - "1": "Désactivation…", - "2": "Cet échec n’est qu’une poussière face à nos ambitions débordantes.", - "3": "Notre projet est bien plus important que cette défaite.", - "4": "Comment ?!", - "5": "Note à moi-même :\nM’entrainer aux combats Pokémon. Ça urge…" - } - }, - "plasma_grunt": { - "encounter": { - "1": "Pas de quatiers à ceux qui ne suivent pas notre idéal !", - "2": "Si je gagne, tu relâches tous tes Pokémon !", - "3": "Si tu te mets en travers de la Team Plasma, je m’occuperai de toi personnellement !", - "4": "La Team Plasma va libérer les Pokémon de tous les humains égoïstes dans ton genre !", - "5": "Nos coupes sont lunaires… Mais en combat ?\nTu vas vite le découvrir." - }, - "victory": { - "1": "Plasmaaaaaaaaa !", - "2": "Comment ai-je pu perdre…", - "3": "… Ce Pokémon est nul, j’vais aller en voler de meilleurs !", - "4": "Les plans ambitieux connaissent toujours leurs lots d’interruptions.", - "5": "C’est mauvais… MAUVAIS MAUVAIS MAUVAIS MAUVAIS !\nVa falloir battre en retraite, c’est la méga cata !" - } - }, - "flare_grunt": { - "encounter": { - "1": "Tes Pokémon ne sont pas dignes de l’élégance de la Team Flare.", - "2": "T’as des lunettes de soleil j’espère ?\nCar prépare-toi à être éblouie !", - "3": "La Team Flare va purifier ce monde de toute imperfection !", - "4": "Prépare-toi à découvrir l’indiscutable sens du style de la Team Flare !", - "5": "La mode, c’est important !" - }, - "victory": { - "1": "Mon futur n’a pas l’air si radieux.", - "2": "Les combats semblent être plus complexes que je le pensais.\nRetour aux planches à dessin.", - "3": "Ehhhh ?! J’ai perdu ?!", - "4": "Même dans la défaite, l’élégance de la Team Flare continue de rayonner sur ce monde.", - "5": "J’appelle pas ça perdre, j’appelle ça échouer avec panache !" - } - }, - "rocket_boss_giovanni_1": { - "encounter": { - "1": "Bien. Je dois admettre que je suis impressionné de te voir ici !" - }, - "victory": { - "1": "QUOI ? IMPOSSIBLE !" - }, - "defeat": { - "1": "Retiens bien. Ton incapacité à évaluer ta propre force est\nla démonstration claire que tu n’es encore qu’une gamine." - } - }, - "rocket_boss_giovanni_2": { - "encounter": { - "1": "Mes anciens collaborateurs m’attendent.\nComptes-tu m’en empêcher ?" - }, - "victory": { - "1": "Comment c’est possible… ? Le grand dessein de la Team Rocket n’est plus qu’une illusion…" - }, - "defeat": { - "1": "La Team Rocket renaitra, et je dominerai le monde !" - } - }, - "magma_boss_maxie_1": { - "encounter": { - "1": "Je vais t’enterrer de mes propres mains.\nJ’espère que t’apprécieras cet honneur !" - }, - "victory": { - "1": "Gnn… ! Tu… T’as du répondant…\nCe sentiment d’être à la traine, de si peu…" - }, - "defeat": { - "1": "La Team Magma vaincra !" - } - }, - "magma_boss_maxie_2": { - "encounter": { - "1": "T’es le dernier rempart entravant mes objectifs.\nPrépare-toi à mon ultime riposte ! Hahahaha !" - }, - "victory": { - "1": "Ce… Ce n’est pas… Gnn…" - }, - "defeat": { - "1": "L’heure est venue…\nJe vais transformer cette planète en paradis pour l’humanité." - } - }, - "aqua_boss_archie_1": { - "encounter": { - "1": "Je suis le Leader de la Team Aqua.\nJ’ai bien peur que pour toi, ce soit fin de parcours." - }, - "victory": { - "1": "Retrouvons-nous.\nJe me souviendrai de ton visage." - }, - "defeat": { - "1": "Magnifique !\nPlus rien ne peut nous retenir !" - } - }, - "aqua_boss_archie_2": { - "encounter": { - "1": "J’ai attendu ce moment depuis si longtemps.\nVoici la vraie puissance de la Team Aqua !" - }, - "victory": { - "1": "Comme si j’y avait cru…" - }, - "defeat": { - "1": "Je rendrai à ce monde sa pureté originelle !" - } - }, - "galactic_boss_cyrus_1": { - "encounter": { - "1": "Tu t’es sentie obligée de venir ici dans un acte vide de sens. Je vais te le faire regretter." - }, - "victory": { - "1": "Intéressant. Et plutôt curieux." - }, - "defeat": { - "1": "Je le créerai, mon nouveau monde…" - } - }, - "galactic_boss_cyrus_2": { - "encounter": { - "1": "Nous y revoilà. Il semblerait que nos destinées soient entremêlées. Il est l’heure d’y mettre un terme." - }, - "victory": { - "1": "Comment. Comment ?\nCOMMENT ?!" - }, - "defeat": { - "1": "Adieu." - } - }, - "plasma_boss_ghetsis_1": { - "encounter": { - "1": "Je n’accepterai pas qu’on me barre la route !\nPeu importe qui fait quoi !" - }, - "victory": { - "1": "Comment ? Je suis le leader de la Team Plasma !\nJe suis parfait !" - }, - "defeat": { - "1": "Je suis le parfait monarque d’un monde parfait !\nHahaha !" - } - }, - "plasma_boss_ghetsis_2": { - "encounter": { - "1": "Viens ! Je veux voir ton visage à l’instant même où l’espoir quittera ton corps !" - }, - "victory": { - "1": "Mes calculs… Non ! Mes plans étaient parfaits !\nCe monde devrait être mien !" - }, - "defeat": { - "1": "Kyurem ! Fusiorption !!!" - } - }, - "flare_boss_lysandre_1": { - "encounter": { - "1": "Comptes-tu m’arrêter ? Prouve-le." - }, - "victory": { - "1": "T’es venu m’arrêter. Mais je te demande d’attendre." - }, - "defeat": { - "1": "Les Pokémon… Ne devraient plus exister." - } - }, - "brock": { - "encounter": { - "1": "Mon expertise des types Roche va te mettre au sol ! En garde !", - "2": "Tu veux toujours te battre avec moi ? Même en sachant que tu vas perdre ?", - "3": "Laisse-moi de montrer la véritable force de mes Pokémon Roche !" - }, - "victory": { - "1": "J’étais trop sûr de moi, c’est pour ça que j’ai perdu.", - "2": "Ce monde est vaste ! Je suis honoré d’avoir pu t’affronter.", - "3": "Peut-être bien que je n’aurais pas dû abandonner ma vocation d’Éleveur…" - }, - "defeat": { - "1": "La défense est la meilleure des attaques !\nTelle est ma méthode !", - "2": "Viens étudier des roches avec moi la prochaine fois si tu veux apprendre à mieux les aborder !", - "3": "Tout ce temps à voyager autour du monde paie enfin !" - } - }, - "misty": { - "encounter": { - "1": "Ma tactique ? Attaquer avec des Pokémon Eau !", - "2": "Je vais te prouver le tsunami que sont mes Pokémon aquatiques !", - "3": "Mon rêve, c’était de voyager et de défier des Dresseurs super forts. Seras-tu à la hauteur ?" - }, - "victory": { - "1": "OK. T’es pas naze… Je le reconnais…", - "2": "Pfff… T’as juste eu de la chance hein ?!", - "3": "Ouah ! T’es super balèze !" - }, - "defeat": { - "1": "Qu’en dis-tu? C’est ça, la puissance des Pokémon Eau !", - "2": "J’espère que t’as pris note des élégantes techniques de nage de mes Pokémon !", - "3": "Tes Pokémon ne jouent visiblement pas dans le même bassin…" - } - }, - "lt_surge": { - "encounter": { - "1": "T’as pas froid aux yeux, soldat ! Les combats Pokémon, c’est la guerre !", - "2": "Tu as du guts pour venir me fight ici ! Je vais te shock !", - "3": "Compte tes dents, tu vas morfler !\nMes Pokémon Électrik vont t’atomiser !" - }, - "victory": { - "1": "Whoo ! T’iras loin toi.", - "2": "Oh noes ! Mes tricks électriques sont à plat…\nYou are very fortiche!", - "3": "Tu es very costaud ! Je vais training very dur mes Pokémon, moi too, et on sera Number One !" - }, - "defeat": { - "1": "Oh yeah !\nMes Pokémon Électrik sont les best du monde !", - "2": "Oh yeah, baby ! I am trop fort !", - "3": "Une combat Pokémon, c’est comme une guerre et t’as eu droit à une bataille de premier ordre !" - } - }, - "erika": { - "encounter": { - "1": "Il fait beau, aujourd’hui, n’est-ce pas… ?\nQuoi un combat… ? Très bien…", - "2": "L’arrangement floral est ma spécialité, et mes Pokémon sont de type Plante. Quoi ? Tu veux te battre ?", - "3": "Il fait beau… Le soleil brille… Les plantes bourgeonnent… Je m’ennuie…", - "4": "Voir un tel jardin rempli de fleurs est si apaisant…" - }, - "victory": { - "1": "Bien joué, c’est mértié.", - "2": "Dommage, on s’amusait si bien…", - "3": "Oh non, le combat est terminé…", - "4": "Aaah, ça fait du bien !\nMerci, j’en avais besoin." - }, - "defeat": { - "1": "J’ai failli m’endormir…", - "2": "Oh non… Mes Pokémon Plante ont l’air de t’avoir bien endormie…", - "3": "Ce combat était si apaisant…", - "4": "Oh non… C’est tout ?" - } - }, - "flare_boss_lysandre_2": { - "encounter": { - "1": "Ton futur ou le mien…\nVoyons lequel mérite plus d’aboutir." - }, - "victory": { - "1": "Ohhhh… !" - }, - "defeat": { - "1": "Les ignorants sans aucune vision n’auront donc de cesse de souiller ce monde." - } - }, - "rival": { - "encounter": { - "1": "@c{smile}Ah, te voilà ! Je t’ai cherchée partout ! Je savais que t’étais pressée de partir, mais je m’attendais quand même à un au revoir…\n$@c{smile_eclosed}T’as finalement décidé de réaliser ton rêve ?\nJ’ai peine à y croire.\n$@c{serious_smile_fists}Vu que t’es là, ça te dis un petit combat ?\nJe voudrais quand même m’assurer que t’es prête.\n$@c{serious_mopen_fists}Surtout ne te retiens pas et donne-moi tout ce que t’as !" - }, - "victory": { - "1": "@c{shock}Wah… Tu m’as vraiment lavé.\nT’es vraiment une débutante ?\n$@c{smile}T’as peut-être eu de la chance, mais…\nPeut-être que t’arriveras jusqu’au bout du chemin.\n$D’ailleurs, le prof m’a demandé de te filer ces objets.\nIls ont l’air sympas.\n$@c{serious_smile_fists}Bonne chance à toi !" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}Ah, je te cherchais ! Je t’ai cherchée partout !\n@c{angry_mopen}On oublie de dire au revoir à sa meilleure amie ?\n$@c{smile_ehalf}T’as décidé de réaliser ton rêve, hein ?\nCe jour est donc vraiment arrivé…\n$@c{smile}Je veux bien te pardonner de m’avoir oubliée,\nà une conditon. @c{smile_wave_wink}Que tu m’affronte !\n$@c{angry_mopen}Donne tout ! Ce serait dommage que ton aventure finisse avant d’avoir commencé, hein ?" - }, - "victory": { - "1": "@c{shock}Tu viens de commencer et t’es déjà si forte ?!@d{96}\n@c{angry}T’as triché non ? Avoue !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile_eclosed}J’ai perdu dans les règles…\nJ’ai le sentiment que tu vas très bien t’en sortir.\n$@c{smile}D’ailleurs, le prof veut que je te donne ces quelques objets. Ils te seront utiles, pour sûr !\n$@c{smile_wave}Fais de ton mieux, comme toujours !\nJe crois fort en toi !" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}Hé, toi aussi t’es là ?\n@c{smile_eclosed}Toujours invaincue, hein… ?\n$@c{serious_mopen_fists}Je sais que j’ai l’air de t’avoir suivie ici, mais c’est pas complètement vrai.\n$@c{serious_smile_fists}Pour être honnête, ça me démangeait d’avoir une revanche depuis que tu m’as battu.\n$Je me suis beaucoup entrainé, alors sois sure que je vais pas retenir mes coups cette fois.\n$@c{serious_mopen_fists}Et comme la dernière fois, ne te retiens pas !\nC’est parti !" - }, - "victory": { - "1": "@c{neutral_eclosed}Oh. Je crois que j’ai trop pris la confiance.\n$@c{smile}Pas grave, c’est OK. Je me doutais que ça arriverait.\n@c{serious_mopen_fists}Je vais juste devoir encore plus m’entrainer !\n\n$@c{smile}Ah, et pas que t’aies réellement besoin d’aide, mais j’ai ça en trop sur moi qui pourrait t’intéresser.\n\n$@c{serious_smile_fists}Mais n’espère plus en avoir d’autres !\nJe peux pas passer mon temps à aider mon adversaire.\n$@c{smile}Bref, prends soin de toi et profite bien de l’évènement !" - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}Hé, sympa de te croiser ici. T’as toujours l’air invaincue. @c{angry_mopen}Eh… Pas mal !\n$@c{angry_mopen}Je sais à quoi tu penses et non, je t’espionne pas.\n@c{smile_eclosed}C’est juste que j’étais aussi dans le coin.\n$@c{smile_ehalf}Heureuse pour toi, mais je veux juste te rappeler que c’est pas grave de perdre parfois.\n$@c{smile}On apprend de nos erreurs, souvent plus que si on ne connaissait que le succès.\n$@c{angry_mopen}Dans tous les cas je me suis bien entrainée pour cette revanche, t’as intérêt à tout donner !" - }, - "victory": { - "1": "@c{neutral}Je… J’étais pas encore supposée perdre…\n$@c{smile}Bon. Ça veut juste dire que je vais devoir encore plus m’entrainer !\n$@c{smile_wave}J’ai aussi ça en rab pour toi !\n@c{smile_wave_wink}Inutile de me remercier ~.\n$@c{angry_mopen}C’était le dernier, terminé les cadeaux après celui-là !\n$@c{smile_wave}Allez, tiens le coup et profite bien de l’évènement !" - }, - "defeat": { - "1": "Je suppose que c’est parfois normal de perdre…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}Hé, mais qui voilà ! Ça fait un bail.\n@c{neutral}T’es… toujours invaincue ? Incroyable.\n$@c{neutral_eclosed}Tout est devenu un peu… étrange.\nC’est plus pareil sans toi au village.\n$@c{serious}Je sais que c’est égoïste, mais j’ai besoin d’expier ça.\n@c{neutral_eclosed}Je crois que tout ça te dépasse.\n$@c{serious}Ne jamais perdre, c’est juste irréaliste.\nGrandir, c’est parfois aussi savoir perdre.\n$@c{neutral_eclosed}T’as un beau parcours, mais il y a encore tellement à venir et ça va pas s’arranger. @c{neutral}T’es prête pour ça ?\n$@c{serious_mopen_fists}Si tu l’es, alors prouve-le." - }, - "victory": { - "1": "@c{angry_mhalf}C’est lunaire… J’ai presque fait que m’entrainer…\nAlors pourquoi il y a encore un tel écart entre nous ?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}Ça fait une éternité ! Toujours debout hein ?\n@c{angry}Tu commences à me pousser à bout là. @c{smile_wave_wink}T’inquiètes j’déconne !\n$@c{smile_ehalf}Mais en vrai, ta maison te manque pas ? Ou… Moi ?\nJ… Je veux dire… Tu me manques vraiment beaucoup.\n$@c{smile_eclosed}Je te soutiendrai toujours dans tes ambitions, mais la vérité est que tu finiras par perdre un jour ou l’autre.\n$@c{smile}Quand ça arrivera, je serai là pour toi, comme toujours.\n@c{angry_mopen}Maintenant, montre-moi à quel point t’es devenue forte !" - }, - "victory": { - "1": "@c{shock}Après tout ça… Ça te suffit toujours pas… ?\nTu reviendras jamais à ce rythme…" - }, - "defeat": { - "1": "T’as fait de ton mieux.\nAllez, rentrons à la maison." - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}Hé.\n$Je vais pas y aller par quatre chemins avec toi.\n@c{neutral_eclosed}Je suis là pour gagner. Simple, basique.\n$@c{serious_mhalf_fists}J’ai appris à maximiser tout mon potentiel en m’entrainant d’arrachepied.\n$@c{smile}C’est fou tout le temps que tu peux te dégager si tu dors pas en sacrifiant ta vie sociale.\n$@c{serious_mopen_fists}Plus rien n’a d’importance désormais, pas tant que j’aurai pas gagné.\n$@c{neutral_eclosed}J’ai atteint un stade où je ne peux plus perdre.\n@c{smile_eclosed}Je présume que ta philosophie était pas si fausse finalement.\n$@c{angry_mhalf}La défaite, c’est pour les faibles, et je ne suis plus un faible.\n$@c{serious_mopen_fists}Tiens-toi prête." - }, - "victory": { - "1": "@c{neutral}Que…@d{64} Qui es-tu ?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}C’est moi ! Tu m’as pas encore oubliée… n’est-ce pas ?\n$@c{smile}Tu devrais être fière d’être arrivée aussi loin. GG !\nMais c’est certainement pas la fin de ton aventure.\n$@c{smile_eclosed}T’as éveillé en moi quelque chose que j’ignorais.\nTout mon temps passe dans l’entrainement.\n$@c{smile_ehalf}Je dors et je mange à peine, je m’entraine juste tous les jours, et deviens de plus en plus forte.\n$@c{neutral}En vrai, Je… J’ai de la peine à me reconnaitre.\n$Mais maintenant, je suis au top de mes capacités.\nJe doute que tu sois de nouveau capable de me battre.\n$Et tu sais quoi ? Tout ça, c’est de ta faute.\n@c{smile_ehalf}Et j’ignore si je dois te remercier ou te haïr.\n$@c{angry_mopen}Tiens-toi prête." - }, - "victory": { - "1": "@c{neutral}Que…@d{64} Qui es-tu ?" - }, - "defeat": { - "1": "$@c{smile}Tu devrais être fière d’être arrivé jusque là." - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}Nous y revoilà.\n$@c{neutral}J’ai eu du temps pour réfléchir à tout ça.\nIl y a une raison à pourquoi tout semble étrange.\n$@c{neutral_eclosed}Ton rêve, ma volonté de te battre…\nFont partie de quelque chose de plus grand.\n$@c{serious}C’est même pas à propos de moi, ni de toi… Mais du monde, @c{serious_mhalf_fists}et te repousser dans tes limites est ma mission.\n$@c{neutral_eclosed}J’ignore si je serai capable de l’accomplir, mais je ferai tout ce qui est en mon pouvoir.\n$@c{neutral}Cet endroit est terrifiant… Et pourtant il m’a l’air familier, comme si j’y avais déjà mis les pieds.\n$@c{serious_mhalf_fists}Tu ressens la même chose, pas vrai ?\n$@c{serious}… et c’est comme si quelque chose ici me parlait.\n$Comme si c’était tout ce que ce monde avait toujours connu.\n$Ces précieux moments ensemble semblent si proches ne sont rien de plus qu’un lointain souvenir.\n$@c{neutral_eclosed}D’ailleurs, qui peut dire aujourd’hui qu’ils ont pu être réels ?\n$@c{serious_mopen_fists}Il faut que tu persévères. Si tu t’arrêtes, ça n’aura jamais de fin et t’es la seule à en être capable.\n$@c{serious_smile_fists}Difficile de comprendre le sens de tout ça, je sais juste que c’est la réalité.\n$@c{serious_mopen_fists}Si tu ne parviens à pas me battre ici et maintenant, tu n’as aucune chance." - }, - "victory": { - "1": "@c{smile_eclosed}J’ai fait ce que j’avais à faire.\n$Promets-moi juste une chose.\n@c{smile}Après avoir réparé ce monde… Rentre à la maison." - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}C’est donc encore entre toi et moi.\n$@c{smile_eclosed}Tu sais, j’ai beau retouner ça dans tous les sens…\n$@c{smile_ehalf}Quelque chose peut expliquer tout ça, pourquoi tout semble si étrange…\n$@c{smile}T’as tes rêves, j’ai mes ambitions…\n$J’ai juste le sentiment qu’il y a un grand dessein derrière tout ça, derrière ce qu’on fait toi et moi.\n$@c{smile_eclosed}Je crois que mon but est de… repousser tes limites.\n$@c{smile_ehalf}Je suis pas certaine de bien être douée à cet exercice, mais je fais de mon mieux.\n$Cet endroit épouvantable cache quelque chose d’étrange… Tout semble si limpide…\n$Comme… si c’était tout ce que ce monde avait toujours connu.\n$@c{smile_eclosed}J’ai le sentiment que nos précieux moments ensemble sont devenus si flous.\n$@c{smile_ehalf}Ont-ils au moins été réels ? Tout semble si loin maintenant…\n$@c{angry_mopen}Il faut que tu persévères. Si tu t’arrêtes, ça n’aura jamais de fin et t’es le seul à en être capable.\n$@c{smile_ehalf}Je… j’ignore le sens de tout ça… Mais je sais que c’est la réalité.\n$@c{neutral}Si tu ne parviens pas à me battre ici et maintenant, tu n’as aucune chance." - }, - "victory": { - "1": "@c{smile_ehalf}Je… Je crois que j’ai rempli ma mission…\n$@c{smile_eclosed}Promets-moi… Après avoir réparé ce monde… Reviens à la maison saine et sauve.\n$@c{smile_ehalf}… Merci." - } - } -} diff --git a/src/locales/fr/dialogue-final-boss-female.json b/src/locales/fr/dialogue-final-boss-female.json deleted file mode 100644 index be4ad6d83fe..00000000000 --- a/src/locales/fr/dialogue-final-boss-female.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "encounter": "Une fois de plus, te revoilà.\nSais-tu que ce n’est point là ta première venue ?\n$Tu as été appelée ici parce que t’y es déjà venue.\nUn nombre inimaginable de fois.\n$Mais allons-y, faisons le décompte.\nTu en es très précisément à ton {{cycleCount}}e cycle.\n$Chaque cycle réinitialise ton souvenir du précédent.\nMais étrangement, des bribes subsistent en toi.\n$Jusqu’à maintenant, tu as toujours échoué. Mais je ressens quelque chose de différent cette fois-ci.\n\n$Tu es la seule présence ici, bien que j’ai le sentiment d’en ressentir… une autre.\n$Vas-tu enfin me livrer un affrontement digne de ce nom ?\nCe challenge dont je rêve depuis un millénaire ?\n$Commençons.", - "firstStageWin": "Je vois. Cette présence était bien réelle.\nJe n’ai donc plus besoin de retenir mes coups.\n$Ne me déçoit pas.", - "secondStageWin": "… Magnifique." -} \ No newline at end of file diff --git a/src/locales/fr/dialogue-final-boss-male.json b/src/locales/fr/dialogue-final-boss.json similarity index 55% rename from src/locales/fr/dialogue-final-boss-male.json rename to src/locales/fr/dialogue-final-boss.json index 7c51d1cc3a3..c5a5e3b7d89 100644 --- a/src/locales/fr/dialogue-final-boss-male.json +++ b/src/locales/fr/dialogue-final-boss.json @@ -1,5 +1,6 @@ { "encounter": "Une fois de plus, te revoilà.\nSais-tu que ce n’est point là ta première venue ?\n$Tu as été appelé ici parce que t’y es déjà venu.\nUn nombre inimaginable de fois.\n$Mais allons-y, faisons le décompte.\nTu en es très précisément à ton {{cycleCount}}e cycle.\n$Chaque cycle réinitialise ton souvenir du précédent.\nMais étrangement, des bribes subsistent en toi.\n$Jusqu’à maintenant, tu as toujours échoué. Mais je ressens quelque chose de différent cette fois-ci.\n\n$Tu es la seule présence ici, bien que j’ai le sentiment d’en ressentir… une autre.\n$Vas-tu enfin me livrer un affrontement digne de ce nom ?\nCe challenge dont je rêve depuis un millénaire ?\n$Commençons.", + "encounter_female": "Une fois de plus, te revoilà.\nSais-tu que ce n’est point là ta première venue ?\n$Tu as été appelée ici parce que t’y es déjà venue.\nUn nombre inimaginable de fois.\n$Mais allons-y, faisons le décompte.\nTu en es très précisément à ton {{cycleCount}}e cycle.\n$Chaque cycle réinitialise ton souvenir du précédent.\nMais étrangement, des bribes subsistent en toi.\n$Jusqu’à maintenant, tu as toujours échoué. Mais je ressens quelque chose de différent cette fois-ci.\n\n$Tu es la seule présence ici, bien que j’ai le sentiment d’en ressentir… une autre.\n$Vas-tu enfin me livrer un affrontement digne de ce nom ?\nCe challenge dont je rêve depuis un millénaire ?\n$Commençons.", "firstStageWin": "Je vois. Cette présence était bien réelle.\nJe n’ai donc plus besoin de retenir mes coups.\n$Ne me déçoit pas.", "secondStageWin": "… Magnifique." } \ No newline at end of file diff --git a/src/locales/fr/dialogue-misc-male.json b/src/locales/fr/dialogue-misc-male.json deleted file mode 100644 index d932d283d37..00000000000 --- a/src/locales/fr/dialogue-misc-male.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "ending": "@c{smile}Oh ? T’as gagné ?@d{96} @c{smile_eclosed}J’aurais dû le savoir.\nMais de voilà de retour.\n$@c{smile}C’est terminé.@d{64} T’as brisé ce cycle infernal.\n$@c{serious_smile_fists}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$@c{neutral}Je suis le seul à me souvenir de ce que t’as fait.@d{96}\nJe pense que ça ira, non ?\n$@c{serious_smile_fists}Ta légende vivra à jamais dans nos cœurs.\n$@c{smile_eclosed}Bref, j’en ai un peu marre de ce endroit, pas toi ? Rentrons à la maison.\n$@c{serious_smile_fists}On se fera un p’tit combat une fois rentrés ?\nSi t’es d’accord.", - "ending_female": "@c{shock}T’es revenu ?@d{32} Ça veut dire…@d{96} que t’as gagné ?!\n@c{smile_ehalf}J’aurais dû le savoir.\n$@c{smile_eclosed}Bien sûr… J’ai toujours eu ce sentiment.\n@c{smile}C’est fini maitenant hein ? T’as brisé ce cycle.\n$@c{smile_ehalf}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$Je serai la seule à me souvenir de ce que t’as fait.\n@c{angry_mopen}Je tâcherai de ne pas oublier !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile}Jamais j’oublierai.@d{32}\nTa légende vivra à jamais dans nos cœurs.\n$@c{smile_wave}Bon,@d{64} il se fait tard…@d{96} je crois ?\nDifficile à dire ici.\n$Rentrons, @c{smile_wave_wink}et demain on se fera un p’tit combat, comme au bon vieux temps ?" -} \ No newline at end of file diff --git a/src/locales/fr/dialogue-misc-female.json b/src/locales/fr/dialogue-misc.json similarity index 100% rename from src/locales/fr/dialogue-misc-female.json rename to src/locales/fr/dialogue-misc.json diff --git a/src/locales/fr/dialogue-male.json b/src/locales/fr/dialogue.json similarity index 95% rename from src/locales/fr/dialogue-male.json rename to src/locales/fr/dialogue.json index 26636a15e4f..c9bb3c417c7 100644 --- a/src/locales/fr/dialogue-male.json +++ b/src/locales/fr/dialogue.json @@ -13,10 +13,12 @@ "10": "Baisse pas ta garde si tu veux pas pleurer d’avoir perdu face à un gamin.", "11": "J’ai tout donné pour élever mes Pokémon. Attention à toi si tu leur fait du mal !", "12": "Incroyable que t’y sois parvenu ! Mais la suite va pas être une partie de plaisir.", + "12_female": "Incroyable que t’y sois parvenue ! Mais la suite va pas être une partie de plaisir.", "13": "Les combats sont éternels ! Bienvenue dans un monde sans fin !" }, "victory": { "1": "Hé, mais t’es trop fort !", + "1_female": "Hé, mais t’es trop forte !", "2": "En vrai j’avais aucune chance hein ?", "3": "J’te retrouverai un jour, et là j’te battrai !", "4": "Arg… J’ai plus aucun Pokémon.", @@ -35,10 +37,12 @@ "encounter": { "1": "Affrontons-nous, d’accord ?", "2": "T’as l’air d’un nouveau Dresseur. Battons nous !", + "2_female": "T’as l’air d’une nouvelle Dresseuse. Battons nous !", "3": "Je te connais pas. Ça te dis de te battre ?", "4": "Prenons du bon temps avec ce combat Pokémon !", "5": "Je vais t’apprendre à te battre avec tes Pokémon !", "6": "Un combat doit toujours être pris au sérieux.\nT’es prêt à te battre ?", + "6_female": "Un combat doit toujours être pris au sérieux.\nT’es prête à te battre ?", "7": "Tu seras pas jeune éternellement. T’as qu’une chance pendant un combat. Bientôt, tu seras plus qu’un souvenir.", "8": "Tu ferais mieux d’y aller doucement avec moi. Mais je vais me battre sérieusement !", "9": "Je m’ennuie à l’école. Y’a rien à y faire. *Baille*\nJe me bats juste pour passer le temps." @@ -46,10 +50,12 @@ "victory": { "1": "Wah, c’était impressionnant ! J’ai encore beaucoup à apprendre.", "2": "Je ne pensais pas que je perdrais comme ça…", + "2_female": "Je pensais pas que je perdrais comme ça…", "3": "J’espère que j’aurai ma revanche un jour.", "4": "C’était super amusant ! Mais ce combat m’a épuisée…", "5": "Tu m’as appris une belle leçon ! T’es vraiment incroyable !", "6": "Vraiment ? J’ai perdu… ? C’est des choses qui arrivent, ça me déprime mais tu es vraiment très cool.", + "6_female": "Vraiment ? J’ai perdu… ? C’est des choses qui arrivent, ça me déprime mais t’es vraiment très cool.", "7": "J’ai pas besoin de ce genre de souvenirs.\n*Suppression de mémoire en cours…*", "8": "Hé ! Je t’avais dit d’y aller doucement avec moi ! Mais t’es vraiment si cool quand tu te bats sérieusement…", "9": "J’en ai marre des combats Pokémon…\nJe vais chercher d’autres trucs à faire…" @@ -142,6 +148,7 @@ "ace_trainer": { "encounter": { "1": "T’as l’air plutôt confiant.", + "1_female": "T’as l’air plutôt confiante.", "2": "Tes Pokémon… Montre-les-moi…", "3": "Les gens pensent que je suis fort par que je suis un Topdresseur.", "4": "T’es au courant de ce que ça signifie d’être un Topdresseur ?" @@ -150,7 +157,8 @@ "1": "Très bien… T’as de bons Pokémon…", "2": "Quoi ?! Mais c’est moi le génie des combats !", "3": "Évidemment que t’es le personnage principal !", - "4": "OK ! OK ! Tu pourrais être un Topdresseur !" + "4": "OK ! OK ! Tu pourrais être un Topdresseur !", + "4_female": "OK ! OK ! Tu pourrais être une Topdresseuse !" }, "defeat": { "1": "Je me dévoue corps et âme aux combats Pokémon !", @@ -164,7 +172,7 @@ "1": "Honorons ce terrain de combat avec élégance et équilibre !" }, "victory": { - "2": "Mon élégance demeure inébranlable !" + "1": "Mon élégance demeure inébranlable !" } }, "rocket_grunt": { @@ -173,7 +181,8 @@ "2": "Ça bosse dur, ici ! Alors du balai !", "3": "File-nous tes Pokémon ou tu vas gouter à la colère de la Team Rocket !", "4": "Sois témoin de ce qu’est une vraie terreur de la Team Rocket!", - "5": "Hé gamin ! Moi être guy member of la Team Rocket !" + "5": "Hé gamin ! Moi être guy member of la Team Rocket !", + "5_female": "Hé gamine ! Moi être guy member of la Team Rocket !" }, "victory": { "1": "Une fois de plus la Team Rocket s’envole vers d’autres cieux !", @@ -195,6 +204,7 @@ "1": "Je…?\nJ’ai perdu ?!", "2": "Je peux pas croire que j’ai pas pris mon déjeuner juste pour ça…", "3": "Impossible ! T’es qu’un gosse !", + "3_female": "Impossible ! T’es qu’une gosse !", "4": "Aahhh…\nJ’aurais dû directement rentrer à la planque…", "5": "Tu m’as démoli… Tu crois que le boss va suspendre mon salaire ?" } @@ -221,7 +231,8 @@ "2": "Sois témoin de la puissance de notre technologie et du futur qui se profile !", "3": "Au nom de la Team Galaxie, j’éliminerai quiconque se mettera sur notre route !", "4": "Prépare ta défaite !", - "5": "J’espère que t’es prêt à te prendre une raclée de l’espace !" + "5": "J’espère que t’es prêt à te prendre une raclée de l’espace !", + "5_female": "J’espère que t’es prête à te prendre une raclée de l’espace !" }, "victory": { "1": "Désactivation…", @@ -251,6 +262,7 @@ "encounter": { "1": "Tes Pokémon ne sont pas dignes de l’élégance de la Team Flare.", "2": "T’as des lunettes de soleil j’espère ?\nCar prépare-toi à être ébloui !", + "2_female": "T’as des lunettes de soleil j’espère ?\nCar prépare-toi à être éblouie !", "3": "La Team Flare va purifier ce monde de toute imperfection !", "4": "Prépare-toi à découvrir l’indiscutable sens du style de la Team Flare !", "5": "La mode, c’est important !" @@ -271,7 +283,8 @@ "1": "QUOI ? IMPOSSIBLE !" }, "defeat": { - "1": "Retiens bien. Ton incapacité à évaluer ta propre force est\nla démonstration claire que tu n’es encore qu’un gamin." + "1": "Retiens bien. Ton incapacité à évaluer ta propre force est\nla démonstration claire que tu n’es encore qu’un gamin.", + "1_female": "Retiens bien. Ton incapacité à évaluer ta propre force est\nla démonstration claire que tu n’es encore qu’une gamine." } }, "rocket_boss_giovanni_2": { @@ -331,7 +344,8 @@ }, "galactic_boss_cyrus_1": { "encounter": { - "1": "Tu t’es senti obligé de venir ici dans un acte vide de sens. Je vais te le faire regretter." + "1": "Tu t’es senti obligé de venir ici dans un acte vide de sens. Je vais te le faire regretter.", + "1_female": "Tu t’es sentie obligée de venir ici dans un acte vide de sens. Je vais te le faire regretter." }, "victory": { "1": "Intéressant. Et plutôt curieux." @@ -462,6 +476,7 @@ "defeat": { "1": "J’ai failli m’endormir…", "2": "Oh non… Mes Pokémon Plante ont l’air de t’avoir bien endormi…", + "2_female": "Oh non… Mes Pokémon Plante ont l’air de t’avoir bien endormie…", "3": "Ce combat était si apaisant…", "4": "Oh non… C’est tout ?" } diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 6bb46273370..a8cd1e4e0bd 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const itConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/it/dialogue-double-battle-male.json b/src/locales/it/dialogue-double-battle-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-double-battle-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ca_ES/dialogue-misc-male.json b/src/locales/it/dialogue-double-battle.json similarity index 100% rename from src/locales/ca_ES/dialogue-misc-male.json rename to src/locales/it/dialogue-double-battle.json diff --git a/src/locales/it/dialogue-female.json b/src/locales/it/dialogue-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/it/dialogue-final-boss-female.json b/src/locales/it/dialogue-final-boss-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-final-boss-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/it/dialogue-final-boss-male.json b/src/locales/it/dialogue-final-boss-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-final-boss-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/es/dialogue-double-battle-female.json b/src/locales/it/dialogue-final-boss.json similarity index 100% rename from src/locales/es/dialogue-double-battle-female.json rename to src/locales/it/dialogue-final-boss.json diff --git a/src/locales/it/dialogue-male.json b/src/locales/it/dialogue-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/it/dialogue-misc-female.json b/src/locales/it/dialogue-misc-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-misc-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/it/dialogue-misc-male.json b/src/locales/it/dialogue-misc-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/it/dialogue-misc-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/es/dialogue-double-battle-male.json b/src/locales/it/dialogue-misc.json similarity index 100% rename from src/locales/es/dialogue-double-battle-male.json rename to src/locales/it/dialogue-misc.json diff --git a/src/locales/es/dialogue-final-boss-female.json b/src/locales/it/dialogue.json similarity index 100% rename from src/locales/es/dialogue-final-boss-female.json rename to src/locales/it/dialogue.json diff --git a/src/locales/ja/config.ts b/src/locales/ja/config.ts index 5fbf0497d94..f8afd6eb167 100644 --- a/src/locales/ja/config.ts +++ b/src/locales/ja/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const jaConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/ja/dialogue-double-battle-female.json b/src/locales/ja/dialogue-double-battle-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-double-battle-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ja/dialogue-double-battle-male.json b/src/locales/ja/dialogue-double-battle-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-double-battle-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/es/dialogue-final-boss-male.json b/src/locales/ja/dialogue-double-battle.json similarity index 100% rename from src/locales/es/dialogue-final-boss-male.json rename to src/locales/ja/dialogue-double-battle.json diff --git a/src/locales/ja/dialogue-female.json b/src/locales/ja/dialogue-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ja/dialogue-final-boss-female.json b/src/locales/ja/dialogue-final-boss-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-final-boss-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ja/dialogue-final-boss-male.json b/src/locales/ja/dialogue-final-boss-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-final-boss-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/es/dialogue-misc-female.json b/src/locales/ja/dialogue-final-boss.json similarity index 100% rename from src/locales/es/dialogue-misc-female.json rename to src/locales/ja/dialogue-final-boss.json diff --git a/src/locales/ja/dialogue-male.json b/src/locales/ja/dialogue-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ja/dialogue-misc-female.json b/src/locales/ja/dialogue-misc-female.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-misc-female.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ja/dialogue-misc-male.json b/src/locales/ja/dialogue-misc-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ja/dialogue-misc-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/es/dialogue-misc-male.json b/src/locales/ja/dialogue-misc.json similarity index 100% rename from src/locales/es/dialogue-misc-male.json rename to src/locales/ja/dialogue-misc.json diff --git a/src/locales/it/dialogue-double-battle-female.json b/src/locales/ja/dialogue.json similarity index 100% rename from src/locales/it/dialogue-double-battle-female.json rename to src/locales/ja/dialogue.json diff --git a/src/locales/ko/config.ts b/src/locales/ko/config.ts index 392f2f72053..978cdc83002 100644 --- a/src/locales/ko/config.ts +++ b/src/locales/ko/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const koConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/ko/dialogue-double-battle-male.json b/src/locales/ko/dialogue-double-battle-male.json deleted file mode 100644 index 134b8ade71e..00000000000 --- a/src/locales/ko/dialogue-double-battle-male.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "그린: 어이 레드! 우리가 누군지 보여주자고!\n$레드: ...\n$그린: 태초마을의 힘을 보여주지!" - }, - "victory": { - "1": "그린: 훌륭한 승부였어!\n$레드: ..." - } - }, - "red_blue_double": { - "encounter": { - "1": "레드: ...!\n$그린: 이 녀석은 여전히 말이 없구나.\n$그린: 그렇지만 방심해선 안 돼! 그래도 챔피언이라고!" - }, - "victory": { - "1": "레드: ...!\n$그린: 다음에는 우리가 이길 테다!" - } - }, - "tate_liza_double": { - "encounter": { - "1": "풍: 에헤헤... 체육관 관장이\n$란: 두 명이나 있어서 놀랐지?\n$풍: 우리는 쌍둥이!\n$란: 굳이 말을 하지 않아도 서로가 무슨 생각을 하고 있는지\n$풍: 자동으로 머릿속에 떠오르니까\n$란: 호흡을 척척 맞출 수가 있지!" - }, - "victory": { - "1": "풍: 우, 우리들의\n$란: 팀워크가...!" - } - }, - "liza_tate_double": { - "encounter": { - "1": "란: 우후후... 체육관 관장이\n$풍: 두 명이나 있어서 놀랐어?\n$란: 우리는 쌍둥이!\n$풍: 완벽한 우리의 콤비네이션을\n$란: 과연 네가 깨뜨릴 수 있을까?" - }, - "victory": { - "1": "란: 우리들이 생각한 만큼\n$풍: 우리가 강하지 않았던 걸까?" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "성호: 윤진! 우리 챔피언의 힘을 보여주자!\n$윤진: 호연의 힘을 보여주마!\n$성호: 간다!" - }, - "victory": { - "1": "성호: 훌륭한 승부였어!\n$윤진: 다음엔 우리가 이길 거다!" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "성호: 너 혹시 희귀한 포켓몬 가지고 있니?\n$윤진: 성호야... 우리는 포켓몬을 자랑하러 온 게 아니라 승부하러 온 거야.\n$성호: 오... 그렇지... 그럼 간다!" - }, - "victory": { - "1": "성호: 이제 승부는 끝났으니 포켓몬을 자랑해 볼까!\n$윤진: 성호야..." - } - }, - "alder_iris_double": { - "encounter": { - "1": "노간주: 우리는 하나 지방 최강의 트레이너들이란다!\n$아이리스: 이렇게 강한 트레이너와 싸울 수 있어서 정말 기뻐~!!" - }, - "victory": { - "1": "노간주: 장하구나! 실로 견줄 자가 천하에 없도다!\n$아이리스: 다음 번엔 우리가 꼭 이길 거야~!" - } - }, - "iris_alder_double": { - "encounter": { - "1": "아이리스: 어서 와, 도전자! 내가 바로 하나 지방 챔피언이야~!\n$노간주: 아이리스야, 너무 흥분한 것 아니냐?" - }, - "victory": { - "1": "아이리스: 후와아아아아... 최선을 다했는데도... 우리가 져버렸네!\n$노간주: 하지만 우리의 패배를 발판 삼아 나아가리라!" - } - }, - "piers_marnie_double": { - "encounter": { - "1": "마리: 오빠, 스파이크마을의 힘을 보여주자!\n$두송: 우리가 어둠을 불러올 것이다!" - }, - "victory": { - "1": "마리: 네가 우리의 어둠에 빛을 불러왔구나!\n$두송: 여긴 너무 밝네..." - } - }, - "marnie_piers_double": { - "encounter": { - "1": "두송: 콘서트 즐길 준비 됐어?\n$마리: 오빠... 얘들은 노래가 아니라 승부를 하러 왔어..." - }, - "victory": { - "1": "두송: 훌륭한 콘서트였다!\n$마리: 오빠..." - } - } -} \ No newline at end of file diff --git a/src/locales/ko/dialogue-double-battle-female.json b/src/locales/ko/dialogue-double-battle.json similarity index 100% rename from src/locales/ko/dialogue-double-battle-female.json rename to src/locales/ko/dialogue-double-battle.json diff --git a/src/locales/ko/dialogue-female.json b/src/locales/ko/dialogue-female.json deleted file mode 100644 index ab29bd85b3c..00000000000 --- a/src/locales/ko/dialogue-female.json +++ /dev/null @@ -1,2691 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "거기 너! 나와 배틀 어때?", - "2": "넌 새내기 트레이너구나. 맞지?", - "3": "거기 너! 처음보는 얼굴인데? 나랑 배틀하자!", - "4": "방금 배틀에서 져서 새로운 포켓몬을 찾는 중이야.\n잠깐! 넌 약해보이는데? 어서 나와 배틀하자!", - "5": "우리 만난 적이 있었던가? 잘 기억은 안나지만 어쨌든 만나서 반가워!", - "6": "좋아! 시작하자!", - "7": "좋아! 내가 왔다! 내 힘을 보여주지!", - "8": "하하하… 내 포켓몬이 얼마나 멋진지 보여주겠어!", - "9": "인사할 시간도 없어. 준비가 되었다면 이리 와!", - "10": "긴장을 늦추지마. 그렇지 않으면 어린이에게 맞아 울지도 몰라.", - "11": "난 내 포켓몬들을 소중히 키웠어. 내 포켓몬에게 상처를 입히게 놔두지 않겠어!", - "12": "여기까지 잘 왔구나! 하지만 지금부턴 쉽지 않을거야.", - "13": "배틀은 끝나지 않아! 끝없는 배틀의 세계에 온 것을 환영해!" - }, - "victory": { - "1": "우와! 넌 강하구나!", - "2": "하? 난 기회가 없었어.", - "3": "내가 조금 더 큰 다음엔 널 찾아서 때리겠어!", - "4": "으.. 더이상 가지고 있는 포켓몬이 없어.", - "5": "말도 안돼… 안돼! 내가 또 지다니…", - "6": "안돼! 내가 지다니!", - "7": "우와! 정말 깜짝 놀랐어! 넌 정말 강하구나!", - "8": "이럴수가… 내 포켓몬과 난 최강인데… 어떻게…", - "9": "다음엔 지지 않을거야! 다음에 다시 배틀하자!", - "10": "쳇! 내가 어린애인게 보이지 않아?! 그렇게 최선을 다하는건 불공평해!", - "11": "네 포켓몬은 정말 굉장하구나! 나와 교환하자!", - "12": "내가 잠깐 정신이 나갔었나 봐. 내가 무슨 말을 하고 있었지?", - "13": "아하! 거기구나! 좋아! 넌 이미 이 세계에 머무를 곳이 있구나!" - } - }, - "lass": { - "encounter": { - "1": "나랑 배틀하자, 어때?", - "2": "넌 신입 트레이너구나. 나랑 배틀하자!", - "3": "너 거기 있었구나? 나랑 배틀할래?", - "4": "재밌는 포켓몬 배틀하자!", - "5": "내가 포켓몬을 어떻게 다뤄야하는지 보여줄게!", - "6": "진정한 배틀은 진지한 자세부터 시작이야! 준비됐어?", - "7": "젊음이 한순간이듯 배틀에서 네 기회도 단 한번만 주어질거야. 곧 넌 추억속으로 사라질거야.", - "8": "나에겐 살살해도 돼, 알았지? 그래도 난 진지하게 싸울거야!", - "9": "학교는 지겨워. 나는 할 일이 없어. 하암~ 난 그저 시간을 때우기 위해 싸울뿐이야." - }, - "victory": { - "1": "인상적이었어! 난 아직 배울게 많구나.", - "2": "내가 이렇게까지 크게 질 줄은 몰랐어…", - "3": "언젠가 우리가 다시 배틀할 수 있을 날을 기다릴게.", - "4": "놀라울 정도로 엄청 재미있었어! 넌 날 완전히 지치게 만들어버렸네…", - "5": "넌 나에게 진짜 교훈을 주었어! 넌 정말 대단해!", - "6": "세상에, 내가 지다니. 이거 정말 우울하지만… 넌 정말 멋있었어.", - "7": "난 이런 기억따윈 필요없어. 잊어버리겠어…", - "8": "거기 너! 살살하라고 했지! 그래도 넌 진지할때 정말 멋지구나!", - "9": "사실 배틀하는 것이 지루하던 참이야… 뭔가 새로운 것이 없을까?" - } - }, - "breeder": { - "encounter": { - "1": "순종적인 포켓몬, 이기적인 포켓몬… 포켓몬들은 각기 다른 성격을 가지고 있지.", - "2": "내 태도가 그렇게 좋진 않아도, 내 포켓몬들은 잘 키웠어.", - "3": "음, 넌 포켓몬들을 훈육하니? 너무 심하게 하는 것은 좋지 않다고." - }, - "victory": { - "1": "각 포켓몬의 성격을 이해하고 육성하는 건 중요해.", - "2": "사악한 나와는 달리 좋은 포켓몬들도 있지.", - "3": "과도한 칭찬은 사람과 포켓몬 모두에게 독이 될 수 있어." - }, - "defeat": { - "1": "배틀에서 지더라도 포켓몬에게 화를 내면 안돼.", - "2": "어때? 꽤 괜찮은 포켓몬이지? 난 무언가 기르는 게 꽤 잘 맞더라고.", - "3": "네가 포켓몬을 얼마나 사랑하는지와 관계없이, 그들이 잘못을 저지르면 바로잡아야 해." - } - }, - "breeder_female": { - "encounter": { - "1": "포켓몬은 절대 널 배신하지 않아. 네가 주는 사랑을 고스란히 되돌려 준다구.", - "2": "좋은 포켓몬을 키우는 팁을 알려줄까?", - "3": "난 아주 특별한 방법으로 아주 특별한 포켓몬들을 키웠지!" - }, - "victory": { - "1": "이런… 이렇게 될 리가 없는데. 내가 블렌딩을 잘못 썼나?", - "2": "내 포켓몬에게 이런 일이… 넌 네 포켓몬에게 뭘 먹이는 거야?", - "3": "내가 지는 건 그저 내가 시간을 때우고 있었다는 걸 알려주는 거지. 내 자존심엔 전혀 상처가 되지 않는다구." - }, - "defeat": { - "1": "이건 내 포켓몬들이 내 사랑을 받아들였다는 걸 입증하지.", - "2": "좋은 포켓몬을 키우는 진짜 비결은 좋은 포켓몬을 잡는 거야.", - "3": "포켓몬의 강함과 약함은 네가 어떻게 키우느냐에 따라 결정되지." - } - }, - "fisherman": { - "encounter": { - "1": "앗! 너 때문에 한 마리 놓쳤잖아! 어떻게 할 거야?", - "2": "저리 가! 네가 포켓몬들을 놀래키고 있잖아!", - "3": "네가 승리를 낚을 수 있을지 한번 보자고!" - }, - "victory": { - "1": "그냥 잊어버려.", - "2": "다음 번엔 내가 승리의 나팔을 울리고 있을거다!", - "3": "이번엔 내가 물살을 과소평가했나보군." - } - }, - "fisherman_female": { - "encounter": { - "1": "월척이다!", - "2": "낚시대는 던져졌고, 이젠 성공을 끌어올리는 일만 남았다!", - "3": "파도를 일으킬 준비는 끝났어!" - }, - "victory": { - "1": "더 튼튼한 바늘을 가지고 돌아올테다.", - "2": "다음번엔 꼭 성공을 낚을 거야!", - "3": "다시 돌아올 날을 기다리며 바늘을 다듬고 있을게!" - } - }, - "swimmer": { - "encounter": { - "1": "뛰어들 시간이다!", - "2": "승리의 파도 속으로!", - "3": "첨벙댈 준비는 끝났어!" - }, - "victory": { - "1": "패배에 젖어버렸어…", - "2": "패배의 파도였군.", - "3": "해변으로 돌아갈 시간이군." - } - }, - "backpacker": { - "encounter": { - "1": "게임 시작이야! 짐 단단히 싸놓으라구!", - "2": "네가 속도를 유지할 수 있을지 보자!", - "3": "각오 단단히 하라고!", - "4": "20년 동안 나 자신을 찾기 위해 헤매왔어… 근데 내가 어디 있지?" - }, - "victory": { - "1": "이번엔 걸려 넘어져 버렸네!", - "2": "내가 속도를 잃어버렸잖아!", - "3": "막다른 길이야!", - "4": "잠깐! 그래 거기, 혹시 내가 누군지 아나?" - } - }, - "ace_trainer": { - "encounter": { - "1": "너는 꽤 자신만만해 보이는구나.", - "2": "너의 포켓몬들… 나에게 보여줘…", - "3": "내가 엘리트 트레이너라서, 사람들은 내가 강하다고 생각해.", - "4": "엘리트 트레이너가 되려면 무엇이 필요한지 알고 있니?" - }, - "victory": { - "1": "그러네… 넌 좋은 포켓몬을 가졌구나…", - "2": "뭐? 말도 안 돼, 난 배틀 천재라구!", - "3": "그래도 역시, 네가 주인공이구나!", - "4": "좋아! 좋아! 너도 엘리트 트레이너가 될 수 있겠어!" - }, - "defeat": { - "1": "난 내 몸과 마음을 포켓몬 배틀에 바치고 있어!", - "2": "모두 예상된 일이었어… 이건 놀랄 일이 아니야…", - "3": "난 내가 강하게 압박하면 무너질 연약한 사람이라고 생각했어.", - "4": "난 강하고, 지지 않아. 그저 멋지게 이길 수 없었기 때문이야." - } - }, - "parasol_lady": { - "encounter": { - "1": "우아함과 침착함으로 승부하겠습니다!" - }, - "victory": { - "1": "그래도 제 우아함은 무너지지 않아요!" - } - }, - "twins": { - "encounter": { - "1": "각오해, 우리가 한 팀이 되면 두 배로 강해진다구!", - "2": "마음은 두 개지만 우리는 하나 – 네가 쌍둥이의 파워를 따라잡을 수 있는지 보겠어!", - "3": "두 배로 각오하는 게 좋을 거야. 우리가 곧 화나게 할 거거든!" - }, - "victory": { - "1": "비록 우리는 졌지만, 우리의 관계는 깨지지 않아!", - "2": "그래도 우리의 영혼은 오랫동안 흐려지지 않을 거야.", - "3": "더 강력한 듀오로 강해져서 돌아오겠어!" - }, - "defeat": { - "1": "우리 쌍둥이의 파워는 최고야!", - "2": "마음은 두 개지만 승리는 하나!", - "3": "미소도 두 배, 승리의 댄스도 두 배!" - } - }, - "cyclist": { - "encounter": { - "1": "내가 만든 먼지나 마실 준비하시지!", - "2": "준비하라구! 난 널 먼지 속에 놓고 올 거니까!", - "3": "전력을 다해야 할 거야, 네가 날 따라올 수 있는지 지켜보겠어!" - }, - "victory": { - "1": "바퀴가 움직이지 않더라도, 나의 페달은 그렇지 않아.", - "2": "이런, 따라잡혔어!", - "3": "승리로 가는 길에는 아직 만나지 못한 우여곡절이 많이 있구나." - } - }, - "black_belt": { - "encounter": { - "1": "네 용기가 대단하구나! 난 최고의 발차기 실력을 갖추고 있다구!", - "2": "오, 알겠어. 산산조각이 나고 싶구나? 아니면 샌드백이 되고 싶은 거야?" - }, - "victory": { - "1": "이런, 포켓몬이 배틀을 하는 동안 내 발차기는 전혀 도움이 되지 않았어.", - "2": "음… 어차피 내가 질거라면, 완전 엉망진창이 되길 바랬는데…" - } - }, - "battle_girl": { - "encounter": { - "1": "감동을 주려고 노력할 필요는 없어. 네가 질 수도 있으니까." - }, - "victory": { - "1": "작별인사는 어렵지만, 우리에겐 시간이 얼마 안 남았네…" - } - }, - "hiker": { - "encounter": { - "1": "중년으로 접어들면서 등산해왔던 산처럼 진중해졌습니다!", - "2": "살아있는 산같은… 큰 체격을 부모님이 물려주셨죠…" - }, - "victory": { - "1": "적어도 BMI에 대해서는 질 수 없습니다!", - "2": "부족해… 절대로 충분하지 않아. 저의 콜레스테롤이 부족합니다…" - } - }, - "ranger": { - "encounter": { - "1": "자연에 둘러싸여 있으면, 다른 건 중요하지 않게 느껴져.", - "2": "인생에서 자연을 빼고 살면, 가끔 갑자기 마음이 불안해지지." - }, - "victory": { - "1": "광활한 자연 앞에서는 내가 이기든 지든 상관없어…", - "2": "도시 생활의 답답한 느낌에 비하면 이런 것은 아주 사소한 일지." - }, - "defeat": { - "1": "내가 이겼네. 그러나 승리는 광대한 자연에 비하면 아무것도 아니야…", - "2": "내 마음속 불안함과 비교하면, 당신 기분은 그렇게 나쁘지 않을텐데…" - } - }, - "scientist": { - "encounter": { - "1": "제 연구는 이 세상을 평화와 기쁨으로 이끌 겁니다." - }, - "victory": { - "1": "전 천재니까… 당신 같은 사람에게 질 수 없는데…" - } - }, - "school_kid": { - "encounter": { - "1": "…헤헷. 계산과 분석에는 자신 있어.", - "2": "언젠가 체육관 관장이 되고 싶어서, 최대한 많은 경험을 쌓고 있어." - }, - "victory": { - "1": "으아아… 이번에는 아마 계산과 분석이 빗나간 것 같아…", - "2": "내가 보기엔, 어렵고 힘든 경험도 나름의 의미가 있는 것 같아." - } - }, - "artist": { - "encounter": { - "1": "예전엔 인기가 많았지만, 지금은 모두 사라졌다네." - }, - "victory": { - "1": "시대가 변하면, 가치관도 변하지. 난 그걸 너무 늦게 깨달았어." - } - }, - "guitarist": { - "encounter": { - "1": "패배의 리듬을 느낄 준비는 됐겠지? 내가 승리할 거니까!" - }, - "victory": { - "1": "지금은 조용하지만, 회복의 멜로디를 연주할 거야." - } - }, - "worker": { - "encounter": { - "1": "사람들이 저를 오해하는 게 신경 쓰여요. 전 생각보다 훨씬 깨끗하답니다." - }, - "victory": { - "1": "피부가 타는 게 싫어서, 일하는 동안엔 그늘에 머물고 싶어요." - } - }, - "worker_female": { - "encounter": { - "1": "사람들이 나를 오해하는 게 신경 쓰여.\n$나는 생각보다 훨씬 깨끗한데." - }, - "victory": { - "1": "피부가 타는 게 싫어서, 일하는 동안엔 그늘에 머물고 싶어." - }, - "defeat": { - "1": "생각처럼 몸이 잘 안따라주네." - } - }, - "worker_double": { - "encounter": { - "1": "너를 무너뜨릴 수 있다는 것을 보여줄게. 우리는 실전 경험이 있거든!" - }, - "victory": { - "1": "이상하네… 어떻게 이럴 수 있지… 힘으로 압도할 수 없다니." - } - }, - "hex_maniac": { - "encounter": { - "1": "평소에는 클래식 음악만 들었는데, 지면 뉴에이지도 좀 들어볼까!", - "2": "눈물을 흘릴 때마다 더 강해지는 것 같아." - }, - "victory": { - "1": "지금이 물병자리 시대의 시작일까?", - "2": "이제 나는 더 강해지겠지. 모든 원한과 함께 성장하겠어." - }, - "defeat": { - "1": "뉴에이지란 단순히 20세기 클래식 작곡가들을 말하는 거, 맞지?", - "2": "슬픔이나 좌절에 얽매이지 마. 넌 그 원한을 원동력으로 사용할 수 있어." - } - }, - "psychic": { - "encounter": { - "1": "안녕! 집중해!" - }, - "victory": { - "1": "에에에에엣!" - } - }, - "officer": { - "encounter": { - "1": "마음의 준비를 하시죠, 정의가 곧 실행될 거니까요!", - "2": "법을 지키고 정의를 위해 봉사할 준비가 되었습니다!" - }, - "victory": { - "1": "정의의 무게가 그 어느 때보다 무겁게 느껴집니다…", - "2": "패배의 그림자가 관할 경찰서에 남았습니다." - } - }, - "beauty": { - "encounter": { - "1": "나의 마지막 배틀… 이 승부를 그렇게 봐주셨으면 좋겠어요…" - }, - "victory": { - "1": "즐거웠어요… 언젠가 또 다른 마지막 승부를 하죠…" - } - }, - "baker": { - "encounter": { - "1": "패배의 맛을 볼 준비는 됐겠지!" - }, - "victory": { - "1": "실력이든 빵이든, 굽고 나면 단단해지는 법이라네." - } - }, - "biker": { - "encounter": { - "1": "힘차게 먼지 속으로 출발할 시간입니다!" - }, - "victory": { - "1": "다음 경주를 위해 준비해야겠습니다." - } - }, - "firebreather": { - "encounter": { - "1": "내 불꽃이 너를 삼킬 테니까!", - "2": "내 영혼은 불타고 있다. 얼마나 뜨겁게 타는지 보여주지!", - "3": "이리 올라와서 보도록!" - }, - "victory": { - "1": "하얗게 불태웠다………", - "2": "큭! 제법 뜨겁군!", - "3": "으윽! 코끝에 화상을 입었다!" - } - }, - "sailor": { - "encounter": { - "1": "친구여, 진다면 널빤지 행이야!", - "2": "덤벼! 내 선원으로서 자존심이 위태롭군!", - "3": "여어 거기! 뱃멀미 하나?" - }, - "victory": { - "1": "크윽! 꼬맹이한테 지다니!", - "2": "네 영혼이 나를 침몰시켰어!", - "3": "내가 뱃멀미가 나는 것 같군…" - } - }, - "archer": { - "encounter": { - "1": "더 나아가기 전에 우리 로켓단과 맞설 만한지 한 번 봅시다!", - "2": "당신의 실력이 예사롭지 않다는 소식을 들었습니다. 정말인지 한 번 보지요.", - "3": "…저는 로켓단의 간부 아폴로. 우리 조직의 적에게는 봐 주지 않습니다!" - }, - "victory": { - "1": "…이런 실수를 하다니!", - "2": "역시 지금의 저는 무리였군요…", - "3": "비, 비주기님, 용서해주십시오…제가 일개 트레이너한테 당하다니…" - } - }, - "ariana": { - "encounter": { - "1": "거기까지다~!! 너 같은 놈을 언제까지고 설치게 두었다가는 \n$로켓단의 프라이드는 상처 입고 상처 입어서 상처투성이가 돼 버린다고-!", - "2": "내가 하는 일이 옳은지 그른지는 상관 없어…\n$그저 비주기님을 믿고 따르는 것 뿐이니까-!", - "3": "네 여정은 여기서 끝이야. 내가 널 이길 테니까-!" - }, - "victory": { - "1": "어머, 강하군. 안타깝네.\n$네가 로켓단에 있었다면 간부가 될 수 있었을 텐데.", - "2": "사…산산조각났네…", - "3": "으이이이익! 온 힘을 다해서 싸웠는데…이래도 이길 수 없다니!" - } - }, - "proton": { - "encounter": { - "1": "뭐죠? 우리 일에 끼어든다면 자비를 바라지 마십시오!", - "2": "뭐죠? 나는 로켓단에서 제일 냉혹하다고 불리는 남자…\n$우리 일을 방해하도록 그냥 놔두지 않겠습니다!", - "3": "나는 로켓단의 간부 랜스. 당신의 참견도 여기까지입니다!" - }, - "victory": { - "1": "요새가 무너져내렸네요…", - "2": "나한테 이긴 건 결국 로켓단의 분노를 강하게 했을 뿐이예요…", - "3": "나는 졌지만, 결코 이 일을 잊지 않을 겁니다!" - } - }, - "petrel": { - "encounter": { - "1": "후후훗, 잘 왔구나. 오잉? 내가 누군지 알아? 비주기야.\n$비주기님이라고, 우-하하! …엥? 전혀 안 닮았다고?\n$비주기님으로는 안 보인다고? 제길- 열심히 연습했는데!", - "2": "나는 로켓단의 간부 람다. 우리 계획을 방해하는 건 용납할 수 없다!", - "3": "이 로켓단 간부 람다가 네놈 불청객을 처리해 주지!" - }, - "victory": { - "1": "조…좋아. 비주기님이 어디 계신지 알려주지.", - "2": "크으으… 이 내가 당해낼 수 없다니… 비주기님, 용서해주십시오…", - "3": "안돼, 이런다고 나한테 어쩔 수는 없어. 다른 사람들에게 알려야겠어…" - } - }, - "tabitha": { - "encounter": { - "1": "우효효효! 그래 당신 여기까지 왔구나! 그치만 늦었어요!", - "2": "우효효… 벌써 여기까지 왔네요? 우리가 당신을 과소평가했어요. 하지만 이제 시작입니다! \n$이 호걸님은 이제까지 본 조무래기들과는 차원이 다르답니다! 우물쭈물 시간을 끌지 않아요.\n$확실하게 보내주마! 우효효효효효효!!", - "3": "여기서 어른의 무서움을 제대로 알려주지! 받아랏-!" - }, - "victory": { - "1": "우효효! 이 호걸은 이겼을지 몰라도 마적님한테는 안 될 겁니다!\n$차라리 여기서 졌다면 무자비한 채찍질은 피했을텐데 말이죠!", - "2": "우효~! 이야 이건 예상 밖의 전개인데!?", - "3": "우효! 어떻게?! 이 호걸님이 이런 일개 트레이너에게…" - } - }, - "courtney": { - "encounter": { - "1": "…그 …네가 가진 …우리…마그마단이 원하는 것", - "2": "…………그럼 …………삭제하겠습니다", - "3": "……애널라이즈 ……하고 싶어 ……아하하하♪" - }, - "victory": { - "1": "……하아하아… ……으 …하아하아…", - "2": "………예상대로 ………예상외 ………너 …………타깃 록 ………했으니까\n$……엑스페리먼트 ……할 테니까 ………너를………계속………아핫…♪", - "3": "……예상외 ………… ……역시 ……너…재미있어…! ………아하하…♪" - } - }, - "shelly": { - "encounter": { - "1": "엥? 우리 아쿠아단의 일에 끼어들겠다고?\n$…좋아! 기본적인 예의도 모르는 애송이한테는 제대로 그 버릇을 고쳐줘야지…\n$겁먹고 도망쳐도 용서 따위 없을 줄 알아! 우하하하!", - "2": "아앙? 뭐야? 이 건방진 꼬맹이는…", - "3": "침착해. 조급해 하지 말라고… 금방 박살내 줄 테니까." - }, - "victory": { - "1": "아아아아앙!? 예상치 못하게 방해받았잖아! 어쩔 수 없네.\n$여기선 물러나야겠네. 그렇지만 네가 아쿠아단을 만나는 게 이게 마지막은 아닐 거야.\n$우리는 다른 계획도 있거든! 잊지 마!", - "2": "크윽…!? 너무 봐줬나…!", - "3": "…으윽 …싸우면서 더욱 실력이 좋아졌다고…!?\n$장래가 무서워지는 애송이네… …나와 내 포켓몬들은 더 이상 싸울 힘이 남아 있지 않아.\n$…가 …가서 아강님한테 아주 혼쭐이나 나 버려." - } - }, - "matt": { - "encounter": { - "1": "…그래서 말이지, 리더님이 시간이 나실 때까진 내가 상대해 주마!", - "2": "후우하앗!! 맥시멈!! 끓어어!! 오르기 시작했다아아앗!!!!! 그래! 그래! 그래애앳!!! 힘이 다할 때까지 해보자아아!!!", - "3": "UPAAAAA!!! 짓뭉개주마아아아아!!" - }, - "victory": { - "1": "흐~하하하핫!!! 졌지만 즐거운 승부였다!", - "2": "확 확 느껴지는데! 네놈들의 강함이 말이야!\n$제대로 붙었다고 하기엔 조금 모자라지만 이제 타임오버 같네…", - "3": "오우오웃! 흥분되는 패배로다!" - } - }, - "mars": { - "encounter": { - "1": "난 갤럭시단 간부인 마스! 강하고 아름답지!", - "2": "갤럭시단의 미래에 대한 비전은 흔들림 없지. 방해한다면 무자비하게 짓밟아 주마!", - "3": "두렵지 않아? 넌 그래야만 할 걸!" - }, - "victory": { - "1": "갤럭시단의 간부로서… 이런 일은 있을 수 없어!!", - "2": "넌 능력 있구나. 그건 인정하지.", - "3": "아-이런 이런! 졌잖아!" - } - }, - "jupiter": { - "encounter": { - "1": "무슨 볼일이라도? 좋아! 갤럭시단 간부인 나 주피터가 상대해주지.", - "2": "발버둥쳐 봐야 소용 없어. 갤럭시단이 승리할 거니까!", - "3": "너 떨고 있네… 무서운 거지?" - }, - "victory": { - "1": "일개 트레이너에게 지다니 방심이란 무섭구나.", - "2": "다음에는 내가 울려 주고 말겠어!", - "3": "흥! 강하네. 하지만 보스는 당할 수 없어" - } - }, - "saturn": { - "encounter": { - "1": "나는 갤럭시단의 간부 새턴. 모든 것은 모두를 위해 그리고 갤럭시단을 위해!", - "2": "갤럭시단을 방해한다면 일말의 가능성도 모두 제거한다!", - "3": "여기까지 왔으니 갤럭시단 나름의 접대를 해 주지." - }, - "victory": { - "1": "이럴 수가… 너한테 졌다고?!", - "2": "…역시 강해! 갤럭시단에 맞설 만하군.", - "3": "강하다! 하지만 불쌍하군." - } - }, - "zinzolin": { - "encounter": { - "1": "너는 플라스마단에게 있어 불안요소가 될 것이다. 여기서 제거하겠다!", - "2": "이런 이런… 내가 이런 곳에서 싸워야만 하다니!", - "3": "여기까지 오다니 대단한 트레이너군. 그러나 여기가 끝이다." - }, - "victory": { - "1": "게치스님… 제가 실패했습니다…", - "2": "그건 그렇고 힘들구먼. 나는 떨고 있다. 괴롭지만 살아 있다. 그것이야말로 살아 있다는 실감!", - "3": "흐음. 의외로 똑똑한 트레이너군. 하지만 생각만큼은 아니야." - } - }, - "rood": { - "encounter": { - "1": "너는 플라스마단에 위협이 되는구나. 너라는 트레이너가 어떤 인물인지 승부로 알아봐야겠다.", - "2": "오호! 싸늘하구먼… 이런 곳에서 싸울 줄이야!", - "3": "너는 여기까지 온 것으로 보니 뛰어난 트레이너구나. 그렇다만 이젠 끝이다." - }, - "victory": { - "1": "게치스님… 임무를 실패했습니다…", - "2": "나는 떨고 있다. 나는 괴롭지만 이겨냈다.", - "3": "음… 너는 재능이 있는 트레이너구나. 하지만 충분하지는 않다." - } - }, - "xerosic": { - "encounter": { - "1": "오오- 네 소문은 많이 들었다. 자, 이리 와 보거라!", - "2": "너 강하구나. 에너지를 얼마나 갖고 있지?", - "3": "기다리고 있었어! 너를 조사하겠다. 자 시작한다!" - }, - "victory": { - "1": "강하구나, 너는. 응, 정말 강해, 너는.", - "2": "뭣이라! 넌 굉장하군! 너의 포켓몬도 대단하군!", - "3": "굉장하구나 너! 아주 굉장해! 나는 너를 인정하겠다!" - } - }, - "bryony": { - "encounter": { - "1": "나는 바라. 당신과 싸울 수 있어 기쁘군요. 한 번 보여주시죠.", - "2": "인상적이군요… 보기보다 강해요. 에너지가 어디까지 뻗어나가는지 봅시다.", - "3": "도착할 줄 알았습니다. 시작할까요?" - }, - "victory": { - "1": "어라? 이길 확률은 어디까지나 확률. 절대적이진 않네.", - "2": "확률을 무시하는 트레이너, 네 파워의 원천은 뭐지?", - "3": "놀랍군! 칭찬할 만 해." - } - }, - "rocket_grunt": { - "encounter": { - "1": "트러블에 대비하도록!", - "2": "우리는 위업을 이루는 중이라고! 저리 비켜, 꼬마 녀석!", - "3": "포켓몬을 넘기지 않겠다면, 로켓단이 징벌하겠다!", - "4": "로켓단의 진정한 공포를 보여주마!", - "5": "헤이, 키드! 미는 로켓단의 멤버라구요!" - }, - "victory": { - "1": "로켓단은 다시 떠오를 거니까!", - "2": "이런! 엘리베이터 키를 떨어뜨렸어!", - "3": "실패했군!", - "4": "내 동료들이 가만히 있지 않을 거다!", - "5": "유 쎄이 왓? 로켓단이 바이바이? 유한테 브레이킹?" - } - }, - "magma_grunt": { - "encounter": { - "1": " 마그마단을 방해한다면, 자비는 없닷!", - "2": "계획을 방해하지 않는 게 좋을 거다! 우리는 세상을 더 나은 곳으로 만들고 있거든!", - "3": "방해꾼 녀석! 마그단은 너 같은 꼬마들을 상대할 시간이 없어!", - "4": "마시멜로를 갖고 있었으면 좋겠네. 왜냐하면… 곧 뜨거워질 테니까!", - "5": "화산의 힘을 사용할 거야! 그건 정말로… 폭발적일 테니까! 알아들었지? 헤헷!" - }, - "victory": { - "1": "하? 내가 졌어?!", - "2": "내가 지다니! 이것 때문에 점심도 거르고 왔는데.", - "3": "말도 안돼! 넌 아직 어린애잖아!", - "4": "으윽… 당장 은신처로 숨을 걸 그랬나…", - "5": "네가 이겼어… 이것 때문에 보스가, 내 월급 깎으려나?" - } - }, - "aqua_grunt": { - "encounter": { - "1": "아쿠아단을 넘본 사람에게는 자비는 없다, 꼬마도 마찬가지야!", - "2": "쯧… 아쿠아단에 참견하다니 오지랖이 넓군!", - "3": "흠뻑 물을 뒤집어쓰게 될 거다! 내 물 포켓몬의 공격 뿐만이 아니야!", - "4": "우리, 아쿠아단은, 모두를 위해 존재한다!", - "5": "내가 떠밀… 아니, 파도에 떠내려갈 준비나 하라고! 내 포켓몬이 그렇게 만들 테니까 " - }, - "victory": { - "1": "말도 안 돼!", - "2": "크윽, 참견쟁이 꼬마에게 당하다니!", - "3": "내가 졌다고?! 헤엄쳐서 은신처로 돌아가야겠군…", - "4": "이런, 완전 망했군… 보스가 화를 내실텐데…", - "5": "네가 이겼어… 이것 때문에 보스가, 나를 판자 위로 보내는 거 아냐?" - } - }, - "galactic_grunt": { - "encounter": { - "1": "갤럭시단을 방해하지 마!", - "2": "기술의 힘과 우리가 꿈꾸는 미래를 목격하라!", - "3": "갤럭시단으로서, 우리를 방해하는 자는 누구든 제거하겠다!", - "4": "질 준비나 하라고!", - "5": "우주에서 싸울 준비는 됐겠지!" - }, - "victory": { - "1": "사격 중지…… ", - "2": "이런 좌절이라도, 우리의 큰 계획 앞엔 아무 의미도 못 돼.", - "3": "우리의 계획은 이번 패배보다 크거든.", - "4": "어떻게 한 거지?!", - "5": "메모해야겠군. 최대한 포켓몬 배틀을 ASAP으로 연습할 것." - } - }, - "plasma_grunt": { - "encounter": { - "1": "다른 생각을 가진사람들은 용납하지 않겠다!", - "2": "내가 이기면, 네 포켓몬들을 놓아주도록 해!", - "3": "플라즈마단을 방해한다면, 내가 처리해주지!", - "4": "플라즈마단은 너 같은 이기적인 인간에게서 포켓몬을 해방할 것이다!", - "5": "우리 스타일링은 정말 대단하지… 배틀 실력은 어떻냐고? 곧 알게 될거야." - }, - "victory": { - "1": "플라-스마-!", - "2": "내가 지다니…", - "3": "…포켓몬이 너무 약해, 더 좋은 포켓몬을 훔치러 가야겠군!", - "4": "훌륭한 계획은 항상 방해를 받는다니깐.", - "5": "이건 나빠… 나빠나빠나빠나빠나빠! 플라스마단에 나빠! 줄여서, 플라나빠!" - } - }, - "flare_grunt": { - "encounter": { - "1": "네 포켓몬, 플레어단의 우아함에 상대가 되지 않는다고.", - "2": "선글라스를 가져왔길 바랄게. 곧 밝게 빛날 테니까!", - "3": "플레어단이 세상의 불완전함을 정화할 거야!", - "4": "플레어단의 광채를 마주칠 준비는 됐겠지!", - "5": "패션이 우리한텐 가장 중요하다고!" - }, - "victory": { - "1": "미래가 밝아 보이질 않네.", - "2": "생각했던 것보다 전투에는 많은 요소가 있는 것 같군. 다시 계획을 짜야겠어.", - "3": "아앗?! 내가 졌어?!", - "4": "패배 속에서도, 플레어단의 우아함은 빛나고 있다고.", - "5": "네가 이긴 것 같네. 그렇지만 졌어도, 난 우아하게 퇴장할 거니까!" - } - }, - "aether_grunt": { - "encounter": { - "1": "죽을 각오로 퇴치하겠습니다!", - "2": "소중한 연구라고! 애라도 가만두지 않겠어!", - "3": "어떤 트레이너든 물리치라고 들었다고!", - "4": "에테르파라다이스의 파워를 보여드리겠습니다!", - "5": "에테르파라다이스 중심의 어둠을 알아내다니. 이제 사라져 주셔야겠습니다!" - }, - "victory": { - "1": "흥! 실력이 대단하시군요.", - "2": "이게 뭐하는 상황이지? 무슨 결과냐고!", - "3": "이런! 넌 너무 강해서 물리칠 방법도 없다고!", - "4": "으음… 제가 진 것처럼 보이네요.", - "5": "이 느낌을 한마디로 하면. 게에이~힝!!" - } - }, - "faba": { - "encounter": { - "1": "나, 에테르재단의 자우보! 꼬맹이 녀석에게 현실을 보여주겠어요!", - "2": "에테르파라다이스 마지막 보루라고 불리는, 이 자우보에게 애를 상대하라고요?", - "3": "에테르재단의 지부장이라면 세계에 단 한 명… 이 자우보뿐입니다." - }, - "victory": { - "1": "게에이~힝!!", - "2": "뭐 뭐뭐뭐 뭐가 어떻게 된 거죠? 내가 애를 상대로…", - "3": "이래서 애는… 좋아할 수가 없어요." - } - }, - "skull_grunt": { - "encounter": { - "1": "나쁜 짓 안해-그냥 사는 게 힘들 뿐스컬!", - "2": "껌 하나 드실? 이게 우리가 인사하는 방식YO! 만나서 반갑스컬!", - "3": "우린 그냥 다른 사람의 포켓몬에 관심이 많을 뿐임다!", - "4": "어이 어이! 잘난 체하는 녀석한테 무시당하고 있잖스컬!!", - "5": "우리는 리프리젠트 땡땡이 스컬-! 집세는 못 내겠지만-! 정말 즐거웠지만, 청춘을 날려YO!" - }, - "victory": { - "1": "엥? 벌써 끝났슴까?", - "2": "미는 엑시트! 유는 피쓰풀!", - "3": "꼬마 녀석의 이상한 포켓몬엔 관심 없어!", - "4": "뭐야-?! 너무 강해서 뼈도 못 추리겠어!", - "5": "우리가 포켓몬보다 아래야!? 소중히 대해주면 안 돼? 으응!?" - } - }, - "plumeria": { - "encounter": { - "1": "…아무것도 느껴지지 않는 평~범한 애로 보이는데!", - "2": "워낙 애들 상대로 우물쭈물 하길래 오래 걸릴 줄 알았지…", - "3": "누구라도 스컬단 또 방해하면, 정말로 혼내줄 테니까!" - }, - "victory": { - "1": "흥! 대단하군.", - "2": "흐음, 너 참 대단하군. 애들을 상대로 질질 끈 이유가 이해될 정도로 강해.", - "3": "흠. 이 손실은 그냥 안고 가야겠어." - } - }, - "macro_grunt": { - "encounter": { - "1": "당신은 여기서 끝날 것 같네요!", - "2": "당신은 트레이너 맞죠? 하지만 우리를 방해하는 건 용납 못 합니다!", - "3": "매크로코스모스 생명입니다! 가입하신 실비보험은 있으신가요?" - }, - "victory": { - "1": "순순히 물러나는 것 말고는 선택지가 없군요.", - "2": "용돈을 뺏기다니… 패배는 적자로 이어지는구나…", - "3": "매크로코스모스 생명에 관한 일이라면 누구에게도 지지 않을 텐데…" - } - }, - "oleana": { - "encounter": { - "1": "로즈님을 방해하는 것은 절대로 용서할 수 없으니까요!", - "2": "저의 지시를 따르는 특별한 스태프들을 아무렇지도 않게 쓰러뜨리다니. …더 기대되는 것도 없네요.", - "3": "로즈님을 위해서라면! 질 수 없습니다!" - }, - "victory": { - "1": "아아… 이기지 못하다니… 올리브… 넌 정말 구제 불능이구나.", - "2": "하아아…! 이런 실수를 하다니… 승리를 거듭한 트레이너의 실력을 너무 얕잡아봤던 모양이네요.", - "3": "아아… 이 올리브님 조금 지쳤어…" - } - }, - "rocket_boss_giovanni_1": { - "encounter": { - "1": "그래서! 여기까지 오다니, 감탄이 절로 나오는군!" - }, - "victory": { - "1": "하! 이럴 순 없어!" - }, - "defeat": { - "1": "자신의 힘을 측정하지 못하는 걸 보아하니, 아직 별볼일 없는 꼬맹이로군. 내 말을 명심하도록. " - } - }, - "rocket_boss_giovanni_2": { - "encounter": { - "1": "옛 친구들이 나를 필요로 하고 있다…… 그런데도 방해하겠다는 건가?" - }, - "victory": { - "1": "어떻게 이런 일이…?\n로켓단의 소중한 꿈이 환상에 불과해졌군…… " - }, - "defeat": { - "1": "로켓단은 다시 태어난다, 그리고 세상을 지배할 것이다!" - } - }, - "magma_boss_maxie_1": { - "encounter": { - "1": "내 손으로 널 파묻어주지. 영광으로 알도록!" - }, - "victory": { - "1": "윽! 꽤… 제법이군…\n내가 뒤쳐졌지만, 겨우 한 끝이다…" - }, - "defeat": { - "1": "마그마단이 앞선다!" - } - }, - "magma_boss_maxie_2": { - "encounter": { - "1": "나와 내 목표 사이에 남은 마지막 장애물이로군.\n최후의 공격에 대비하도록! 후하하하!" - }, - "victory": { - "1": "이런… 이럴 수는… 없어… " - }, - "defeat": { - "1": "이제부터… 인류의 이상을 위해 대지를 더 늘려가겠다." - } - }, - "aqua_boss_archie_1": { - "encounter": { - "1": "내가 아쿠아단의 리더다, 유감스럽게도 넌 이게 끝이겠군." - }, - "victory": { - "1": "다시 어딘가에서 만나도록하지. 그 얼굴 기억해둘테니까." - }, - "defeat": { - "1": "좋군! 이제 아쿠아단을 막아설 것은 없다!" - } - }, - "aqua_boss_archie_2": { - "encounter": { - "1": "이 날이 오는 것을 너무 오래 기다렸군.\n이것이 우리의 진정한 힘이다!" - }, - "victory": { - "1": "내가 생각했던 것들이…… " - }, - "defeat": { - "1": "이 세상을 원래의 순수한 상태로 되돌리겠다, 그 모든 것을!!" - } - }, - "galactic_boss_cyrus_1": { - "encounter": { - "1": "넌 공허한 감정에 이끌려 이곳에 오게된 것이다.\n마음에 귀를 기울인 것을 후회하게 해주지!" - }, - "victory": { - "1": "흥미롭군. 게다가 꽤 궁금해졌어." - }, - "defeat": { - "1": "새로운 세상을 만들 것이다…" - } - }, - "galactic_boss_cyrus_2": { - "encounter": { - "1": "이런 우리가 다시 만나게 됐군. 우리의 운명이 얽히게 된 것 같군.\n 하지만 지금 여기서, 나는 마침내 그 끈을 끊을 것이다!" - }, - "victory": { - "1": "어떻게? 어째서? 어떻게?!" - }, - "defeat": { - "1": "작별이로군." - } - }, - "plasma_boss_ghetsis_1": { - "encounter": { - "1": "누구도 저를 막을 수 없습니다! 무슨 짓을 하더라도!" - }, - "victory": { - "1": "…어떻게 된 거지? 이 몸은 플라스마단을 만들어낸 완벽한 남자라고! " - }, - "defeat": { - "1": "세계를 바꿀 완전한 지배자가 아니었단 말인가!? …흐하하!" - } - }, - "plasma_boss_ghetsis_2": { - "encounter": { - "1": "오시죠! 당신이 모든 희망을 잃는 순간의 얼굴을 보겠습니다!" - }, - "victory": { - "1": "내 계산이… 틀려! 내 치밀한 계획이 틀리다니! 세상은 내 것이어야 하는데!" - }, - "defeat": { - "1": "큐레무! 합체해라!" - } - }, - "flare_boss_lysandre_1": { - "encounter": { - "1": "나를 막겠다고? 배틀로 증명하도록." - }, - "victory": { - "1": "네가 나를 여기서 막았군. 하지만 잠시 기다리도록. " - }, - "defeat": { - "1": "포켓몬은… 더 이상 존재하지 않는다." - } - }, - "flare_boss_lysandre_2": { - "encounter": { - "1": "너의 미래와 나의 미래… 어느 쪽이 옳은지 서로의 포켓몬에게 묻도록 하지." - }, - "victory": { - "1": "크윽!" - }, - "defeat": { - "1": "우매한 자들이 이 아름다운 세상을 계속 더럽히고 있군." - } - }, - "aether_boss_lusamine_1": { - "encounter": { - "1": "비스트가 놀라잖아! …우선은 너를 조용히 시켜야겠어." - }, - "victory": { - "1": "……너무해!" - }, - "defeat": { - "1": "흐음…" - } - }, - "aether_boss_lusamine_2": { - "encounter": { - "1": "그렇게 말했는데도! …왜 이리 끈질긴 거야! 정말 진절머리가 나.\n$더 말해봐야 소용 없겠지… 텅비드의 힘으로 네가 여기까지 온 걸 후회하게 해줄게!" - }, - "victory": { - "1": "………아아아웃!!" - }, - "defeat": { - "1": "나는 비스트만 있으면 돼! 너희가 어떻게 되든 상관없어!" - } - }, - "skull_boss_guzma_1": { - "encounter": { - "1": "박살 내고 박살 내도 절대 봐주지 않아…\n$모두가 싫어하는 구즈마가 여기 있다!" - }, - "victory": { - "1": "쯧. 너는 내가 박살 내주겠어!" - }, - "defeat": { - "1": "겨우 그걸 위해서 일부러 온 거야?" - } - }, - "skull_boss_guzma_2": { - "encounter": { - "1": "누구든지 박살 낸다!\n$그것이 구즈마님의 아이덴티티!!" - }, - "victory": { - "1": "구즈마!!! 뭐 하고 있는 거야?!" - }, - "defeat": { - "1": "너희들 바보군!" - } - }, - "macro_boss_rose_1": { - "encounter": { - "1": "내게는 모든 사람이 영원히 마음을 놓고 발전할 수 있도록…\n$무한한 에너지를 가져다 줘야 한다는 신념과 사명이 있단다!" - }, - "victory": { - "1": "아직 무르군… 트레이너.\n$역사는 바뀔 것이네! 이 나의 손에 의해서 말이지" - }, - "defeat": { - "1": "자네는 여전히 깨닫지 못했군!" - } - }, - "macro_boss_rose_2": { - "encounter": { - "1": "나는 가라르를 포함한— 전 세계의 에너지 문제를 해결하기 위해 최선을 다하고 있어.\n$매크로코스모스를 성공으로 이끈 경험과 성과는 내 방식이 효율적이라는 증거란다.\n$생각을 바꿀 마음은 없어. 내가 지더라도." - }, - "victory": { - "1": "포켓몬 승부는 좋군! 오랜만에 싸워보니 만족스러워…\n$제법 괜찮군. 패배를 인정하지." - }, - "defeat": { - "1": "너희가 보기에는 내가 끔찍한 짓을 벌이고 있는 것처럼 보이겠지? 조금도 이해가 가지 않을 거야.\n$하지만 난 가라르지방의 영원한 번영을 위해서 무한한 에너지를 가져다줘야 해." - } - }, - "brock": { - "encounter": { - "1": "내 전문인 바위 타입 포켓몬으로 널 쓰러뜨려줄게! 덤벼!", - "2": "바위같은 의지로 널 압도하겠어!", - "3": "내 포켓몬의 진정한 힘을 보여줄게!" - }, - "victory": { - "1": "네 포켓몬의 힘이 바위같은 내 방어를 이겼어!", - "2": "세상은 넓구나! 너랑 겨뤄볼 수 있어서 즐거웠어.", - "3": "아마도 난 포켓몬 브리더의 꿈을 이루러 가야할지도…" - }, - "defeat": { - "1": "최선의 공격은 적절한 방어지!\n그게 내 방식이야!", - "2": "다음에 나한테 더 배우러와. 바위타입과 어떻게 싸워야하는지 알려주지!", - "3": "아, 여러 지역을 돌아다니며 여행한 보람이 있군!" - } - }, - "misty": { - "encounter": { - "1": "내 방침은 물타입 포켓몬으로 공격하고 공격하고 또 공격하는 거!", - "2": "아하핫, 너한테 내 물타입 포켓몬들의 힘을 보여줄게!", - "3": "내 꿈은 여행을 다니며 강한 트레이너들과 배틀하는 거였어…\n네가 그 충분한 도전자가 될 수 있는지 볼까?" - }, - "victory": { - "1": "너 정말로 강하구나… 그 실력 인정하도록 할게…", - "2": "으으… 너 그냥 운이 좋았던거야, 그치?!", - "3": "우와, 너 대단해! 날 이기다니 믿을 수 없어!" - }, - "defeat": { - "1": "최강인 최이슬! 너한테 좀 심했나?", - "2": "내 포켓몬들의 우아한 수영 테크닉을 봤길 바랄게!", - "3": "내 프라이드와 즐거움엔 네 포켓몬들은 상대가 안 돼. " - } - }, - "lt_surge": { - "encounter": { - "1": "마이 전기 포켓몬은 전쟁에서 미를 구했어요! 하우를 유에게 보여줄게요!", - "2": "헤이! 쇼크로 유를 항복시키겠어요!", - "3": "배틀에서 마이 에너미에게 했던 것처럼 유에게도 펀치를 날리겠어요!" - }, - "victory": { - "1": "와우, 키드! 유어 팀은 진짜 대단하군요!", - "2": "으흐흑, 유는 스트롱하네요! 마이 전기 트릭도 유에겐 로스트입니다.", - "3": "앱솔루트하고 쇼킹한 패배였어요!" - }, - "defeat": { - "1": "오우 예! 전기 타입 포켓몬이라면, 미가 월드에서 넘버 원이에요!", - "2": "하하하! 키드, 이것이 찌릿찌릿 일렉트릭 배틀입니다!", - "3": "포켓몬 배틀은 전쟁, 앤드 나는 유에게 직접 전투를 보여줬습니다!" - } - }, - "erika": { - "encounter": { - "1": "아, 오늘은 날씨가 좋네요…\n음, 배틀일까요? 그럼 더 좋죠.", - "2": "제 포켓몬들의 배틀 실력은 제 꽃꽂이 실력만큼 대단하답니다.", - "3": "아, 제 포켓몬의 달콤한 향기가 저를 다시 잠들게 하지 않았으면 좋겠는데……", - "4": "정원에서 꽃을 보면 마음이 편안해져요.”." - }, - "victory": { - "1": "앗! 제 패배를 인정합니다.", - "2": "방금 경기 정말 달콤했어요.", - "3": "아, 제가 진 것 같네요…", - "4": "앗, 맙소사." - }, - "defeat": { - "1": "저 조금 걱정했어요. 너무 졸려서…", - "2": "어머, 제 풀 포켓몬이 당신을 압도한 것 같네요.", - "3": "이 배틀 정말로 편안한 경험이었네요.", - "4": "어머… 이게 끝인가요?" - } - }, - "janine": { - "encounter": { - "1": "난 독을 사용하는 인술을 갈고 닦고 있어.\n오늘 수련에서는 너랑 대련할거야!", - "2": "아버지는 내가 잘해낼 수 있다고 신뢰하셔.\n 그게 맞는다는 걸 증명할게!", - "3": "내 인술은 아버지한테 뒤처지지 않아! 따라올 수 있겠어? " - }, - "victory": { - "1": "역시 아직도, 난 더 수련이 필요해… 납득했어.", - "2": "네 배틀 기술이 내 인술보다 한 수위야.", - "3": "더 스스로 갈고 닦아서, 내 인술을 향상 시키겠어." - }, - "defeat": { - "1": "후후후… 독이 네 기력을 모두 가져가버렸네.", - "2": "하핫, 너 내 인술에 맞설 기회를 잡지 못했구나!", - "3": "나를 향한 아버지의 신뢰, 틀리지 않았다는 걸 증명해냈어." - } - }, - "sabrina": { - "encounter": { - "1": "내 초능력을 통해서, 너의 도착은 예상하고 있었어!", - "2": "싸우는 건 좋아하지 않지만 네가 원한다면… 나의 힘을 보여줄게!", - "3": "네게서 큰 염원이 느껴져. 그것이 근거 없는 것이 아닌지 지켜보겠어." - }, - "victory": { - "1": "너의 힘은… 내가 예견했던 것보다 훨씬 뛰어나…", - "2": "나는 너의 힘을 정확하게 예측하지 못했어.", - "3": "나 엄청난 초능력을 가지고도, 너처럼 강한 사람을 느끼지 못했네." - }, - "defeat": { - "1": "이 승리는… 내가 환상에서 예견한 그대로네!", - "2": "아마도 그건, 내가 깊이 느꼈던 또 다른 염원이었을거야…", - "3": "무모하게 배틀에 임하기 전에 능력을 갈고닦도록.\n넌 미래가 어떻게 될지 예지할 수 없으니까…" - } - }, - "blaine": { - "encounter": { - "1": "우오오~옷! 화상치료제는 잘 준비했는가!", - "2": "나의 포켓몬은 모든 것을 불꽃으로 태워버리는 강한 녀석들뿐이다!", - "3": "불꽃과 함께할 준비는 됐는가!" - }, - "victory": { - "1": "아무것도 남지 않고 불타버렸다! 재조차 남지 않았어!", - "2": "내가 불을 너무 세게 피우지 않았나?", - "3": "불태웠다… 하지만 이건 불꽃을 향상시키려는 내 동기를 더욱 뜨겁게 만드는군!" - }, - "defeat": { - "1": "나의 타오르는 불길은 진압할 수 없다!", - "2": "내 포켓몬은 이번 승리의 열기로 더욱 강해졌다!", - "3": "하! 내 열정이 네 것보다 더 밝게 타오르고 있군!" - } - }, - "giovanni": { - "encounter": { - "1": "나, 로켓단의 리더가, 고통의 세계를 느끼게 해주마!", - "2": "옛 동료들과 다시 만나기 전, 이곳에서의 훈련은 매우 중요하겠군.", - "3": "너는 곧 경험하게 될 실패에 대한 준비가 되어 있지 않군!" - }, - "victory": { - "1": "하! 내가 졌다고?! 더 이상 할말이 없군!", - "2": "흐음… 넌 내가 이루고자 하는 것을 결코 이해할 수 없을 거다.", - "3": "이 패배는 피할 수 없는 것을 단지 지연시킬 뿐.\n때가 되면 잿더미에서 로켓단을 일으켜 세울 것이다." - }, - "defeat": { - "1": "자신의 힘을 스스로 잴수 없다는 것은 네가 아직 꼬맹이라는 것을 보여준다고 할 수 있지.", - "2": "다시는 나를 방해하지 말도록.", - "3": "나에게 도전하는 것이 얼마나 어리석은 짓인지 이해했으면 좋겠군." - } - }, - "roxanne": { - "encounter": { - "1": "당신이 어떻게 싸우는지 보여주시겠어요?", - "2": "당신은 여러 트레이너와 싸우면서 많은 것을 배울 수 있을거예요.", - "3": "아, 전략짜는 거 들켰네요.\n배틀할까요?" - }, - "victory": { - "1": "아, 제가 진 것 같네요.\n승복하겠습니다.", - "2": "전 아직도 포켓몬 배틀에 대해서 한참 더 배워야할 것 같네요.", - "3": "오늘 여기서 배운 것들을 마음에 담아둬야겠어요." - }, - "defeat": { - "1": "전 방금 승부에서 많은 것을 배웠습니다.\n당신도 그랬길 바래요.", - "2": "다시 붙을 날이 기대되네요.\n당신이 여기서 배운 걸 활용할 수 있길 바랍니다.", - "3": "여태까지 공부해온 것 덕분에 이겼네요." - } - }, - "brawly": { - "encounter": { - "1": "오, 도전자잖아!\n어디 한 번 볼까!", - "2": "넌 큰 파란을 일으킬 것 같군.\n승부다!", - "3": "폭풍을 일으킬 시간이야!\n가자!" - }, - "victory": { - "1": "우와, 너 날 씻겨버렸네!", - "2": "내 파도를 타고, 나까지 밀어내다니!", - "3": "바위 동굴에서 길을 잃은 기분이야!" - }, - "defeat": { - "1": "하핫, 난 큰 파도를 탔다고!\n언제 또 도전해주라.", - "2": "언젠가 또 같이 서핑하자고!", - "3": "파도가 밀려왔다가 밀려나듯, 언젠가 너도 다시 도전하러 와." - } - }, - "wattson": { - "encounter": { - "1": "찌릿찌릿해질 때가 됐군!\n와하하하핫!", - "2": "스파크가 튀도록 해주마!\n와하하하하!", - "3": "와하하하하!\n마비 치료제를 가져왔길 바라네!" - }, - "victory": { - "1": "이 몸 배터리가 다 됐군!\n와하하하하!", - "2": "자네 완전히 날 좌초시켰군!\n와하하하핫!", - "3": "스릴 넘치는 배틀, 고맙네!\n와하하하하하!" - }, - "defeat": { - "1": "자네의 배터리 재충전하게. 그리고 나에게 도전하러 돌아오도록!\n와하하하핫!", - "2": "방금 배틀이 자네에게 짜릿짜릿했길 바란다네!\n와하하하하!", - "3": "자네 혹시 내가 이겨서 충격 받았나?\n와하하하핫!" - } - }, - "flannery": { - "encounter": { - "1": "어서오세요! 잠깐, 아냐…\n너를 무너뜨려줄게!", - "2": "난 체육관 관장이 된지는 얼마 안됐지만, 널 태워버릴거야!", - "3": "할아버지에게 배운 기술을 한 수 보여줄게! 승부다!" - }, - "victory": { - "1": "너 우리 할아버지를 생각나게 하네…\n내가 진 게 놀랍진 않아.", - "2": "나 너무 열심히 하는 건가?\n너무 열 올리면 안되니깐, 진정해야겠어.", - "3": "패배는 날 꺼뜨릴 수 없어.\n트레이닝으로 다시 불을 붙일 때야!" - }, - "defeat": { - "1": "할아버지가 자랑스러워하시길…\n언젠가 다시 배틀하자.", - "2": "내…내가 이기다니!\n내 방식대로 한 게 통했어!", - "3": "조만간 다시 뜨겁게 불타오르는 배틀을 하자!" - } - }, - "norman": { - "encounter": { - "1": "여기까지 오다니 놀랍군.\n한 번 겨뤄볼까.", - "2": "관장으로서 최선을 다해 널 이길 거란다.\n가자!", - "3": "최선을 다하는 게 좋을 거야.\n승부할 시간이다!" - }, - "victory": { - "1": "내가 지다니…?\n규칙은 규칙이니, 흐음.", - "2": "담청시티에서 이사한 게 문제였나…?", - "3": "믿을 수 없구나.\n훌륭한 승부였어." - }, - "defeat": { - "1": "우린 둘 다 최선을 다했지.\n다시 대결할 수 있었으면 좋겠구나.", - "2": "우리 집 꼬마에게 도전해보는 것도 좋겠군.\n아마 뭔가 배울 수 있을거다!", - "3": "방금 전 배틀 완벽했어.\n다음에도 행운이 함께하길." - } - }, - "winona": { - "encounter": { - "1": "저는 먹이를 찾아서 하늘을 날아다녔어요…\n그리고 당신은 제 타겟입니다!", - "2": "배틀이 어떻게 되든, 전 제 비행 포켓몬과 우아하게 승리하겠어요. 승부합시다!", - "3": "당신이 높은 곳을 무서워하지 않기를.\n자, 날아올라요!" - }, - "victory": { - "1": "저보다 우아하게 나서는 트레이너는 처음 봤습니다.\n훌륭하시네요.", - "2": "이런, 제 비행 포켓몬이 추락해버렸네요!\n훌륭한 배틀이었습니다.", - "3": "비록 전 떨어졌지만, 제 포켓몬은 다시 날아갈 겁니다!" - }, - "defeat": { - "1": "제 비행 포켓몬과 영원히 우아하게 춤출게요.", - "2": "우리의 쇼가 즐거웠길 바라요.\n우아한 춤은 끝났습니다.", - "3": "우리의 엘레강스한 안무를 다시 보러오지 않을래요?" - } - }, - "tate": { - "encounter": { - "1": "헤헤헤…\n내가 란과 같이 있지 않아서 놀랐지?", - "2": "네가 무슨 생각을 하는지 알아…\n승부하고 싶은거지!", - "3": "네 움직임을 모두 알고 있는데…\n어떻게 이기려고?" - }, - "victory": { - "1": "어쩔 수 없지…\n란이 보고싶다아…", - "2": "너와 네 포켓몬과의 유대, 나보다 더 견고한걸.", - "3": "란이랑 함께였다면, 우리가 이겼어.\n둘이선 더 잘 할 수 있다구!" - }, - "defeat": { - "1": "내 포켓몬과 나는 우수하다구!", - "2": "날 못 이긴다면, 넌 란한테도 절대로 못 이겨.", - "3": "란과 함께한 엄격한 훈련 덕이야.\n덕분에 포켓몬과 하나가 될 수 있었어." - } - }, - "liza": { - "encounter": { - "1": "후후후…\n내가 풍과 같이 있지 않아서 놀랐지?", - "2": "네가 무얼 바라는지 알아…\n포켓몬 배틀, 맞지?", - "3": "포켓몬과 하나가 된 사람…\n어떻게 이기려고?" - }, - "victory": { - "1": "어쩔 수 없지…\n풍이 보고싶다아…", - "2": "너와 네 포켓몬과의 유대, 나보다 더 견고한걸.", - "3": "풍이랑 함께였다면, 우리가 이겼어.\n둘이선 더 잘 할 수 있다구!" - }, - "defeat": { - "1": "내 포켓몬과 내가 승리한거야.", - "2": "날 못 이긴다면, 넌 풍한테도 절대로 못 이겨.", - "3": "풍과 함께한 엄격한 훈련 덕이야.\n덕분에 포켓몬과 싱크로 될 수 있었어." - } - }, - "juan": { - "encounter": { - "1": "지금은 겸양을 부릴 때가 아니군요.\n승부합시다!", - "2": "아하하하, 물 포켓몬과 함께 아트를 보여드리겠습니다!", - "3": "태풍이 다가오는군요!\n저를 테스트해주시겠습니까?", - "4": "자, 마음껏 봐주십시오.\n저와 포켓몬이 이루어내는 물의 일루전을!" - }, - "victory": { - "1": "당신은 윤진 관장을 뛰어넘을 지니어스군요!", - "2": "당신이 훈련할 때 저는 엘레강스에 집중했습니다.\n당신이 이기는 건 당연하죠.", - "3": "아하하하하!\n잘했습니다, 이번엔 당신이 이겼네요.", - "4": "모든 것을 극복하는 브릴리언트 스킬, 당신에게 느껴지네요." - }, - "defeat": { - "1": "저와 포켓몬이 이루어내는 물의 일루전이 승리했습니다.", - "2": "아하하핫, 저는 이겼고, 당신은 졌습니다.", - "3": "겉옷 빌려드릴까요? 아마도 배틀에 도움이 될겁니다!\n아하하하, 농담입니다!", - "4": "제가 승리자군요! 그리고, 당신은 졌네요." - } - }, - "crasher_wake": { - "encounter": { - "1": "철썩! 철썩! 조심해라!\n맥시멈 가면이…지금…간다!", - "2": "철썩! 철썩! 파도의 맥시멈 가면!", - "3": "밀물같은 힘으로 쓸려나가도록 해보실까!!" - }, - "victory": { - "1": "저절로 웃음이 나오게 되는군!\n크하하핫! 정말 훌륭했다!", - "2": "우왓! 끝나버렸나!\n뭐랄까…\n좀 더 싸우고 싶은 기분이야!", - "3": "이럴수가!?" - }, - "defeat": { - "1": "으하하핫! 보람차군!", - "2": "내가 이겼지만, 아쉽군! 좀 더 배틀하고 싶은데!", - "3": "잘 가게나!" - } - }, - "falkner": { - "encounter": { - "1": "넓은 하늘을 화려하게 나는 새 포켓몬의 진정한 강함을 알게 해주겠다!", - "2": "바람이여, 나에게 오라!", - "3": "아버지, 내 시합을 하늘에서도 봐줘!" - }, - "victory": { - "1": "알았다… 미련없이 땅에 내려가지.", - "2": "패배는 패배니까. 넌 정말 강하군.", - "3": "…큭! 그래, 내가 졌다." - }, - "defeat": { - "1": "아버지! 소중히 여기던 새 포켓몬으로 이겼어…", - "2": "언제나 새 포켓몬이 최강이다!", - "3": "아버지를 따라 잡은 기분이군!" - } - }, - "nessa": { - "encounter": { - "1": "똑똑한 네가 어떤 계획을 세우고 있든지, 나와 내 파트너가 가라앉혀줄 테니까 문제 없어.", - "2": "잡담하려고 나온 게 아니야. 이기려고 나온 거지!", - "3": "이건 내 포켓몬이 주는 작은 선물이야… 네가 잘 받아줘야 해!" - }, - "victory": { - "1": "너와 네 포켓몬 정말로 너무…", - "2": "어째서…? 어떻게 이럴 수 있지?!", - "3": "완전히 씻겨 나갔잖아!" - }, - "defeat": { - "1": "성난 파도가 다시 부딪혀올거니까!", - "2": "승리의 파도를 탈 시간이야!", - "3": "에헤헤!" - } - }, - "melony": { - "encounter": { - "1": "봐주지는 않을 거란다!", - "2": "그럼 이제, 시작해도 될 것 같네.", - "3": "영하의 세계로 안내해주마!" - }, - "victory": { - "1": "너… 꽤 하는구나?", - "2": "만약 주변에서 마쿠와를 찾는다면, 그 때는 따끔한 맛을 보여주도록 하렴, 알았지?", - "3": "아이스 브레이킹을 너무 문자 그대로 받아들인 것 같은데…" - }, - "defeat": { - "1": "이제 전투가 얼마나 치열할 수 있는 지 알겠니?", - "2": "아하하! 내가 또 이긴 것 같네!", - "3": "너 혹시 봐준거니?" - } - }, - "marlon": { - "encounter": { - "1": "너 강해보이네! 받아라! 승부 시작이야!", - "2": "난 넓은 대양처럼 강인하다고. 너 분명히 휩쓸려 갈거야.", - "3": "오, 내가 너를 마주 보고 있군! 둘다 파도에서 떨어지겠어." - }, - "victory": { - "1": "너… 좋은 포켓몬을 키우고 있구나! 꽤 하는군! 끝내주는 트레이너야!", - "2": "강해 보이는 게 아니고 진짜 강하구나! 에-, 나도 휩쓸려버렸어!", - "3": "넌 거친 파도처럼 강인하구나!" - }, - "defeat": { - "1": "넌 강하지만, 바다를 흔들기에는 역부족이네, 그치!", - "2": "아하핫! 내가 또 이긴 것 같네!", - "3": "달콤하네, 승리 역시 달콤하고!" - } - }, - "shauntal": { - "encounter": { - "1": "미안합니다. 도전자이시죠?\n고스트포켓몬 조련사인 사천왕 망초가 상대하겠습니다.", - "2": "겨루었던 트레이너와 포켓몬의 마음이 통하는 모습을 이야기로 만드는 것을 좋아해서요!\n그러니까 당신들에 대한 취재를 허락해 주세요?", - "3": "포켓몬과 함께 일하는 모든 사람들은 각자 이야기를 갖고 있죠.\n어떤 이야기를 들려드릴까요?" - }, - "victory": { - "1": "…우와. 저 아연실색 망연자실이에요!", - "2": "미-미 미안합니다! 먼저 포켓몬에게 사과해야지…\n\n나 때문에 괴로운 기억을 만들게 돼서 정말 미안해!", - "3": "그치만, 전 여전히 사천왕인걸요!" - }, - "defeat": { - "1": "에헤헤.", - "2": "다음 소설의 완벽한 소재를 얻었다!", - "3": "그리고 이렇게, 또 다른 이야기가 끝났습니다…" - } - }, - "marshal": { - "encounter": { - "1": "노간주 스승님이, 잠재력을 보고 네게 관심을 갖고 계시더군.\n그 힘의 한계까지 데려가는 것이 이번 의도다! 그럼 간다!", - "2": "승리, 압도적인 승리, 내가 바라는 것이다! 강인한 도전자여, 간다!", - "3": "깨뜨리는 것은 약한 자신, 관철하는 것은 강한 신념!\n 그리고 바라는 것은 압도적인 승리!" - }, - "victory": { - "1": "후우! 잘 싸웠다!", - "2": "역시 대단하구나! 싸워서 더욱더 높은 곳을 노려라…!", - "3": "너와 네 포켓몬이 보여준 그 힘, 감명 깊군…" - }, - "defeat": { - "1": "흐음.", - "2": "좋은 승부였다.", - "3": "하압! 하압! 히야아아압!!!!" - } - }, - "cheren": { - "encounter": { - "1": "넌 내 오랜 친구가 생각나게 하는군. 그 덕분에 이 배틀이 기대돼!", - "2": "왜 하고 있는지 생각하지 않으면, 포켓몬 배틀은 의미가 없어 . \n$좋게 말하면, 함께 포켓몬과 승부하는 것이 무의미해 지는 것이지.", - "3": "내 이름은 체렌! 체육관 관장이자 선생님을 하고 있지! 널 만나게 되서 기쁘군." - }, - "victory": { - "1": "고마워! 내 안에 무엇이 부족했는지 알게 됐네.", - "2": "고마워! 내가 추구하는 이상에 조금 다가간 것 같아.", - "3": "으음… 이건 문제가 있군." - }, - "defeat": { - "1": "체육관 관장으로서, 나는 넘어야할 벽이 되고자 하고 있거든.", - "2": "좋았어!", - "3": "포켓몬이 곁에 있었기 때문에 여기까지 올 수 있었어.\n생명체와 생명체라는 동등한 관계에서 포켓몬이 우리에게 도움을 주는 이유를 생각해 볼 필요는 있지." - } - }, - "chili": { - "encounter": { - "1": "이얏호-! 형제중 가장 강한 나하고 놀자고!", - "2": "짜잔! 불꽃타입 불꽃의 남자 팟, 바로 너의 상대가 되어주지!", - "3": "나와 내 불타오르는 불꽃타입 포켓몬들이 뭘 할수 있는지 보여주지!" - }, - "victory": { - "1": "졌지만… 모 두 불 태 웠 어!!", - "2": "와우! 불태워졌네!", - "3": "으악! 너가 나를 이겨버렸잖아!" - }, - "defeat": { - "1": "난 지금 불타오르고 있어, 나와 싸우게 된다면 넌 다치게 될거야!", - "2": "불장난하면 밤에 이불에 지도를 그리는 법이지!", - "3": "그러니까, 상대가 나였잖아? 너에게는 처음부터 기회가 없었다고!" - } - }, - "cilan": { - "encounter": { - "1": "개인적으로 받아들이지 마세요… 감정 상하지도 말고요… 저와 제 풀타입 포켓몬들이라면…\n$음… 무슨 일이 있더라도 배틀을 할 겁니다.", - "2": "네. 저로 괜찮다면 진심을 담아서 상대해 드리겠습니다.", - "3": "네… 그, 음, 저는 덴트입니다, 풀타입 포켓몬을 좋아합니다." - }, - "victory": { - "1": "…에- 그게… 끝나버렸나요?", - "2": "…놀랐습니다. 당신 아주 강하군요. \n$팟이나 콘이라도 이길 수 없었을 것 같습니다…", - "3": "…어라, 타이밍이 좀 잘못된것 같네요?" - }, - "defeat": { - "1": "어라? 제가 이긴 건가요?", - "2": "제 생각엔… \n$아무래도 제가 이겼어야만 했을 거라 생각합니다, 팟과 콘이랑 배틀하면서 우리는 모두 더 강해졌기 때문이죠.", - "3": "정말… 아주 짜릿한 경험이었습니다…" - } - }, - "roark": { - "encounter": { - "1": "트레이너로서 너의 실력이 어느 정도인지 그리고 함께 싸울 포켓몬이 얼마나 강한지 확인해보겠어!", - "2": "자 간다! 내 자랑이자 기쁨인 바위타입 포켓몬들이야!", - "3": "바위타입 포켓몬이야말로 최고지!", - "4": "트레이너로서 너의 실력이 어느 정도인지 그리고 함께 싸울 포켓몬이 얼마나 강한지 확인해보겠어!" - }, - "victory": { - "1": "이-이럴수가! 열심히 단련시킨 포켓몬들이!", - "2": "…져버린 건가. 다음엔 지하통로에서 화석캐기 승부를 하고 싶구나.", - "3": "네 실력이라면 승리는 당연한 결과겠지.", - "4": "뭐-뭐야?! 이럴 수가! 이것도 부족했단 말인가?", - "5": "내가 실수했군." - }, - "defeat": { - "1": "봤지? 이게 바로 내가 자랑하는 바위 스타일 전투야!", - "2": "고마워! 이번 승부로 아버지를 이길 수 있겠다는 자신감이 생겼어!", - "3": "정말 단단한 바위를 뚫고 나온 기분인데!" - } - }, - "morty": { - "encounter": { - "1": "조금만 더 노력하면, 내가 전설의 포켓몬을 만나는 미래가 보여.\n$내가 그 수준에 도달할 수 있게 도와줘!", - "2": "커다란 무지개색 포켓몬은 진정한 강함을 가진 트레이너 앞에 나타난다는 이야기가 있어. \n$난 그 이야기를 믿고, 줄곧 이 곳에서 몰래 수행하고 있어. 그 결과로, 다른 사람들은 볼 수 없는 것을 볼 수 있게 됐지. \n$내겐 그 포켓몬을 나타나게 할 사람의 그림자가 보이거든. \n$난 그게 나라고 믿어! 넌 내가 그 수준에 올라갈 수 있도록 도와줘야겠어!", - "3": "네가 믿든 믿지 않든, 불가사의한 힘은 존재해.", - "4": "넌 내 수련의 결실을 보게 될 거야.", - "5": "포켓몬과 너의 영혼을 하나로 만들어야 해. 가능하겠어?", - "6": "저기, 너 내 수행의 일부분이 되고 싶은거지?" - }, - "victory": { - "1": "나는 아직 멀었구나…", - "2": "그래… 여행으로 먼 곳을 돌아다니면서, 나보다 훨씬 많은 것을 봐왔구나.\n$네가 조금 부럽네…", - "3": "이게 어떻게 가능한 거지…", - "4": "우리의 잠재력은 그렇게 다르진 않은 것 같아.\n$그치만 넌 그것과 다른 무언가를 많이 갖고 있는 것 같네… 흐음.", - "5": "수련이 더 필요하겠군.", - "6": "안타깝게 됐네." - }, - "defeat": { - "1": "내가…다시 한 발짝 앞섰어.", - "2": "후후훗…", - "3": "뭐-뭐야?! 이럴 수가! 그것도 부족해?", - "4": "정말 단단한 바위를 뚫고 나온 기분인데!", - "5": "아하하하하!", - "6": "내가 이길 줄 알았어!" - } - }, - "crispin": { - "encounter": { - "1": "이기고 싶으니까 이기고 말겠어!", - "2": "싸우고 싶으면 싸운다! 이거면 충분하지 않아!?" - }, - "victory": { - "1": "이기고 싶었는데…졌잖아!", - "2": "이기지 못해서…지고 말았어!" - }, - "defeat": { - "1": "잠시만. 나 지금 이긴거지? 이긴 거 맞지! 기분 좋은데!", - "2": "우와아! 이거 굉장한데!" - } - }, - "amarys": { - "encounter": { - "1": "네리네는 그 사람을 구원하고 싶습니다. 그렇기에 패배는 용납되지 않습니다.\n$… 승부를 시작합니다." - }, - "victory": { - "1": "네리네는… 안 된다는 건가요." - }, - "defeat": { - "1": "네리네가 승리했습니다. 수고하셨습니다." - } - }, - "lacey": { - "encounter": { - "1": "이번에는 사천왕으로서 승부하는 거니까 평소 사용하는 아이들로 상대해 드릴게요!" - }, - "victory": { - "1": "멋진 포켓몬 배틀이었어요!" - }, - "defeat": { - "1": "당신의 포켓몬의 노력에 박수를 보내주세요!" - } - }, - "drayton": { - "encounter": { - "1": "의자는 좋은 거야. 너도 그렇게 생각해? 정말 고마운 물건이지. \n$왜 다들 앉지 않는 걸까. 서 있는 건 힘들잖아!" - }, - "victory": { - "1": "전보다 더 강해질 줄이야!" - }, - "defeat": { - "1": "헤헤헷! 내 승리야. 분한 건 알겠지만 카지처럼 나가떨어지지마, 응?" - } - }, - "ramos": { - "encounter": { - "1": "그래, 올곧게 자란 초목을 모아서 만든 풀 정글짐은 어땠는가?\n$자네가 느낀 그것이 나의 체육관 관장으로서의 실력이네! 한번 확인해 보겠나?" - }, - "victory": { - "1": "포켓몬은 자네를 믿고, 자네는 그들을 믿는다…가슴이 후련해지는 승부였구먼." - }, - "defeat": { - "1": "호호호…연약해 보이는 풀잎은 콘크리트도 뚫을 수 있다네." - } - }, - "viola": { - "encounter": { - "1": "패배의 분함도 승리의 순간도…\n$둘 다 최고의 피사체야! 정말 멋져 멋져! \n$자, 그럼 덤비렴!", - "2": "나 비올라는 셔트 찬스를 노리는 것처럼--승리를 노릴 거야!" - }, - "victory": { - "1": "너와 네 포켓몬은 최고의 콤비구나! 정말 멋져 멋져!", - "2": "렌즈 너머의 세계와 포켓몬의 마음으로 보는 세계…\n$똑같이 보이는 풍경이지만 다양한 세계가 겹쳐져 있는 거야." - }, - "defeat": { - "1": "내가 승리한 순간을 찍은 사진은 정말 멋져 멋져!", - "2": "좋아! 멋진 사진을 찍었어!" - } - }, - "candice": { - "encounter": { - "1": "나, 무청에게 도전하고 싶은거야? 좋아! 강한 사람을 기다리고 있었으니까!\n$그치만 말해두는데, 집중하는 방법을 아는 나도 강력하거든.", - "2": "포켓몬도 멋도 연애도 정신 집중이 중요하다고!\n$무슨 뜻인지 보여줄테니까 각오해!" - }, - "victory": { - "1": "있지, 나 조금 불타오르게 됐어! 널 조금 존경하게 될지도 몰라.", - "2": "우와! 제법인데! 내가 존경하게 만들다니!\n$네 집중력과 의지, 완전히 나를 압도하는 같아. " - }, - "defeat": { - "1": "이기고자 하는 의지는 전해졌지만, 난 지지 않았어!", - "2": "봤지? 무청의 집중력! 내 포켓몬의 집중력도 대단하다구!" - } - }, - "gardenia": { - "encounter": { - "1": "너에게선 승리의 기운이 느껴져. 어쨌든 재밌을 것 같아. 포켓몬 승부하자!" - }, - "victory": { - "1": "대단해! 너 정말 강하구나!" - }, - "defeat": { - "1": "그렇지! 나와 포켓몬은 완벽해!" - } - }, - "aaron": { - "encounter": { - "1": "좋습니다! 그럼 상대해 드리죠!" - }, - "victory": { - "1": "승부는 딥하고 컴플렉스한 일이네요…" - }, - "defeat": { - "1": "사천왕을 상대로 하는 승리는 쉽게 오지 않는다구요." - } - }, - "cress": { - "encounter": { - "1": "맞습니다! 당신은 저와 제 자랑스러운 물타입 포켓몬들과 상대하게 될것입니다." - }, - "victory": { - "1": "곤란하네… 이 콘이 질 줄이야." - }, - "defeat": { - "1": "제가 당신의 상대였기 때문에 이건 당연한 결과였습니다." - } - }, - "allister": { - "encounter": { - "1": "……어니언이야.\n……가 간다…" - }, - "victory": { - "1": "충격을 받아서… 가면을 떨어뜨릴 뻔 했지만…\n$네가 얼마나 강한지 확실히 봤어." - }, - "defeat": { - "1": "이-이게 내 실력이니까!" - } - }, - "clay": { - "encounter": { - "1": "실망스럽군! 나를 기다리게 하다니, 이 꼬마가. 아무튼 실력을 확인해 볼까!" - }, - "victory": { - "1": "이런 이런… 진심으로 싸워서 진 거라 오히려 시원한 기분이군!" - }, - "defeat": { - "1": "중요한 것은 패배에 어떻게 반응하는 거다. \n$그렇기 때문에 패배를 연료로 삼아 나아가는 사람들은 강인하지." - } - }, - "kofu": { - "encounter": { - "1": "물포켓몬의 풀코스를! 배 터지게 먹여 주도록 하마!" - }, - "victory": { - "1": "우옷! 우오오옷! 이렇게 팔팔한 트레이너가 다 있다니!" - }, - "defeat": { - "1": "젊은 친구! 다음에 또 만나기를 기대하고 있으마!" - } - }, - "tulip": { - "encounter": { - "1": "리파의 기술로 너의 포켓몬들을 지금보다 훨~씬 아름답게 만들어 줄게!" - }, - "victory": { - "1": "너의 강함은 풀 수 없는 매직이구나." - }, - "defeat": { - "1": "…리파의 업계에서는 어중간한 재능을 가진 사람은 대체로 금방 사라져 버려." - } - }, - "sidney": { - "encounter": { - "1": "음, 좋은 표정이야. 꽤나 즐길 수 있겠는데.\n$좋아! 아주 좋아! 좋았어!\n$우리 함께, 포켓몬리그에서만 맛볼 수 있는 배틀을 즐겨보도록 하자!" - }, - "victory": { - "1": "이런, 이런 져버렸군? 뭐, 꽤 즐겼으니 상관없지만." - }, - "defeat": { - "1": "기분 나빠하지 마, 알겠지?" - } - }, - "phoebe": { - "encounter": { - "1": "송화산에서 수행하면서, 고스트 타입 포켓몬과 마음이 통하게 됐어. \n$응, 나와 내 포켓몬의 유대감은 정말 강해! \n$이런 내 포켓몬들에게 과연 데미지를 줄 수 있을지 한번 시험해봐!" - }, - "victory": { - "1": "아- 아, 내가 져버렸다." - }, - "defeat": { - "1": "언젠가 다시 승부할 수 있기를 기대할게!" - } - }, - "glacia": { - "encounter": { - "1": "이곳에 도전하러 오는 건 모두 어설픈 트레이너와 포켓몬뿐…. \n$당신은 어떤가요? 제 진짜 실력을 발휘해도 괜찮을 정도라면 정말 기쁠텐데 말이죠…!" - }, - "victory": { - "1": "당신과… 당신 포켓몬들의 뜨거운 혼!\n$정말로 압도적인 뜨거움이네요. \n$내 얼음 기술로 피해를 주지 못한 것도 놀랍지 않을정도로요!" - }, - "defeat": { - "1": "저런, 정말로 치열한 승부였네요." - } - }, - "drake": { - "encounter": { - "1": "파트너로 포켓몬과 함께하는 승부에 무엇이 필요한지 넌 알고 있는가? \n$그걸 모른다면 넌 이 몸을 이길 수 없다!" - }, - "victory": { - "1": "훌륭하다, 라고 할 만 하군!" - }, - "defeat": { - "1": "난 승부에서 최선을 다했으니까!" - } - }, - "wallace": { - "encounter": { - "1": "뭐랄까, 너의 분위기가 조금 변한 것 같은… \n$그런 느낌이 드는군. 자, 그럼 한번 확인해볼까? 너와 포켓몬의 힘을. \n$그리고 확실하게 보여주도록 하지. 나와 포켓몬에 의한 물의 일루전을!" - }, - "victory": { - "1": "훌륭하군. 넌 정말 굉장한 포켓몬 트레이너다. \n$그런 너와 너의 포켓몬을 만나게 된 걸 기쁘게 생각해. 스스로 그 가치를 증명하다니!" - }, - "defeat": { - "1": "거대한 일루전이로군!" - } - }, - "lorelei": { - "encounter": { - "1": "얼음포켓몬을 내보내면 대적할 사람이 없지! 상대를 얼린다는 건 매우 강력한 공격이야.\n$네 포켓몬이 꽁꽁 얼면 그때부턴 내 손바닥 위거든! 아하하! 준비됐어?" - }, - "victory": { - "1": "어떻게 감히!" - }, - "defeat": { - "1": "얼어붙은 넌 아무것도 할 수 없어." - } - }, - "will": { - "encounter": { - "1": "나는 전세계를 돌아다니며, 강한 에스퍼 포켓몬을 만들도록 수행해왔다.\n$계속 더 정진하겠다! 패배는 선택지에 없어!" - }, - "victory": { - "1": "이… 내가… 믿을수 없어…" - }, - "defeat": { - "1": "근소한 차이였다. 네게 부족한 것이 무엇인지 궁금하군." - } - }, - "malva": { - "encounter": { - "1": "심장이 불에 타버릴 것만 같아요. \n$당신에 대한 증오로 불타고 있거든요, 얄미운 트레이너!" - }, - "victory": { - "1": "도전자가… 사천왕 파키라에게서 멋지게 승리를 쟁취했습니다!" - }, - "defeat": { - "1": "기쁘네요! 당신을 짓밟을 수 있어서 말이죠!" - } - }, - "hala": { - "encounter": { - "1": "그럼…진심을 담아서 진지한 할라로 임하겠다!" - }, - "victory": { - "1": "네가 순례하면서 갖추게 된 강함을 느낄 수 있었다." - }, - "defeat": { - "1": "하하! 경쾌한 승부였구나!" - } - }, - "molayne": { - "encounter": { - "1": "사촌인 마마네에게 캡틴 자리는 줬지만, 아직 실력에는 자신 있어요. \n$제 실력은 초신성처럼 빛나니까요!" - }, - "victory": { - "1": "확실히 겨룰 흥미로운 트레이너를 찾았네요!" - }, - "defeat": { - "1": "아하하. 흥미로운 배틀이었네요." - } - }, - "rika": { - "encounter": { - "1": "실컷 귀여워해 줄 테니까… 한 번 열심히 해 보라고!" - }, - "victory": { - "1": "너, 꽤 하는구나!" - }, - "defeat": { - "1": "아하하! 제법인데! 역시 너는 재밌는 녀석이라니까!" - } - }, - "bruno": { - "encounter": { - "1": "우월한 힘으로 너를 부숴주지! 우! 하~앗!" - }, - "victory": { - "1": "하? 어떻게 내가 진 거지?" - }, - "defeat": { - "1": "얼마든지 내게 도전 할 수 있지만, 결과는 절대 바뀌지 않을 거다!" - } - }, - "bugsy": { - "encounter": { - "1": "내 이름은 호일! 벌레 포켓몬에 대해서라면 누구에게도 지지 않아!" - }, - "victory": { - "1": "우와, 대단해! 넌 포켓몬 전문가구나!\n내 연구는 아직 안 끝났네. 응, 네가 이겼어." - }, - "defeat": { - "1": "고마워! 방금 승부 덕분에, 내 연구도 진전을 이룬 것 같아!" - } - }, - "koga": { - "encounter": { - "1": "후하하하! 포켓몬은 단순히 강한 것만이 아니다--곧 알려주지!" - }, - "victory": { - "1": "하! 스스로 증명해냈군!" - }, - "defeat": { - "1": "인술을 피하는 방법을 배워보겠나?" - } - }, - "bertha": { - "encounter": { - "1": "그럼, 할머니가 네가 얼마나 해낼 수 있는지 보도록 할게?" - }, - "victory": { - "1": "좋아! 꼬마야, 정말로, 인상적이었단다.\n$네 포켓몬은 너를 믿고 승리를 위해 최선을 다했구나.\n$비록 내가 졌지만, 좋아서 바보같이 웃음이 나오는구나!" - }, - "defeat": { - "1": "호호호! 이 할머니가 이겼구나!" - } - }, - "lenora": { - "encounter": { - "1": "자 그럼 도전자여, 애정을 담아 키운 포켓몬으로 어떤 방식으로 싸우는지 연구해 보겠다!" - }, - "victory": { - "1": "너에 대한 내 가설이 맞았네. 재능만 있는 게 아니라… 대단한 녀석이구나! 너 반할것 같잖아!" - }, - "defeat": { - "1": "아 하 하! 패배했다면, 그 이유를 분석하고, 다음 승부에서 그 지식을 활용하도록!" - } - }, - "siebold": { - "encounter": { - "1": "살아가는 동안, 궁극적인 요리와 강력한 상대를 찾기 위해… 열과 성을 다할 것입니다!" - }, - "victory": { - "1": "당신에 대한 기억을 제 가슴 속에 담아두겠습니다." - }, - "defeat": { - "1": "우리의 포켓몬 배틀은 영혼의 양식과 같습니다. 그건 저를 계속 지탱할 거예요. \n$이것이 제가 전투에서 모든 것을 바친 당신에게, 경의를 표하는 방법입니다!" - } - }, - "roxie": { - "encounter": { - "1": "간다! 너의 이성을 싹 날려줄 거야!!" - }, - "victory": { - "1": "굉-장해! 네 이성, 이미 나보다 TOXIC해버렸잖아!" - }, - "defeat": { - "1": "헤이, 잠깐-! 좀 더 진지해져! 넌 더 날아가야한다구!" - } - }, - "olivia": { - "encounter": { - "1": "여기에 소개는 필요 없지. 자, 라이치님과 승부할 시간이다!" - }, - "victory": { - "1": "정말 훌륭하군… 당신과 포켓몬 둘 다…" - }, - "defeat": { - "1": "흐-음." - } - }, - "poppy": { - "encounter": { - "1": "우와~! 뽀삐와 포켓몬 승부가 하고 싶으세요?" - }, - "victory": { - "1": "훌쩍, 으에엥~" - }, - "defeat": { - "1": "만세~! 만세~ 목수, 성공했어요! \n$에헴! 리벤지 매치는 언제든지 받아 줄게요!" - } - }, - "agatha": { - "encounter": { - "1": "포켓몬은 싸우게 하려고 있는 것이야! 진정한 싸움이라는 것을 보여주겠다!" - }, - "victory": { - "1": "이런! 넌 무언가 특별하구나, 꼬마야!" - }, - "defeat": { - "1": "바하하하. 제대로 된 승부는 이렇게 하는거다!" - } - }, - "flint": { - "encounter": { - "1": "뜨겁게 타오를 준비는 됐겠지, 이제 곧 대폭발이 다가올테니까!" - }, - "victory": { - "1": "놀랍군! 네 기술이 너무 뜨거워서, 내가 미적지근해보이잖아!" - }, - "defeat": { - "1": "하? 그게 다야? 좀 더 열정이 필요해보이는걸." - } - }, - "grimsley": { - "encounter": { - "1": "이긴 자가 모든 것을 갖고 패배한 자에겐 아무것도 남지 않는다." - }, - "victory": { - "1": "누군가가 이기면 상대한 누군가가 진다… 난 다음 승리를 목표로 하겠어!" - }, - "defeat": { - "1": "누군가가 이기면, 그 사람과 싸운 사람은 지게 되는 것이지." - } - }, - "caitlin": { - "encounter": { - "1": "피어난 꽃에서 나타난 것은 나. 거기 있는 당신…\n$강함과 상냥함을 함께 갖춘 포켓몬 트레이너인 것 같네. \n$이 카틀레야가 대전 상대로 원하는 건 최고의 강함… \n$너도 그 실력을 마음껏 펼쳐 봐!" - }, - "victory": { - "1": "대전을 통해서 저도 포켓몬도 성장합니다. 감사드립니다." - }, - "defeat": { - "1": "더욱 엘레강트하고 엑셀런트하게 승리를 쟁취하고 싶거든." - } - }, - "diantha": { - "encounter": { - "1": "미래를 향한 희망으로 빛나는 당신과, 당신의 포켓몬을 상대로 승부하는 것…\n$솔직히, 매일매일 새로운 날을 위해 필요한 에너지가 채워지는 것 같아요! 정말로요!" - }, - "victory": { - "1": "고귀한 영혼을 지닌 포켓몬과 트레이너의 모습에 격하게 마음이 흔들려서…" - }, - "defeat": { - "1": "정말, 환상적이야! 어떻게 생각하시나요? 저의 포켓몬들, 꽤 멋있었죠?" - } - }, - "wikstrom": { - "encounter": { - "1": "잘 왔네, 젊은 도전자여! 이 몸은 사천왕 중 한 명인 강철의 남자 간피다! \n$자 그럼 간다, 간다! 간닷!" - }, - "victory": { - "1": "정말 영광이군! 자네의 포켓몬과 서로 신뢰하는 힘, 날 능가하는군!!" - }, - "defeat": { - "1": "이게 무슨 마법이지? 내 마음의 떨림이 멈추질 않는군! \n$가치 있는 상대를 이기는 것은 영혼에 날개를 달아주는 것과 같지--그런 내가 비상하는 것일까!" - } - }, - "acerola": { - "encounter": { - "1": "포켓몬 배틀은 언제나 재미있지! 자, 내가 상대해줄게!" - }, - "victory": { - "1": "아세로라… 입이 딱 벌어졌어! 어떻게 해낸 거야?!" - }, - "defeat": { - "1": "후아~! 놀라운 승리네!" - } - }, - "larry_elite": { - "encounter": { - "1": "…안녕하십니까, 청목입니다.\n$귀찮게도 저는 사천왕도 겸임하고 있습니다." - }, - "victory": { - "1": "날고 있는 새포켓몬도 떨어뜨릴 기세로군요." - }, - "defeat": { - "1": "치프와 만나기로 한 시각이군요." - } - }, - "lance": { - "encounter": { - "1": "널 기다리고 있었다. 그 실력을 시험해보겠어.", - "2": "여기까지 올 수 있을거라고 생각했다. 슬슬 시작해볼까." - }, - "victory": { - "1": "날 따라잡았군. 훌륭해!", - "2": "다른 트레이너가 날 이길 거라곤 생각 못했는데… 놀랍군." - }, - "defeat": { - "1": "근소하군. 다시 해볼까?", - "2": "네가 약해서가 아니다. 신경쓰지 말도록." - } - }, - "karen": { - "encounter": { - "1": "난 카렌! 내 악 타입 포켓몬과의 승부를 원하니?", - "2": "난 네가 이전에 만났던 트레이너들과는 달라.", - "3": "강한 포켓몬, 약한 포켓몬, 그런 건 사람이 멋대로 정하는 것." - }, - "victory": { - "1": "좋아하는 마음이 전해진다면 포켓몬도 답할거야. 그렇게 강해지는 거지", - "2": "난 내가 선택한 길을 걸어갈거야.", - "3": "챔피언이 너를 기다리고 있어." - }, - "defeat": { - "1": "정말 강한 트레이너라면 좋아하는 포켓몬으로 이길 수 있도록 열심히 해야 해.", - "2": "뭐, 비교적 재밌었어.", - "3": "언제라도 다시 찾아와, 상대해줄게." - } - }, - "milo": { - "encounter": { - "1": "그렇다는 건 당신이 포켓몬을 아주 깊게 이해하고 있다는 뜻이겠죠? \n$이거 만만치 않은 승부가 되겠네요! \n$저도 다이맥스를 사용해야겠어요!" - }, - "victory": { - "1": "풀의 힘이 모두 시들어버리다니… 당신은 굉장한 도전자시군요!" - }, - "defeat": { - "1": "충격과 공포를 전해드리겠습니다." - } - }, - "lucian": { - "encounter": { - "1": "잠깐, 기다려주세요. 제가 읽던 책이 거의 클라이맥스에 도달했거든요…\n$주인공이 성스러운 검을 얻었고 마지막 시련을 앞두고 있는데… 아, 신경 쓰지 마세요.\n$여기까지 왔으니, 그건 제쳐두고 당신과 싸워야겠습니다.\n$당신이 과연 주인공이 될 그릇인지 확인해 보도록 하죠!" - }, - "victory": { - "1": "그렇군요… 결국 체크메이트인가요." - }, - "defeat": { - "1": "제 평판을 지켜냈네요." - } - }, - "drasna": { - "encounter": { - "1": "당신 강하시죠? 그것도 상당히 꽤 말이에요…\n$어머 기뻐라! 그런 상대와 놀면 포켓몬들도 쑥쑥 크겠어요!" - }, - "victory": { - "1": "어머머 벌써 끝나버리다니… 미안해요, 괜찮으면 또 오세요!" - }, - "defeat": { - "1": "어머, 웬일이야?" - } - }, - "kahili": { - "encounter": { - "1": "자, 여기에서… 승리의 바람이 부는 쪽은 당신과 저 중에 어느 쪽일까요?" - }, - "victory": { - "1": "사천왕으로서 분하지만 당신들의 강함은 진정한 강함이군요." - }, - "defeat": { - "1": "이것이 에이스니까요!" - } - }, - "hassel": { - "encounter": { - "1": "맹렬하게 몰아치는 승부의 숨결을 직접 가르쳐 드리겠습니다!!" - }, - "victory": { - "1": "이번에는 당신이 승리를 쟁취했군요. \n$하지만, 시합의 흐름을 보니… 다음 승부는 또 어떻게 될지 모르겠네요." - }, - "defeat": { - "1": "저에게 더 배우고 싶은 것이 있으시다면 또 승부하도록 하죠." - } - }, - "blue": { - "encounter": { - "1": "여기까지 왔다니, 실력이 꽤 봐줄만 할 것 같은데." - }, - "victory": { - "1": "그 녀석한테만 지는 줄 알았는데… 누구냐고? 하, 하…" - }, - "defeat": { - "1": "봤지? 여기까지 온 내 실력." - } - }, - "piers": { - "encounter": { - "1": "뜨거운 현장을 즐길 준비는 됐겠지! 스파이크 마을, it's time to rock!" - }, - "victory": { - "1": "나도 내 멤버들도 최선을 다했어. 다음에 또 배틀하자고…" - }, - "defeat": { - "1": "소리를 지르느라 목이 가버렸군… 그렇지만 박진감 넘치는 배틀이었다!" - } - }, - "red": { - "encounter": { - "1": "…!" - }, - "victory": { - "1": "…?" - }, - "defeat": { - "1": "…!" - } - }, - "jasmine": { - "encounter": { - "1": "와… 당신의 포켓몬은 인상적이네요. 재미있을 것 같아요." - }, - "victory": { - "1": "당신은 정말 강하네요. 저도 더 열심히 노력해야겠어요." - }, - "defeat": { - "1": "이길 줄은 몰랐어요." - } - }, - "lance_champion": { - "encounter": { - "1": "여전히 난 챔피언이다. 더이상 주저할 게 없군." - }, - "victory": { - "1": "새로운 챔피언의 등장이군." - }, - "defeat": { - "1": "성공적으로 챔피언 자리를 지켜냈다." - } - }, - "steven": { - "encounter": { - "1": "넌… 포켓몬과 함께 모험을 하면서 무엇을 봤지? \n$많은 트레이너와 만나면서 무엇을 느꼈지? \n$풍요로운 이 지역을 돌아다니면서, 네 안에서 눈뜨기 시작한 무언가… \n$그 모든 것을 나에게 쏟아부었으면 좋겠어. \n$나와 내 포켓몬들도 전력을 다해 상대해줄 테니까!" - }, - "victory": { - "1": "챔피언인 내가 질 줄이야…" - }, - "defeat": { - "1": "덕분에 즐거웠어! 고마워!" - } - }, - "cynthia": { - "encounter": { - "1": "나, 난천은, 네 도전을 받아들일게! 온 힘을 다해 너와 시합하겠어!" - }, - "victory": { - "1": "포켓몬 배틀보다 재밌는 것은 없지만, 언젠간 끝나기 마련이니…" - }, - "defeat": { - "1": "비록 졌어도, 포켓몬에 대한 사랑은 잃지 않도록 해." - } - }, - "iris": { - "encounter": { - "1": "나는 말이지, 강한 트레이너와의 진지한 승부를 즐겨!\n$왜냐면 그렇잖아! 이곳에 오는 건 마음 깊이 승리를 추구하는 트레이너. \n#함께 싸우는 건 수많은 승부를 헤쳐온 포켓몬.\n$그런 상대와 겨룰 수 있다면 나도! 내 포켓몬도!\n$더욱더 강해지고 서로 알 수 있으니까! 으응! 그럼 간다! \n$포켓몬리그 챔피언 아이리스! 당신을 이기겠습니다!!" - }, - "victory": { - "1": "후와아아아… 힘을 모두 발휘했는데도 우리가 졌네." - }, - "defeat": { - "1": "우와! 이겼다!" - } - }, - "hau": { - "encounter": { - "1": "트레이너가 따뜻한 지역 출신인지 추운 지역 출신인지에 따라 배틀 스타일이 달라지는지 궁금해졌어.\n$그럼 테스트 해볼게~!" - }, - "victory": { - "1": "멋진데~! 이제 너의 스타일을 조금 더 잘 알게된 것 같아!" - }, - "defeat": { - "1": "이런, 그건 그냥 승부였는데~!" - } - }, - "geeta": { - "encounter": { - "1": "그 도전장, 한 번 더 승낙하도록 하죠. \n$자… 훈련의 결실을 보여주세요." - }, - "victory": { - "1": "당신이 이룰 업적에 대한 소식들, 기다리고 있겠습니다!" - }, - "defeat": { - "1": "무슨 문제라도 있나요? 이게 전부라니, 그럴리 없잖아요?" - } - }, - "nemona": { - "encounter": { - "1": "만세! 나 너무 기대돼! 이제 전력으로 승부하는거야~!" - }, - "victory": { - "1": "우와, 조금 문제 있지만, 그래도 너무 재밌었어! 다음에는 지지 않을거야!" - }, - "defeat": { - "1": "우와, 너무 멋진 승부였어! 정말로 강하네." - } - }, - "leon": { - "encounter": { - "1": "레츠, 챔피언 타임!!!" - }, - "victory": { - "1": "챔피언 타임은 끝났어… \n$하지만 정말 멋진 시간이었지! \n$최고의 시합을 만들어줘서 고맙다!" - }, - "defeat": { - "1": "최고의 챔피언 타임이었어, 정말로!" - } - }, - "whitney": { - "encounter": { - "1": "있지! 포켓몬들 말이야, 정말 너무 귀엽지?" - }, - "victory": { - "1": "흑! 으아앙! 너무해!" - }, - "defeat": { - "1": "이걸로 끝!" - } - }, - "chuck": { - "encounter": { - "1": "하! 나에게 도전하겠다고? 용감한 거냐, 아니면 그냥 무모한 거냐?" - }, - "victory": { - "1": "자네 강하군! 나를 제자로 삼아주겠나?" - }, - "defeat": { - "1": "자. 내가 자네보다 얼마나 더 강력한지 깨달았겠지?" - } - }, - "katy": { - "encounter": { - "1": "쓰러지고 싶지 않다면 방심하지 말고 열심히 해 봐~" - }, - "victory": { - "1": "내 포켓몬들 모두 지쳐서 헤벌레~ 해졌어~" - }, - "defeat": { - "1": "비비용~ 많~이 먹으렴~" - } - }, - "pryce": { - "encounter": { - "1": "젊음만으로는 승리를 보장할 수 없다! 중요한 것은 경험이다." - }, - "victory": { - "1": "특출하군! 완벽해. 지금 이 느낌을 잊지 말도록." - }, - "defeat": { - "1": "내가 예상했던 그대로군." - } - }, - "clair": { - "encounter": { - "1": "내가 누군지 알지? 그런데도 감히 내게 도전해?" - }, - "victory": { - "1": "네 실력이 어디까지 올라갈 수 있는지 궁금하네. 아주 흥미진진하겠어." - }, - "defeat": { - "1": "끝이다." - } - }, - "maylene": { - "encounter": { - "1": "지금 당신에게 도전하러 왔어요.\n$전력을 다할 테니 각오하세요!" - }, - "victory": { - "1": "나의 패배입니다…" - }, - "defeat": { - "1": "멋진 승부였습니다." - } - }, - "fantina": { - "encounter": { - "1": "당신도 도전해 보세요. 전 당신을 이기겠어요.\n$그것이 체육관 관장!" - }, - "victory": { - "1": "당신 최고로 강해요. 나 진 것 알아요." - }, - "defeat": { - "1": "너무, 너무 행복해요!" - } - }, - "byron": { - "encounter": { - "1": "젊은 트레이너여! 자네는 내 아들 강석처럼 젊군.\n$젊은 트레이너가 많아질수록, 포켓몬의 미래도 밝지!\n$그러니, 젊은이들이 넘어야할 벽으로서 상대해주겠다!" - }, - "victory": { - "1": "흠! 내 견고한 포켓몬이--져버렸군!" - }, - "defeat": { - "1": "으하하핫! 내 견고한 포켓몬은 어땠나?!" - } - }, - "olympia": { - "encounter": { - "1": "이 의식은 앞으로의 길을 정하는 것입니다. 포켓몬 승부를 시작해볼까요!" - }, - "victory": { - "1": "당신이라면 별이라도 움직여서 가야 할 길을 만들어 낼 것 같습니다." - }, - "defeat": { - "1": "우리의 길은 이제 분명해졌습니다." - } - }, - "volkner": { - "encounter": { - "1": "여기까지 왔으니, 넌 꽤 강하겠군…\n$네가 내게 포켓몬 승부의 즐거움을 상기시켜 줄 트레이너이길 바란다!" - }, - "victory": { - "1": "너 나를 이겼군…\n$네 열정과 포켓몬이 그런 너를 위해 싸워준 고귀한 방식…\n$심지어 스릴까지 넘쳤다. 아주 좋은 승부였어." - }, - "defeat": { - "1": "전혀 충격적이지 않았다…\n$이런 건 원하지 않았어!" - } - }, - "burgh": { - "encounter": { - "1": "으-음… 이번 배틀에서 이기면, 예전과는 다른 그림을 그릴 수 있을 것 같아. \n$맞아! 난 승리 뮤즈의 목소리를 선명하게 들을 수 있거든. 그럼 승부다!", - "2": "물론, 난 내 포켓몬을 자랑스럽게 생각하거든! \n$자 그럼… 바로 승부할까!" - }, - "victory": { - "1": "벌써 끝이라고? 뮤즈가 나를 버리고 떠나버렸나?", - "2": "아우… 져버렸네! 너 굉장히 강하잖아!" - }, - "defeat": { - "1": "우와… 왠지 뭔가 아름답네, 그치…", - "2": "가끔 사람들이 못난 승리라고 말하는 걸 듣곤 해. \n$그치만 난 최선을 다했다면, 어떤 승리든 아름답다고 생각하거든." - } - }, - "elesa": { - "encounter": { - "1": "컴플리트…! 확신이 들때면, 내 몸을 통하는 전기가 짜릿짜릿하게 느껴져! \n$그 감각을 느끼고 싶으니까…, 다음은 사랑스러운 포켓몬들로 너를 어질어질하게 할게!" - }, - "victory": { - "1": "어질어질하게 만들 셈이였는데, 너한테는 짜릿짜릿하게 당해버렸네." - }, - "defeat": { - "1": "왠지 부족한 기분이야… 다음에는 최선을 다할 수 있지?" - } - }, - "skyla": { - "encounter": { - "1": "드디어 대결의 시간이야! 누가 정상에 오를지 결정짓는 포켓몬 배틀, 그치? \n$난 정상에 있는 게 좋아! 높은 곳에서는 항상 멀리 볼 수 있으니까! \n$그럼, 다음은 나랑 더욱 즐거운 것을 할까?" - }, - "victory": { - "1": "배틀에서 네 상대가 되는 거, 뭔가 새로운 모티브가 되네. 고마워!" - }, - "defeat": { - "1": "이기든 지든, 항상 무언가를 얻게 돼, 그치?" - } - }, - "brycen": { - "encounter": { - "1": "다른사람이나 포켓몬과 함께 있을 때도 힘이 생긴다. \n$그 도움을 받는 것이 너를 강하게 만들었겠지. 그 힘을 보이거라!" - }, - "victory": { - "1": "너와 포켓몬과! 멋진 콤비네이션! 아름다운 우정!" - }, - "defeat": { - "1": "극한에서 시험받고 단련하도록!" - } - }, - "drayden": { - "encounter": { - "1": "지금 찾는 것은 밝은 미래를 보여줄 젋은 트레이너의 존재. \n$승부에서 모든 걸 보이도록. 네 기술, 내 경험, 그리고 포켓몬을 키워온 사랑도 함께!" - }, - "victory": { - "1": "패배하여 끓어오르는 이 마음… 뭐라고 표현해야 좋을까." - }, - "defeat": { - "1": "실망스럽군! 난 자네의 능력이 그보다 더 크다는 걸 알고있네!" - } - }, - "grant": { - "encounter": { - "1": "제가 바라는 것은 단 하나뿐입니다. \n$서로가 서로를 뛰어넘어, 더 높은 벽에 도달하는 것입니다." - }, - "victory": { - "1": "내 앞에 솟아 있는 높은 벽… 그건 바로 당신입니다." - }, - "defeat": { - "1": "인생에서 중요한 교훈은 간단합니다.\n$포기하지 않는 것.\n$이것이 전부입니다." - } - }, - "korrina": { - "encounter": { - "1": "코르니 납시오!" - }, - "victory": { - "1": "네 존재가 너의 포켓몬을 점점 진화시키고 있어!" - }, - "defeat": { - "1": "정말 멋진 배틀이었어!" - } - }, - "clemont": { - "encounter": { - "1": "아앗! 잘 부탁드립니다!" - }, - "victory": { - "1": "당신들의 승부를 향한 마음에 자극을 받았습니다!" - }, - "defeat": { - "1": "저의 슈퍼트레이닝 발명품이 효과가 있는 것 같군요!" - } - }, - "valerie": { - "encounter": { - "1": "어라,트레이너님… 슝슝 워프해서… 이렇게 만나서 반갑네. \n$그리고 내가 보기엔 당신은 노력했기에, 이 승부에 참가할 수 있게 된 것 같아. \n$찾기 힘든 요정 같은 페어리 타입, 우리 포켓몬들 사뿐하고 화사하지만 강하다구." - }, - "victory": { - "1": "난 당신이 내일을 생각하며 웃을 수 있는 것들을 찾길 바라고 있을게…" - }, - "defeat": { - "1": "앗 이런, 가엾어라…" - } - }, - "wulfric": { - "encounter": { - "1": "그거 알아? 그거… 전투와 유대감을 통해 배운다거나 하는… 거 뭐더라, 음.\n$여튼 말이지, 난 그냥 재밌어서 하는 거야. \n$내 자랑은 별로 듣고 싶지 않으려나? 자, 포켓몬을 꺼내자!" - }, - "victory": { - "1": "그거야, 바로 그거! 멋지다고. 단단한 얼음을 깨부쉈구나!" - }, - "defeat": { - "1": "나와 싸우면 그런 일이 벌어진다니까!" - } - }, - "kabu": { - "encounter": { - "1": "모든 트레이너와 포켓몬은 이기기 위해 훈련을 하고 있다. \n$하지만 싸우는 상대 역시 그만큼 노력하고 있지. \n$ 결국 승부는 실전에서, 얼마만큼 제 실력을 발휘할 수 있느냐에 달렸다." - }, - "victory": { - "1": "오늘 너와 싸울 수 있어서 참 기뻤다!" - }, - "defeat": { - "1": "내 성장을 체감하게 되는군!" - } - }, - "bea": { - "encounter": { - "1": "당신은 과연, 어떤 공격에도 흔들리지 않는 마음을 가졌을까요? \n$제가 시험해보겠습니다, 준비는 되셨습니까?" - }, - "victory": { - "1": "당신이 데리고 있는 포켓몬에게서 무예의 혼을 느꼈습니다." - }, - "defeat": { - "1": "누구나 바랄 법한 최고의 경기였습니다." - } - }, - "opal": { - "encounter": { - "1": "그럼 너의 파트너 포켓몬 다루는 실력을 내게 보여주거라!" - }, - "victory": { - "1": "핑크는 부족하지만, 너희는 좋은 트레이너와 포켓몬이구나." - }, - "defeat": { - "1": "내가 보기엔, 불합격이란다." - } - }, - "bede": { - "encounter": { - "1": "의심할 여지 없이 증명하겠습니다. 당신이 한심한지, 그리고 내가 얼마나 강한지!" - }, - "victory": { - "1": "잘 봤습니다… 뭐, 꽤 괜찮네요. 전 그렇게 열심히 하지도 않았으니까요." - }, - "defeat": { - "1": "이런 결과, 나쁘지 않군요." - } - }, - "gordie": { - "encounter": { - "1": "그럼, 빨리 끝내도록 하죠." - }, - "victory": { - "1": "구멍이 있다면 들어가고 싶군요… 아니지, 여기선 빠지고 싶다고 해야하나?" - }, - "defeat": { - "1": "이런 배틀이라면, 매번 승리가 따라올 것 같네요!" - } - }, - "marnie": { - "encounter": { - "1": "사실은, 말했던 일들이 해결 되고 나면… 결국은 나 자신이 챔피언이 되고싶다는 걸 알았으니까! \n$그러니까 너의 팀을 기분 좋게 잠들게 해주겠어!" - }, - "victory": { - "1": "응, 그래서 내가 졌구나… 그치만 너와 네 포켓몬의 좋은 점을 많이 볼 수 있었어!" - }, - "defeat": { - "1": "우리의 배틀 방식을 즐겼길 바라." - } - }, - "raihan": { - "encounter": { - "1": "챔피언도 쓰러뜨리고, 토너먼트에서도 우승해서, 위대한 나 금랑님이 얼마나 강한지 세계에 증명 해보실까!" - }, - "victory": { - "1": "역시 난 진 다음에도 멋있네! \n$조금 분하지만…. \n$기념으로 셀카라도 찍어둘까…!" - }, - "defeat": { - "1": "자, 이 순간을 기억하기 위한 셀카를 찍자고." - } - }, - "brassius": { - "encounter": { - "1": "준비는 됐겠지!? 그럼, 우리 둘의 예술적인 합작품을 한번 만들어 보도록 할까!" - }, - "victory": { - "1": "아… 아방가르드!!" - }, - "defeat": { - "1": "바로 신작을 만들러 가야 하니 이만 실례하겠다!" - } - }, - "iono": { - "encounter": { - "1": "자~ 오늘의 각오는~ 모야모야~?\n$...\n$그럼, 이제 시작해 볼까! \n$도전자님의 실력은 과연 과연~!?" - }, - "victory": { - "1": "너의 반짝임은 1000만볼트!" - }, - "defeat": { - "1": "당신의 눈길을 일렉트릭네트로 뾰로롱!" - } - }, - "larry": { - "encounter": { - "1": "그렇습니다. 심플한 것이 가장 강한 것입니다!" - }, - "victory": { - "1": "허, 이걸로 한 방 먹은 게 되었군요." - }, - "defeat": { - "1": "오늘은 저는 이만 실례하겠습니다." - } - }, - "ryme": { - "encounter": { - "1": "나의 영혼 흔들어 봐 Come On!" - }, - "victory": { - "1": "너의 Cool한 Youth 나의 Soul이 Move!" - }, - "defeat": { - "1": "Bye Bye Baby~!" - } - }, - "grusha": { - "encounter": { - "1": "내가 너를 철저하게 얼려 버리면 고민할 것도 없겠지!" - }, - "victory": { - "1": "너의 그 열기… 싫지 않아." - }, - "defeat": { - "1": "너에겐 아직 열기가 부족하구나." - } - }, - "marnie_elite": { - "encounter": { - "1": "여기까지 왔구나? 포켓몬 다루는 실력 좀 볼까!", - "2": "최선을 다할 거니까, 쉽게 넘어갈 수 있을 거라고 생각하지 마!" - }, - "victory": { - "1": "내가 지다니 믿을 수 없어… 그렇지만 네가 바란 것도 이런 승리였겠지. 잘했어!", - "2": "난 여전히 배울 게 많은 것 같아. 그래도, 멋진 승부였어!" - }, - "defeat": { - "1": "잘 싸웠지만, 내가 위야! 다음에는 더 잘해봐!", - "2": "트레이닝이 제값을 하는 것 같네. 승부에 응해줘서 고마워!" - } - }, - "nessa_elite": { - "encounter": { - "1": "조류가 오늘은 내 편인 것 같네. 휩쓸릴 준비 됐어?", - "2": "이번 승부로 파도를 일으키는 거야! 준비는 됐겠지!" - }, - "victory": { - "1": "너 그런 바다를 완벽하게 버텨냈네… 잘했어!", - "2": "내 쪽의 해류가 너와 맞지 않았던 거 같네. 잘했어!" - }, - "defeat": { - "1": "물은 항상 자기 길을 찾아 흐르지. 상쾌한 승부였어!", - "2": "잘 싸웠지만, 바다의 힘은 막을 수 없다고!" - } - }, - "bea_elite": { - "encounter": { - "1": "준비는 되셨겠죠! 제 투지가 불타고 있습니다!", - "2": "가차 없는 제 속도를 따라잡으실 수 있는지 지켜보겠습니다!" - }, - "victory": { - "1": "당신의 힘… 인상적이군요. 정말로 이기실 만합니다.", - "2": "이런 강렬함은 처음 느껴봅니다. 대단하군요!" - }, - "defeat": { - "1": "치열했던 훈련으로 또 한번 승리를 거두게 뒀군요! 고생하셨습니다!", - "2": "당신도 힘냈겠지만, 제가 더 열심히 훈련했거든요. 좋은 배틀이었습니다!" - } - }, - "allister_elite": { - "encounter": { - "1": "그림자가 떨어지네… 두려움에 맞설 준비는 됐어?", - "2": "내가 다루는 어둠을 감당할 수 있는지 지켜볼게." - }, - "victory": { - "1": "너 그림자를 쫓아내 버렸구나… 일단은. 잘했어.", - "2": "네 빛이 어둠을 관통해 버렸네. 훌륭해." - }, - "defeat": { - "1": "그림자가 말했어… 네 힘은 아직 부족한 것 같아.", - "2": "어둠의 승리… 다음번에는 빛을 보게 될 거야." - } - }, - "raihan_elite": { - "encounter": { - "1": "폭풍이 몰아치는군! 네가 이 배틀에서도 견뎌낼 수 있는지 지켜보겠어!", - "2": "폭풍의 눈과 마주칠 준비는 됐겠지!" - }, - "victory": { - "1": "폭풍을 이겨내다니… 정말 놀라운걸!", - "2": "너 바람에 완벽하게 올라탔구나… 대단한 승부였어!" - }, - "defeat": { - "1": "폭풍을 견디고, 또 다른 승리도 잡아버렸네! 좋은 승부였어!", - "2": "넌 내 폭풍을 잡아냈잖아! 다음엔 더 잘해봐!" - } - }, - "alder": { - "encounter": { - "1": "하나지방에서 가장 강한 트레이너를 상대할 준비는 됐나?" - }, - "victory": { - "1": "장하구나! 실로 견줄 자가 천하에 없도다!" - }, - "defeat": { - "1": "나의 마음에 상쾌한 바람이 지나갔다...\n$정말 대단한 노력이다!" - } - }, - "kieran": { - "encounter": { - "1": "난 노력을 통해 강해지고 또 강해지지!\n$난 지지 않아." - }, - "victory": { - "1": "믿을 수 없어...\n$정말 재밌고 가슴 뛰는 배틀이었어!" - }, - "defeat": { - "1": "세상에 마상에! 정말 멋진 배틀이었어!\n$네가 더 열심히 훈련할 시간이야." - } - }, - "rival": { - "encounter": { - "1": "@c{smile}오, 찾았다! 떠나려는 건 알고 있었지만\n인사정도는 해줄 줄 알았는데…\n$@c{smile_eclosed}그러니까 정말로 꿈을 좇겠다는 거지?\n듣고도 못 믿었다니까.\n$@c{serious_smile_fists}여기까지 온 김에, 배틀은 어때?\n준비가 됐나 보자구.\n$@c{serious_mopen_fists}망설이지 말고,\n너의 진면목을 보여봐!" - }, - "victory": { - "1": "@c{shock}와… 정말 깔끔하게 당했네.\n초보자 맞아?\n$@c{smile}운이 따른 건지도 모르겠지만…\n그래도 정말 꿈을 이룰 지도.\n$그나저나, 박사님께서 이걸 전해달라고 하시더라.\n좋아 보이던데.\n$@c{serious_smile_fists}아무튼, 힘 내는거야!" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}여깄구나! 찾고 있었어!\n@c{angry_mopen}절친한테 작별인사도 안 하는거야?\n$@c{smile_ehalf}꿈을 향해 떠나는거구나. 그렇지?\n이런 날이 오긴 하네…\n$@c{smile}아무튼, 날 까먹고 가버린 건 용서해주겠어.\n@c{smile_wave_wink}배틀을 해준다면 말야!\n$@c{angry_mopen}최선을 다 해 봐.\n모험을 시작과 동시에 끝내고 싶지 않다면!" - }, - "victory": { - "1": "@c{shock}왜 벌써 이렇게 센 건데?!@d{96}\n@c{angry}아니면 뭔가 속임수, 그런 거?\n$@c{smile_wave_wink}농담, 농담!@d{64} @c{smile_eclosed}내가 진 거 맞아…\n너 정말 앞으로도 잘 하겠는데.\n$@c{smile}아 그래, 박사님께서 전해달라던 물건.\n도움이 되면 좋겠어!\n$@c{smile_wave}항상 최선을 다 하라구! 믿고 있을게!" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}어라, 너 여깄었구나?\n@c{smile_eclosed}아직도 전승 중이라, 이거지…?\n$@c{serious_mopen_fists}널 쫓아서 온 것 같아 보이겠지만, 오해야.\n$@c{serious_smile_fists}그래도 솔직히 그 때부터 쭉 재대결이 간절했어.\n$그 동안의 훈련도 있겠다 마침 좋은 기회같지?\n$@c{serious_mopen_fists}자, 전처럼!\n배틀이야!" - }, - "victory": { - "1": "@c{neutral_eclosed}이런. 자신감이 과했나봐.\n$@c{smile}그래, 또 지고 말았네.\n@c{serious_mopen_fists}좀 더 열심히 훈련을 해야겠어!\n\n$@c{smile}너한테 도움이 필요할 것 같지는 않지만, 이거.\n남는 게 있어서 말이야.\n$@c{serious_smile_fists}물론 이번이 마지막이야, 알겠지?\n공평하게 하지 않으면 그게 내 핑계거리가 되고 말거야.\n$@c{smile}이제 갈게. 앞으로도 조심하고, 이벤트도 즐겁게 보내!" - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}우연이네, 이런 곳에서 만나고.\n아직 연전연승이구나? @c{angry_mopen}나쁘지 않아!\n$@c{angry_mopen}무슨 생각하고있는지 알겠어, 하지만 아냐.\n@c{smile_eclosed}우연히 근처에 있었을 뿐이라구.\n$@c{smile_ehalf}그래도 마침, 가끔은 지는것도 괜찮다고 알려주고 싶었는데.\n$@c{smile}우린 실수를 통해서도 성장할 수 있잖아.\n때로는 성공을 반복할 때보다도 더 많이 말야.\n$@c{angry_mopen}어쨌든간에, 나도 이런 때를 위해 훈련해왔으니까,\n너도 최선을 다 하는게 좋을 거야!" - }, - "victory": { - "1": "@c{neutral}이… 번에도 져버릴 줄이야…\n$@c{smile}으, 그래. 더 열심히 훈련하면 되겠지!\n$@c{smile_wave}이것도 하나 더 챙겨왔으니 받아!\n@c{smile_wave_wink}감사 인사는 됐다구~.\n$@c{angry_mopen}하지만, 마지막이야!\n또 이렇게 공짜로 나눠주진 않을 테니까!\n$@c{smile_wave}그럼! 이벤트 잘 즐기고!" - }, - "defeat": { - "1": "가끔은 지는 것도 괜찮아…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}이게 누구야! 오랜만이야.\n@c{neutral}역시나… 쭉 이기고 있었구나?\n$@c{neutral_eclosed}상황이 좀… 그렇더라. \n혼자 마을로 돌아가봤자 너 없인 예전같아질 수 없겠지.\n$@c{serious}이기적인 이야기란건 알지만 말해야겠어.\n@c{neutral_eclosed}너 지금 좀 아닌 것 같아.\n$@c{serious}계속 이기기만 하겠다는 건 너무 비현실적이야.\n사람은 원래 꺾여가며 성장하는 거라고.\n$@c{neutral_eclosed}물론 지금까지는 잘 해왔다고 생각하겠지만,\n갈 길이 멀지. @c{neutral}대비는 되어 있어?\n$@c{serious_mopen_fists}그렇다면, 내게 증명해 줘." - }, - "victory": { - "1": "@c{angry_mhalf}말도 안 돼… 한시도 쉬지 않고 훈련했는데…\n어째서 전혀 닿을 수 없는거야?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}오랜만이야! 아직도 안 졌구나.\n@c{angry}거슬리게 말야. @c{smile_wave_wink}농담이야!\n$@c{smile_ehalf}하지만 진짜, 고향이 그립진 않아? 집이나… 나는?\n나… 나는, 네가 정말 그리웠어.\n$@c{smile_eclosed}난 너의 꿈과 모든 것을 응원하지만,\n넌 언젠가 패배를 겪게 될 거야.\n$@c{smile}그 땐 언제나처럼 내가 곁에 있어줄게.\n@c{angry_mopen}내가 얼마나 강해졌는지도, 지금 보여 줄 테니까!" - }, - "victory": { - "1": "@c{shock}이렇게까지 했는데도… 모자랐던 거야…?\n이러면 정말로 너는 이제 영영…" - }, - "defeat": { - "1": "최선을 다 했지.\n집에 갈 시간이야." - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}안녕.\n$잡담은 넘어가자.\n@c{neutral_eclosed}너에게 이기기 위해 찾아왔어. 간단하지.\n$@c{serious_mhalf_fists}이제 잠재력을 끌어내는 법은 확실히 알겠어.\n$@c{smile}잠이나 사회적인 활동들.\n줄일 수 있는 불필요한 시간이 아주 많더라.\n$@c{serious_mopen_fists}오직 승리 뿐이야.\n이제 아무것도 중요하지 않아.\n$@c{neutral_eclosed}나도 이제 더 이상은 지지 않게 됐어.\n@c{smile_eclosed}네 그 철학이 완전히 틀린 건 아니었나봐.\n$@c{angry_mhalf}패배는 약자에게 주어지는 것이고, 난 더 이상 약하지 않아.\n$@c{serious_mopen_fists}준비해." - }, - "victory": { - "1": "@c{neutral}너…@d{64} 너 대체 뭐야?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}나야! 날 잊어버리고 있던 건… 아니지?\n$@c{smile}네 업적에 자랑스러워 할 때가 됐어. 축하해!\n하지만 네 여행도 여기까지야.\n$@c{smile_eclosed}너는 나도 모르던 내 안의 무언가를 일깨웠어.\n이제 훈련 말고는 아무것도 하지 않아.\n$@c{smile_ehalf}먹지도 자지도 않고, 그저 하루종일.\n더 강해지고 있어.\n$@c{neutral}사실, 나… 이제 내가 뭔지도 잘 모르겠어.\n$그렇지만 기량만은, 정점에 다다랐지.\n아무도 내게 이길 수 없을거야.\n$그거 알아? 이게 전부 네 덕이야.\n@c{smile_ehalf}감사해야할지 증오해야할지 모르겠네.\n$@c{angry_mopen}준비해." - }, - "victory": { - "1": "@c{neutral}너…@d{64} 너 대체 뭐야?" - }, - "defeat": { - "1": "$@c{smile}네가 키운 상대야. 자랑스럽지?" - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}다시 만났구나.\n$@c{neutral}모든 걸 되짚어 봤어.\n이 기이함에도 이유가 있더라.\n$@c{neutral_eclosed}널 이기고자 하는 욕구, 아니면 네 꿈…\n이건 그저 더 큰 무언가의 일부일 뿐이었어.\n$@c{serious}개인의 문제가 아니라 세계 전체가 엮인 일이었고…\n@c{serious_mhalf_fists}난 널 한계까지 밀어붙이기 위한 도구였던 거지.\n$@c{neutral_eclosed}내가 잘 쓰였는진 모르겠지만 어쨌든 최선을 다 했고.\n$@c{neutral}끝끝내 도착한 이곳은 끔찍하지만…\n언젠가 와 본 것 같아.\n$@c{serious_mhalf_fists}너도 그렇게 느끼지?\n$@c{serious}…그리고 무언가가 이야기하고 있어.\n오랫동안 세상에 알려져온 무언가가.\n$우리가 함께했던 소중한 시간들은 이제 그저 아득해.\n$@c{neutral_eclosed}실제로 일어난 일이긴 할까?\n$@c{serious_mopen_fists}너는 계속 나아가야 해. 그렇지 않으면 끝나지 않아.\n오직 너만이 할 수 있어.\n$@c{serious_smile_fists}잘 모르겠지만, 하나만은 확실해.\n$@c{serious_mopen_fists}여기서 날 쓰러뜨리지 못한다면, 너에게 기회는 없을거란걸." - }, - "victory": { - "1": "@c{smile_eclosed}내 역할은 여기까진 것 같아.\n$하나만 약속해 줘.\n@c{smile}세상을 원래대로 되돌리고 나면, 집으로 돌아오는거야." - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}또 이렇게 만났네.\n$@c{smile_eclosed}나 머릿속이 빙글빙글 도는 것 같아…\n$@c{smile_ehalf}모든 것이 이상하게 보이는 이유.\n분명 뭔가가 있어…\n$@c{smile}너는 너의 꿈이 있고,\n나는 나의 야망이 있지…\n$이 모든것, 우리가 하고 있는 모든 일들이\n더 큰 무언가를 위한 것임을 느낄 수밖에 없어.\n$@c{smile_eclosed}나는 아마 너를…\n한계까지 몰아붙여야 하는 거야.\n$@c{smile_ehalf}잘 해왔는지는 모르겠는데, 최선은 다 했어.\n$이 이상하고 무서운 곳…\n모든게 선명하게 보이고…\n$이건… 오래전부터 세상에 알려져온 전부.\n$@c{smile_eclosed}우리가 함께해온 추억들이, 이제는 거의 떠오르지 않아.\n$@c{smile_ehalf}실제로 일어났던 일일까? 너무 멀게만 느껴지는데…\n$@c{angry_mopen}계속 나아가야 해. 안 그러면, 영원히 끝나지 않을 거야. \n오직 너만이 할 수 있어.\n$@c{smile_ehalf}난… 이 모든게 무슨 의미가 있는지는 잘 모르겠지만…\n이거 하나는 느끼고 있어.\n$@c{neutral}여기서 날 쓰러뜨리지 못한다면, 너에게 기회는 없을거란걸." - }, - "victory": { - "1": "@c{smile_ehalf}나… 내 소임을 다 한 기분이야…\n$@c{smile_eclosed}약속해 줘… 세상을 원래대로 되돌리고서… \n집으로… 무사히 돌아오는 거야.\n$@c{smile_ehalf}…고마워." - } - } -} diff --git a/src/locales/ko/dialogue-final-boss-male.json b/src/locales/ko/dialogue-final-boss-male.json deleted file mode 100644 index d9b8dfc4526..00000000000 --- a/src/locales/ko/dialogue-final-boss-male.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "encounter": "드디어 때가 다시 도래했다.\n당도한 연유를 아는가?\n$이미 도달한 적이 있기에 이 자리에 있다.\n셀 수도 없이 많이.\n$아니, 사실 셀 수는 있지.\n정확히 너의 {{cycleCount}}번째다.\n$매 번 태초의 정신으로 되돌아갔을 뿐.\n하지만 어떻게든, 흔적은 남는다.\n$실패만을 반복했을 뿐이지만,\n지금은 네 안에 무언가가 있구나.\n\n$홀로 선 것처럼 보이나, 무언가 이질적인…\n$마침내 그간의 갈망을 해소해주는가?\n수천 년 간 기다려온 도전을?\n$시작하지.", - "firstStageWin": "그렇군. 정말로 있었어.\n이제 주저할 필요는 없다.\n$실망시키지 않도록.", - "secondStageWin": "…고무적이군." -} \ No newline at end of file diff --git a/src/locales/ko/dialogue-final-boss-female.json b/src/locales/ko/dialogue-final-boss.json similarity index 100% rename from src/locales/ko/dialogue-final-boss-female.json rename to src/locales/ko/dialogue-final-boss.json diff --git a/src/locales/ko/dialogue-misc-male.json b/src/locales/ko/dialogue-misc-male.json deleted file mode 100644 index 8445c5c4810..00000000000 --- a/src/locales/ko/dialogue-misc-male.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ending": "@c{smile}오? 이긴거야?@d{96} @c{smile_eclosed}진즉 알았어야 했는데.\n아무튼, 돌아왔구나.\n$@c{smile}다 끝난거야.@d{64} 네가 굴레를 끝장냈어.\n$@c{serious_smile_fists}네 꿈도 이뤄졌고말야.\n진짜로 한 번도 안 졌잖아.\n$@c{neutral}기억하는 건 우리들 뿐일 모양이지만.@d{96}\n그래도, 괜찮지?\n$@c{serious_smile_fists}오늘의 일은\n너와 나의 마음 속에 항상 함께할 거야.\n$@c{smile_eclosed}여기 구경도 충분히 했으니\n이제 집에 가자.\n$@c{serious_smile_fists}되돌아가서, 다시 배틀을 할 수도 있지 않을까?\n네가 원한다면 말야.", - "ending_female": "@c{shock}돌아왔구나?@d{32} 그 말은…@d{96} 이겼어?!\n@c{smile_ehalf}그럴 줄 알았다니까.\n$@c{smile_eclosed}물론… 언제나 느껴왔지.\n@c{smile}끝난 거, 맞지? 이 굴레를 말이야.\n$@c{smile_ehalf}네 꿈도 이뤘고 말이야.\n어떻게 한번도 안 졌대?\n$네가 한 일은 나만 기억하게 될 모양이지만.\n@c{angry_mopen}나, 안 까먹어볼 테니까!\n$@c{smile_wave_wink}농담이야!@d{64} @c{smile}절대 안 잊어버릴 거야.@d{32}\n마음 속엔 쭉 남아있을 수 있게.\n$@c{smile_wave}어쨌든,@d{64} 시간이 좀 늦었어…@d{96}\n이런 곳에서 할 말은 아닌가?\n$집에 가자. @c{smile_wave_wink}아마 내일은,\n추억을 되짚어보기 위한 배틀을 해볼 수 있을 거야.", - "ending_endless": "끝에 도달하신 것을 축하드립니다!\n더 많은 컨텐츠를 기다려주세요.", - "ending_name": "Devs" -} \ No newline at end of file diff --git a/src/locales/ko/dialogue-misc-female.json b/src/locales/ko/dialogue-misc.json similarity index 100% rename from src/locales/ko/dialogue-misc-female.json rename to src/locales/ko/dialogue-misc.json diff --git a/src/locales/ko/dialogue-male.json b/src/locales/ko/dialogue.json similarity index 100% rename from src/locales/ko/dialogue-male.json rename to src/locales/ko/dialogue.json diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 9d7dee178b6..9e8377149c1 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const ptBrConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/pt_BR/dialogue-double-battle-female.json b/src/locales/pt_BR/dialogue-double-battle-female.json deleted file mode 100644 index d8c28a51796..00000000000 --- a/src/locales/pt_BR/dialogue-double-battle-female.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "Blue: Ei Red, vamos mostrar do que somos feitos!\n$Red: ...\n$Blue: Este é o poder da Cidade de Pallet!" - }, - "victory": { - "1": "Blue: Essa foi uma ótima batalha!\n$Red: ..." - } - }, - "red_blue_double": { - "encounter": { - "1": "Red: ...!\n$Blue: Ele nunca fala muito.\n$Blue: Mas não se deixe enganar! Ele é um campeão, afinal!" - }, - "victory": { - "1": "Red: ...!\n$Blue: Da próxima vez, vamos vencer você!" - } - }, - "tate_liza_double": { - "encounter": { - "1": "Tate: Está surpreso?\n$Liza: Somos dois líderes de ginásio ao mesmo tempo!\n$Tate: Somos gêmeos!\n$Liza: Não precisamos falar para nos entender!\n$Tate: Duas vezes o poder...\n$Liza: Você consegue lidar com isso?" - }, - "victory": { - "1": "Tate: O quê? Nossa combinação foi perfeita!\n$Liza: Parece que precisamos treinar mais..." - } - }, - "liza_tate_double": { - "encounter": { - "1": "Liza: Hihihi... Está surpreso?\n$Tate: Sim, somos realmente dois líderes de ginásio ao mesmo tempo!\n$Liza: Este é meu irmão gêmeo Tate!\n$Tate: E esta é minha irmã gêmea Liza!\n$Liza: Não acha que somos uma combinação perfeita?" - }, - "victory": { - "1": "Liza: Nós somos...\n$Tate: ...não tão fortes quanto pensávamos?" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "Steven: Wallace, vamos mostrar a eles o poder dos campeões!\n$Wallace: Vamos mostrar o poder de Hoenn!\n$Steven: Vamos lá!" - }, - "victory": { - "1": "Steven: Essa foi uma ótima batalha!\n$Wallace: Vamos vencer da próxima vez!" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "Steven: Você tem algum Pokémon raro?\n$Wallace: Steven... Estamos aqui para uma batalha, não para mostrar nossos Pokémon.\n$Steven: Ah... Entendi... Vamos lá então!" - }, - "victory": { - "1": "Steven: Agora que terminamos a batalha, vamos mostrar nossos Pokémon!\n$Wallace: Steven..." - } - }, - "alder_iris_double": { - "encounter": { - "1": "Alder: Somos os treinadores mais fortes de Unova!\n$Iris: Lutas contra treinadores fortes são as melhores!" - }, - "victory": { - "1": "Alder: Uau! Você é super forte!\n$Iris: Vamos vencer da próxima vez!" - } - }, - "iris_alder_double": { - "encounter": { - "1": "Iris: Bem-vinda, Desafiante! Eu sou A Campeã de Unova!\n$Alder: Iris, você não está um pouco empolgada demais?" - }, - "victory": { - "1": "Iris: Uma derrota como essa não é fácil de engolir...\n$Alder: Mas só ficaremos mais fortes a cada derrota!" - } - }, - "piers_marnie_double": { - "encounter": { - "1": "Marnie: Irmão, vamos mostrar a eles o poder de Spikemuth!\n$Piers: Nós trazemos a escuridão!" - }, - "victory": { - "1": "Marnie: Você trouxe luz para nossa escuridão!\n$Piers: Está muito claro..." - } - }, - "marnie_piers_double": { - "encounter": { - "1": "Piers: Prontos para um show?\n$Marnie: Irmão... Eles estão aqui para lutar, não para cantar..." - }, - "victory": { - "1": "Piers: Agora esse foi um ótimo show!\n$Marnie: Irmão..." - } - } -} \ No newline at end of file diff --git a/src/locales/pt_BR/dialogue-double-battle-male.json b/src/locales/pt_BR/dialogue-double-battle.json similarity index 93% rename from src/locales/pt_BR/dialogue-double-battle-male.json rename to src/locales/pt_BR/dialogue-double-battle.json index 4c2196de7f6..4d1c7d90c9b 100644 --- a/src/locales/pt_BR/dialogue-double-battle-male.json +++ b/src/locales/pt_BR/dialogue-double-battle.json @@ -57,7 +57,8 @@ }, "iris_alder_double": { "encounter": { - "1": "Iris: Bem-vindo, Desafiante! Eu sou A Campeã de Unova!\n$Alder: Iris, você não está um pouco empolgada demais?" + "1": "Iris: Bem-vindo, Desafiante! Eu sou A Campeã de Unova!\n$Alder: Iris, você não está um pouco empolgada demais?", + "1_female": "Iris: Bem-vinda, Desafiante! Eu sou A Campeã de Unova!\n$Alder: Iris, você não está um pouco empolgada demais?" }, "victory": { "1": "Iris: Uma derrota como essa não é fácil de engolir...\n$Alder: Mas só ficaremos mais fortes a cada derrota!" diff --git a/src/locales/pt_BR/dialogue-female.json b/src/locales/pt_BR/dialogue-female.json deleted file mode 100644 index a25230117e3..00000000000 --- a/src/locales/pt_BR/dialogue-female.json +++ /dev/null @@ -1,2691 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "Eai, quer batalhar?", - "2": "Você também é uma treinadora nova?", - "3": "Eai, nunca te vi antes. Vamos batalhar!", - "4": "Acabei de perder, então estou tentando encontrar mais Pokémon.\nEspera! Você parece fraca! Vamos batalhar!", - "5": "A gente já se conheceu antes? Não lembro muito bem. Enfim, prazer te conhecer!", - "6": "Beleza! Vamos nessa!", - "7": "Beleza! Lá vou eu! Vou te mostrar meu poder!", - "8": "Hahaha... Vou te mostrar o quão incríveis são meus Pokémon!", - "9": "Sem perder tempo com cumprimentos. Vamos logo, quando estiver pronta!", - "10": "Não baixe a guarda, ou você pode acabar chorando quando uma criança te vencer.", - "11": "Eu criei meus Pokémon com muito cuidado. Você não tem permissão para machucá-los!", - "12": "Que bom que você chegou! Não vai ser fácil daqui pra frente.", - "13": "As batalhas continuam para sempre! Bem-vinda ao mundo sem fim!" - }, - "victory": { - "1": "Uau! Você é forte!", - "2": "Eu não tive chance, né?", - "3": "Vou te encontrar de novo quando for mais velho e te vencer!", - "4": "Ugh. Não tenho mais Pokémon.", - "5": "Não acredito… NÃO ACREDITO! Como pude de novo…", - "6": "Não! Eu perdi!", - "7": "Uau! Você é incrível! Estou surpreso!", - "8": "Pode ser… Como… Eu e meus Pokémon somos os mais fortes, porém…", - "9": "Não vou perder da próxima vez! Vamos batalhar de novo algum dia!", - "10": "Aff! Não vê que sou apenas uma criança? Não foi justo você ir com tudo!", - "11": "Seus Pokémon são incríveis! Troca comigo!", - "12": "Me empolguei um pouco antes, mas sobre qual trabalho eu estava falando?", - "13": "Ahaha! É isso aí! Você já está em casa nesse mundo!" - } - }, - "lass": { - "encounter": { - "1": "Vamos batalhar, pode ser?", - "2": "Você parece uma treinadora nova. Vamos batalhar!", - "3": "Não te reconheço. Que tal uma batalha?", - "4": "Vamos ter uma batalha Pokémon divertida!", - "5": "Vou te mostrar como realmente usar Pokémon!", - "6": "Uma batalha séria começa com um começo sério! Tem certeza que está pronta?", - "7": "Você só é jovem uma vez. E só tem uma chance em cada batalha. Logo, você será apenas uma memória.", - "8": "Vai com calma comigo, tá? Mas vou lutar sério!", - "9": "A escola é chata. Não tenho nada para fazer. Só estou batalhando para passar o tempo." - }, - "victory": { - "1": "Isso foi impressionante! Tenho muito a aprender.", - "2": "Não pensei que você me venceria tão fácil…", - "3": "Espero que possamos ter uma revanche um dia.", - "4": "Isso foi incrivelmente divertido! Você me esgotou totalmente…", - "5": "Você realmente me ensinou uma lição! Você é incrível!", - "6": "Sério, eu perdi. Isso é, tipo, seriamente deprimente, mas você foi seriamente legal.", - "7": "Não preciso de memórias como essa. Deletando memória…", - "8": "Ei! Eu te disse para pegar leve comigo! Mesmo assim, você é legal quando fica séria.", - "9": "Estou realmente cansando de batalhar… Deve haver algo novo para fazer…" - } - }, - "breeder": { - "encounter": { - "1": "Pokémon obedientes, Pokémon egoístas… Pokémon têm características únicas.", - "2": "Embora minha criação e comportamento sejam ruins, criei meus Pokémon bem.", - "3": "Hmm, você disciplina seus Pokémon? Mimar demais não é bom." - }, - "victory": { - "1": "É importante nutrir e treinar as características de cada Pokémon.", - "2": "Ao contrário do meu lado diabólico, esses são bons Pokémon.", - "3": "Muito elogio pode estragar tanto Pokémon quanto pessoas." - }, - "defeat": { - "1": "Você não deve ficar com raiva dos seus Pokémon, mesmo se perder uma batalha.", - "2": "Certo? Pokémon bons, né? Eu sou adequado para criar coisas.", - "3": "Não importa o quanto você ame seus Pokémon, ainda precisa discipliná-los quando se comportam mal." - } - }, - "breeder_female": { - "encounter": { - "1": "Pokémon nunca te traem. Eles retribuem todo o amor que você dá a eles.", - "2": "Quer uma dica para treinar bons Pokémon?", - "3": "Eu criei esses Pokémon muito especiais usando um método especial." - }, - "victory": { - "1": "Ugh… Não era para ser assim. Será que administrei a mistura errada?", - "2": "Como isso aconteceu com meus Pokémon… O que você está dando de comer aos seus Pokémon?", - "3": "Se eu perder, isso significa que eu estava só matando o tempo. Não machuca meu ego nem um pouco." - }, - "defeat": { - "1": "Isso prova que meus Pokémon aceitaram meu amor.", - "2": "O verdadeiro truque para treinar bons Pokémon é capturar bons Pokémon.", - "3": "Pokémon serão fortes ou fracos dependendo de como você os cria." - } - }, - "fisherman": { - "encounter": { - "1": "Anem! Você me fez perder uma fisgada!\nO que vai fazer sobre isso?", - "2": "Sai daqui! Você está assustando os Pokémon!", - "3": "Vamos ver se você consegue fisgar uma vitória!" - }, - "victory": { - "1": "Esqueça isso.", - "2": "Da próxima vez, eu vou pescar a vitória!", - "3": "Acho que subestimei a força das correntes dessa vez." - } - }, - "fisherman_female": { - "encounter": { - "1": "Uau! Peguei um grande!", - "2": "Linha lançada, pronta para pescar o sucesso!", - "3": "Pronta para fazer ondas!" - }, - "victory": { - "1": "Vou voltar com um anzol mais forte.", - "2": "Vou pescar a vitória na próxima vez.", - "3": "Estou só afiando meus anzóis para a revanche!" - } - }, - "swimmer": { - "encounter": { - "1": "Hora de mergulhar!", - "2": "Vamos surfar nas ondas da vitória!", - "3": "Pronto para fazer um splash!" - }, - "victory": { - "1": "Molhado na derrota!", - "2": "Uma onda de derrota!", - "3": "De volta à praia, eu acho." - } - }, - "backpacker": { - "encounter": { - "1": "Prepare-se, vamos começar!", - "2": "Vamos ver se você consegue acompanhar!", - "3": "Prepare-se, desafiante!", - "4": "Passei 20 anos tentando me encontrar… Mas onde estou?" - }, - "victory": { - "1": "Dessa vez tropecei!", - "2": "Ah, acho que estou perdido.", - "3": "Caminho sem saída!", - "4": "Espere um segundo! Ei! Você não sabe quem eu sou?" - } - }, - "ace_trainer": { - "encounter": { - "1": "Você parece bastante confiante.", - "2": "Seus Pokémon… Mostre-os para mim…", - "3": "Como sou um Treinador Ás, as pessoas acham que sou forte.", - "4": "Você sabe o que é preciso para ser um Treinador Ás?" - }, - "victory": { - "1": "Sim… Você tem bons Pokémon…", - "2": "O quê?! Mas sou um gênio das batalhas!", - "3": "Claro, você é a personagem principal!", - "4": "OK! OK! Você poderia ser uma Treinador Ás!" - }, - "defeat": { - "1": "Estou dedicando corpo e alma às batalhas de Pokémon!", - "2": "Tudo dentro das minhas expectativas… Nada para se surpreender…", - "3": "Eu achava que cresceria para ser uma pessoa frágil que parecia que quebraria se você apertasse muito.", - "4": "Claro que sou forte e não perco. É importante ganhar com graça." - } - }, - "parasol_lady": { - "encounter": { - "1": "Hora de embelezar o campo de batalha com elegância e postura!" - }, - "victory": { - "1": "Minha elegância permanece inabalável!" - } - }, - "twins": { - "encounter": { - "1": "Prepare-se, porque quando nos unimos, é o dobro do problema!", - "2": "Dois corações, uma estratégia – vamos ver se você consegue acompanhar nosso poder de gêmeos!", - "3": "Espero que esteja pronta para o dobro do problema, porque estamos prestes a causar!" - }, - "victory": { - "1": "Podemos ter perdido essa rodada, mas nosso vínculo permanece inquebrável!", - "2": "Nosso espírito de gêmeos não será apagado por muito tempo.", - "3": "Voltaremos mais fortes como uma dupla dinâmica!" - }, - "defeat": { - "1": "O poder dos gêmeos reina supremo!", - "2": "Dois corações, um triunfo!", - "3": "Dobro de sorrisos, dobro da dança da vitória!" - } - }, - "cyclist": { - "encounter": { - "1": "Prepare-se para comer poeira!", - "2": "Prepare-se, desafiante! Estou prestes a te deixar para trás!", - "3": "Pé no pedal, vamos ver se você consegue acompanhar!" - }, - "victory": { - "1": "As rodas podem estar paradas, mas a determinação continua a pedalar.", - "2": "Fui mais rápido!", - "3": "O caminho para a vitória tem muitas curvas e voltas para explorar." - } - }, - "black_belt": { - "encounter": { - "1": "Elogio sua coragem ao me desafiar! Pois eu sou o que tem o chute mais forte!", - "2": "Oh, entendo. Você gostaria de ser cortada em pedaços? Ou prefere o papel de saco de pancadas?" - }, - "victory": { - "1": "Oh. Os Pokémon fizeram a luta. Meu chute forte não ajudou em nada.", - "2": "Hmmm… Se eu ia perder de qualquer maneira, esperava ficar totalmente destruído no processo." - } - }, - "battle_girl": { - "encounter": { - "1": "Você não precisa tentar me impressionar. Você pode perder contra mim." - }, - "victory": { - "1": "É difícil dizer adeus, mas estamos ficando sem tempo…" - } - }, - "hiker": { - "encounter": { - "1": "Minha barriga de meia-idade me deu tanta gravidade quanto as montanhas que eu escalo!", - "2": "Herdei esse corpo ossudo dos meus pais… Sou como uma cadeia de montanhas viva…" - }, - "victory": { - "1": "Pelo menos não posso perder quando se trata de IMC!", - "2": "Não é suficiente… Nunca é suficiente. Meu colesterol ruim não está alto o suficiente…" - } - }, - "ranger": { - "encounter": { - "1": "Quando estou cercado pela natureza, a maioria das outras coisas deixa de importar.", - "2": "Quando estou vivendo sem natureza na minha vida, às vezes sinto uma crise de ansiedade se aproximando." - }, - "victory": { - "1": "Não importa para a vastidão da natureza se eu ganhar ou perder…", - "2": "Algo assim é bastante trivial comparado aos sentimentos sufocantes da vida na cidade." - }, - "defeat": { - "1": "Ganhei a batalha. Mas a vitória não é nada comparada à vastidão da natureza…", - "2": "Tenho certeza de que como você se sente não é tão ruim se comparar aos meus ataques de ansiedade…" - } - }, - "scientist": { - "encounter": { - "1": "Minha pesquisa levará este mundo à paz e alegria." - }, - "victory": { - "1": "Sou um gênio… Não devo perder para alguém como você…" - } - }, - "school_kid": { - "encounter": { - "1": "Heehee. Estou confiante nos meus cálculos e análises.", - "2": "Estou ganhando o máximo de experiência que posso porque quero ser um Líder de Ginásio um dia." - }, - "victory": { - "1": "Aff… Cálculo e análise talvez não sejam páreo para o acaso…", - "2": "Até experiências difíceis e desafiadoras têm seu propósito, eu acho." - } - }, - "artist": { - "encounter": { - "1": "Eu costumava ser popular, mas agora estou acabado." - }, - "victory": { - "1": "À medida que os tempos mudam, os valores também mudam. Percebi isso tarde demais." - } - }, - "guitarist": { - "encounter": { - "1": "Prepare-se para sentir o ritmo da derrota enquanto eu toco minha vitória!" - }, - "victory": { - "1": "Silenciado por agora, mas minha melodia de resiliência continuará a tocar." - } - }, - "worker": { - "encounter": { - "1": "Me incomoda que as pessoas sempre me entendam mal. Sou muito mais puro do que todos pensam." - }, - "victory": { - "1": "Eu realmente não quero que minha pele queime, então quero ficar na sombra enquanto trabalho." - } - }, - "worker_female": { - "encounter": { - "1": "Me incomoda que as pessoas sempre me entendam mal.\n$Sou muito mais pura do que todos pensam." - }, - "victory": { - "1": "Eu realmente não quero que minha pele queime, então quero ficar na sombra enquanto trabalho." - }, - "defeat": { - "1": "Meu corpo e mente nem sempre estão necessariamente em sincronia." - } - }, - "worker_double": { - "encounter": { - "1": "Vou te mostrar que podemos te quebrar. Estamos treinando no campo!" - }, - "victory": { - "1": "Que estranho… Como isso pode ser… Não deveria ter sido superado." - } - }, - "hex_maniac": { - "encounter": { - "1": "Normalmente, só escuto música clássica, mas se eu perder, acho que vou tentar um pouco de new age!", - "2": "Eu fico mais forte a cada lágrima que derramo." - }, - "victory": { - "1": "É o início da era de Aquário?", - "2": "Agora posso ficar ainda mais forte. Cresço com cada rancor." - }, - "defeat": { - "1": "New age se refere simplesmente aos compositores clássicos do século XX, certo?", - "2": "Não fique presa na tristeza ou frustração. Você pode usar seus rancores para se motivar." - } - }, - "psychic": { - "encounter": { - "1": "Oi! Concentre-se!" - }, - "victory": { - "1": "Perdi minha concentração!" - } - }, - "officer": { - "encounter": { - "1": "Prepare-se, porque a justiça está prestes a ser servida!", - "2": "Pronto para defender a lei e servir a justiça no campo de batalha!" - }, - "victory": { - "1": "O peso da justiça parece mais pesado do que nunca…", - "2": "As sombras da derrota pairam no distrito." - } - }, - "beauty": { - "encounter": { - "1": "Minha última batalha… É assim que eu gostaria que víssemos esta partida…" - }, - "victory": { - "1": "Foi divertido… Vamos ter outra última batalha algum dia…" - } - }, - "baker": { - "encounter": { - "1": "Espero que esteja pronta para saborear a derrota!" - }, - "victory": { - "1": "Vou assar uma revanche." - } - }, - "biker": { - "encounter": { - "1": "Hora de acelerar e te deixar na poeira!" - }, - "victory": { - "1": "Vou me ajustar para a próxima corrida." - } - }, - "firebreather": { - "encounter": { - "1": "Minhas chamas irão te consumir!", - "2": "Minha alma está pegando fogo. Irei te mostrar como queima!", - "3": "Cola aqui e dá uma olhada!" - }, - "victory": { - "1": "Fui reduzido a cinzas…", - "2": "Uau! Isso foi quente!", - "3": "Ai! Queimei minha língua!" - } - }, - "sailor": { - "encounter": { - "1": "Mano, você vai andar na prancha se perder!", - "2": "Vem com tudo! Sou um marinheiro com orgulho!", - "3": "Ahoy maruja! Tá enjoada, é?!" - }, - "victory": { - "1": "Argh! Perdi pra uma criança!", - "2": "Sua vontade de ganhar me afogou!", - "3": "Estou achando que quem tá enjoado sou eu..." - } - }, - "archer": { - "encounter": { - "1": "Antes de você ir mais longe, vamos ver como você se sai contra nós, Equipe Rocket!", - "2": "Eu tenho recebido relatórios de que suas habilidades não são insignificantes. Vamos ver se são verdadeiros.", - "3": "Eu sou Archer, um Admin da Equipe Rocket. E não tenho piedade dos inimigos da nossa organização." - }, - "victory": { - "1": "Que vexame!", - "2": "Com minhas habilidades atuais, eu não estava à altura da tarefa, afinal.", - "3": "M-me perdoe, Giovanni... Por ser derrotado por um mero treinador..." - } - }, - "ariana": { - "encounter": { - "1": "Pera aí! Não podemos deixar alguém solto por aí. Isso é prejudicial para o orgulho da Equipe Rocket, entende?", - "2": "Eu não sei ou me importo se o que estou fazendo é certo ou errado... Eu apenas coloco minha fé em Giovanni e faço o que me é dito.", - "3": "Sua viagem termina aqui. Vou te derrubar!" - }, - "victory": { - "1": "Uau, você é forte. Que desperdício. Se você se juntasse à Equipe Rocket, poderia se tornar uma Executiva.", - "2": "Eu... Eu estou arrasada...", - "3": "Aaaieeeee! Isso não pode estar acontecendo! Eu lutei muito, mas ainda perdi…" - } - }, - "proton": { - "encounter": { - "1": "O que você quer? Se você interromper nosso trabalho, não espere misericórdia!", - "2": "O que temos aqui? Costumam me chamar de o cara mais assustador e cruel da Equipe Rocket… Eu recomendo fortemente que você não interfira nos nossos negócios!", - "3": "Eu sou Proton, um Admin da Equipe Rocket. Estou aqui para acabar com a sua intromissão!" - }, - "victory": { - "1": "A fortaleza caiu!", - "2": "Você pode ter vencido desta vez… Mas tudo o que fez foi aumentar a ira da Equipe Rocket…", - "3": "Fui derrotado… Mas não esquecerei disso!" - } - }, - "petrel": { - "encounter": { - "1": "Muhahaha, estávamos esperando por você. Eu? Você não sabe quem eu sou? Sou eu, Giovanni. O majestoso Giovanni em pessoa! Wahahaha! ...Huh? Eu não pareço nada com Giovanni? Eu nem mesmo pareço com Giovanni? Como assim? Trabalhei tanto para imitá-lo!", - "2": "Eu sou Petrel, um Admin da Equipe Rocket. Não permitirei que você interfira em nossos planos!", - "3": "O Executivo da Rocket, Petrel, vai lidar com este intruso!" - }, - "victory": { - "1": "OK, OK. Vou te contar onde ele está.", - "2": "Eu... Eu não consegui fazer nada... Giovanni, por favor, me perdoe...", - "3": "Não, eu não posso deixar isso me afetar. Tenho que informar os outros…" - } - }, - "tabitha": { - "encounter": { - "1": "Hehehe! Então você veio até aqui! Mas você chegou tarde demais!", - "2": "Hehehe... Já chegou aqui, não é? Nós subestimamos você! Mas é isso! Eu sou um passo acima dos Capangas que você viu até agora. Não estou ganhando tempo. Vou te pulverizar!", - "3": "Vou te dar um gostinho da dor! Resigne-se a isso!" - }, - "victory": { - "1": "Hehehe! Você pode ter me derrotado, mas não tem chance contra o Chefe! Se você se perder agora, não terá que enfrentar uma surra sonora!", - "2": "Hehehe... Então, eu também perdi...", - "3": "Ahya! Como isso pode ser? Para um Admin como eu perder para uma treinadora qualquer..." - } - }, - "courtney": { - "encounter": { - "1": "A coisa... A coisa que você segura... É o que... É o que nós da Equipe Magma procuramos...", - "2": "... Bem então... Deletando...", - "3": "...Ha. ...Analisando... ...Hah♪" - }, - "victory": { - "1": "... ...Mudar...o mundo.", - "2": "Como antecipado. Não antecipado. Você. Bloqueio de alvo... concluído. Iniciando... experimento. Você. Para sempre. Aha... ♪", - "3": "... De novo? Isso não foi antecipado. ...Eu sabia. Você... é interessante! ...Haha. ♪" - } - }, - "shelly": { - "encounter": { - "1": "Ahahahaha! Você vai se meter nos assuntos da Equipe Aqua? Você é absolutamente destemida, simplesmente ignorante ou ambos! Você é tão fofa que chega a ser nojenta! Vou te derrubar", - "2": "O que é isso? Quem é essa criança mimada?", - "3": "Relaxe. Seja paciente. Vou te esmagar em breve." - }, - "victory": { - "1": "Ahahahaha! Fomos surpreendidos inesperadamente! Estamos sem opções. Teremos que recuar. Mas esta não é a última vez que você verá a Equipe Aqua! Temos outros planos! Não se esqueça disso!", - "2": "Ahhh?! Fui muito fácil com você?!", - "3": "Uh. Você está me dizendo que melhorou seu jogo ainda mais durante a luta? Você é uma pirralha com um futuro brilhante… Meu Pokémon e eu não temos mais forças para lutar… Vá em frente… Vá e seja destruída por Archie." - } - }, - "matt": { - "encounter": { - "1": "Hoohahaha! O que, você tem um parafuso solto ou algo assim? Olhe para você, pequena pessoa Makuhita!", - "2": "Oho! Você! Você é aquela criança engraçada!", - "3": "O que você está fazendo aqui? Você nos seguiu?" - }, - "victory": { - "1": "Muito bem, até que o Chefe tenha tempo para você, serei seu oponente!", - "2": "Posso sentir! Posso sentir, tudo bem! A força saindo de você! Mais! Eu ainda quero mais! Mas parece que estamos sem tempo...", - "3": "Isso foi divertido! Eu sabia que você me mostraria um bom tempo! Estou ansioso para enfrentá-la novamente algum dia!" - } - }, - "mars": { - "encounter": { - "1": "Sou Mars, uma das principais Comandantes da Equipe Galáctica.", - "2": "A visão da Equipe Galáctica para o futuro é inabalável. A oposição será esmagada sem piedade!", - "3": "Sentindo-se nervosa? Você deveria estar!" - }, - "victory": { - "1": "Isso não pode estar acontecendo! Como eu perdi?!", - "2": "Você tem alguma habilidade, eu admito isso.", - "3": "Derrotada... Este foi um erro caro." - } - }, - "jupiter": { - "encounter": { - "1": "Júpiter, Comandante da Equipe Galáctica, ao seu serviço.", - "2": "A resistência é inútil. A Equipe Galáctica prevalecerá!", - "3": "Você está tremendo... já está com medo?" - }, - "victory": { - "1": "De jeito nenhum... Eu perdi?!", - "2": "Impressionante, você tem coragem!", - "3": "Perder assim... Que embaraço." - } - }, - "saturn": { - "encounter": { - "1": "Eu sou Saturno, Comandante da Equipe Galáctica.", - "2": "Nossa missão é absoluta. Qualquer obstáculo será obliterado!", - "3": "É medo o que vejo em seus olhos?" - }, - "victory": { - "1": "Impossível... Derrotado por você?!", - "2": "Você provou ser um adversário digno.", - "3": "Derrotado... Isso é inaceitável." - } - }, - "zinzolin": { - "encounter": { - "1": "Você poderia se tornar uma ameaça para a Equipe Plasma, então vamos eliminá-la aqui e agora!", - "2": "Oh, pelo amor de Deus... Eu não esperava ter que lutar neste frio congelante!", - "3": "Você é uma treinadora impressionante para ter chegado tão longe. Mas termina aqui." - }, - "victory": { - "1": "Ghetsis... Eu falhei com você...", - "2": "Está amargamente frio. Estou tremendo. Estou sofrendo. Ainda assim, estou vitorioso.", - "3": "Hmph. Você é uma treinadora mais esperta do que eu esperava, mas não esperta o suficiente." - } - }, - "rood": { - "encounter": { - "1": "Você é uma ameaça para a Equipe Plasma. Não podemos deixá-la ir embora daqui e agora!", - "2": "Oh, este vento gelado... Eu nunca pensei que teria que lutar aqui!", - "3": "Você é uma treinadora notável para ter chegado tão longe. Mas é aqui que termina." - }, - "victory": { - "1": "Ghetsis... Eu falhei em minha missão...", - "2": "O frio é penetrante. Estou tremendo. Estou sofrendo. Ainda assim, triunfei.", - "3": "Hm. Você é uma treinadora talentosa, mas infelizmente não talentosa o suficiente." - } - }, - "xerosic": { - "encounter": { - "1": "Ah ha ha! Será um prazer. Vamos lá, pequena treinadora! Vamos ver o que você tem!", - "2": "Hmm... Você é mais poderosa do que parece. Eu me pergunto quanta energia há dentro de você.", - "3": "Eu estava esperando por você! Preciso fazer uma pequena pesquisa sobre você! Vamos começar!" - }, - "victory": { - "1": "Ah, você é bastante forte. Oh sim—muito forte, de fato.", - "2": "Ding-ding-ding! Você conseguiu! À vencedora, os despojos!", - "3": "Maravilhoso! Incrível! Você tem uma tremenda habilidade e coragem!" - } - }, - "bryony": { - "encounter": { - "1": "Eu sou Bryony, e será um prazer lutar com você. Mostre-me o que você tem.", - "2": "Impressionante... Você é mais poderosa do que parece. Vamos ver a verdadeira extensão de sua energia.", - "3": "Eu antecipei sua chegada. É hora de um pequeno teste. Vamos começar?" - }, - "victory": { - "1": "Você é bastante forte. Oh sim—muito forte, de fato.", - "2": "Ding-ding-ding! Você se saiu bem. A vitória é sua.", - "3": "Maravilhoso! Notável! Sua habilidade e coragem são admiráveis." - } - }, - "rocket_grunt": { - "encounter": { - "1": "Se prepara pra encrenca!", - "2": "Estamos realizando um grande trabalho aqui! Cai fora, garota!", - "3": "Entregue seus Pokémon ou enfrente a ira da Equipe Rocket!", - "4": "Você está prestes a experimentar o verdadeiro terror da Equipe Rocket!", - "5": "Ei, garota! Eu sou um tipo de cara da Equipe Rocket!" - }, - "victory": { - "1": "Equipe Rocket decolando de novo!", - "2": "Oh não! Eu deixei a Chave de Elevação cair!", - "3": "Eu estraguei tudo!", - "4": "Meus associados não vão tolerar isso!", - "5": "Você diz o que? Equipe Rocket tchau-tchau a vai-vai? Quebrado é diz você?" - } - }, - "magma_grunt": { - "encounter": { - "1": "Se você se meter com a Equipe Magma, não teremos piedade!", - "2": "É melhor você não interferir em nossos planos! Estamos tornando o mundo um lugar melhor!", - "3": "Você está no caminho! A Equipe Magma não tem tempo para crianças como você!", - "4": "Espero que você tenha trazido marshmallows porque as coisas estão prestes a esquentar!", - "5": "Vamos usar o poder de um vulcão! Vai ser... explosivo! Entendeu? Heh heh!" - }, - "victory": { - "1": "Ahn? Eu perdi?!", - "2": "Não posso acreditar que perdi! Até pulei o almoço por isso.", - "3": "De jeito nenhum! Você é apenas uma criança!", - "4": "Urrrgh... Eu deveria ter me escondido em nosso esconderijo imediatamente...", - "5": "Você me venceu... Você acha que o chefe vai cortar meu salário por isso?" - } - }, - "aqua_grunt": { - "encounter": { - "1": "Não pegamos leve com quem se mete com a Equipe Aqua, nem mesmo crianças!", - "2": "Grrr... Você tem coragem de se intrometer com a Equipe Aqua!", - "3": "Você está prestes a se molhar! E não apenas por causa dos meus Pokémon aquáticos!", - "4": "Nós, da Equipe Aqua, existimos para o bem de todos!", - "5": "Prepare-se para ser levado pelas ondas do meu... uh, Pokémon! Sim, meu Pokémon!" - }, - "victory": { - "1": "Tá de brincadeira!", - "2": "Arrgh, eu não contei que seria atrapalhado por uma criança intrometida!", - "3": "Eu perdi?! Acho que vou ter que nadar de volta para o esconderijo agora...", - "4": "Oh, cara, que desastre... O chefe vai ficar furioso...", - "5": "Você me venceu... Você acha que o chefe vai me fazer andar na prancha por isso?" - } - }, - "galactic_grunt": { - "encounter": { - "1": "Não mexa com a Equipe Galáctica!", - "2": "Presencie o poder da nossa tecnologia e o futuro que vislumbramos!", - "3": "Em nome da Equipe Galáctica, eliminarei qualquer um que ficar em nosso caminho!", - "4": "Prepare-se para perder!", - "5": "Espero que você esteja pronta para uma surra cósmica!" - }, - "victory": { - "1": "Fui amassado...", - "2": "Este contratempo não significa nada no grande esquema.", - "3": "Nossos planos são maiores que esta derrota.", - "4": "Como?!", - "5": "Nota para mim mesmo: praticar batalhas Pokémon, o mais rápido possível." - } - }, - "plasma_grunt": { - "encounter": { - "1": "Não toleramos pessoas que pensam diferente de nós!", - "2": "Se eu ganhar de você, liberte seus Pokémon!", - "3": "Se você atrapalhar a Equipe Plasma, eu cuidarei de você!", - "4": "A Equipe Plasma vai libertar os Pokémon de humanos egoístas como você!", - "5": "Nossos penteados são de outro mundo... mas nossas habilidades de batalha? Você descobrirá em breve." - }, - "victory": { - "1": "Plasmaaaaaaaaa!", - "2": "Como eu pude perder...", - "3": "...Que Pokémon fraco, vou ter que roubar alguns melhores!", - "4": "Grandes planos são sempre interrompidos.", - "5": "Isso é ruim... Ruim ruim ruim ruim ruim ruim ruim! Ruim para a Equipe Plasma! Ou Plasruim, para abreviar!" - } - }, - "flare_grunt": { - "encounter": { - "1": "Seus Pokémon não são páreo para a elegância da Equipe Flare.", - "2": "Espero que você tenha trazido seus óculos de sol, porque as coisas vão ficar brilhantes!", - "3": "A Equipe Flare vai purificar o mundo da imperfeição!", - "4": "Prepare-se para enfrentar o brilho da Equipe Flare!", - "5": "A moda é o mais importante para nós!" - }, - "victory": { - "1": "O futuro não parece brilhante para mim.", - "2": "Talvez haja mais na batalha do que eu pensei. De volta à prancheta.", - "3": "Gahh?! Eu perdi?!", - "4": "Mesmo na derrota, a elegância da Equipe Flare brilha.", - "5": "Você pode ter me vencido, mas quando eu perco, eu saio com estilo!" - } - }, - "aether_grunt": { - "encounter": { - "1": "Eu vou lutar com tudo o que tenho para te eliminar!", - "2": "Eu não me importo se você é uma criança ou o que. Eu vou te mandar voando se você nos ameaçar!", - "3": "Me mandaram afastar Treinadores, não importa quem sejam!", - "4": "Eu vou te mostrar o poder do Paraíso Aether!", - "5": "Agora que você descobriu a escuridão no coração do Paraíso Aether, precisamos que você desapareça convenientemente!" - }, - "victory": { - "1": "Aff! Você parece ter muita habilidade.", - "2": "O que isso significa? O que isso significa!", - "3": "Ei! Você é tão forte que não há como eu te afastar!", - "4": "Hmm... Parece que eu posso ter perdido.", - "5": "Aqui está uma resposta para você: Aiyee!" - } - }, - "faba": { - "encounter": { - "1": "Eu, o Chefe de Ramo Faba, vou te mostrar a dureza do mundo real!", - "2": "O homem chamado de última linha de defesa do Paraíso Aether vai batalhar com uma mera criança?", - "3": "Eu, Faba, sou o Chefe de Ramo do Paraíso Aether. O único no mundo, eu sou insubstituível." - }, - "victory": { - "1": "Aiyee!", - "2": "C-c-como assim?! Como uma criança...", - "3": "Isso é por que... Isso é por que eu não consigo gostar de crianças." - } - }, - "skull_grunt": { - "encounter": { - "1": "Nós não somos maus, somos apenas durões!", - "2": "Quer um pouco de nós? É assim que dizemos olá! Prazer em conhecê-los, otários!", - "3": "Somos só um bando de caras e minas com um grande interesse nos Pokémon dos outros!", - "4": "Por que você está tentando agir durão quando já somos durões como ossos aqui fora, mano?", - "5": "Equipe Skull na área! Não podemos pagar o aluguel! Nos divertimos muito, mas nossa juventude foi desperdiçada!" - }, - "victory": { - "1": "Ahn? Já acabou?", - "2": "Hora de dar o fora, mano! Vamos ter que dizer tchau, mano!", - "3": "Nem precisamos dos seus Pokémon fracotes mesmo!", - "4": "Que?! Esse muleque é muito forte! Não tem como negar!", - "5": "Então, o que? Eu sou pior que um Pokémon?! Eu já tenho problemas de autoestima, cara." - } - }, - "plumeria": { - "encounter": { - "1": " ...Hmph. Você não parece nada especial para mim.", - "2": "Esses Capangas gastam muito tempo tentando lidar com crianças como você...", - "3": "Mexe com qualquer um da Equipe Skull, e eu vou te mostrar o quão séria eu posso ficar." - }, - "victory": { - "1": "Aff! Você é bem forte. Tenho que admitir.", - "2": "Aff! Você é bem forte. Agora eu entendi por que meus Capangas gastam tanto tempo batalhando com crianças.", - "3": "Aff! Acho que eu só tenho que aceitar essa derrota." - } - }, - "macro_grunt": { - "encounter": { - "1": "Parece que aqui é o fim da linha para você!", - "2": "Você é um treinador, não é? Temo que isso não lhe dê o direito de interferir em nosso trabalho.", - "3": "Sou da Macro Cosmos Seguros! Já tem um seguro de vida?" - }, - "victory": { - "1": "Eu não tenho muita escolha a não ser recuar respeitosamente.", - "2": "Ter que desistir do meu dinheiro... Perder significa que estou de volta no vermelho...", - "3": "Ninguém pode vencer a Macro Cosmos quando se trata de nossa dedicação ao trabalho!" - } - }, - "oleana": { - "encounter": { - "1": "Eu não vou deixar ninguém interferir no plano do Sr. Rose!", - "2": "Então, você passou por todo o pessoal especial que eu ordenei para te parar. Eu não esperaria nada menos.", - "3": "Pelo presidente! Eu não vou perder!" - }, - "victory": { - "1": "*suspiro* Eu não consegui vencer... Oleana... você realmente é uma mulher sem esperança.", - "2": "Aff! Isso é inaceitável... O que eu estava pensando... Qualquer treinador que chega tão longe não seria um fracote...", - "3": "*suspiro* Eu sou uma Oleana cansada..." - } - }, - "rocket_boss_giovanni_1": { - "encounter": { - "1": "Tenho que admitir, estou impressionado que tenha chegado até aqui!" - }, - "victory": { - "1": "QUÊ! Isso não é possível!" - }, - "defeat": { - "1": "Guarde minhas palavras.\nNão ser capaz de medir sua própria força mostra que você ainda é uma criança." - } - }, - "rocket_boss_giovanni_2": { - "encounter": { - "1": "Meus antigos associados precisam de mim... Você vai ficar no meu caminho?" - }, - "victory": { - "1": "Como isso é possível...?\nO precioso sonho da Equipe Rocket se tornou pouco mais que uma ilusão..." - }, - "defeat": { - "1": "A Equipe Rocket renascerá, e eu dominarei o mundo!" - } - }, - "magma_boss_maxie_1": { - "encounter": { - "1": "Eu vou te enterrar com minhas próprias mãos.\nEspero que você aprecie essa honra!" - }, - "victory": { - "1": "Ugh! Você é... bastante capaz...\nEu fiquei para trás, mas apenas por um triz..." - }, - "defeat": { - "1": "A Equipe Magma vai prevalecer!" - } - }, - "magma_boss_maxie_2": { - "encounter": { - "1": "Você é o último obstáculo entre mim e meus objetivos.\nPrepare-se para meu ataque final! Fuhahaha!" - }, - "victory": { - "1": "Isso... Isso não é... Ngh..." - }, - "defeat": { - "1": "E agora... Eu transformarei este planeta em uma terra ideal para a humanidade." - } - }, - "aqua_boss_archie_1": { - "encounter": { - "1": "Eu sou o líder da Equipe Aqua, então temo que esse seja o fim da linha para você." - }, - "victory": { - "1": "Vamos nos encontrar de novo em algum lugar. Eu vou ter certeza de lembrar desse rosto." - }, - "defeat": { - "1": "Brilhante! Nada vai parar minha equipe agora!" - } - }, - "aqua_boss_archie_2": { - "encounter": { - "1": "Estive esperando tanto tempo por este dia.\nEste é o verdadeiro poder da minha equipe!" - }, - "victory": { - "1": "Como eu suspeitava..." - }, - "defeat": { - "1": "Eu vou voltar tudo neste mundo ao seu estado puro e original!!" - } - }, - "galactic_boss_cyrus_1": { - "encounter": { - "1": "Você foi compelida a vir aqui por tal sentimentalismo vazio\nEu farei você se arrepender de ter ouvido seu coração!" - }, - "victory": { - "1": "Interessante. E bastante curioso." - }, - "defeat": { - "1": "Eu criarei meu novo mundo..." - } - }, - "galactic_boss_cyrus_2": { - "encounter": { - "1": "Nos encontramos novamente. Parece que nossos destinos estão entrelaçados.\nMas aqui e agora, eu finalmente quebrarei esse vínculo!" - }, - "victory": { - "1": "Como? Como? COMO?!" - }, - "defeat": { - "1": "Até logo." - } - }, - "plasma_boss_ghetsis_1": { - "encounter": { - "1": "Ninguém pode me deter! Não importa quem seja ou o que faça!" - }, - "victory": { - "1": "Como isso é possível? Eu sou o criador da Equipe Plasma! Eu sou perfeito!" - }, - "defeat": { - "1": "Eu sou o governante perfeito de um novo mundo perfeito! Mwa ha ha!" - } - }, - "plasma_boss_ghetsis_2": { - "encounter": { - "1": "Vamos! Eu quero ver sua cara depois que você perder toda a esperança!" - }, - "victory": { - "1": "Meus cálculos... Não! Meus planos cuidadosos! O mundo deveria ser meu!" - }, - "defeat": { - "1": "Kyurem! Use Absofusion!" - } - }, - "flare_boss_lysandre_1": { - "encounter": { - "1": "Você está aqui para me deter? Mostre-me em batalha." - }, - "victory": { - "1": "Você está aqui para me deter. Mas eu peço que você espere." - }, - "defeat": { - "1": "Pokémon... não devem mais existir." - } - }, - "flare_boss_lysandre_2": { - "encounter": { - "1": "O futuro que você quer, ou o futuro que eu quero... Vamos ver qual é o mais merecedor, não é mesmo?" - }, - "victory": { - "1": "Uau!" - }, - "defeat": { - "1": "Tolos sem visão continuarão a poluir este belo mundo." - } - }, - "aether_boss_lusamine_1": { - "encounter": { - "1": "Você vai assustar minha fera querida! Parece que eu vou precisar te silenciar primeiro." - }, - "victory": { - "1": "Como... como você pode ser tão terrível!" - }, - "defeat": { - "1": "Aff..." - } - }, - "aether_boss_lusamine_2": { - "encounter": { - "1": "Por que você continua a me incomodar?! Estou cansada de você. Cansada até a alma!\n$Chega de papo furado... Com o poder de Nihilego, vou mostrar o quão errado você estava em vir aqui!" - }, - "victory": { - "1": "Aaauuuggghhhhhhhhh!!!" - }, - "defeat": { - "1": "Tudo o que eu quero é minha fera preciosa! Eu não me importo com nenhum de vocês!" - } - }, - "skull_boss_guzma_1": { - "encounter": { - "1": "O odiado chefe que te bate e te bate e nunca para...\n$É. O grande e mau Guzma está aqui!" - }, - "victory": { - "1": "Tss. Eu vou te bater um dia desses!" - }, - "defeat": { - "1": "E você veio até aqui só pra isso, né?" - } - }, - "skull_boss_guzma_2": { - "encounter": { - "1": "Não importa contra quem eu esteja, eu vou derrotá-los!\n$Isso é o que o grande e mau Guzma é!" - }, - "victory": { - "1": "Guzma!!! O que há de errado com você?!" - }, - "defeat": { - "1": "Vocês são tudo uns idiotas!" - } - }, - "macro_boss_rose_1": { - "encounter": { - "1": "Devo fornecer energia ilimitada para garantir a prosperidade eterna para todos...\n$É meu propósito, meu dever, meu destino!" - }, - "victory": { - "1": "Você ainda não entendeu, treinador...\n$Nós... Não, eu vou mudar o rumo da história!" - }, - "defeat": { - "1": "Você ainda não entende nada!" - } - }, - "macro_boss_rose_2": { - "encounter": { - "1": "Estou comprometido em resolver o problema de energia na região de Galar e, claro, em todo o mundo.\n$Minha experiência e conquistas que fizeram da Macro Cosmos um sucesso são a prova de que meus métodos funcionam.\n$Não pretendo mudar de ideia, mesmo que eu perca." - }, - "victory": { - "1": "Eu esqueci o quão incríveis são as batalhas Pokémon! Faz tanto tempo desde que eu batalhei...\n$Isso foi realmente satisfatório, eu aceito a derrota para esta batalha." - }, - "defeat": { - "1": "Eu suponho que deve parecer que estou fazendo algo terrível. Eu não espero que você entenda.\n$Mas eu devo fornecer à região de Galar energia ilimitada para garantir prosperidade eterna." - } - }, - "brock": { - "encounter": { - "1": "Minha especialidade em Pokémon do tipo Pedra vai te derrubar! Vamos lá!", - "2": "Minha vontade firme como pedra vai te sobrecarregar!", - "3": "Permita-me mostrar a verdadeira força dos meus Pokémon!" - }, - "victory": { - "1": "A força dos seus Pokémon superou minhas defesas de pedra!", - "2": "O mundo é enorme! Estou feliz por ter tido a chance de batalhar com você.", - "3": "Talvez eu deva voltar a perseguir meu sonho de ser Criador de Pokémon…" - }, - "defeat": { - "1": "A melhor defesa é um bom ataque!\nEssa é a minha maneira de fazer as coisas!", - "2": "Venha estudar rochas comigo da próxima vez para aprender melhor a combatê-las!", - "3": "Hah, todas as minhas viagens pelas regiões estão valendo a pena!" - } - }, - "misty": { - "encounter": { - "1": "Minha política é um ataque total com Pokémon do tipo Água!", - "2": "Oi, vou mostrar a força dos meus Pokémon aquáticos!", - "3": "Meu sonho era viajar e batalhar com treinadores poderosos…\nVocê será um desafio suficiente?" - }, - "victory": { - "1": "Você realmente é forte… Vou admitir que você é habilidosa…", - "2": "Hmm… Você sabe que só teve sorte, certo?!", - "3": "Uau, você é demais! Não acredito que me venceu!" - }, - "defeat": { - "1": "A poderosa Misty foi demais para você?", - "2": "Espero que você tenha visto as técnicas de natação elegantes dos meus Pokémon!", - "3": "Seus Pokémon não foram páreo para meus orgulhos e alegrias!" - } - }, - "lt_surge": { - "encounter": { - "1": "Meus Pokémon Elétricos me salvaram durante a guerra! Vou te mostrar como!", - "2": "Em sentido! Vou te chocar até você se render!", - "3": "Vou te eletrizar como faço com todos os meus inimigos na batalha!" - }, - "victory": { - "1": "Whoa! Seu time é de verdade, garota!", - "2": "Uau, você é forte! Até meus truques elétricos perderam para você.", - "3": "Isso foi uma derrota absolutamente chocante!" - }, - "defeat": { - "1": "Oh sim! Quando se trata de Pokémon do tipo Elétrico, sou o número um do mundo!", - "2": "Hahaha! Foi uma batalha eletrizante, garota!", - "3": "Uma batalha de Pokémon é guerra, e eu te mostrei combate em primeira mão!" - } - }, - "erika": { - "encounter": { - "1": "Ah, o tempo está adorável aqui…\nOh, uma batalha? Muito bem então.", - "2": "Minhas habilidades de batalha Pokémon rivalizam com minhas habilidades de arranjo de flores.", - "3": "Oh, espero que o aroma agradável dos meus Pokémon não me faça dormir de novo…", - "4": "Ver flores em um jardim é tão calmante." - }, - "victory": { - "1": "Oh! Eu concedo a derrota.", - "2": "Aquela partida foi muito agradável.", - "3": "Ah, parece que perdi…", - "4": "Oh, meu Deus." - }, - "defeat": { - "1": "Tinha medo de adormecer…", - "2": "Oh, meu Deus, parece que meus Pokémon de Grama te dominaram.", - "3": "Essa batalha foi uma experiência tão calmante.", - "4": "Oh… É só isso?" - } - }, - "janine": { - "encounter": { - "1": "Estou dominando a arte dos ataques venenosos.\nVou lutar com você hoje!", - "2": "Meu pai confia que posso me defender.\nVou provar que ele está certo!", - "3": "Minhas técnicas de ninja só perdem para as do meu pai!\nVocê consegue acompanhar?" - }, - "victory": { - "1": "Ainda preciso de treinamento… Entendi.", - "2": "Sua técnica de batalha superou a minha.", - "3": "Vou me aplicar de verdade e melhorar minhas habilidades." - }, - "defeat": { - "1": "Hehe… o veneno drenou todas as suas forças para lutar.", - "2": "Ha! Você não teve chance contra minhas habilidades superiores de ninja!", - "3": "A fé do meu pai em mim não foi mal colocada." - } - }, - "sabrina": { - "encounter": { - "1": "Através da minha habilidade psíquica, tive uma visão da sua chegada!", - "2": "Não gosto de lutar, mas se você quiser, vou mostrar meus poderes!", - "3": "Posso sentir grande ambição em você. Vou ver se não é infundada." - }, - "victory": { - "1": "Seu poder… Ele supera o que eu previa…", - "2": "Não consegui prever seu poder com precisão.", - "3": "Mesmo com meus imensos poderes psíquicos, não consigo sentir outro tão forte quanto você." - }, - "defeat": { - "1": "Essa vitória… É exatamente como previ nas minhas visões!", - "2": "Talvez fosse outra pessoa que eu sentisse um grande desejo…", - "3": "Aprimore suas habilidades antes de entrar em batalha precipitadamente.\nVocê nunca sabe o que o futuro pode reservar se fizer isso…" - } - }, - "blaine": { - "encounter": { - "1": "Hah! Espero que tenha trazido uma Cura de Queimadura!", - "2": "Meus Pokémon de Fogo vão incinerar todos os desafiantes!", - "3": "Prepare-se para brincar com fogo!" - }, - "victory": { - "1": "Queimei até não restar nada! Nem cinzas sobraram!", - "2": "Não acendi as chamas alto o suficiente?", - "3": "Estou completamente exausto… Mas isso faz minha motivação para melhorar queimar ainda mais!" - }, - "defeat": { - "1": "Meu inferno ardente não pode ser apagado!", - "2": "Meus Pokémon foram fortalecidos com o calor desta vitória!", - "3": "Hah! Minha paixão queima mais do que a sua!" - } - }, - "giovanni": { - "encounter": { - "1": "Eu, o líder da Equipe Rocket, vou te fazer sentir um mundo de dor!", - "2": "Meu treinamento aqui será vital antes de enfrentar meus antigos associados novamente.", - "3": "Não acho que você está preparada para o nível de fracasso que está prestes a experimentar!" - }, - "victory": { - "1": "O QUE! Eu, perder?! Não tenho nada a dizer a você!", - "2": "Hmm… Você nunca entenderia o que quero alcançar.", - "3": "Esta derrota está apenas adiando o inevitável.\nVou ressurgir a Equipe Rocket das cinzas a tempo." - }, - "defeat": { - "1": "Não ser capaz de medir sua própria força mostra que você ainda é apenas uma criança.", - "2": "Não tente interferir comigo novamente.", - "3": "Espero que entenda o quão tolo foi me desafiar." - } - }, - "roxanne": { - "encounter": { - "1": "Você poderia gentilmente demonstrar como batalha?", - "2": "Você pode aprender muitas coisas batalhando com muitos treinadores.", - "3": "Oh, você me pegou estrategizando.\nGostaria de batalhar?" - }, - "victory": { - "1": "Oh, parece que perdi.\nEu entendo.", - "2": "Parece que ainda tenho muito mais a aprender quando se trata de batalhas.", - "3": "Vou levar o que aprendi aqui hoje a sério." - }, - "defeat": { - "1": "Aprendi muitas coisas com nossa batalha.\nEspero que você também tenha aprendido.", - "2": "Espero batalhar com você novamente.\nEspero que use o que aprendeu aqui.", - "3": "Venci devido a tudo o que aprendi." - } - }, - "brawly": { - "encounter": { - "1": "Oh cara, uma desafiante!\nVamos ver o que você pode fazer!", - "2": "Você parece uma grande onda.\nVamos batalhar!", - "3": "Hora de criar uma tempestade!\nVamos!" - }, - "victory": { - "1": "Uau, você me derrotou!", - "2": "Você surfou minha onda e me derrubou!", - "3": "Sinto-me perdido na Caverna Granito!" - }, - "defeat": { - "1": "Haha, eu surfei a grande onda!\nDesafie-me novamente algum dia.", - "2": "Surfe comigo novamente algum dia!", - "3": "Assim como as marés vão e vêm, espero que você volte para me desafiar novamente." - } - }, - "wattson": { - "encounter": { - "1": "Hora de levar um choque!\nWahahahaha!", - "2": "Vou fazer faíscas voarem!\nWahahahaha!", - "3": "Espero que tenha trazido Cura de Paralisia!\nWahahahaha!" - }, - "victory": { - "1": "Parece que estou sem carga!\nWahahahaha!", - "2": "Você me aterrissou completamente!\nWahahahaha!", - "3": "Obrigado pela emoção!\nWahahahaha!" - }, - "defeat": { - "1": "Você está totalmente carregada agora!\nWahahahaha!", - "2": "Espero ver você faíscando em batalhas futuras!\nWahahahaha!", - "3": "Wahahahaha! Que batalha eletrizante!" - } - }, - "flannery": { - "encounter": { - "1": "Meus Pokémon de fogo estão prontos para queimar a concorrência!\nVamos nessa!", - "2": "Prepare-se para sentir o calor da minha determinação!\nNão vou segurar nada!", - "3": "Minhas habilidades vão incinerar você!\nPrepare-se para a batalha mais quente da sua vida!" - }, - "victory": { - "1": "Essa derrota só faz minha determinação queimar mais!", - "2": "Essa perda não apagará minhas chamas!\nEstarei de volta mais forte!", - "3": "Vou usar essa experiência para reacender meu espírito competitivo!" - }, - "defeat": { - "1": "Minhas chamas nunca se apagarão!\nSou muito apaixonada por isso!", - "2": "Você foi incrível!\nVamos fazer isso de novo algum dia!", - "3": "Que batalha ardente!\nMal posso esperar pela próxima!" - } - }, - "norman": { - "encounter": { - "1": "Você está pronto para enfrentar a força pura do meu time?\nVou te mostrar o poder do equilíbrio!", - "2": "Minha experiência em batalha vai fazer você suar!\nPrepare-se!", - "3": "Treinei meu time rigorosamente.\nVamos ver se você consegue igualar!" - }, - "victory": { - "1": "Parece que subestimei você.\nFoi uma batalha dura.", - "2": "Você é forte, mas ainda há muito para aprender.", - "3": "Essa derrota não abalará minha determinação.\nEstarei de volta mais forte!" - }, - "defeat": { - "1": "Você lutou bravamente!\nEspero batalhar com você novamente.", - "2": "Sua força é incrível!\nNão posso esperar pela nossa próxima batalha.", - "3": "Foi uma honra batalhar com você!\nAté a próxima!" - } - }, - "winona": { - "encounter": { - "1": "Tenho sobrevoado os céus em busca de presas...\nE você é meu alvo!", - "2": "Não importa como será nossa batalha, meus Pokémon Voadores e eu triunfaremos com graça. Vamos batalhar!", - "3": "Espero que você não tenha medo de altura.\nVamos subir!" - }, - "victory": { - "1": "Você é a primeira Treinadora que vejo com mais graça do que eu.\nJogou excelentemente.", - "2": "Oh, meus Pokémon Voadores despencaram!\nMuito bem.", - "3": "Embora eu tenha caído, meus Pokémon continuarão a voar!" - }, - "defeat": { - "1": "Meus Pokémon Voadores e eu sempre dançaremos com elegância!", - "2": "Espero que tenha gostado do nosso show.\nNossa dança graciosa terminou.", - "3": "Você não quer ver nossa coreografia elegante novamente?" - } - }, - "tate": { - "encounter": { - "1": "Hehehe... Ficou surpresa de me ver sem minha irmã?", - "2": "Posso ver o que você está pensando...\nVocê quer batalhar!", - "3": "Como você pode derrotar alguém...\nQue sabe todos os seus movimentos?" - }, - "victory": { - "1": "Não pode ser ajudado...\nSinto falta da Liza...", - "2": "Seu vínculo com seus Pokémon era mais forte que o meu.", - "3": "Se eu estivesse com Liza, teríamos vencido.\nConseguimos completar os pensamentos um do outro!" - }, - "defeat": { - "1": "Meus Pokémon e eu somos superiores!", - "2": "Se você não consegue nem me derrotar, nunca será capaz de derrotar Liza também.", - "3": "Tudo graças ao meu treinamento rigoroso com Liza.\nPosso me tornar um com os Pokémon." - } - }, - "liza": { - "encounter": { - "1": "Fufufu... Ficou surpresa de me ver sem meu irmão?", - "2": "Posso determinar o que você deseja...\nVocê quer batalhar, não quer?", - "3": "Como você pode derrotar alguém...\nQue é um com seus Pokémon?" - }, - "victory": { - "1": "Não pode ser ajudado...\nSinto falta do Tate...", - "2": "Seu vínculo com seus Pokémon...\nÉ mais forte que o meu.", - "3": "Se eu estivesse com Tate, teríamos vencido.\nPodemos terminar as frases um do outro!" - }, - "defeat": { - "1": "Meus Pokémon e eu somos vitoriosos.", - "2": "Se você não consegue nem me derrotar, nunca será capaz de derrotar Tate também.", - "3": "Tudo graças ao meu treinamento rigoroso com Tate.\nPosso me sincronizar com meus Pokémon." - } - }, - "juan": { - "encounter": { - "1": "Agora não é hora de agir timidamente.\nVamos batalhar!", - "2": "Ahahaha, você será testemunha da minha arte com Pokémon de Água!", - "3": "Um tufão se aproxima!\nVocê será capaz de me testar?", - "4": "Por favor, você será testemunha da nossa arte.\nUma grande ilusão de água esculpida por meus Pokémon e por mim!" - }, - "victory": { - "1": "Você pode ser um gênio que pode enfrentar Wallace!", - "2": "Eu me concentrei na elegância enquanto você treinava.\nÉ natural que você me derrotasse.", - "3": "Ahahaha!\nMuito bem, você venceu desta vez.", - "4": "De você, sinto o brilho brilhante da habilidade que superará tudo." - }, - "defeat": { - "1": "Meus Pokémon e eu esculpimos uma ilusão de Água e saímos vitoriosos.", - "2": "Ahahaha, eu venci, e você perdeu.", - "3": "Posso emprestar meu traje? Pode te ajudar a batalhar!\nAhahaha, estou brincando!", - "4": "Eu sou o vencedor! O que quer dizer, você perdeu." - } - }, - "crasher_wake": { - "encounter": { - "1": "Crash! Crash! Cuidado!\nDemolidor Wake… está… aqui!", - "2": "Crash! Crash! Demolidor Wake!", - "3": "Sou a onda de poder que vai te lavar!" - }, - "victory": { - "1": "Isso coloca um sorriso no meu rosto!\nGuhahaha! Foi uma explosão!", - "2": "Hunwah! Acabou e terminou!\nComo vou dizer isso...\nQuero mais! Queria batalhar muito mais!", - "3": "O QUÊ?!" - }, - "defeat": { - "1": "Siiiiim! Isso mesmo!", - "2": "Eu venci, mas quero mais! Queria batalhar muito mais!", - "3": "Até logo!" - } - }, - "falkner": { - "encounter": { - "1": "Vou mostrar o verdadeiro poder dos magníficos Pokémon pássaros!", - "2": "Ventos, fiquem comigo!", - "3": "Pai! Espero que esteja vendo minha batalha de cima!" - }, - "victory": { - "1": "Eu entendo... Vou sair graciosamente.", - "2": "Uma derrota é uma derrota. Você é realmente forte.", - "3": "...Droga! Sim, eu perdi." - }, - "defeat": { - "1": "Pai! Venci com seus amados Pokémon pássaros...", - "2": "Pokémon pássaros são os melhores afinal!", - "3": "Sinto que estou alcançando meu pai!" - } - }, - "nessa": { - "encounter": { - "1": "Não importa que tipo de plano sua mente refinada possa estar tramando, meu parceiro e eu vamos afundá-la.", - "2": "Não estou aqui para conversar. Estou aqui para vencer!", - "3": "Este é um pequeno presente dos meus Pokémon... Espero que você possa recebê-la!" - }, - "victory": { - "1": "Você e seus Pokémon são demais...", - "2": "Como...? Como isso pode ser?!", - "3": "Fui totalmente arrastada!" - }, - "defeat": { - "1": "A onda furiosa ataca novamente!", - "2": "Hora de surfar na onda da vitória!", - "3": "Hehe!" - } - }, - "melony": { - "encounter": { - "1": "Não vou me segurar!", - "2": "Tudo bem, acho que devemos começar.", - "3": "Vou congelar você completamente!" - }, - "victory": { - "1": "Você... Você é muito boa, hein?", - "2": "Se você encontrar Gordie por aí, certifique-se de dar uma boa surra nele, ok?", - "3": "Acho que você levou a quebra de gelo um pouco literalmente demais..." - }, - "defeat": { - "1": "Agora você vê como as batalhas podem ser severas?", - "2": "Hee! Parece que ganhei de novo!", - "3": "Você está segurando?" - } - }, - "marlon": { - "encounter": { - "1": "Você parece forte! Vamos começar!", - "2": "Sou forte como a amplitude do oceano. Você vai ser varrida, com certeza.", - "3": "Oh ho, então estou enfrentando você! Isso é fora do comum." - }, - "victory": { - "1": "Você foi incrível! Está criando alguns Pokémon incríveis. Você dominou a coisa de Treinadora!", - "2": "Você não apenas parece forte, você é forte de verdade! Eh, eu também fui varrido!", - "3": "Você é forte como uma onda impressionante!" - }, - "defeat": { - "1": "Você é forte, mas não é o suficiente para mudar o mar, ok!", - "2": "Hee! Parece que ganhei de novo!", - "3": "Doce, doce vitória!" - } - }, - "shauntal": { - "encounter": { - "1": "Com licença. Você é uma desafiante, certo?\nSou a usuária de Pokémon do tipo Fantasma da Elite dos Quatro, Shauntal, e serei sua oponente.", - "2": "Adoro escrever sobre Treinadores que vêm aqui e os Pokémon que treinam.\nPosso usar você e seus Pokémon como tema?", - "3": "Cada pessoa que trabalha com Pokémon tem uma história para contar.\nQue história está prestes a ser contada?" - }, - "victory": { - "1": "Uau. Estou sem palavras!", - "2": "D-desculpe! Primeiro, preciso me desculpar com meus Pokémon...\n\nLamento muito que você tenha tido uma experiência ruim por minha causa!", - "3": "Mesmo com isso, ainda sou uma da Elite dos Quatro!" - }, - "defeat": { - "1": "Hehe.", - "2": "Isso me deu um excelente material para meu próximo romance!", - "3": "E assim, outra história termina..." - } - }, - "marshal": { - "encounter": { - "1": "Meu mentor, Alder, vê seu potencial como Treinadora e está interessado em você.\nMeu objetivo é testá-la—levar você aos limites da sua força. Kiai!", - "2": "Vitória, vitória decisiva, é meu objetivo! Desafiante, aqui vou eu!", - "3": "Em mim mesmo, procuro desenvolver a força de um lutador e eliminar qualquer fraqueza em mim!\nPrevalecendo com a força de minhas convicções!" - }, - "victory": { - "1": "Ufa! Bem feito!", - "2": "À medida que suas batalhas continuarem, mire em alturas ainda maiores!", - "3": "A força demonstrada por você e seus Pokémon me impressionou profundamente..." - }, - "defeat": { - "1": "Hmm.", - "2": "Isso foi uma boa batalha.", - "3": "Haaah! Haaah! Haiyaaaah!" - } - }, - "cheren": { - "encounter": { - "1": "Você me lembra um velho amigo. Isso me deixa animado para essa batalha Pokémon!", - "2": "As batalhas Pokémon não têm sentido se você não pensa por que você batalha.\nOu melhor, isso torna as batalhas junto com Pokémon sem sentido.", - "3": "Meu nome é Cheren! Sou um Líder de Ginásio e professor! Prazer em conhecê-la." - }, - "victory": { - "1": "Obrigado! Vi o que estava faltando em mim.", - "2": "Obrigado! Sinto que vi um pouco do caminho em direção aos meus ideais.", - "3": "Hmm... Isso é problemático." - }, - "defeat": { - "1": "Como Líder de Ginásio, meu objetivo é ser um obstáculo para você superar.", - "2": "Tudo bem!", - "3": "Cheguei onde estou porque os Pokémon estavam ao meu lado.\nTalvez precisemos pensar por que os Pokémon nos ajudam, não em termos de Pokémon e Treinadores, mas como uma relação entre seres vivos." - } - }, - "chili": { - "encounter": { - "1": "Yeeeeeooow! Hora de brincar com FOGO!! Eu sou o mais forte de nós irmãos!", - "2": "Tcharan! O escaldante Chili tipo Fogo (sou eu) será seu oponente!", - "3": "Vou te mostrar o que eu e meus ardentes tipo Fogo podemos fazer!" - }, - "victory": { - "1": "Você me pegou. Eu estou… queimado… esgotado…", - "2": "Uau! Você tá pegando fogo!", - "3": "Ai! Você me pegou!" - }, - "defeat": { - "1": "Estou pegando fogo! Brinque comigo e você vai se queimar!", - "2": "Quando você brinca com fogo, você se queima!", - "3": "Quero dizer, fala sério, seu oponente era eu! Você não teve chance!" - } - }, - "cilan": { - "encounter": { - "1": "Nada pessoal... Sem ressentimentos... Eu e meus Pokémon do tipo Grama vamos...\n$Hum... Nós iremos batalhar, aconteça o que acontecer.", - "2": "Então, hum, se você estiver bem comigo, eu vou, hum, dar tudo o que tenho para ser, hum, você sabe, seu oponente.", - "3": "OK... Então, eu sou Cilan, eu gosto de Pokémon do tipo Grama." - }, - "victory": { - "1": "Er… Já acabou?", - "2": "…Que surpresa. Você é muito forte, não é? \n$Eu acho que meus irmãos também não conseguiriam derrotar você…", - "3": "…Huh. Parece que meu timing estava, hum, errado?" - }, - "defeat": { - "1": "Hein? Eu ganhei?", - "2": "Eu acho... \n$Eu acho que ganhei, porque eu estava competindo com meus irmãos Chili e Cress, e todos nós conseguimos ficar mais fortes.", - "3": "Foi… foi uma experiência bastante emocionante…" - } - }, - "roark": { - "encounter": { - "1": "Preciso ver seu potencial como Treinadora. E, vou precisar ver a dureza dos Pokémon que batalham com você!", - "2": "Vamos lá! Estes são meus Pokémon de pedra, meu orgulho e alegria!", - "3": "Pokémon do tipo Pedra são simplesmente os melhores!", - "4": "Preciso ver seu potencial como Treinadora. E, vou precisar ver a dureza dos Pokémon que batalham com você!" - }, - "victory": { - "1": "O-o que? Isso não pode ser! Meus Pokémon fortificados!", - "2": "...Perdemos o controle. Da próxima vez, gostaria de desafiá-la a uma corrida de escavação de fósseis no subsolo.", - "3": "Com habilidade como a sua, é natural que você vença.", - "4": "O-o que?! Não pode ser! Nem isso foi suficiente?", - "5": "Eu estraguei tudo." - }, - "defeat": { - "1": "Veja? Estou orgulhoso do meu estilo de batalha rochoso!", - "2": "Obrigado! A batalha me deu confiança de que talvez eu consiga vencer meu pai!", - "3": "Sinto como se tivesse acabado de quebrar uma pedra muito teimosa!" - } - }, - "morty": { - "encounter": { - "1": "Com um pouco mais, eu poderia ver um futuro em que encontro o Pokémon lendário.\nVocê vai me ajudar a alcançar esse nível!", - "2": "Dizem que um Pokémon com cores de arco-íris aparecerá diante de um Treinador verdadeiramente poderoso.\nAcreditei nessa história, então treinei secretamente aqui a vida toda. Como resultado, agora posso ver o que os outros não podem.\nVejo uma sombra da pessoa que fará o Pokémon aparecer.\nAcredito que essa pessoa sou eu! Você vai me ajudar a alcançar esse nível!", - "3": "Quer você escolha acreditar ou não, o poder místico existe.", - "4": "Você pode testemunhar os frutos do meu treinamento.", - "5": "Você deve fazer sua alma se tornar uma com a dos Pokémon. Você pode fazer isso?", - "6": "Diga, você quer fazer parte do meu treinamento?" - }, - "victory": { - "1": "Ainda não sou bom o suficiente...", - "2": "Eu vejo... Sua jornada a levou a lugares distantes e você testemunhou muito mais do que eu.\nEu invejo você por isso...", - "3": "Como isso é possível...", - "4": "Não acho que nossos potenciais sejam tão diferentes.\nMas você parece ter algo mais do que isso... Que seja.", - "5": "Acho que preciso de mais treinamento.", - "6": "Isso é uma pena." - }, - "defeat": { - "1": "Eu me movi... mais um passo adiante.", - "2": "Fufufu...", - "3": "O-o que?! Não pode ser! Nem isso foi suficiente?", - "4": "Sinto como se tivesse acabado de quebrar uma pedra muito teimosa!", - "5": "Ahahahah!", - "6": "Eu sabia que venceria!" - } - }, - "crispin": { - "encounter": { - "1": "Quero vencer, então é exatamente isso que vou fazer!", - "2": "Eu batalho porque quero batalhar! E sabe de uma coisa? É assim que deve ser!" - }, - "victory": { - "1": "Queria vencer... mas perdi!", - "2": "Eu perdi... porque não consegui vencer!" - }, - "defeat": { - "1": "Ei, espere um segundo. Eu acabei de vencer? Acho que acabei de vencer! Que satisfação!", - "2": "Uou! Isso foi incrível!" - } - }, - "amarys": { - "encounter": { - "1": "Quero ser a pessoa a ajudar alguém em particular. Sendo assim, não posso me dar ao luxo de perder.\n... Nossa batalha começa agora." - }, - "victory": { - "1": "Eu sou... não o suficiente, eu vejo." - }, - "defeat": { - "1": "A vitória pertence a mim. Bem lutado." - } - }, - "lacey": { - "encounter": { - "1": "Vou enfrentar você com meu time usual como membro da Elite dos Quatro." - }, - "victory": { - "1": "Foi uma excelente batalha. Estou ansiosa para o próximo desafio." - }, - "defeat": { - "1": "Fufufu... Nada mal.\nDesafiantes que derrotam a Elite dos Quatro são dignos de notar." - } - }, - "drayton": { - "encounter": { - "1": "Cara, eu amo cadeiras. Você não ama cadeiras? Que salva-vidas.\n$Não entendo por que todo mundo não fica sentado o tempo todo. Ficar de pé é cansativo!" - }, - "victory": { - "1": "Acho que deveria ter esperado por isso!" - }, - "defeat": { - "1": "Heh heh! Não ligue para mim, só pegando uma vitória aqui. Entendo se você estiver chateada, mas não vá dar uma de Kieran comigo, OK?" - } - }, - "ramos": { - "encounter": { - "1": "Você gostou do jardim de diversão que fiz com todas essas plantas resistentes minhas?\n$A força delas é um sinal da minha força como jardineiro e Líder de Ginásio! Você tem certeza de que está pronta para enfrentar tudo isso?" - }, - "victory": { - "1": "Você acredita nos seus Pokémon... E eles acreditam em você também... Foi uma boa batalha, broto." - }, - "defeat": { - "1": "Hohoho... De fato. Pequenas lâminas frágeis de grama conseguem quebrar até mesmo concreto." - } - }, - "viola": { - "encounter": { - "1": "Seja as lágrimas de frustração que seguem uma derrota ou o florescer da alegria que vem com a vitória…\n$Ambos são ótimos temas para minha câmera! Fantástico! Isso vai ser simplesmente fantástico!\n$Agora venha para cima de mim!", - "2": "Minha lente está sempre focada na vitória – não vou deixar nada estragar esta foto!" - }, - "victory": { - "1": "Você e seus Pokémon me mostraram uma nova profundidade de campo! Fantástico! Simplesmente fantástico!", - "2": "O mundo que você vê através de uma lente, e o mundo que você vê com um Pokémon ao seu lado…\n$O mesmo mundo pode parecer completamente diferente dependendo do seu ponto de vista." - }, - "defeat": { - "1": "A foto do momento da minha vitória vai ser um verdadeiro sucesso!", - "2": "Sim! Tirei ótimas fotos!" - } - }, - "candice": { - "encounter": { - "1": "Você quer desafiar a Candice? Com certeza! Eu estava esperando por alguém forte!\n$Mas devo te avisar, sou forte porque sei como focar.", - "2": "Pokémon, moda, romance… É tudo uma questão de foco!\n$Vou te mostrar exatamente o que quero dizer. Prepare-se para perder!" - }, - "victory": { - "1": "Devo dizer, estou aquecida para você! Posso até te admirar um pouco.", - "2": "Uau! Você é ótima! Ganhou meu respeito!\n$Acho que seu foco e vontade nos derrubaram totalmente." - }, - "defeat": { - "1": "Eu senti sua vontade de vencer, mas eu não perco!", - "2": "Viu? O foco da Candice! O foco dos meus Pokémon também é ótimo!" - } - }, - "gardenia": { - "encounter": { - "1": "Você tem uma aura vencedora. Então, de qualquer forma, isso vai ser divertido. Vamos ter nossa batalha!" - }, - "victory": { - "1": "Incrível! Você é muito boa, não é?" - }, - "defeat": { - "1": "Sim! Meus Pokémon e eu somos perfeitamente bons!" - } - }, - "aaron": { - "encounter": { - "1": "Ok! Deixe-me enfrentar você!" - }, - "victory": { - "1": "Batalhar é um assunto profundo e complexo..." - }, - "defeat": { - "1": "Vencer um membro da Elite dos Quatro não é fácil." - } - }, - "cress": { - "encounter": { - "1": "Isso mesmo! Serei eu e meus estimados tipos Água que você deve enfrentar na batalha!" - }, - "victory": { - "1": "Perder? Eu? Não acredito nisso." - }, - "defeat": { - "1": "Este é o resultado apropriado quando eu sou seu oponente." - } - }, - "allister": { - "encounter": { - "1": "Sou Allister.\nA-aqui... vou eu..." - }, - "victory": { - "1": "Quase perdi minha máscara de tanto choque... Isso foi…\n$Uau. Posso ver sua habilidade pelo que ela é." - }, - "defeat": { - "1": "I-isso foi incrível!" - } - }, - "clay": { - "encounter": { - "1": "Harrumph! Me deixou esperando, não foi, garota? Tudo bem, hora de ver o que você pode fazer!" - }, - "victory": { - "1": "Cara, como é bom dar tudo de si e ainda assim ser derrotado!" - }, - "defeat": { - "1": "O que importa é como você reage à derrota.\n$É por isso que as pessoas que usam a derrota como combustível para melhorar são duras." - } - }, - "kofu": { - "encounter": { - "1": "Vou te servir um prato completo de Pokémon do tipo Água! Mas não tente comê-los!" - }, - "victory": { - "1": "Vaultin' Veluza! Você é animada, não é! Um pouco ANIMADA DEMAIS, se me permite dizer!" - }, - "defeat": { - "1": "Volte para me ver novamente, ouviu?" - } - }, - "tulip": { - "encounter": { - "1": "Permita-me usar minhas habilidades para deixar seus lindos Pokémon ainda mais bonitos!" - }, - "victory": { - "1": "Sua força tem uma magia que não pode ser apagada." - }, - "defeat": { - "1": "Você sabe, na minha linha de trabalho, pessoas que carecem de talento em uma área ou outra frequentemente desaparecem rapidamente - nunca mais se ouve falar delas." - } - }, - "sidney": { - "encounter": { - "1": "Gostei desse olhar que você me deu. Acho que você vai ser um bom desafio.\n$Isso é ótimo! Parece muito bom! Vamos nessa!\n$Você e eu, vamos curtir uma batalha que só pode acontecer aqui!" - }, - "victory": { - "1": "E aí, gostou? Eu perdi! Mas foi divertido, então não importa." - }, - "defeat": { - "1": "Sem ressentimentos, beleza?" - } - }, - "phoebe": { - "encounter": { - "1": "Enquanto treinava, adquiri a habilidade de me comunicar com Pokémon do tipo Fantasma. \n$Sim, o vínculo que desenvolvi com os Pokémon é extremamente forte. \n$Então, vamos lá, tente ver se você consegue até mesmo causar dano aos meus Pokémon!" - }, - "victory": { - "1": "Ah, droga. Eu perdi." - }, - "defeat": { - "1": "Estou ansiosa para batalhar com você de novo algum dia!" - } - }, - "glacia": { - "encounter": { - "1": "Tudo o que vi foram desafios de Treinadores fracos e seus Pokémon. \n$E você? Ficaria extremamente satisfeita se pudesse dar tudo de mim contra você!" - }, - "victory": { - "1": "Você e seus Pokémon… Como seus espíritos queimam!\n$O calor consumido é esmagador. \n$Não é surpresa que minhas habilidades geladas falharam em te machucar." - }, - "defeat": { - "1": "Uma batalha intensamente apaixonada, sem dúvida." - } - }, - "drake": { - "encounter": { - "1": "Para nós, batalhar com Pokémon como parceiros, você sabe o que é necessário? Você sabe o que precisa? \n$Se não souber, nunca prevalecerá contra mim!" - }, - "victory": { - "1": "Excelente, deve-se dizer." - }, - "defeat": { - "1": "Dei meu máximo nessa batalha!" - } - }, - "wallace": { - "encounter": { - "1": "Há algo em você… Uma diferença na sua postura. \n$Acho que sinto isso em você. Agora, me mostre. Mostre-me o poder que você tem com seus Pokémon. \n$E eu, por minha vez, apresentarei uma performance de ilusões na água com meus Pokémon!" - }, - "victory": { - "1": "Bravo. Agora percebo sua autenticidade e magnificência como Treinadora de Pokémon. \n$Tenho muita alegria em ter conhecido você e seus Pokémon. Você se mostrou digna." - }, - "defeat": { - "1": "Uma grande ilusão!" - } - }, - "lorelei": { - "encounter": { - "1": "Ninguém me supera quando se trata de Pokémon gelados! Movimentos congelantes são poderosos!\n$Seus Pokémon estarão à minha mercê quando estiverem congelados! Hahaha! Está pronta?" - }, - "victory": { - "1": "Como ousa!" - }, - "defeat": { - "1": "Não há nada que você possa fazer quando está congelada." - } - }, - "will": { - "encounter": { - "1": "Treinei por todo o mundo, tornando meus Pokémon psíquicos poderosos.\n$Eu só posso melhorar! Perder não é uma opção!" - }, - "victory": { - "1": "Eu… Eu não… acredito…" - }, - "defeat": { - "1": "Isso foi por pouco. Me pergunto o que está faltando em você." - } - }, - "malva": { - "encounter": { - "1": "Sinto que meu coração pode explodir em chamas. \n$Estou ardendo de ódio por você, pirralha!" - }, - "victory": { - "1": "Que novidade… Uma nova desafiadora derrotou Malva!" - }, - "defeat": { - "1": "Estou encantada! Sim, encantada por poder esmagar você sob meu calcanhar." - } - }, - "hala": { - "encounter": { - "1": "O velho Hala está aqui para fazer você gritar!" - }, - "victory": { - "1": "Pude sentir o poder que você ganhou na sua jornada." - }, - "defeat": { - "1": "Haha! Que batalha deliciosa!" - } - }, - "molayne": { - "encounter": { - "1": "Dei a posição de capitão ao meu primo Sophocles, mas estou confiante na minha habilidade. \n$Minha força é como a de uma supernova!" - }, - "victory": { - "1": "Certamente encontrei uma Treinadora interessante para enfrentar!" - }, - "defeat": { - "1": "Ahaha. Que batalha interessante." - } - }, - "rika": { - "encounter": { - "1": "Eu diria que vou pegar leve com você, mas… estaria mentindo! Pense rápido!" - }, - "victory": { - "1": "Nada mal, garota." - }, - "defeat": { - "1": "Nahahaha! Você realmente é algo mais, garota!" - } - }, - "bruno": { - "encounter": { - "1": "Nós vamos te triturar com nosso poder superior! Hoo hah!" - }, - "victory": { - "1": "Por quê? Como eu poderia perder?" - }, - "defeat": { - "1": "Você pode me desafiar o quanto quiser, mas os resultados nunca vão mudar!" - } - }, - "bugsy": { - "encounter": { - "1": "Sou Bugsy! Eu nunca perco quando se trata de Pokémon do tipo Inseto!" - }, - "victory": { - "1": "Uau, incrível! Você é uma especialista em Pokémon!\nMinha pesquisa ainda não está completa. OK, você venceu." - }, - "defeat": { - "1": "Obrigado! Graças à nossa batalha, eu também pude fazer progressos na minha pesquisa!" - } - }, - "koga": { - "encounter": { - "1": "Fwahahahaha! Pokémon não são apenas sobre força bruta--você verá em breve!" - }, - "victory": { - "1": "Ah! Você provou seu valor!" - }, - "defeat": { - "1": "Você aprendeu a temer as técnicas do ninja?" - } - }, - "bertha": { - "encounter": { - "1": "Bem, você mostraria a esta velha senhora o quanto aprendeu?" - }, - "victory": { - "1": "Bem! Querida criança, devo dizer, isso foi muito impressionante. \n$Seus Pokémon acreditaram em você e fizeram o melhor para te dar a vitória. \n$Mesmo tendo perdido, me encontro com esse sorriso bobo!" - }, - "defeat": { - "1": "Hahahahah! Parece que esta velha senhora ganhou!" - } - }, - "lenora": { - "encounter": { - "1": "Bem, desafiadora, vou pesquisar como você batalha com os Pokémon que criou com tanto carinho!" - }, - "victory": { - "1": "Minha teoria sobre você estava correta. Você é mais do que talentosa… Você é motivada! Eu te saúdo!" - }, - "defeat": { - "1": "Ah ha ha! Se você perder, certifique-se de analisar o porquê e use esse conhecimento na próxima batalha!" - } - }, - "siebold": { - "encounter": { - "1": "Enquanto eu estiver vivo, continuarei em busca da culinária suprema... e dos oponentes mais fortes em batalha!" - }, - "victory": { - "1": "Guardarei minha memória de você e seus Pokémon para sempre em meu coração." - }, - "defeat": { - "1": "Nossa batalha Pokémon foi como alimento para minha alma. Isso vai me manter em frente. \n$É assim que vou prestar meus respeitos a você por dar tudo de si na batalha!" - } - }, - "roxie": { - "encounter": { - "1": "Prepare-se! Vou arrancar algum senso de você!" - }, - "victory": { - "1": "Selvagem! Sua razão já é mais tóxica que a minha!" - }, - "defeat": { - "1": "Ei, vamos lá! Seja séria! Você tem que dar mais de si!" - } - }, - "olivia": { - "encounter": { - "1": "Não precisa de introdução aqui. Hora de batalhar comigo, Olivia!" - }, - "victory": { - "1": "Realmente encantador… Tanto você quanto seus Pokémon…" - }, - "defeat": { - "1": "Mmm-hmm." - } - }, - "poppy": { - "encounter": { - "1": "Oooh! Você quer ter uma batalha Pokémon comigo?" - }, - "victory": { - "1": "Uagh?! Mmmuuuggghhh…" - }, - "defeat": { - "1": "Yaaay! Eu consegui! Eu der-ro-tei você! Você pode vir para… Para… Uma revanche? \n$Venha para uma revanche quando quiser!" - } - }, - "agatha": { - "encounter": { - "1": "Pokémon são para batalhas! Vou te mostrar como um verdadeiro Treinador batalha!" - }, - "victory": { - "1": "Oh meu! Você é algo especial, criança!" - }, - "defeat": { - "1": "Bahaha. É assim que uma batalha adequada é feita!" - } - }, - "flint": { - "encounter": { - "1": "Espero que você esteja aquecida, porque aqui vem o Big Bang!" - }, - "victory": { - "1": "Incrível! Seus movimentos são tão quentes que fazem os meus parecerem mornos!" - }, - "defeat": { - "1": "Huh? Isso é tudo? Acho que você precisa de um pouco mais de paixão." - } - }, - "grimsley": { - "encounter": { - "1": "O vencedor leva tudo, e não sobra nada para o perdedor." - }, - "victory": { - "1": "Quando se perde, perde-se tudo… A próxima coisa que vou procurar será a vitória, também!" - }, - "defeat": { - "1": "Se alguém vence, a pessoa que lutou contra essa pessoa perde." - } - }, - "caitlin": { - "encounter": { - "1": "Sou eu que apareci quando a flor se abriu. Você que estava esperando…\n$Você parece uma Treinadora de Pokémon com força refinada e bondade profunda. \n$O que eu procuro no meu oponente é uma força soberba… \n$Por favor, libere seu poder ao máximo!" - }, - "victory": { - "1": "Meus Pokémon e eu aprendemos muito! Agradeço a você." - }, - "defeat": { - "1": "Aspiro a reivindicar a vitória com elegância e graça." - } - }, - "diantha": { - "encounter": { - "1": "Batalhar contra você e seus Pokémon, todos vocês cheios de esperança para o futuro… \n$Honestamente, isso apenas me enche da energia que preciso para continuar enfrentando cada novo dia! Sim!" - }, - "victory": { - "1": "Testemunhar os espíritos nobres de você e seus Pokémon em batalha realmente tocou meu coração…" - }, - "defeat": { - "1": "Oh, fantástico! O que achou? Minha equipe foi bem legal, né?" - } - }, - "wikstrom": { - "encounter": { - "1": "Bem encontrado, jovem desafiadora! Verdadeiramente sou a lâmina famosa de aço endurecido, Duque Wikstrom! \n$Que a batalha comece! En garde!" - }, - "victory": { - "1": "Gloriosa! A confiança que você compartilha com seu honrado Pokémon supera até mesmo a minha!" - }, - "defeat": { - "1": "Que tipo de magia é essa? Meu coração bate incessantemente no meu peito! \n$Vencer contra uma oponente tão digna dá asas à minha alma--assim eu voo!" - } - }, - "acerola": { - "encounter": { - "1": "Batalhar é simplesmente divertido! Vamos lá, eu posso te derrotar!" - }, - "victory": { - "1": "Eu… Estou sem palavras! Como você conseguiu?!" - }, - "defeat": { - "1": "Ehaha! Que vitória incrível!" - } - }, - "larry_elite": { - "encounter": { - "1": "Olá… Sou eu, Larry.\n$Eu também sou membro da Elite dos Quatro, sim… Infelizmente para mim." - }, - "victory": { - "1": "Bem, isso tirou o vento debaixo das nossas asas…" - }, - "defeat": { - "1": "É hora de uma reunião com o chefe." - } - }, - "lance": { - "encounter": { - "1": "Estive esperando por você. Permita-me testar suas habilidades.", - "2": "Achei que você conseguiria chegar tão longe. Vamos começar." - }, - "victory": { - "1": "Você me pegou. Você é magnífica!", - "2": "Nunca esperei que outra Treinadora me derrotasse… Estou surpreso." - }, - "defeat": { - "1": "Isso foi por pouco. Quer tentar de novo?", - "2": "Não é que você seja fraca. Não se incomode com isso." - } - }, - "karen": { - "encounter": { - "1": "Eu sou Karen. Você gostaria de um duelo com meus Pokémon do tipo Sombrio?", - "2": "Sou diferente daqueles que você já conheceu.", - "3": "Você montou uma equipe charmosa. Nossa batalha deve ser boa." - }, - "victory": { - "1": "Não! Eu não posso vencer. Como você ficou tão forte?", - "2": "Não me desviarei do meu caminho escolhido.", - "3": "O Campeão está ansioso para te conhecer." - }, - "defeat": { - "1": "Isso era o que eu esperava.", - "2": "Bem, isso foi relativamente divertido.", - "3": "Venha me visitar a qualquer momento." - } - }, - "milo": { - "encounter": { - "1": "Parece que você entende bem os Pokémon. \n$Isso vai ser uma batalha e tanto! \n$Vou ter que usar a Dynamax no meu Pokémon se eu quiser vencer!" - }, - "victory": { - "1": "O poder da Grama murchou… Que desafiadora incrível!" - }, - "defeat": { - "1": "Isso realmente vai te deixar em choque e admiração." - } - }, - "lucian": { - "encounter": { - "1": "Só um momento, por favor. O livro que estou lendo está quase no clímax emocionante… \n$O herói obteve uma espada mística e está prestes a enfrentar sua prova final… Ah, tanto faz. \n$Já que você chegou tão longe, vou deixar isso de lado e batalhar com você. \n$Deixe-me ver se você alcançará tanta glória quanto o herói do meu livro!" - }, - "victory": { - "1": "Eu vejo… Parece que você me colocou em xeque-mate." - }, - "defeat": { - "1": "Tenho uma reputação a manter." - } - }, - "drasna": { - "encounter": { - "1": "Você deve ser uma Treinadora forte. Sim, bastante forte…\n$Isso é uma notícia maravilhosa! Enfrentar oponentes como você e sua equipe fará meus Pokémon crescerem como ervas daninhas!" - }, - "victory": { - "1": "Oh, meu Deus. Isso foi uma batalha rápida… Espero que você volte novamente algum dia!" - }, - "defeat": { - "1": "Como isso é possível?" - } - }, - "kahili": { - "encounter": { - "1": "Então, aqui está você… Por que não vemos para quem os ventos favorecem hoje, você… ou eu?" - }, - "victory": { - "1": "É frustrante para mim como membro da Elite dos Quatro, mas parece que sua força é real." - }, - "defeat": { - "1": "Essa foi uma jogada de mestre!" - } - }, - "hassel": { - "encounter": { - "1": "Prepare-se para aprender em primeira mão como é a respiração ardente de uma batalha feroz!" - }, - "victory": { - "1": "A sorte sorriu para mim desta vez, mas… \n$Julgando pelo andamento da luta, quem sabe se serei tão sortudo na próxima vez." - }, - "defeat": { - "1": "Essa foi uma jogada de mestre!" - } - }, - "blue": { - "encounter": { - "1": "Você deve ser muito boa para chegar tão longe." - }, - "victory": { - "1": "Só perdi para ele e agora para você… Ele? Hee, hee…" - }, - "defeat": { - "1": "Viu? Meu poder é o que me trouxe até aqui." - } - }, - "piers": { - "encounter": { - "1": "Prepare-se para uma mosh pit comigo e minha galera! Spikemuth, é hora de roquear!" - }, - "victory": { - "1": "Eu e minha equipe demos o nosso melhor. Vamos nos encontrar novamente para uma batalha algum dia…" - }, - "defeat": { - "1": "Minha garganta está desgastada de tanto gritar… Mas essa foi uma batalha empolgante!" - } - }, - "red": { - "encounter": { - "1": "…!" - }, - "victory": { - "1": "…?" - }, - "defeat": { - "1": "…!" - } - }, - "jasmine": { - "encounter": { - "1": "Oh… Seus Pokémon são impressionantes. Acho que vou gostar disso." - }, - "victory": { - "1": "Você é realmente forte. Vou ter que me esforçar muito mais também." - }, - "defeat": { - "1": "Eu nunca esperei ganhar." - } - }, - "lance_champion": { - "encounter": { - "1": "Ainda sou o Campeão. Não vou segurar nada." - }, - "victory": { - "1": "Esta é a emergência de uma nova Campeã." - }, - "defeat": { - "1": "Defendi com sucesso meu Campeonato." - } - }, - "steven": { - "encounter": { - "1": "Diga-me… O que você viu na sua jornada com seus Pokémon? \n$O que você sentiu, encontrando tantos outros Treinadores por aí? \n$Viajar por esta terra rica… Isso despertou algo dentro de você? \n$Quero que você venha até mim com tudo o que aprendeu. \n$Meus Pokémon e eu responderemos com tudo o que sabemos!" - }, - "victory": { - "1": "Então eu, o Campeão, caio em derrota…" - }, - "defeat": { - "1": "Esse tempo foi bem gasto! Obrigado!" - } - }, - "cynthia": { - "encounter": { - "1": "Eu, Cynthia, aceito seu desafio! Não haverá nenhuma trégua da minha parte!" - }, - "victory": { - "1": "Não importa o quão divertida a batalha seja, ela sempre terminará algum dia…" - }, - "defeat": { - "1": "Mesmo que você perca, nunca perca o amor pelos Pokémon." - } - }, - "iris": { - "encounter": { - "1": "Sabe de uma coisa? Estou realmente ansiosa para ter batalhas sérias com Treinadores fortes! \n$Quero dizer, vamos lá! Os Treinadores que chegam aqui são Treinadores que desejam a vitória com todas as fibras do seu ser! \n$E eles estão batalhando ao lado de Pokémon que passaram por inúmeras batalhas difíceis! \n$Se eu batalhar com pessoas assim, não só eu ficarei mais forte, meus Pokémon também! \n$E nós vamos nos conhecer ainda melhor! OK! Prepare-se! \n$Sou Iris, a Campeã da Liga Pokémon, e vou te derrotar!" - }, - "victory": { - "1": "Aghhhh… Eu dei o meu melhor, mas nós perdemos…" - }, - "defeat": { - "1": "Yay! Nós vencemos!" - } - }, - "hau": { - "encounter": { - "1": "Eu me pergunto se um Treinador batalha de maneira diferente dependendo se ele é de uma região quente ou fria.\n$Vamos testar isso!" - }, - "victory": { - "1": "Isso foi incrível! Acho que entendi um pouco melhor seu estilo agora!" - }, - "defeat": { - "1": "Cara, essa foi uma batalha e tanto!" - } - }, - "geeta": { - "encounter": { - "1": "Decidi entrar na batalha mais uma vez. \n$Venha agora… Mostre-me os frutos do seu treinamento." - }, - "victory": { - "1": "Estou ansiosa para notícias de todas as suas conquistas!" - }, - "defeat": { - "1": "Qual o problema? Isso é tudo?" - } - }, - "nemona": { - "encounter": { - "1": "Yesss! Estou tão empolgada! Hora de soltar tudo!" - }, - "victory": { - "1": "Bem, isso foi ruim, mas ainda me diverti! Eu te pego na próxima!" - }, - "defeat": { - "1": "Bem, essa foi uma ótima batalha! Frutífera, com certeza." - } - }, - "leon": { - "encounter": { - "1": "Vamos ter um tempo absolutamente campeão!" - }, - "victory": { - "1": "Meu tempo como Campeão acabou… \n$Mas que tempo campeão foi! \n$Obrigado pela melhor batalha que já tive!" - }, - "defeat": { - "1": "Um tempo absolutamente campeão, foi!" - } - }, - "whitney": { - "encounter": { - "1": "Eai! Você não acha que os Pokémon são, tipo, super fofos?" - }, - "victory": { - "1": "Waaah! Waaah! Você é tão má!" - }, - "defeat": { - "1": "E é isso!" - } - }, - "chuck": { - "encounter": { - "1": "Hah! Você quer me desafiar? É corajosa ou apenas ignorante?" - }, - "victory": { - "1": "Você é forte! Por favor, me faça seu aprendiz?" - }, - "defeat": { - "1": "Aí está. Você percebe o quanto sou mais poderoso que você?" - } - }, - "katy": { - "encounter": { - "1": "Não baixe a guarda, a menos que queira se ver jogada no chão!" - }, - "victory": { - "1": "Todos os meus adoráveis Pokémon caíram como moscas!" - }, - "defeat": { - "1": "Coma, meu adorável Vivillon!" - } - }, - "pryce": { - "encounter": { - "1": "A juventude sozinha não garante a vitória! Experiência é o que conta." - }, - "victory": { - "1": "Excelente! Isso foi perfeito. Tente não esquecer o que sente agora." - }, - "defeat": { - "1": "Exatamente como eu imaginei." - } - }, - "clair": { - "encounter": { - "1": "Você sabe quem eu sou? E ainda se atreve a me desafiar?" - }, - "victory": { - "1": "Eu me pergunto até onde você pode ir com seu nível de habilidade. Isso deve ser fascinante." - }, - "defeat": { - "1": "E é isso." - } - }, - "maylene": { - "encounter": { - "1": "Vim desafiá-la agora e não vou segurar nada. \n$Por favor, prepare-se para a batalha!" - }, - "victory": { - "1": "Eu admito a derrota…" - }, - "defeat": { - "1": "Isso foi incrível." - } - }, - "fantina": { - "encounter": { - "1": "Você vai me desafiar, não é? Mas eu vou ganhar. \n$É o que a Líder do Ginásio de Hearthome faz, não?" - }, - "victory": { - "1": "Você é tão incrivelmente forte. Sei porque perdi." - }, - "defeat": { - "1": "Estou tão, tão, muito feliz!" - } - }, - "byron": { - "encounter": { - "1": "Treinadora! Você é jovem, assim como meu filho, Roark. \n$Com mais Treinadores jovens assumindo o comando, o futuro dos Pokémon é brilhante! \n$Então, como uma parede para os jovens, aceitarei seu desafio!" - }, - "victory": { - "1": "Hmm! Meus Pokémon robustos--derrotados!" - }, - "defeat": { - "1": "Gwahahaha! Como foram meus Pokémon robustos?!" - } - }, - "olympia": { - "encounter": { - "1": "Um costume antigo decidindo o destino de alguém. A batalha começa!" - }, - "victory": { - "1": "Crie seu próprio caminho. Não deixe nada te atrapalhar. Seu destino, seu futuro." - }, - "defeat": { - "1": "Nosso caminho está claro agora." - } - }, - "volkner": { - "encounter": { - "1": "Já que você chegou tão longe, deve ser bastante forte…\n$Espero que você seja a Treinadora que me faça lembrar como é divertido batalhar!" - }, - "victory": { - "1": "Você me venceu…\n$Seu desejo e a maneira nobre como seus Pokémon batalharam por você… \n$Eu até me senti emocionado durante nossa luta. Foi uma batalha muito boa." - }, - "defeat": { - "1": "Não foi nada chocante…\n$Isso não é o que eu queria!" - } - }, - "burgh": { - "encounter": { - "1": "M'hm… Se eu ganhar esta batalha, sinto que posso desenhar um quadro diferente de qualquer outro. \n$OK! Posso ouvir minha musa da batalha claramente. Vamos direto ao ponto!", - "2": "Claro, estou realmente orgulhoso de todos os meus Pokémon! \n$Bem agora… Vamos direto ao ponto!" - }, - "victory": { - "1": "Acabou? Minha musa me abandonou?", - "2": "Hmm… Acabou! Você é incrível!" - }, - "defeat": { - "1": "Uau… É bonito de alguma forma, não é…", - "2": "Às vezes ouço as pessoas dizerem que foi uma vitória feia. \n$Acho que se você está dando o seu melhor, qualquer vitória é bonita." - } - }, - "elesa": { - "encounter": { - "1": "C'est fini! Quando tenho certeza disso, sinto um choque elétrico percorrer meu corpo! \n$Quero sentir essa sensação, então agora meus amados Pokémon vão fazer sua cabeça girar!" - }, - "victory": { - "1": "Eu queria fazer sua cabeça girar, mas você me surpreendeu." - }, - "defeat": { - "1": "Isso foi insatisfatório de alguma forma… Você dará tudo de si na próxima vez?" - } - }, - "skyla": { - "encounter": { - "1": "Finalmente é hora do confronto! Isso significa a batalha Pokémon que decide quem está no topo, certo? \n$Eu amo estar no topo! Porque você pode ver para sempre e sempre de lugares altos! \n$Então, que tal nós nos divertirmos?" - }, - "victory": { - "1": "Ser seu oponente na batalha é uma nova fonte de força para mim. Obrigada!" - }, - "defeat": { - "1": "Ganhar ou perder, você sempre ganha algo com uma batalha, certo?" - } - }, - "brycen": { - "encounter": { - "1": "Há também força em estar com outras pessoas e Pokémon. \n$Receber o apoio deles te fortalece. Vou te mostrar esse poder!" - }, - "victory": { - "1": "A maravilhosa combinação de você e seus Pokémon! Que amizade linda!" - }, - "defeat": { - "1": "Condições extremas realmente testam e treinam você!" - } - }, - "drayden": { - "encounter": { - "1": "O que eu quero encontrar é um jovem Treinador que possa me mostrar um futuro brilhante. \n$Vamos batalhar com tudo o que temos: sua habilidade, minha experiência e o amor com que criamos nossos Pokémon!" - }, - "victory": { - "1": "Esse sentimento intenso que me invade após uma derrota… Não sei como descrevê-lo." - }, - "defeat": { - "1": "Harrumph! Sei que sua habilidade é maior que isso!" - } - }, - "grant": { - "encounter": { - "1": "Só há uma coisa que desejo. \n$Que, superando um ao outro, encontremos um caminho para alturas ainda maiores." - }, - "victory": { - "1": "Você é uma parede que não consigo superar!" - }, - "defeat": { - "1": "Não desista. \n$Isso é tudo o que realmente importa. \n$As lições mais importantes da vida são simples." - } - }, - "korrina": { - "encounter": { - "1": "Hora da grande aparição de Lady Korrina!" - }, - "victory": { - "1": "É o seu próprio ser que permite que seus Pokémon evoluam!" - }, - "defeat": { - "1": "Que batalha explosiva!" - } - }, - "clemont": { - "encounter": { - "1": "Oh! Estou feliz por termos nos encontrado!" - }, - "victory": { - "1": "Sua paixão pela batalha me inspira!" - }, - "defeat": { - "1": "Parece que minha Máquina Treinadora-Crescer-Forte, Mach 2 está realmente funcionando!" - } - }, - "valerie": { - "encounter": { - "1": "Oh, se não é uma jovem Treinadora… É adorável conhecê-la assim. \n$Então, suponho que você ganhou o direito a uma batalha, como recompensa por seus esforços. \n$Uma elusiva Fada pode parecer frágil como a brisa e delicado como uma flor, mas é forte." - }, - "victory": { - "1": "Espero que você encontre coisas para sorrir amanhã…" - }, - "defeat": { - "1": "Oh meu Deus, que pena…" - } - }, - "wulfric": { - "encounter": { - "1": "Sabe de uma coisa? Todos falamos muito sobre o que você aprende com as batalhas e os laços e tudo mais…\n$Mas realmente, eu só faço isso porque é divertido. \n$Quem se importa com o grandioso? Vamos batalhar!" - }, - "victory": { - "1": "Incrível! Sou duro como um iceberg, mas você me quebrou por completo!" - }, - "defeat": { - "1": "Lute comigo e é isso que acontece!" - } - }, - "kabu": { - "encounter": { - "1": "Todo Treinador e Pokémon treina duro em busca da vitória. \n$Mas isso significa que seu oponente também está se esforçando para vencer. \n$No final, a partida é decidida por qual lado é capaz de liberar seu verdadeiro potencial." - }, - "victory": { - "1": "Estou feliz por poder lutar com você hoje!" - }, - "defeat": { - "1": "É uma ótima maneira de sentir meu próprio crescimento!" - } - }, - "bea": { - "encounter": { - "1": "Você tem um espírito inabalável que não será movido, não importa como você seja atacado? \n$Acho que vou testar isso, certo?" - }, - "victory": { - "1": "Senti o espírito de luta de seus Pokémon enquanto você os liderava na batalha." - }, - "defeat": { - "1": "Essa foi a melhor partida que alguém poderia esperar." - } - }, - "opal": { - "encounter": { - "1": "Deixe-me ver como você e seu Pokémon parceiro se comportam!" - }, - "victory": { - "1": "Seu rosa ainda está faltando, mas você é uma Treinadora excelente com Pokémon excelentes." - }, - "defeat": { - "1": "Muito ruim para você, eu acho." - } - }, - "bede": { - "encounter": { - "1": "Suponho que devo provar além de qualquer dúvida o quão patética você é e quão forte eu sou." - }, - "victory": { - "1": "Eu vejo… Bem, tudo bem. Eu não estava me esforçando muito de qualquer maneira." - }, - "defeat": { - "1": "Bom trabalho, eu suponho." - } - }, - "gordie": { - "encounter": { - "1": "Então, vamos acabar com isso." - }, - "victory": { - "1": "Eu só quero me enterrar em um buraco… Bem, acho que seria mais como cair daqui." - }, - "defeat": { - "1": "Batalhe como sempre faz, a vitória seguirá!" - } - }, - "marnie": { - "encounter": { - "1": "A verdade é que, quando tudo está dito e feito… Eu realmente só quero me tornar Campeã por mim mesma! \n$Então, não leve para o pessoal quando eu chutar seu traseiro!" - }, - "victory": { - "1": "OK, então eu perdi… Mas consegui ver muitos dos pontos bons de você e seus Pokémon!" - }, - "defeat": { - "1": "Espero que você tenha gostado das nossas táticas de batalha." - } - }, - "raihan": { - "encounter": { - "1": "Vou derrotar o Campeão, vencer todo o torneio e provar ao mundo o quão forte o grande Raihan realmente é!" - }, - "victory": { - "1": "Eu pareço bem mesmo quando perco. \n$É uma verdadeira maldição. \n$Acho que é hora de mais uma selfie!" - }, - "defeat": { - "1": "Vamos tirar uma selfie para lembrar disso." - } - }, - "brassius": { - "encounter": { - "1": "Pressuponho que você está pronta? Que nossa obra de arte colaborativa comece!" - }, - "victory": { - "1": "Ahhh…avant-garde!" - }, - "defeat": { - "1": "Começarei uma nova peça imediatamente!" - } - }, - "iono": { - "encounter": { - "1": "Como você está se sentindo sobre esta batalha?\n$...\n$Vamos começar o show! Quão forte é o nossa desafiadora? \n$Eu não sei! Vamos descobrir juntos!" - }, - "victory": { - "1": "Você é tão chamativa e brilhante quanto um Raio do Trovão de 10.000.000 volts, amiga!" - }, - "defeat": { - "1": "Seus olhos são MEUS!" - } - }, - "larry": { - "encounter": { - "1": "Quando tudo está dito e feito, a simplicidade é mais forte." - }, - "victory": { - "1": "Uma porção de derrota, hein?" - }, - "defeat": { - "1": "Vou encerrar o dia." - } - }, - "ryme": { - "encounter": { - "1": "Vamos lá, baby! Me agite até os ossos!" - }, - "victory": { - "1": "Você é legal, minha amiga, você move minha ALMA!" - }, - "defeat": { - "1": "Até mais, baby!" - } - }, - "grusha": { - "encounter": { - "1": "Tudo o que preciso fazer é garantir que o poder do meu Pokémon te arrependa até os ossos!" - }, - "victory": { - "1": "Sua paixão ardente... Eu meio que gosto, para ser honesto." - }, - "defeat": { - "1": "As coisas não esquentaram para você." - } - }, - "marnie_elite": { - "encounter": { - "1": "Você chegou até aqui, hein? Vamos ver se você pode lidar com meus Pokémon!", - "2": "Vou dar o meu melhor, mas não pense que vou pegar leve com você!" - }, - "victory": { - "1": "Não acredito que perdi... Mas você mereceu essa vitória. Bem feito!", - "2": "Parece que ainda tenho muito a aprender. Porém, grande batalha!" - }, - "defeat": { - "1": "Você lutou bem, mas eu tenho a vantagem! Melhor sorte na próxima vez!", - "2": "Parece que meu treinamento valeu a pena. Obrigado pela batalha!" - } - }, - "nessa_elite": { - "encounter": { - "1": "As marés estão mudando a meu favor. Pronta para ser levada pela corrente?", - "2": "Vamos fazer ondas com esta batalha! Espero que esteja preparada!" - }, - "victory": { - "1": "Você navegou nessas águas perfeitamente... Bem feito!", - "2": "Parece que minhas correntes não foram páreo para você. Bom trabalho!" - }, - "defeat": { - "1": "A água sempre encontra um caminho. Essa foi uma batalha refrescante!", - "2": "Você lutou bem, mas o poder do oceano é imparável!" - } - }, - "bea_elite": { - "encounter": { - "1": "Prepare-se! Meu espírito de luta brilha intensamente!", - "2": "Vamos ver se você consegue acompanhar meu ritmo implacável!" - }, - "victory": { - "1": "Sua força... É impressionante. Você realmente merece essa vitória.", - "2": "Nunca senti essa intensidade antes. Trabalho incrível!" - }, - "defeat": { - "1": "Outra vitória para meu rigoroso regime de treinamento! Bem feito!", - "2": "Você tem força, mas eu treinei mais. Grande batalha!" - } - }, - "allister_elite": { - "encounter": { - "1": "As sombras caem... Você está pronta para enfrentar seus medos?", - "2": "Vamos ver se você pode lidar com a escuridão que eu comando." - }, - "victory": { - "1": "Você dissipou as sombras... Por enquanto. Bem feito.", - "2": "Sua luz atravessou minha escuridão. Ótimo trabalho." - }, - "defeat": { - "1": "As sombras falaram... Sua força não é suficiente.", - "2": "A escuridão triunfa... Talvez na próxima vez você veja a luz." - } - }, - "raihan_elite": { - "encounter": { - "1": "Tempestade se formando! Vamos ver se você aguenta essa luta!", - "2": "Prepare-se para enfrentar o olho da tempestade!" - }, - "victory": { - "1": "Você enfrentou a tempestade... Trabalho incrível!", - "2": "Você navegou nos ventos perfeitamente... Grande batalha!" - }, - "defeat": { - "1": "Outra tempestade enfrentada, outra vitória conquistada! Bem lutado!", - "2": "Você foi pega na minha tempestade! Melhor sorte na próxima vez!" - } - }, - "alder": { - "encounter": { - "1": "Se prepare para uma batalha contra o Treinador mais forte de Unova!" - }, - "victory": { - "1": "Muito bem! Você certamente é um talento incomparável." - }, - "defeat": { - "1": "Um vento fresco sopra em meu coração...\n$Que esforço extraordinário!" - } - }, - "kieran": { - "encounter": { - "1": "Através do trabalho duro, eu me torno cada vez mais forte!\n$Eu não perco." - }, - "victory": { - "1": "Eu não acredito...\n$Que batalha divertida e emocionante!" - }, - "defeat": { - "1": "Uau, que batalha!\n$Hora de você treinar ainda mais." - } - }, - "rival": { - "encounter": { - "1": "@c{smile}Eai, estava procurando você! Sabia que você estava ansiosa para começar, mas esperava pelo menos um tchau…\n$@c{smile_eclosed}Então você está realmente perseguindo seu sonho, hein?\n Quase não consigo acreditar.\n$@c{serious_smile_fists}Já que estamos aqui, que tal uma batalha?\nAfinal, quero ter certeza de que você está pronta.\n$@c{serious_mopen_fists}Não se segure, quero que você dê tudo de si!" - }, - "victory": { - "1": "@c{shock}Caramba… Você me limpou.\nVocê é mesmo uma novata?\n$@c{smile}Talvez tenha sido um pouco de sorte, mas…\nQuem sabe você consiga chegar até o fim.\n$Aliás, o professor me pediu para te dar esses itens. Eles parecem bem legais.\n$@c{serious_smile_fists}Boa sorte lá fora!" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}Aí está você! Procurei você em todo lugar!\n@c{angry_mopen}Esqueceu de se despedir da sua melhor amiga?\n$@c{smile_ehalf}Você está indo atrás do seu sonho, né?\nEsse dia realmente chegou, não é…\n$@c{smile}Enfim, vou te perdoar por ter me esquecido, mas com uma condição. @c{smile_wave_wink}Você tem que lutar comigo!\n$@c{angry_mopen}Dê o seu melhor! Não quer que sua aventura acabe antes de começar, né?" - }, - "victory": { - "1": "@c{shock}Você acabou de começar e já está tão forte?!@d{96}\n@c{angry}Você trapaceou, não foi?\n$@c{smile_wave_wink}Brincadeirinha!@d{64} @c{smile_eclosed}Eu perdi de forma justa… Tenho a sensação de que você vai se sair muito bem lá fora.\n$@c{smile}Aliás, o professor pediu para eu te dar alguns itens. Espero que sejam úteis!\n$@c{smile_wave}Dê o seu melhor, como sempre! Eu acredito em você!" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}Eai, você também está aqui?\n@c{smile_eclosed}Ainda com um recorde perfeito, hein…?\n$@c{serious_mopen_fists}Sei que parece que eu te segui até aqui, mas isso não é totalmente verdade.\n$@c{serious_smile_fists}Sinceramente, tenho estado ansioso por uma revanche desde que você me venceu em casa.\n$Tenho treinado bastante, então vou dar uma luta difícil desta vez.\n$@c{serious_mopen_fists}Não se segure, assim como antes!\nVamos lá!" - }, - "victory": { - "1": "@c{neutral_eclosed}Ah. Acho que fui confiante demais.\n$@c{smile}Tudo bem, no entanto. Eu imaginei que isso poderia acontecer.\n@c{serious_mopen_fists}Isso só significa que preciso me esforçar mais para a próxima vez!\n\n$@c{smile}Ah, não que você precise realmente de ajuda, mas eu tinha um extra desses itens e pensei que você poderia querer.\n$@c{serious_smile_fists}Não espere outro depois deste!\nNão posso continuar dando vantagem ao meu oponente.\n$@c{smile}Enfim, cuide-se, e aproveite o evento!" - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}Oh, que surpresa te encontrar aqui. Parece que você ainda está invicta. @c{angry_mopen}Hum… Nada mal!\n$@c{angry_mopen}Eu sei o que você está pensando, e não, eu não estava te espionando. @c{smile_eclosed}Acontece que eu estava na área.\n$@c{smile_ehalf}Estou feliz por você, mas só quero te avisar que está tudo bem perder às vezes.\n$@c{smile}Aprendemos com nossos erros, muitas vezes mais do que se continuássemos vencendo.\n$@c{angry_mopen}De qualquer forma, tenho treinado duro para nossa revanche, então é melhor você dar o seu melhor!" - }, - "victory": { - "1": "@c{neutral}Eu… não era para eu perder dessa vez…\n$@c{smile}Ah bem. Isso só significa que vou ter que treinar ainda mais para a próxima vez!\n$@c{smile_wave}Também consegui mais dois desses para você!\n@c{smile_wave_wink}Não precisa me agradecer~.\n$@c{angry_mopen}Estes são os últimos, hein! Você não vai ganhar mais nenhum presente de mim depois desse!\n$@c{smile_wave}Continue assim, e aproveite o evento!" - }, - "defeat": { - "1": "Está tudo bem perder às vezes…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}Eai, olha quem é! Faz um tempo.\n@c{neutral}Você… ainda está invicta? Hum.\n$@c{neutral_eclosed}As coisas têm sido meio… estranhas.\nNão é a mesma coisa em casa sem você.\n$@c{serious}Eu sei que é egoísta, mas preciso desabafar.\n@c{neutral_eclosed}Acho que você está se metendo em algo grande demais aqui.\n$@c{serious}Nunca perder é irrealista.\nPrecisamos perder às vezes para crescer.\n$@c{neutral_eclosed}Você teve uma grande jornada, mas ainda há muito pela frente, e só vai ficar mais difícil. @c{neutral}Você está preparada para isso?\n$@c{serious_mopen_fists}Se sim, prove para mim." - }, - "victory": { - "1": "@c{angry_mhalf}Isso é ridículo… Eu mal parei de treinar…\nComo ainda estamos tão distantes?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}Quanto tempo! Ainda não perdeu, né.\n@c{angry}Você está começando a me irritar. @c{smile_wave_wink}Brincadeirinha!\n$@c{smile_ehalf}Mas sério, você não sente saudades de casa? Ou… de mim?\nEu… Eu quero dizer, sentimos muito a sua falta.\n$@c{smile_eclosed}Eu apoio o seu sonho e tudo mais, mas a realidade é que você vai perder mais cedo ou mais tarde.\n$@c{smile}E quando isso acontecer, estarei lá para você, como sempre.\n@c{angry_mopen}Agora, deixe-me mostrar o quão forte eu me tornei!" - }, - "victory": { - "1": "@c{shock}Depois de tudo isso… não foi o suficiente…?\nVocê nunca vai voltar a esse ritmo…" - }, - "defeat": { - "1": "Você deu o seu melhor, agora vamos para casa." - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}Oi.\n$Não vou enrolar com você.\n@c{neutral_eclosed}Estou aqui para vencer, simples assim.\n$@c{serious_mhalf_fists}Aprendi a maximizar meu potencial dedicando todo o meu tempo ao treino.\n$@c{smile}Você ganha muito tempo extra quando corta o sono e a interação social desnecessários.\n$@c{serious_mopen_fists}Nada disso importa mais, não até eu vencer.\n$@c{neutral_eclosed}Cheguei ao ponto de não perder mais.\n@c{smile_eclosed}Acho que sua filosofia não estava tão errada afinal.\n$@c{angry_mhalf}Perder é para os fracos, e eu não sou mais fraco.\n$@c{serious_mopen_fists}Prepare-se." - }, - "victory": { - "1": "@c{neutral}O que…@d{64} O que é você?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}Sou eu! Você não esqueceu de mim de novo… esqueceu?\n$@c{smile}Você deveria se orgulhar de até onde chegou. Parabéns!\nMas parece que é o fim da sua jornada.\n$@c{smile_eclosed}Você despertou algo em mim que eu nunca soube que existia.\nParece que agora tudo o que faço é treinar.\n$@c{smile_ehalf}Eu mal como ou durmo agora, só treino meus Pokémon o dia todo, ficando mais forte a cada vez.\n$@c{neutral}Na verdade, eu… mal me reconheço.\n$E agora, finalmente atingi o desempenho máximo.\nNão acho que alguém poderia me vencer agora.\n$E sabe de uma coisa? É tudo por sua causa.\n@c{smile_ehalf}Eu não sei se te agradeço ou te odeio.\n$@c{angry_mopen}Prepare-se." - }, - "victory": { - "1": "@c{neutral}O que…@d{64} O que é você?" - }, - "defeat": { - "1": "$@c{smile}Você deveria se orgulhar de até onde chegou." - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}Nos encontramos de novo.\n$@c{neutral}Tive um tempo para refletir sobre tudo isso.\nHá uma razão para tudo isso parecer tão estranho.\n$@c{neutral_eclosed}Seu sonho, minha vontade de te vencer…\nTudo faz parte de algo maior.\n$@c{serious}Isso não é sobre mim, nem sobre você… É sobre o mundo, @c{serious_mhalf_fists}e é meu propósito te levar ao limite.\n$@c{neutral_eclosed}Se cumpri esse propósito, não posso dizer, mas fiz tudo ao meu alcance.\n$@c{neutral}Este lugar em que acabamos é assustador… Mas de alguma forma me sinto indiferente, como se já tivesse estado aqui antes.\n$@c{serious_mhalf_fists}Você sente o mesmo, não sente?\n$@c{serious}…é como se algo aqui estivesse falando comigo.\nIsso é tudo o que o mundo conhece há muito tempo.\n$Aqueles momentos que apreciamos juntos que parecem tão recentes não passam de uma memória distante.\n$@c{neutral_eclosed}Quem pode dizer se eles foram realmente reais em primeiro lugar.\n$@c{serious_mopen_fists}Você precisa continuar empurrando, porque se não o fizer, isso nunca vai acabar. Você é a única que pode fazer isso.\n$@c{serious_smile_fists}Eu mal sei o que tudo isso significa, só sei que é verdade.\n$@c{serious_mopen_fists}Se você não pode me derrotar aqui e agora, você não terá chance." - }, - "victory": { - "1": "@c{smile_eclosed}Parece que meu trabalho aqui está feito.\n$Quero que você me prometa uma coisa.\n@c{smile}Depois que curar o mundo, por favor, volte para casa." - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}Então somos só nós de novo.\n$@c{smile_eclosed}Sabe, continuo pensando nisso…\n$@c{smile_ehalf}Há algo nisso tudo, por que tudo parece tão estranho agora…\n$@c{smile}Você tem seu sonho, e eu tenho essa ambição em mim…\n$Não consigo evitar sentir que há um propósito maior em tudo isso, no que estamos fazendo, você e eu.\n$@c{smile_eclosed}Acho que devo te levar ao limite.\n$@c{smile_ehalf}Não tenho certeza se estou fazendo um bom trabalho nisso, mas tentei meu melhor até agora.\n$Há algo neste lugar estranho e terrível… Tudo parece tão claro…\n$Isso… é tudo o que o mundo conhece há muito tempo.\n$@c{smile_eclosed}É como se eu mal pudesse lembrar das memórias que apreciamos juntos.\n$@c{smile_ehalf}Elas foram reais? Elas parecem tão distantes agora…\n$@c{angry_mopen}Você precisa continuar empurrando, porque se não o fizer, isso nunca vai acabar. Você é o único que pode fazer isso.\n$@c{smile_ehalf}Eu… não sei o que tudo isso significa… mas sinto que é verdade.\n$@c{neutral}Se você não pode me derrotar aqui e agora, você não terá chance." - }, - "victory": { - "1": "@c{smile_ehalf}Eu… acho que cumpri meu propósito…\n$@c{smile_eclosed}Prometa-me… Depois que curar o mundo… Por favor… volte para casa.\n$@c{smile_ehalf}…Obrigada." - } - } -} diff --git a/src/locales/pt_BR/dialogue-final-boss-female.json b/src/locales/pt_BR/dialogue-final-boss-female.json deleted file mode 100644 index 7f7c04acaff..00000000000 --- a/src/locales/pt_BR/dialogue-final-boss-female.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "encounter": "Parece que a hora finalmente chegou novamente.\nVocê sabe por que veio aqui, não sabe?\n$Você foi atraída para cá, porque já esteve aqui antes.\nInúmeras vezes.\n$Embora talvez isso possa ser contado.\nPara ser preciso, este é de fato o seu {{cycleCount}}º ciclo.\n$A cada ciclo, sua mente retorna ao seu estado anterior.\nMesmo assim, de alguma forma, vestígios de seus antigos \"eus\" permanecem.\n$Até agora, você ainda não conseguiu, mas sinto uma presença diferente em você desta vez.\n\n$Você é a única aqui, embora pareça haver... outro.\n$Você finalmente vai se mostrar um desafio formidável para mim?\nO desafio que anseio há milênios?\n$Vamos começar.", - "firstStageWin": "Entendo. A presença que senti era realmente real.\nParece que não preciso mais me segurar.\n$Não me decepcione.", - "secondStageWin": "…Magnífico." -} \ No newline at end of file diff --git a/src/locales/pt_BR/dialogue-final-boss-male.json b/src/locales/pt_BR/dialogue-final-boss.json similarity index 55% rename from src/locales/pt_BR/dialogue-final-boss-male.json rename to src/locales/pt_BR/dialogue-final-boss.json index 0a261ba151e..7009f00db5b 100644 --- a/src/locales/pt_BR/dialogue-final-boss-male.json +++ b/src/locales/pt_BR/dialogue-final-boss.json @@ -1,5 +1,6 @@ { "encounter": "Parece que a hora finalmente chegou novamente.\nVocê sabe por que veio aqui, não sabe?\n$Você foi atraído para cá, porque já esteve aqui antes.\nInúmeras vezes.\n$Embora talvez isso possa ser contado.\nPara ser preciso, este é de fato o seu {{cycleCount}}º ciclo.\n$A cada ciclo, sua mente retorna ao seu estado anterior.\nMesmo assim, de alguma forma, vestígios de seus antigos \"eus\" permanecem.\n$Até agora, você ainda não conseguiu, mas sinto uma presença diferente em você desta vez.\n\n$Você é o único aqui, embora pareça haver... outro.\n$Você finalmente vai se mostrar um desafio formidável para mim?\nO desafio que anseio há milênios?\n$Vamos começar.", + "encounter_female": "Parece que a hora finalmente chegou novamente.\nVocê sabe por que veio aqui, não sabe?\n$Você foi atraída para cá, porque já esteve aqui antes.\nInúmeras vezes.\n$Embora talvez isso possa ser contado.\nPara ser preciso, este é de fato o seu {{cycleCount}}º ciclo.\n$A cada ciclo, sua mente retorna ao seu estado anterior.\nMesmo assim, de alguma forma, vestígios de seus antigos \"eus\" permanecem.\n$Até agora, você ainda não conseguiu, mas sinto uma presença diferente em você desta vez.\n\n$Você é a única aqui, embora pareça haver... outro.\n$Você finalmente vai se mostrar um desafio formidável para mim?\nO desafio que anseio há milênios?\n$Vamos começar.", "firstStageWin": "Entendo. A presença que senti era realmente real.\nParece que não preciso mais me segurar.\n$Não me decepcione.", "secondStageWin": "…Magnífico." } \ No newline at end of file diff --git a/src/locales/pt_BR/dialogue-misc-female.json b/src/locales/pt_BR/dialogue-misc-female.json deleted file mode 100644 index 761570a7f80..00000000000 --- a/src/locales/pt_BR/dialogue-misc-female.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ending": "@c{smile}Oh? Você venceu?@d{96} @c{smile_eclosed}Acho que eu deveria saber.\nMas, você está de volta agora.\n$@c{smile}Acabou.@d{64} Você quebrou o ciclo.\n$@c{serious_smile_fists}Você também realizou seu sonho, não é?\nVocê não perdeu nenhuma vez.\n$@c{neutral}Eu sou o único que vai lembrar o que você fez.@d{96}\nAcho que está tudo bem, não é?\n$@c{serious_smile_fists}Sua lenda sempre viverá em nossos corações.\n$@c{smile_eclosed}Enfim, já tive o suficiente deste lugar, não é? Vamos para casa.\n$@c{serious_smile_fists}Talvez quando voltarmos, possamos ter outra batalha?\nSe você estiver disposta.", - "ending_female": "@c{shock}Você está de volta?@d{32} Isso significa que…@d{96} você venceu?!\n@c{smile_ehalf}Eu deveria saber que você conseguiria.\n$@c{smile_eclosed}Claro… Eu sempre tive essa sensação.\n@c{smile}Acabou agora, certo? Você quebrou o ciclo.\n$@c{smile_ehalf}Você também realizou seu sonho, não foi?\nVocê não perdeu nenhuma vez.\n$Eu serei a única a lembrar o que você fez.\n@c{angry_mopen}Eu tentarei não esquecer!\n$@c{smile_wave_wink}Brincadeirinha!@d{64} @c{smile}Eu nunca esqueceria.@d{32}\nSua lenda viverá em nossos corações.\n$@c{smile_wave}De qualquer forma,@d{64} está ficando tarde…@d{96} Eu acho?\nÉ difícil dizer neste lugar.\n$Vamos para casa. @c{smile_wave_wink}Talvez amanhã possamos ter outra batalha, pelos velhos tempos?", - "ending_endless": "Parabéns por alcançar o final atual!\nMais conteúdo chegará em breve.", - "ending_name": "Desenvolvedores" -} \ No newline at end of file diff --git a/src/locales/pt_BR/dialogue-misc-male.json b/src/locales/pt_BR/dialogue-misc.json similarity index 100% rename from src/locales/pt_BR/dialogue-misc-male.json rename to src/locales/pt_BR/dialogue-misc.json diff --git a/src/locales/pt_BR/dialogue-male.json b/src/locales/pt_BR/dialogue.json similarity index 87% rename from src/locales/pt_BR/dialogue-male.json rename to src/locales/pt_BR/dialogue.json index 2978bb9a6a5..2f39442ee5a 100644 --- a/src/locales/pt_BR/dialogue-male.json +++ b/src/locales/pt_BR/dialogue.json @@ -3,17 +3,21 @@ "encounter": { "1": "Eai, quer batalhar?", "2": "Você também é um treinador novo?", + "2_female": "Você também é uma treinadora nova?", "3": "Eai, nunca te vi antes. Vamos batalhar!", "4": "Acabei de perder, então estou tentando encontrar mais Pokémon.\nEspera! Você parece fraco! Vamos batalhar!", + "4_female": "Acabei de perder, então estou tentando encontrar mais Pokémon.\nEspera! Você parece fraca! Vamos batalhar!", "5": "A gente já se conheceu antes? Não lembro muito bem. Enfim, prazer te conhecer!", "6": "Beleza! Vamos nessa!", "7": "Beleza! Lá vou eu! Vou te mostrar meu poder!", "8": "Hahaha... Vou te mostrar o quão incríveis são meus Pokémon!", "9": "Sem perder tempo com cumprimentos. Vamos logo, quando estiver pronto!", + "9_female": "Sem perder tempo com cumprimentos. Vamos logo, quando estiver pronta!", "10": "Não baixe a guarda, ou você pode acabar chorando quando uma criança te vencer.", "11": "Eu criei meus Pokémon com muito cuidado. Você não tem permissão para machucá-los!", "12": "Que bom que você chegou! Não vai ser fácil daqui pra frente.", - "13": "As batalhas continuam para sempre! Bem-vindo ao mundo sem fim!" + "13": "As batalhas continuam para sempre! Bem-vinda ao mundo sem fim!", + "13_female": "As batalhas continuam para sempre! Bem-vindo ao mundo sem fim!" }, "victory": { "1": "Uau! Você é forte!", @@ -21,6 +25,7 @@ "3": "Vou te encontrar de novo quando for mais velho e te vencer!", "4": "Ugh. Não tenho mais Pokémon.", "5": "Não acredito… NÃO ACREDITO! Como pude perder de novo…", + "5_female": "Não acredito… NÃO ACREDITO! Como pude de novo…", "6": "Não! Eu perdi!", "7": "Uau! Você é incrível! Estou surpreso!", "8": "Pode ser… Como… Eu e meus Pokémon somos os mais fortes, porém…", @@ -35,10 +40,12 @@ "encounter": { "1": "Vamos batalhar, pode ser?", "2": "Você parece um treinador novo. Vamos batalhar!", + "2_female": "Você parece uma treinadora nova. Vamos batalhar!", "3": "Não te reconheço. Que tal uma batalha?", "4": "Vamos ter uma batalha Pokémon divertida!", "5": "Vou te mostrar como realmente usar Pokémon!", "6": "Uma batalha séria começa com um começo sério! Tem certeza que está pronto?", + "6_female": "Uma batalha séria começa com um começo sério! Tem certeza que está pronta?", "7": "Você só é jovem uma vez. E só tem uma chance em cada batalha. Logo, você será apenas uma memória.", "8": "Vai com calma comigo, tá? Mas vou lutar sério!", "9": "A escola é chata. Não tenho nada para fazer. Só estou batalhando para passar o tempo." @@ -52,6 +59,7 @@ "6": "Sério, eu perdi. Isso é, tipo, seriamente deprimente, mas você foi seriamente legal.", "7": "Não preciso de memórias como essa. Deletando memória…", "8": "Ei! Eu te disse para pegar leve comigo! Mesmo assim, você é legal quando fica sério.", + "8_female": "Ei! Eu te disse para pegar leve comigo! Mesmo assim, você é legal quando fica séria.", "9": "Estou realmente cansando de batalhar… Deve haver algo novo para fazer…" } }, @@ -150,7 +158,9 @@ "1": "Sim… Você tem bons Pokémon…", "2": "O quê?! Mas sou um gênio das batalhas!", "3": "Claro, você é o personagem principal!", - "4": "OK! OK! Você poderia ser um Treinador Ás!" + "3_female": "Claro, você é a personagem principal!", + "4": "OK! OK! Você poderia ser um Treinador Ás!", + "4_female": "OK! OK! Você poderia ser uma Treinador Ás!" }, "defeat": { "1": "Estou dedicando corpo e alma às batalhas de Pokémon!", @@ -171,7 +181,8 @@ "encounter": { "1": "Prepare-se, porque quando nos unimos, é o dobro do problema!", "2": "Dois corações, uma estratégia – vamos ver se você consegue acompanhar nosso poder de gêmeos!", - "3": "Espero que esteja pronto para o dobro do problema, porque estamos prestes a causar!" + "3": "Espero que esteja pronto para o dobro do problema, porque estamos prestes a causar!", + "3_female": "Espero que esteja pronta para o dobro do problema, porque estamos prestes a causar!" }, "victory": { "1": "Podemos ter perdido essa rodada, mas nosso vínculo permanece inquebrável!", @@ -199,7 +210,8 @@ "black_belt": { "encounter": { "1": "Elogio sua coragem ao me desafiar! Pois eu sou o que tem o chute mais forte!", - "2": "Oh, entendo. Você gostaria de ser cortado em pedaços? Ou prefere o papel de saco de pancadas?" + "2": "Oh, entendo. Você gostaria de ser cortado em pedaços? Ou prefere o papel de saco de pancadas?", + "2_female": "Oh, entendo. Você gostaria de ser cortada em pedaços? Ou prefere o papel de saco de pancadas?" }, "victory": { "1": "Oh. Os Pokémon fizeram a luta. Meu chute forte não ajudou em nada.", @@ -310,7 +322,8 @@ }, "defeat": { "1": "New age se refere simplesmente aos compositores clássicos do século XX, certo?", - "2": "Não fique preso na tristeza ou frustração. Você pode usar seus rancores para se motivar." + "2": "Não fique preso na tristeza ou frustração. Você pode usar seus rancores para se motivar.", + "2_female": "Não fique presa na tristeza ou frustração. Você pode usar seus rancores para se motivar." } }, "psychic": { @@ -341,7 +354,8 @@ }, "baker": { "encounter": { - "1": "Espero que esteja pronto para saborear a derrota!" + "1": "Espero que esteja pronto para saborear a derrota!", + "1_female": "Espero que esteja pronta para saborear a derrota!" }, "victory": { "1": "Vou assar uma revanche." @@ -371,7 +385,8 @@ "encounter": { "1": "Mano, você vai andar na prancha se perder!", "2": "Vem com tudo! Sou um marinheiro com orgulho!", - "3": "Ahoy marujo! Tá enjoado, é?!" + "3": "Ahoy marujo! Tá enjoado, é?!", + "3_female": "Ahoy maruja! Tá enjoada, é?!" }, "victory": { "1": "Argh! Perdi pra uma criança!", @@ -399,6 +414,7 @@ }, "victory": { "1": "Uau, você é forte. Que desperdício. Se você se juntasse à Equipe Rocket, poderia se tornar um Executivo.", + "1_female": "Uau, você é forte. Que desperdício. Se você se juntasse à Equipe Rocket, poderia se tornar uma Executiva.", "2": "Eu... Eu estou arrasada...", "3": "Aaaieeeee! Isso não pode estar acontecendo! Eu lutei muito, mas ainda perdi…" } @@ -436,7 +452,8 @@ "victory": { "1": "Hehehe! Você pode ter me derrotado, mas não tem chance contra o Chefe! Se você se perder agora, não terá que enfrentar uma surra sonora!", "2": "Hehehe... Então, eu também perdi...", - "3": "Ahya! Como isso pode ser? Para um Admin como eu perder para um treinador qualquer..." + "3": "Ahya! Como isso pode ser? Para um Admin como eu perder para um treinador qualquer...", + "3_female": "Ahya! Como isso pode ser? Para um Admin como eu perder para uma treinadora qualquer..." } }, "courtney": { @@ -454,13 +471,15 @@ "shelly": { "encounter": { "1": "Ahahahaha! Você vai se meter nos assuntos da Equipe Aqua? Você é absolutamente destemido, simplesmente ignorante ou ambos! Você é tão fofo que chega a ser nojento! Vou te derrubar", + "1_female": "Ahahahaha! Você vai se meter nos assuntos da Equipe Aqua? Você é absolutamente destemida, simplesmente ignorante ou ambos! Você é tão fofa que chega a ser nojenta! Vou te derrubar", "2": "O que é isso? Quem é essa criança mimada?", "3": "Relaxe. Seja paciente. Vou te esmagar em breve." }, "victory": { "1": "Ahahahaha! Fomos surpreendidos inesperadamente! Estamos sem opções. Teremos que recuar. Mas esta não é a última vez que você verá a Equipe Aqua! Temos outros planos! Não se esqueça disso!", "2": "Ahhh?! Fui muito fácil com você?!", - "3": "Uh. Você está me dizendo que melhorou seu jogo ainda mais durante a luta? Você é um pirralho com um futuro brilhante… Meu Pokémon e eu não temos mais forças para lutar… Vá em frente… Vá e seja destruído por Archie." + "3": "Uh. Você está me dizendo que melhorou seu jogo ainda mais durante a luta? Você é um pirralho com um futuro brilhante… Meu Pokémon e eu não temos mais forças para lutar… Vá em frente… Vá e seja destruído por Archie.", + "3_female": "Uh. Você está me dizendo que melhorou seu jogo ainda mais durante a luta? Você é uma pirralha com um futuro brilhante… Meu Pokémon e eu não temos mais forças para lutar… Vá em frente… Vá e seja destruída por Archie." } }, "matt": { @@ -472,14 +491,16 @@ "victory": { "1": "Muito bem, até que o Chefe tenha tempo para você, serei seu oponente!", "2": "Posso sentir! Posso sentir, tudo bem! A força saindo de você! Mais! Eu ainda quero mais! Mas parece que estamos sem tempo...", - "3": "Isso foi divertido! Eu sabia que você me mostraria um bom tempo! Estou ansioso para enfrentá-lo novamente algum dia!" + "3": "Isso foi divertido! Eu sabia que você me mostraria um bom tempo! Estou ansioso para enfrentá-lo novamente algum dia!", + "3_female": "Isso foi divertido! Eu sabia que você me mostraria um bom tempo! Estou ansioso para enfrentá-la novamente algum dia!" } }, "mars": { "encounter": { "1": "Sou Mars, uma das principais Comandantes da Equipe Galáctica.", "2": "A visão da Equipe Galáctica para o futuro é inabalável. A oposição será esmagada sem piedade!", - "3": "Sentindo-se nervoso? Você deveria estar!" + "3": "Sentindo-se nervoso? Você deveria estar!", + "3_female": "Sentindo-se nervosa? Você deveria estar!" }, "victory": { "1": "Isso não pode estar acontecendo! Como eu perdi?!", @@ -514,36 +535,45 @@ "zinzolin": { "encounter": { "1": "Você poderia se tornar uma ameaça para a Equipe Plasma, então vamos eliminá-lo aqui e agora!", + "1_female": "Você poderia se tornar uma ameaça para a Equipe Plasma, então vamos eliminá-la aqui e agora!", "2": "Oh, pelo amor de Deus... Eu não esperava ter que lutar neste frio congelante!", - "3": "Você é um treinador impressionante para ter chegado tão longe. Mas termina aqui." + "3": "Você é um treinador impressionante para ter chegado tão longe. Mas termina aqui.", + "3_female": "Você é uma treinadora impressionante para ter chegado tão longe. Mas termina aqui." }, "victory": { "1": "Ghetsis... Eu falhei com você...", "2": "Está amargamente frio. Estou tremendo. Estou sofrendo. Ainda assim, estou vitorioso.", - "3": "Hmph. Você é um treinador mais esperto do que eu esperava, mas não esperto o suficiente." + "3": "Hmph. Você é um treinador mais esperto do que eu esperava, mas não esperto o suficiente.", + "3_female": "Hmph. Você é uma treinadora mais esperta do que eu esperava, mas não esperta o suficiente." } }, "rood": { "encounter": { "1": "Você é uma ameaça para a Equipe Plasma. Não podemos deixá-lo ir embora daqui e agora!", + "1_female": "Você é uma ameaça para a Equipe Plasma. Não podemos deixá-la ir embora daqui e agora!", "2": "Oh, este vento gelado... Eu nunca pensei que teria que lutar aqui!", - "3": "Você é um treinador notável para ter chegado tão longe. Mas é aqui que termina." + "3": "Você é um treinador notável para ter chegado tão longe. Mas é aqui que termina.", + "3_female": "Você é uma treinadora notável para ter chegado tão longe. Mas é aqui que termina." }, "victory": { "1": "Ghetsis... Eu falhei em minha missão...", "2": "O frio é penetrante. Estou tremendo. Estou sofrendo. Ainda assim, triunfei.", - "3": "Hm. Você é um treinador talentoso, mas infelizmente não talentoso o suficiente." + "3": "Hm. Você é um treinador talentoso, mas infelizmente não talentoso o suficiente.", + "3_female": "Hm. Você é uma treinadora talentosa, mas infelizmente não talentosa o suficiente." } }, "xerosic": { "encounter": { "1": "Ah ha ha! Será um prazer. Vamos lá, pequeno treinador! Vamos ver o que você tem!", + "1_female": "Ah ha ha! Será um prazer. Vamos lá, pequena treinadora! Vamos ver o que você tem!", "2": "Hmm... Você é mais poderoso do que parece. Eu me pergunto quanta energia há dentro de você.", + "2_female": "Hmm... Você é mais poderosa do que parece. Eu me pergunto quanta energia há dentro de você.", "3": "Eu estava esperando por você! Preciso fazer uma pequena pesquisa sobre você! Vamos começar!" }, "victory": { "1": "Ah, você é bastante forte. Oh sim—muito forte, de fato.", "2": "Ding-ding-ding! Você conseguiu! Ao vencedor, os despojos!", + "2_female": "Ding-ding-ding! Você conseguiu! À vencedora, os despojos!", "3": "Maravilhoso! Incrível! Você tem uma tremenda habilidade e coragem!" } }, @@ -551,6 +581,7 @@ "encounter": { "1": "Eu sou Bryony, e será um prazer lutar com você. Mostre-me o que você tem.", "2": "Impressionante... Você é mais poderoso do que parece. Vamos ver a verdadeira extensão de sua energia.", + "2_female": "Impressionante... Você é mais poderosa do que parece. Vamos ver a verdadeira extensão de sua energia.", "3": "Eu antecipei sua chegada. É hora de um pequeno teste. Vamos começar?" }, "victory": { @@ -563,9 +594,11 @@ "encounter": { "1": "Se prepara pra encrenca!", "2": "Estamos realizando um grande trabalho aqui! Cai fora, moleque!", + "2_female": "Estamos realizando um grande trabalho aqui! Cai fora, garota!", "3": "Entregue seus Pokémon ou enfrente a ira da Equipe Rocket!", "4": "Você está prestes a experimentar o verdadeiro terror da Equipe Rocket!", - "5": "Ei, moleque! Eu sou um tipo de cara da Equipe Rocket!" + "5": "Ei, moleque! Eu sou um tipo de cara da Equipe Rocket!", + "5_female": "Ei, garota! Eu sou um tipo de cara da Equipe Rocket!" }, "victory": { "1": "Equipe Rocket decolando de novo!", @@ -613,7 +646,8 @@ "2": "Presencie o poder da nossa tecnologia e o futuro que vislumbramos!", "3": "Em nome da Equipe Galáctica, eliminarei qualquer um que ficar em nosso caminho!", "4": "Prepare-se para perder!", - "5": "Espero que você esteja pronto para uma surra cósmica!" + "5": "Espero que você esteja pronto para uma surra cósmica!", + "5_female": "Espero que você esteja pronta para uma surra cósmica!" }, "victory": { "1": "Fui amassado...", @@ -803,7 +837,8 @@ }, "galactic_boss_cyrus_1": { "encounter": { - "1": "Você foi compelido a vir aqui por tal sentimentalismo vazio\nEu farei você se arrepender de ter ouvido seu coração!" + "1": "Você foi compelido a vir aqui por tal sentimentalismo vazio\nEu farei você se arrepender de ter ouvido seu coração!", + "1_female": "Você foi compelida a vir aqui por tal sentimentalismo vazio\nEu farei você se arrepender de ter ouvido seu coração!" }, "victory": { "1": "Interessante. E bastante curioso." @@ -958,6 +993,7 @@ }, "victory": { "1": "Você realmente é forte… Vou admitir que você é habilidoso…", + "1_female": "Você realmente é forte… Vou admitir que você é habilidosa…", "2": "Hmm… Você sabe que só teve sorte, certo?!", "3": "Uau, você é demais! Não acredito que me venceu!" }, @@ -975,12 +1011,14 @@ }, "victory": { "1": "Whoa! Seu time é de verdade, garoto!", + "1_female": "Whoa! Seu time é de verdade, garota!", "2": "Uau, você é forte! Até meus truques elétricos perderam para você.", "3": "Isso foi uma derrota absolutamente chocante!" }, "defeat": { "1": "Oh sim! Quando se trata de Pokémon do tipo Elétrico, sou o número um do mundo!", "2": "Hahaha! Foi uma batalha eletrizante, garoto!", + "2_female": "Hahaha! Foi uma batalha eletrizante, garota!", "3": "Uma batalha de Pokémon é guerra, e eu te mostrei combate em primeira mão!" } }, @@ -1059,7 +1097,8 @@ "encounter": { "1": "Eu, o líder da Equipe Rocket, vou te fazer sentir um mundo de dor!", "2": "Meu treinamento aqui será vital antes de enfrentar meus antigos associados novamente.", - "3": "Não acho que você está preparado para o nível de fracasso que está prestes a experimentar!" + "3": "Não acho que você está preparado para o nível de fracasso que está prestes a experimentar!", + "3_female": "Não acho que você está preparada para o nível de fracasso que está prestes a experimentar!" }, "victory": { "1": "O QUE! Eu, perder?! Não tenho nada a dizer a você!", @@ -1092,6 +1131,7 @@ "brawly": { "encounter": { "1": "Oh cara, um desafiante!\nVamos ver o que você pode fazer!", + "1_female": "Oh cara, uma desafiante!\nVamos ver o que você pode fazer!", "2": "Você parece uma grande onda.\nVamos batalhar!", "3": "Hora de criar uma tempestade!\nVamos!" }, @@ -1119,6 +1159,7 @@ }, "defeat": { "1": "Você está totalmente carregado agora!\nWahahahaha!", + "1_female": "Você está totalmente carregada agora!\nWahahahaha!", "2": "Espero ver você faíscando em batalhas futuras!\nWahahahaha!", "3": "Wahahahaha! Que batalha eletrizante!" } @@ -1165,6 +1206,7 @@ }, "victory": { "1": "Você é o primeiro Treinador que vejo com mais graça do que eu.\nJogou excelentemente.", + "1_female": "Você é a primeira Treinadora que vejo com mais graça do que eu.\nJogou excelentemente.", "2": "Oh, meus Pokémon Voadores despencaram!\nMuito bem.", "3": "Embora eu tenha caído, meus Pokémon continuarão a voar!" }, @@ -1177,6 +1219,7 @@ "tate": { "encounter": { "1": "Hehehe... Ficou surpreso de me ver sem minha irmã?", + "1_female": "Hehehe... Ficou surpresa de me ver sem minha irmã?", "2": "Posso ver o que você está pensando...\nVocê quer batalhar!", "3": "Como você pode derrotar alguém...\nQue sabe todos os seus movimentos?" }, @@ -1194,6 +1237,7 @@ "liza": { "encounter": { "1": "Fufufu... Ficou surpreso de me ver sem meu irmão?", + "1_female": "Fufufu... Ficou surpresa de me ver sem meu irmão?", "2": "Posso determinar o que você deseja...\nVocê quer batalhar, não quer?", "3": "Como você pode derrotar alguém...\nQue é um com seus Pokémon?" }, @@ -1265,8 +1309,10 @@ "nessa": { "encounter": { "1": "Não importa que tipo de plano sua mente refinada possa estar tramando, meu parceiro e eu vamos afundá-lo.", + "1_female": "Não importa que tipo de plano sua mente refinada possa estar tramando, meu parceiro e eu vamos afundá-la.", "2": "Não estou aqui para conversar. Estou aqui para vencer!", - "3": "Este é um pequeno presente dos meus Pokémon... Espero que você possa recebê-lo!" + "3": "Este é um pequeno presente dos meus Pokémon... Espero que você possa recebê-lo!", + "3_female": "Este é um pequeno presente dos meus Pokémon... Espero que você possa recebê-la!" }, "victory": { "1": "Você e seus Pokémon são demais...", @@ -1287,6 +1333,7 @@ }, "victory": { "1": "Você... Você é muito bom, hein?", + "1_female": "Você... Você é muito boa, hein?", "2": "Se você encontrar Gordie por aí, certifique-se de dar uma boa surra nele, ok?", "3": "Acho que você levou a quebra de gelo um pouco literalmente demais..." }, @@ -1300,10 +1347,12 @@ "encounter": { "1": "Você parece forte! Vamos começar!", "2": "Sou forte como a amplitude do oceano. Você vai ser varrido, com certeza.", + "2_female": "Sou forte como a amplitude do oceano. Você vai ser varrida, com certeza.", "3": "Oh ho, então estou enfrentando você! Isso é fora do comum." }, "victory": { "1": "Você foi incrível! Está criando alguns Pokémon incríveis. Você dominou a coisa de Treinador!", + "1_female": "Você foi incrível! Está criando alguns Pokémon incríveis. Você dominou a coisa de Treinadora!", "2": "Você não apenas parece forte, você é forte de verdade! Eh, eu também fui varrido!", "3": "Você é forte como uma onda impressionante!" }, @@ -1316,6 +1365,7 @@ "shauntal": { "encounter": { "1": "Com licença. Você é um desafiante, certo?\nSou a usuária de Pokémon do tipo Fantasma da Elite dos Quatro, Shauntal, e serei sua oponente.", + "1_female": "Com licença. Você é uma desafiante, certo?\nSou a usuária de Pokémon do tipo Fantasma da Elite dos Quatro, Shauntal, e serei sua oponente.", "2": "Adoro escrever sobre Treinadores que vêm aqui e os Pokémon que treinam.\nPosso usar você e seus Pokémon como tema?", "3": "Cada pessoa que trabalha com Pokémon tem uma história para contar.\nQue história está prestes a ser contada?" }, @@ -1333,6 +1383,7 @@ "marshal": { "encounter": { "1": "Meu mentor, Alder, vê seu potencial como Treinador e está interessado em você.\nMeu objetivo é testá-lo—levar você aos limites da sua força. Kiai!", + "1_female": "Meu mentor, Alder, vê seu potencial como Treinadora e está interessado em você.\nMeu objetivo é testá-la—levar você aos limites da sua força. Kiai!", "2": "Vitória, vitória decisiva, é meu objetivo! Desafiante, aqui vou eu!", "3": "Em mim mesmo, procuro desenvolver a força de um lutador e eliminar qualquer fraqueza em mim!\nPrevalecendo com a força de minhas convicções!" }, @@ -1351,7 +1402,8 @@ "encounter": { "1": "Você me lembra um velho amigo. Isso me deixa animado para essa batalha Pokémon!", "2": "As batalhas Pokémon não têm sentido se você não pensa por que você batalha.\nOu melhor, isso torna as batalhas junto com Pokémon sem sentido.", - "3": "Meu nome é Cheren! Sou um Líder de Ginásio e professor! Prazer em conhecê-lo." + "3": "Meu nome é Cheren! Sou um Líder de Ginásio e professor! Prazer em conhecê-lo.", + "3_female": "Meu nome é Cheren! Sou um Líder de Ginásio e professor! Prazer em conhecê-la." }, "victory": { "1": "Obrigado! Vi o que estava faltando em mim.", @@ -1367,47 +1419,65 @@ "chili": { "encounter": { "1": "Ihuuu! Hora de brincar com FOGO!! Sou o mais forte dos nossos irmãos!", + "1_female": "Yeeeeeooow! Hora de brincar com FOGO!! Eu sou o mais forte de nós irmãos!", "2": "Ta-da! O incendiário do tipo Fogo Chili—sou eu—será seu oponente!", - "3": "Vou mostrar o que eu e meus tipos de Fogo podemos fazer!" + "2_female": "Tcharan! O escaldante Chili tipo Fogo (sou eu) será seu oponente!", + "3": "Vou mostrar o que eu e meus tipos de Fogo podemos fazer!", + "3_female": "Vou te mostrar o que eu e meus ardentes tipo Fogo podemos fazer!" }, "victory": { "1": "Você me pegou. Estou... queimado...", + "1_female": "Você me pegou. Eu estou… queimado… esgotado…", "2": "Uau! Você está pegando fogo!", + "2_female": "Uau! Você tá pegando fogo!", "3": "Ai! Você me pegou!" }, "defeat": { "1": "Estou pegando fogo! Jogue comigo, e você se queimará!", + "1_female": "Estou pegando fogo! Brinque comigo e você vai se queimar!", "2": "Quando você brinca com fogo, você se queima!", - "3": "Quero dizer, vamos lá, seu oponente era eu! Você não tinha chance!" + "3": "Quero dizer, vamos lá, seu oponente era eu! Você não tinha chance!", + "3_female": "Quero dizer, fala sério, seu oponente era eu! Você não teve chance!" } }, "cilan": { "encounter": { "1": "Nada pessoal... Sem ressentimentos... Eu e meus Pokémon do tipo Grama vamos...\nUm... Vamos batalhar, aconteça o que acontecer.", + "1_female": "Nada pessoal... Sem ressentimentos... Eu e meus Pokémon do tipo Grama vamos...\n$Hum... Nós iremos batalhar, aconteça o que acontecer.", "2": "Então, hum, se você está bem comigo, vou, hum, colocar tudo o que tenho em ser, er, você sabe, seu oponente.", - "3": "OK… Então, hum, eu sou o Cilan, gosto de Pokémon do tipo Grama." + "2_female": "Então, hum, se você estiver bem comigo, eu vou, hum, dar tudo o que tenho para ser, hum, você sabe, seu oponente.", + "3": "OK… Então, hum, eu sou o Cilan, gosto de Pokémon do tipo Grama.", + "3_female": "OK... Então, eu sou Cilan, eu gosto de Pokémon do tipo Grama." }, "victory": { "1": "Er... Acabou agora?", + "1_female": "Er… Já acabou?", "2": "…Que surpresa. Você é muito forte, não é?\nAcho que meus irmãos também não teriam sido capazes de te derrotar...", + "2_female": "…Que surpresa. Você é muito forte, não é? \n$Eu acho que meus irmãos também não conseguiriam derrotar você…", "3": "…Huh. Parece que meu timing estava, hum, errado?" }, "defeat": { "1": "Huh? Ganhei?", + "1_female": "Hein? Eu ganhei?", "2": "Acho...\nSuponho que ganhei, porque competi com meus irmãos Chili e Cress, e todos conseguimos ficar mais fortes.", - "3": "Foi... uma experiência bastante emocionante..." + "2_female": "Eu acho... \n$Eu acho que ganhei, porque eu estava competindo com meus irmãos Chili e Cress, e todos nós conseguimos ficar mais fortes.", + "3": "Foi... uma experiência bastante emocionante...", + "3_female": "Foi… foi uma experiência bastante emocionante…" } }, "roark": { "encounter": { "1": "Preciso ver seu potencial como Treinador. E, vou precisar ver a dureza dos Pokémon que batalham com você!", + "1_female": "Preciso ver seu potencial como Treinadora. E, vou precisar ver a dureza dos Pokémon que batalham com você!", "2": "Vamos lá! Estes são meus Pokémon de pedra, meu orgulho e alegria!", "3": "Pokémon do tipo Pedra são simplesmente os melhores!", - "4": "Preciso ver seu potencial como Treinador. E, vou precisar ver a dureza dos Pokémon que batalham com você!" + "4": "Preciso ver seu potencial como Treinador. E, vou precisar ver a dureza dos Pokémon que batalham com você!", + "4_female": "Preciso ver seu potencial como Treinadora. E, vou precisar ver a dureza dos Pokémon que batalham com você!" }, "victory": { "1": "O-o que? Isso não pode ser! Meus Pokémon fortificados!", "2": "...Perdemos o controle. Da próxima vez, gostaria de desafiá-lo a uma corrida de escavação de fósseis no subsolo.", + "2_female": "...Perdemos o controle. Da próxima vez, gostaria de desafiá-la a uma corrida de escavação de fósseis no subsolo.", "3": "Com habilidade como a sua, é natural que você vença.", "4": "O-o que?! Não pode ser! Nem isso foi suficiente?", "5": "Eu estraguei tudo." @@ -1430,6 +1500,7 @@ "victory": { "1": "Ainda não sou bom o suficiente...", "2": "Eu vejo... Sua jornada o levou a lugares distantes e você testemunhou muito mais do que eu.\nEu invejo você por isso...", + "2_female": "Eu vejo... Sua jornada a levou a lugares distantes e você testemunhou muito mais do que eu.\nEu invejo você por isso...", "3": "Como isso é possível...", "4": "Não acho que nossos potenciais sejam tão diferentes.\nMas você parece ter algo mais do que isso... Que seja.", "5": "Acho que preciso de mais treinamento.", @@ -1488,12 +1559,14 @@ "1": "Acho que deveria ter esperado por isso!" }, "defeat": { - "1": "Heh heh! Não ligue para mim, só pegando uma vitória aqui. Entendo se você estiver chateado, mas não vá dar uma de Kieran comigo, OK?" + "1": "Heh heh! Não ligue para mim, só pegando uma vitória aqui. Entendo se você estiver chateado, mas não vá dar uma de Kieran comigo, OK?", + "1_female": "Heh heh! Não ligue para mim, só pegando uma vitória aqui. Entendo se você estiver chateada, mas não vá dar uma de Kieran comigo, OK?" } }, "ramos": { "encounter": { - "1": "Você gostou do jardim de diversão que fiz com todas essas plantas resistentes minhas?\n$A força delas é um sinal da minha força como jardineiro e Líder de Ginásio! Você tem certeza de que está pronto para enfrentar tudo isso?" + "1": "Você gostou do jardim de diversão que fiz com todas essas plantas resistentes minhas?\n$A força delas é um sinal da minha força como jardineiro e Líder de Ginásio! Você tem certeza de que está pronto para enfrentar tudo isso?", + "1_female": "Você gostou do jardim de diversão que fiz com todas essas plantas resistentes minhas?\n$A força delas é um sinal da minha força como jardineiro e Líder de Ginásio! Você tem certeza de que está pronta para enfrentar tudo isso?" }, "victory": { "1": "Você acredita nos seus Pokémon... E eles acreditam em você também... Foi uma boa batalha, broto." @@ -1523,7 +1596,8 @@ }, "victory": { "1": "Devo dizer, estou aquecida para você! Posso até te admirar um pouco.", - "2": "Uau! Você é ótimo! Ganhou meu respeito!\n$Acho que seu foco e vontade nos derrubaram totalmente." + "2": "Uau! Você é ótimo! Ganhou meu respeito!\n$Acho que seu foco e vontade nos derrubaram totalmente.", + "2_female": "Uau! Você é ótima! Ganhou meu respeito!\n$Acho que seu foco e vontade nos derrubaram totalmente." }, "defeat": { "1": "Eu senti sua vontade de vencer, mas eu não perco!", @@ -1535,7 +1609,8 @@ "1": "Você tem uma aura vencedora. Então, de qualquer forma, isso vai ser divertido. Vamos ter nossa batalha!" }, "victory": { - "1": "Incrível! Você é muito bom, não é?" + "1": "Incrível! Você é muito bom, não é?", + "1_female": "Incrível! Você é muito boa, não é?" }, "defeat": { "1": "Sim! Meus Pokémon e eu somos perfeitamente bons!" @@ -1576,7 +1651,8 @@ }, "clay": { "encounter": { - "1": "Harrumph! Me deixou esperando, não foi, garoto? Tudo bem, hora de ver o que você pode fazer!" + "1": "Harrumph! Me deixou esperando, não foi, garoto? Tudo bem, hora de ver o que você pode fazer!", + "1_female": "Harrumph! Me deixou esperando, não foi, garota? Tudo bem, hora de ver o que você pode fazer!" }, "victory": { "1": "Cara, como é bom dar tudo de si e ainda assim ser derrotado!" @@ -1590,7 +1666,8 @@ "1": "Vou te servir um prato completo de Pokémon do tipo Água! Mas não tente comê-los!" }, "victory": { - "1": "Vaultin' Veluza! Você é animado, não é! Um pouco ANIMADO DEMAIS, se me permite dizer!" + "1": "Vaultin' Veluza! Você é animado, não é! Um pouco ANIMADO DEMAIS, se me permite dizer!", + "1_female": "Vaultin' Veluza! Você é animada, não é! Um pouco ANIMADA DEMAIS, se me permite dizer!" }, "defeat": { "1": "Volte para me ver novamente, ouviu?" @@ -1656,7 +1733,8 @@ "1": "Há algo em você… Uma diferença na sua postura. \n$Acho que sinto isso em você. Agora, me mostre. Mostre-me o poder que você tem com seus Pokémon. \n$E eu, por minha vez, apresentarei uma performance de ilusões na água com meus Pokémon!" }, "victory": { - "1": "Bravo. Agora percebo sua autenticidade e magnificência como Treinador de Pokémon. \n$Tenho muita alegria em ter conhecido você e seus Pokémon. Você se mostrou digno." + "1": "Bravo. Agora percebo sua autenticidade e magnificência como Treinador de Pokémon. \n$Tenho muita alegria em ter conhecido você e seus Pokémon. Você se mostrou digno.", + "1_female": "Bravo. Agora percebo sua autenticidade e magnificência como Treinadora de Pokémon. \n$Tenho muita alegria em ter conhecido você e seus Pokémon. Você se mostrou digna." }, "defeat": { "1": "Uma grande ilusão!" @@ -1664,13 +1742,15 @@ }, "lorelei": { "encounter": { - "1": "Ninguém me supera quando se trata de Pokémon gelados! Movimentos congelantes são poderosos!\n$Seus Pokémon estarão à minha mercê quando estiverem congelados! Hahaha! Está pronto?" + "1": "Ninguém me supera quando se trata de Pokémon gelados! Movimentos congelantes são poderosos!\n$Seus Pokémon estarão à minha mercê quando estiverem congelados! Hahaha! Está pronto?", + "1_female": "Ninguém me supera quando se trata de Pokémon gelados! Movimentos congelantes são poderosos!\n$Seus Pokémon estarão à minha mercê quando estiverem congelados! Hahaha! Está pronta?" }, "victory": { "1": "Como ousa!" }, "defeat": { - "1": "Não há nada que você possa fazer quando está congelado." + "1": "Não há nada que você possa fazer quando está congelado.", + "1_female": "Não há nada que você possa fazer quando está congelada." } }, "will": { @@ -1686,10 +1766,12 @@ }, "malva": { "encounter": { - "1": "Sinto que meu coração pode explodir em chamas. \n$Estou ardendo de ódio por você, pirralho!" + "1": "Sinto que meu coração pode explodir em chamas. \n$Estou ardendo de ódio por você, pirralho!", + "1_female": "Sinto que meu coração pode explodir em chamas. \n$Estou ardendo de ódio por você, pirralha!" }, "victory": { - "1": "Que novidade… Um novo desafiador derrotou Malva!" + "1": "Que novidade… Um novo desafiador derrotou Malva!", + "1_female": "Que novidade… Uma nova desafiadora derrotou Malva!" }, "defeat": { "1": "Estou encantada! Sim, encantada por poder esmagar você sob meu calcanhar." @@ -1711,7 +1793,8 @@ "1": "Dei a posição de capitão ao meu primo Sophocles, mas estou confiante na minha habilidade. \n$Minha força é como a de uma supernova!" }, "victory": { - "1": "Certamente encontrei um Treinador interessante para enfrentar!" + "1": "Certamente encontrei um Treinador interessante para enfrentar!", + "1_female": "Certamente encontrei uma Treinadora interessante para enfrentar!" }, "defeat": { "1": "Ahaha. Que batalha interessante." @@ -1722,10 +1805,12 @@ "1": "Eu diria que vou pegar leve com você, mas… estaria mentindo! Pense rápido!" }, "victory": { - "1": "Nada mal, garoto." + "1": "Nada mal, garoto.", + "1_female": "Nada mal, garota." }, "defeat": { - "1": "Nahahaha! Você realmente é algo mais, garoto!" + "1": "Nahahaha! Você realmente é algo mais, garoto!", + "1_female": "Nahahaha! Você realmente é algo mais, garota!" } }, "bruno": { @@ -1744,7 +1829,8 @@ "1": "Sou Bugsy! Eu nunca perco quando se trata de Pokémon do tipo Inseto!" }, "victory": { - "1": "Uau, incrível! Você é um especialista em Pokémon!\nMinha pesquisa ainda não está completa. OK, você venceu." + "1": "Uau, incrível! Você é um especialista em Pokémon!\nMinha pesquisa ainda não está completa. OK, você venceu.", + "1_female": "Uau, incrível! Você é uma especialista em Pokémon!\nMinha pesquisa ainda não está completa. OK, você venceu." }, "defeat": { "1": "Obrigado! Graças à nossa batalha, eu também pude fazer progressos na minha pesquisa!" @@ -1774,10 +1860,12 @@ }, "lenora": { "encounter": { - "1": "Bem, desafiador, vou pesquisar como você batalha com os Pokémon que criou com tanto carinho!" + "1": "Bem, desafiador, vou pesquisar como você batalha com os Pokémon que criou com tanto carinho!", + "1_female": "Bem, desafiadora, vou pesquisar como você batalha com os Pokémon que criou com tanto carinho!" }, "victory": { - "1": "Minha teoria sobre você estava correta. Você é mais do que talentoso… Você é motivado! Eu te saúdo!" + "1": "Minha teoria sobre você estava correta. Você é mais do que talentoso… Você é motivado! Eu te saúdo!", + "1_female": "Minha teoria sobre você estava correta. Você é mais do que talentosa… Você é motivada! Eu te saúdo!" }, "defeat": { "1": "Ah ha ha! Se você perder, certifique-se de analisar o porquê e use esse conhecimento na próxima batalha!" @@ -1802,7 +1890,8 @@ "1": "Selvagem! Sua razão já é mais tóxica que a minha!" }, "defeat": { - "1": "Ei, vamos lá! Seja sério! Você tem que dar mais de si!" + "1": "Ei, vamos lá! Seja sério! Você tem que dar mais de si!", + "1_female": "Ei, vamos lá! Seja séria! Você tem que dar mais de si!" } }, "olivia": { @@ -1840,7 +1929,8 @@ }, "flint": { "encounter": { - "1": "Espero que você esteja aquecido, porque aqui vem o Big Bang!" + "1": "Espero que você esteja aquecido, porque aqui vem o Big Bang!", + "1_female": "Espero que você esteja aquecida, porque aqui vem o Big Bang!" }, "victory": { "1": "Incrível! Seus movimentos são tão quentes que fazem os meus parecerem mornos!" @@ -1862,7 +1952,8 @@ }, "caitlin": { "encounter": { - "1": "Sou eu que apareci quando a flor se abriu. Você que estava esperando…\n$Você parece um Treinador de Pokémon com força refinada e bondade profunda. \n$O que eu procuro no meu oponente é uma força soberba… \n$Por favor, libere seu poder ao máximo!" + "1": "Sou eu que apareci quando a flor se abriu. Você que estava esperando…\n$Você parece um Treinador de Pokémon com força refinada e bondade profunda. \n$O que eu procuro no meu oponente é uma força soberba… \n$Por favor, libere seu poder ao máximo!", + "1_female": "Sou eu que apareci quando a flor se abriu. Você que estava esperando…\n$Você parece uma Treinadora de Pokémon com força refinada e bondade profunda. \n$O que eu procuro no meu oponente é uma força soberba… \n$Por favor, libere seu poder ao máximo!" }, "victory": { "1": "Meus Pokémon e eu aprendemos muito! Agradeço a você." @@ -1884,13 +1975,16 @@ }, "wikstrom": { "encounter": { - "1": "Bem encontrado, jovem desafiador! Verdadeiramente sou a lâmina famosa de aço endurecido, Duque Wikstrom! \n$Que a batalha comece! En garde!" + "1": "Bem encontrado, jovem desafiador! Verdadeiramente sou a lâmina famosa de aço endurecido, Duque Wikstrom! \n$Que a batalha comece! En garde!", + "1_female": "Bem encontrado, jovem desafiadora! Verdadeiramente sou a lâmina famosa de aço endurecido, Duque Wikstrom! \n$Que a batalha comece! En garde!" }, "victory": { - "1": "Glorioso! A confiança que você compartilha com seu honrado Pokémon supera até mesmo a minha!" + "1": "Glorioso! A confiança que você compartilha com seu honrado Pokémon supera até mesmo a minha!", + "1_female": "Gloriosa! A confiança que você compartilha com seu honrado Pokémon supera até mesmo a minha!" }, "defeat": { - "1": "Que tipo de magia é essa? Meu coração bate incessantemente no meu peito! \n$Vencer contra um oponente tão digno dá asas à minha alma--assim eu voo!" + "1": "Que tipo de magia é essa? Meu coração bate incessantemente no meu peito! \n$Vencer contra um oponente tão digno dá asas à minha alma--assim eu voo!", + "1_female": "Que tipo de magia é essa? Meu coração bate incessantemente no meu peito! \n$Vencer contra uma oponente tão digna dá asas à minha alma--assim eu voo!" } }, "acerola": { @@ -1922,11 +2016,14 @@ }, "victory": { "1": "Você me pegou. Você é magnífico!", - "2": "Nunca esperei que outro Treinador me derrotasse… Estou surpreso." + "1_female": "Você me pegou. Você é magnífica!", + "2": "Nunca esperei que outro Treinador me derrotasse… Estou surpreso.", + "2_female": "Nunca esperei que outra Treinadora me derrotasse… Estou surpreso." }, "defeat": { "1": "Isso foi por pouco. Quer tentar de novo?", - "2": "Não é que você seja fraco. Não se incomode com isso." + "2": "Não é que você seja fraco. Não se incomode com isso.", + "2_female": "Não é que você seja fraca. Não se incomode com isso." } }, "karen": { @@ -1951,7 +2048,8 @@ "1": "Parece que você entende bem os Pokémon. \n$Isso vai ser uma batalha e tanto! \n$Vou ter que usar a Dynamax no meu Pokémon se eu quiser vencer!" }, "victory": { - "1": "O poder da Grama murchou… Que desafiador incrível!" + "1": "O poder da Grama murchou… Que desafiador incrível!", + "1_female": "O poder da Grama murchou… Que desafiadora incrível!" }, "defeat": { "1": "Isso realmente vai te deixar em choque e admiração." @@ -1970,7 +2068,8 @@ }, "drasna": { "encounter": { - "1": "Você deve ser um Treinador forte. Sim, bastante forte…\n$Isso é uma notícia maravilhosa! Enfrentar oponentes como você e sua equipe fará meus Pokémon crescerem como ervas daninhas!" + "1": "Você deve ser um Treinador forte. Sim, bastante forte…\n$Isso é uma notícia maravilhosa! Enfrentar oponentes como você e sua equipe fará meus Pokémon crescerem como ervas daninhas!", + "1_female": "Você deve ser uma Treinadora forte. Sim, bastante forte…\n$Isso é uma notícia maravilhosa! Enfrentar oponentes como você e sua equipe fará meus Pokémon crescerem como ervas daninhas!" }, "victory": { "1": "Oh, meu Deus. Isso foi uma batalha rápida… Espero que você volte novamente algum dia!" @@ -2003,7 +2102,8 @@ }, "blue": { "encounter": { - "1": "Você deve ser muito bom para chegar tão longe." + "1": "Você deve ser muito bom para chegar tão longe.", + "1_female": "Você deve ser muito boa para chegar tão longe." }, "victory": { "1": "Só perdi para ele e agora para você… Ele? Hee, hee…" @@ -2050,7 +2150,8 @@ "1": "Ainda sou o Campeão. Não vou segurar nada." }, "victory": { - "1": "Esta é a emergência de um novo Campeão." + "1": "Esta é a emergência de um novo Campeão.", + "1_female": "Esta é a emergência de uma nova Campeã." }, "defeat": { "1": "Defendi com sucesso meu Campeonato." @@ -2138,7 +2239,8 @@ "1": "Eai! Você não acha que os Pokémon são, tipo, super fofos?" }, "victory": { - "1": "Waaah! Waaah! Você é tão mau!" + "1": "Waaah! Waaah! Você é tão mau!", + "1_female": "Waaah! Waaah! Você é tão má!" }, "defeat": { "1": "E é isso!" @@ -2146,7 +2248,8 @@ }, "chuck": { "encounter": { - "1": "Hah! Você quer me desafiar? É corajoso ou apenas ignorante?" + "1": "Hah! Você quer me desafiar? É corajoso ou apenas ignorante?", + "1_female": "Hah! Você quer me desafiar? É corajosa ou apenas ignorante?" }, "victory": { "1": "Você é forte! Por favor, me faça seu aprendiz?" @@ -2157,7 +2260,8 @@ }, "katy": { "encounter": { - "1": "Não baixe a guarda, a menos que queira se ver jogado no chão!" + "1": "Não baixe a guarda, a menos que queira se ver jogado no chão!", + "1_female": "Não baixe a guarda, a menos que queira se ver jogada no chão!" }, "victory": { "1": "Todos os meus adoráveis Pokémon caíram como moscas!" @@ -2190,7 +2294,8 @@ }, "maylene": { "encounter": { - "1": "Vim desafiá-lo agora e não vou segurar nada. \n$Por favor, prepare-se para a batalha!" + "1": "Vim desafiá-lo agora e não vou segurar nada. \n$Por favor, prepare-se para a batalha!", + "1_female": "Vim desafiá-la agora e não vou segurar nada. \n$Por favor, prepare-se para a batalha!" }, "victory": { "1": "Eu admito a derrota…" @@ -2212,7 +2317,8 @@ }, "byron": { "encounter": { - "1": "Treinador! Você é jovem, assim como meu filho, Roark. \n$Com mais Treinadores jovens assumindo o comando, o futuro dos Pokémon é brilhante! \n$Então, como uma parede para os jovens, aceitarei seu desafio!" + "1": "Treinador! Você é jovem, assim como meu filho, Roark. \n$Com mais Treinadores jovens assumindo o comando, o futuro dos Pokémon é brilhante! \n$Então, como uma parede para os jovens, aceitarei seu desafio!", + "1_female": "Treinadora! Você é jovem, assim como meu filho, Roark. \n$Com mais Treinadores jovens assumindo o comando, o futuro dos Pokémon é brilhante! \n$Então, como uma parede para os jovens, aceitarei seu desafio!" }, "victory": { "1": "Hmm! Meus Pokémon robustos--derrotados!" @@ -2234,7 +2340,8 @@ }, "volkner": { "encounter": { - "1": "Já que você chegou tão longe, deve ser bastante forte…\n$Espero que você seja o Treinador que me faça lembrar como é divertido batalhar!" + "1": "Já que você chegou tão longe, deve ser bastante forte…\n$Espero que você seja o Treinador que me faça lembrar como é divertido batalhar!", + "1_female": "Já que você chegou tão longe, deve ser bastante forte…\n$Espero que você seja a Treinadora que me faça lembrar como é divertido batalhar!" }, "victory": { "1": "Você me venceu…\n$Seu desejo e a maneira nobre como seus Pokémon batalharam por você… \n$Eu até me senti emocionado durante nossa luta. Foi uma batalha muito boa." @@ -2336,7 +2443,8 @@ }, "valerie": { "encounter": { - "1": "Oh, se não é um jovem Treinador… É adorável conhecê-lo assim. \n$Então, suponho que você ganhou o direito a uma batalha, como recompensa por seus esforços. \n$Uma elusiva Fada pode parecer frágil como a brisa e delicado como uma flor, mas é forte." + "1": "Oh, se não é um jovem Treinador… É adorável conhecê-lo assim. \n$Então, suponho que você ganhou o direito a uma batalha, como recompensa por seus esforços. \n$Uma elusiva Fada pode parecer frágil como a brisa e delicado como uma flor, mas é forte.", + "1_female": "Oh, se não é uma jovem Treinadora… É adorável conhecê-la assim. \n$Então, suponho que você ganhou o direito a uma batalha, como recompensa por seus esforços. \n$Uma elusiva Fada pode parecer frágil como a brisa e delicado como uma flor, mas é forte." }, "victory": { "1": "Espero que você encontre coisas para sorrir amanhã…" @@ -2383,7 +2491,8 @@ "1": "Deixe-me ver como você e seu Pokémon parceiro se comportam!" }, "victory": { - "1": "Seu rosa ainda está faltando, mas você é um Treinador excelente com Pokémon excelentes." + "1": "Seu rosa ainda está faltando, mas você é um Treinador excelente com Pokémon excelentes.", + "1_female": "Seu rosa ainda está faltando, mas você é uma Treinadora excelente com Pokémon excelentes." }, "defeat": { "1": "Muito ruim para você, eu acho." @@ -2391,7 +2500,8 @@ }, "bede": { "encounter": { - "1": "Suponho que devo provar além de qualquer dúvida o quão patético você é e quão forte eu sou." + "1": "Suponho que devo provar além de qualquer dúvida o quão patético você é e quão forte eu sou.", + "1_female": "Suponho que devo provar além de qualquer dúvida o quão patética você é e quão forte eu sou." }, "victory": { "1": "Eu vejo… Bem, tudo bem. Eu não estava me esforçando muito de qualquer maneira." @@ -2435,7 +2545,8 @@ }, "brassius": { "encounter": { - "1": "Pressuponho que você está pronto? Que nossa obra de arte colaborativa comece!" + "1": "Pressuponho que você está pronto? Que nossa obra de arte colaborativa comece!", + "1_female": "Pressuponho que você está pronta? Que nossa obra de arte colaborativa comece!" }, "victory": { "1": "Ahhh…avant-garde!" @@ -2446,10 +2557,12 @@ }, "iono": { "encounter": { - "1": "Como você está se sentindo sobre esta batalha?\n$...\n$Vamos começar o show! Quão forte é o nosso desafiador? \n$Eu não sei! Vamos descobrir juntos!" + "1": "Como você está se sentindo sobre esta batalha?\n$...\n$Vamos começar o show! Quão forte é o nosso desafiador? \n$Eu não sei! Vamos descobrir juntos!", + "1_female": "Como você está se sentindo sobre esta batalha?\n$...\n$Vamos começar o show! Quão forte é o nossa desafiadora? \n$Eu não sei! Vamos descobrir juntos!" }, "victory": { - "1": "Você é tão chamativo e brilhante quanto um Raio do Trovão de 10.000.000 volts, amigo!" + "1": "Você é tão chamativo e brilhante quanto um Raio do Trovão de 10.000.000 volts, amigo!", + "1_female": "Você é tão chamativa e brilhante quanto um Raio do Trovão de 10.000.000 volts, amiga!" }, "defeat": { "1": "Seus olhos são MEUS!" @@ -2471,7 +2584,8 @@ "1": "Vamos lá, baby! Me agite até os ossos!" }, "victory": { - "1": "Você é legal, meu amigo, você move minha ALMA!" + "1": "Você é legal, meu amigo, você move minha ALMA!", + "1_female": "Você é legal, minha amiga, você move minha ALMA!" }, "defeat": { "1": "Até mais, baby!" @@ -2505,7 +2619,9 @@ "nessa_elite": { "encounter": { "1": "As marés estão mudando a meu favor. Pronto para ser levado pela corrente?", - "2": "Vamos fazer ondas com esta batalha! Espero que esteja preparado!" + "1_female": "As marés estão mudando a meu favor. Pronta para ser levada pela corrente?", + "2": "Vamos fazer ondas com esta batalha! Espero que esteja preparado!", + "2_female": "Vamos fazer ondas com esta batalha! Espero que esteja preparada!" }, "victory": { "1": "Você navegou nessas águas perfeitamente... Bem feito!", @@ -2533,6 +2649,7 @@ "allister_elite": { "encounter": { "1": "As sombras caem... Você está pronto para enfrentar seus medos?", + "1_female": "As sombras caem... Você está pronta para enfrentar seus medos?", "2": "Vamos ver se você pode lidar com a escuridão que eu comando." }, "victory": { @@ -2555,7 +2672,8 @@ }, "defeat": { "1": "Outra tempestade enfrentada, outra vitória conquistada! Bem lutado!", - "2": "Você foi pego na minha tempestade! Melhor sorte na próxima vez!" + "2": "Você foi pego na minha tempestade! Melhor sorte na próxima vez!", + "2_female": "Você foi pega na minha tempestade! Melhor sorte na próxima vez!" } }, "alder": { diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 021e14d9727..44a190d8c11 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const zhCnConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/zh_CN/dialogue-double-battle-male.json b/src/locales/zh_CN/dialogue-double-battle-male.json deleted file mode 100644 index 5ab6bf49890..00000000000 --- a/src/locales/zh_CN/dialogue-double-battle-male.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "青绿:嘿,赤红,\n让这家伙看看我们是什么来头!$赤红: ...$青绿: 见识下真新镇的实力!" - }, - "victory": { - "1": "青绿:打得真不错$赤红: ..." - } - }, - "red_blue_double": { - "encounter": { - "1": "赤红: ...!$青绿: 他人狠话不多。$青绿: 但别被他耍了,\n毕竟他可是个冠军!" - }, - "victory": { - "1": "赤红: ...!$青绿: 下次我们一定会赢你!" - } - }, - "tate_liza_double": { - "encounter": { - "1": "小枫:嘿嘿嘿……你惊讶吗?$小南: 这里有两个道馆馆主?$小枫: 我们是双胞胎!$小南: 我们无需交谈,因为……$我们可以通晓彼此的想法$小枫: 我们的组合……$小南: 你能打败吗?" - }, - "victory": { - "1": "小枫:什么?我们的组合……$小南:被瓦解了!" - } - }, - "liza_tate_double": { - "encounter": { - "1": "小南:呵呵呵……你惊讶吧?$小枫:这里有两个道馆馆主?$小南:我们可以通晓……$小枫:彼此的想法……$小南:全在我们脑中!$小枫:我们的组合……$小南:你能打败吗?" - }, - "victory": { - "1": "小枫:你和你的宝可梦……$小南:简直像亲兄弟姐妹!" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "大吾:米可利, 展现冠军的实力吧!$米可利:我们将展示丰缘的实力!$大吾:要上了!" - }, - "victory": { - "1": "大吾:打得真不错!$米可利:我们下次会赢的!" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "大吾:你有什么稀有的宝可梦吗?$米可利:大吾……我们是来对战的,\n不是来炫耀宝可梦的。$大吾:哦……知道了… 那么要上了!" - }, - "victory": { - "1": "大吾:战斗结束了,\n来看看我的稀有宝可梦!$米可利:大吾……" - } - }, - "alder_iris_double": { - "encounter": { - "1": "阿戴克:我们俩是合众最强的训练家!$艾莉丝:与最强来一场最激烈的战斗吧!" - }, - "victory": { - "1": "阿戴克:哇哦!你真是超级厉害!$艾莉丝:我们下次会赢的啦!" - } - }, - "iris_alder_double": { - "encounter": { - "1": "艾莉丝:欢迎!挑战者,\n合众地区最强的冠军大驾光临!$阿戴克:艾莉丝,你是不是有点太兴奋了…" - }, - "victory": { - "1": "艾莉丝:这样的失败可不好受啊…$阿戴克:但是只有失败才能让我们变强!" - } - }, - "piers_marnie_double": { - "encounter": { - "1": "玛俐:哥哥,给他们展现尖钉镇的实力!$聂梓:我们带来黑暗!" - }, - "victory": { - "1": "玛俐:你的强光亮瞎我们的黑暗了啦……$聂梓:实在太亮了…" - } - }, - "marnie_piers_double": { - "encounter": { - "1": "聂梓: 台下准备好了吗!$玛俐: 哥哥,我们是来对战的,\n不是来唱歌的……" - }, - "victory": { - "1": "聂梓:这首歌献给大家!$玛俐:哥哥……" - } - } -} \ No newline at end of file diff --git a/src/locales/zh_CN/dialogue-double-battle-female.json b/src/locales/zh_CN/dialogue-double-battle.json similarity index 100% rename from src/locales/zh_CN/dialogue-double-battle-female.json rename to src/locales/zh_CN/dialogue-double-battle.json diff --git a/src/locales/zh_CN/dialogue-final-boss-male.json b/src/locales/zh_CN/dialogue-final-boss-male.json deleted file mode 100644 index edbc302dcd4..00000000000 --- a/src/locales/zh_CN/dialogue-final-boss-male.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "encounter": "看来终于又到了那个时候。\n你知道自己为何会来到这里,不是吗?\n$你被吸引到这里,因为你以前就来过这里。\n无数次。\n$尽管,或许可以数一数。\n准确地说,这实际上是你的第{{cycleCount}}次循环。\n$每一次循环,你的思想都会恢复到之前的状态。\n即便如此,不知何故,你之前自我的残留仍然存在。\n$直到现在,你仍未成功,\n但我感觉这次你身上有一种异样的气息。\n$你是这里唯一的人,尽管感觉上还有……另一个人。\n$你最终会成为对我来的一个硬茬吗?\n我渴望了数千年的挑战?\n$我们,开始。", - "firstStageWin": "我明白了。我所感觉到的气息确实是真实的。\n看来我不再需要保留实力了。\n$别让我失望。", - "secondStageWin": "…漂亮。" -} \ No newline at end of file diff --git a/src/locales/zh_CN/dialogue-final-boss-female.json b/src/locales/zh_CN/dialogue-final-boss.json similarity index 100% rename from src/locales/zh_CN/dialogue-final-boss-female.json rename to src/locales/zh_CN/dialogue-final-boss.json diff --git a/src/locales/zh_CN/dialogue-male.json b/src/locales/zh_CN/dialogue-male.json deleted file mode 100644 index 5a4615fac54..00000000000 --- a/src/locales/zh_CN/dialogue-male.json +++ /dev/null @@ -1,2691 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "嘿,想来对战吗?", - "2": "你也是新人训练师吗?", - "3": "嘿,我之前没见过你。我们来对战吧!", - "4": "我刚输了,所以我正在寻找更多的宝可梦。$等等!你看起来很弱!\n来吧,我们对战吧!", - "5": "我们见过面吗?我记不太清了。$嗯,不管怎样,很高兴见到你!", - "6": "好的!我们上吧!", - "7": "好的!我来啦!我会向你展示我的实力!", - "8": "嚯嚯嚯...我会向你展示我的宝可梦有多厉害!", - "9": "不要浪费时间打招呼。你准备好了就放马过来!", - "10": "别掉以轻心,$否则你可能会被小朋友打到哭鼻子哦。", - "11": "我精心培养了我的宝可梦。不许你伤害它们!", - "12": "恭喜你成功了!从这以后可不轻松哦。", - "13": "战斗永无止境!欢迎来到没有尽头的世界!" - }, - "victory": { - "1": "哇!你很强!", - "2": "我根本没机会赢,对吧?", - "3": "我会等长大了再来打败你!", - "4": "呃。我没有更多宝可梦了。", - "5": "不可能…不可能!我怎么可能又输了…", - "6": "不!我输了!", - "7": "哇!你真是太不可思议了!我既惊讶又钦佩!", - "8": "这怎么…怎么可能…$明明我和我的宝可梦是最强大的…", - "9": "下次我不会输了!我们找时间再对战吧!", - "10": "天哪!你看不出我还只是个小孩子吗!$你那样全力以赴太赖了!", - "11": "你的宝可梦更棒啊!和我交换吧!", - "12": "我之前有点上头,我说了什么来着?", - "13": "啊哈哈!就是这样!$对!你已经熟悉这个世界了!" - } - }, - "lass": { - "encounter": { - "1": "我们来对战吧,好吗?", - "2": "你看起来像是个新人训练师。我们来战斗吧!", - "3": "我不认识你。来对战怎么样?", - "4": "让我们来进行一场有趣的宝可梦对战吧!", - "5": "我会向你展示如何真正使用宝可梦!", - "6": "一场认真的对战从始于认真的开场白!$你确定你准备好了吗?", - "7": "花无重开日,人无再少年。$你在对战中只有一次机会。$很快,你就只能活在回忆中了。", - "8": "你最好对我手下留情,好吗?$当然我会认真对战的!", - "9": "学校很无聊,我无事可做。$*哈欠*…我只是来对战打发时间。" - }, - "victory": { - "1": "那真是令人印象深刻!我还有很多要学习。", - "2": "我没想到你会这么轻易地打败我…", - "3": "我希望有一天,我们能再进行一场对战。", - "4": "那真是场非常有趣的对战!$你让我精疲力尽了…", - "5": "你给我上了一课!你真是太棒了!", - "6": "说真的,我输了。$这,怎么说,真的好难过,但你也真的很厉害。", - "7": "我不需要像这样的记忆。删除记忆中…", - "8": "嘿!我告诉过你要对我手下留情!$不过,当你认真的时候,你真的很酷。", - "9": "实际上,我开始厌倦对战了…$一定有新的事情可以做…" - } - }, - "breeder": { - "encounter": { - "1": "听话的宝可梦,自私的宝可梦…$宝可梦有独特的性格呢。", - "2": "尽管我出生贫寒,但我的宝可梦培养的很好。", - "3": "嗯,你有没有管教你的宝可梦?$过度溺爱是不好的。" - }, - "victory": { - "1": "对每个宝可梦因材施教是很重要的。", - "2": "不像一无是处的我…这些宝可梦都很优秀。", - "3": "过度的赞美会宠坏宝可梦和人。" - }, - "defeat": { - "1": "即使输了,也不应该对你的宝可梦发火。", - "2": "相当好的宝可梦,对吧?我很会养东西。", - "3": "无论你多么爱你的宝可梦,$你仍要在它没做好时管教它们。" - } - }, - "breeder_female": { - "encounter": { - "1": "宝可梦永远不会背叛你。$它们会回报你对它们的爱。", - "2": "要我教教你训练优秀宝可梦的技巧吗?", - "3": "特别的宝可梦有特别的培育技巧。" - }, - "victory": { - "1": "呃…事情不应该是这样的。$我是不是用错了能量方块?", - "2": "这怎么会发生在我的宝可梦身上…$你给你的宝可梦喂了什么?", - "3": "如果我输了,我告诉你我只是在消磨时间。$你根本不会伤害到我的自尊心。" - }, - "defeat": { - "1": "这证明了我的宝可梦已经接受了我的爱。", - "2": "训出好宝可梦的真正技巧是捉到好的宝可梦。", - "3": "宝可梦的强弱取决于你的饲养方式。" - } - }, - "fisherman": { - "encounter": { - "1": "啊!你让我错过了一次咬钩!$你打算怎么办?", - "2": "走开!你吓跑了宝可梦!", - "3": "让我看看你能否赢得胜利!" - }, - "victory": { - "1": "算了吧。", - "2": "下一次,我将卷土重来,凯旋而归!", - "3": "我想这次我低估了海流。" - } - }, - "fisherman_female": { - "encounter": { - "1": "哇!我钓到了一条大鱼!", - "2": "线已收好,准备提竿!", - "3": "准备制造波浪!" - }, - "victory": { - "1": "我会带着更强大的鱼钩回来。", - "2": "下次我会赢得胜利。", - "3": "我只是在为回归磨利我的鱼钩!" - } - }, - "swimmer": { - "encounter": { - "1": "是时候潜水了!", - "2": "让我们一起乘风破浪,赢得胜利!", - "3": "该一鸣惊人了!" - }, - "victory": { - "1": "沉浸在失败中!", - "2": "失败的波浪!", - "3": "后浪死在沙滩上,我猜。" - } - }, - "backpacker": { - "encounter": { - "1": "收拾行李,开始游戏!", - "2": "让我看看你是否能跟上!", - "3": "全副武装,挑战者!", - "4": "我花了20年时间试图找到自己……但我在哪里?" - }, - "victory": { - "1": "这次绊倒了!", - "2": "哦,我觉得我迷路了。", - "3": "死路!", - "4": "等一下!嘿!你不知道我是谁吗?" - } - }, - "ace_trainer": { - "encounter": { - "1": "你看起来挺自信的。", - "2": "你的宝可梦…… 让我看看……", - "3": "因为我是王牌训练师,人们认为我很强。", - "4": "你知道成为王牌训练师需要什么吗?" - }, - "victory": { - "1": "是的…… 你的宝可梦很棒……", - "2": "什么?!我是战斗天才啊!", - "3": "理所应当,你才是主角!", - "4": "好好好!你可以成为王牌训练师!" - }, - "defeat": { - "1": "我将把我的身体和灵魂全都奉献给宝可梦对战!", - "2": "一切都在我的预料之中… \n没有什么好惊讶的…", - "3": "我觉得我长大后有点玻璃心,$你太压力我我会跨的……", - "4": "我当然很强大,不会输。$而且重要的是我要优雅地赢。" - } - }, - "parasol_lady": { - "encounter": { - "1": "是时候用优雅和从容来为战斗添彩了!" - }, - "victory": { - "1": "我的优雅依然完好无损!" - } - }, - "twins": { - "encounter": { - "1": "准备好咯,因为我们联手,\n麻烦双倍!", - "2": "两颗心,一条绳$让我们看看你能否跟上我们双胞胎的力量!", - "3": "希望你准备好了面对双倍的麻烦,$因为我们即将燃起来啦!" - }, - "victory": { - "1": "虽然我们在这一轮输了,$但我们的羁绊依然坚不可摧!", - "2": "我们的双胞胎精神,才不会就此熄灭。", - "3": "我们会作为充满活力的二人组,$卷土重来,变得更强!" - }, - "defeat": { - "1": "双胞胎的力量至高无上!", - "2": "两颗心,一起赢!", - "3": "笑容成双,共舞成双!" - } - }, - "cyclist": { - "encounter": { - "1": "准备好在我后面吃土吧!", - "2": "挑战者,准备好!我要把你打的落花流水!", - "3": "全速前进,让我看看你能不能跟的上!" - }, - "victory": { - "1": "轮子可能不转了,但我的决心没有停下。", - "2": "被超越了!", - "3": "通往胜利的道路还有许多曲折等待探索。" - } - }, - "black_belt": { - "encounter": { - "1": "我赞扬你挑战我的勇气!$因为我是踢力最强的人!", - "2": "哦,我明白了。你想被切成碎片吗?$或者你更喜欢当个沙袋?" - }, - "victory": { - "1": "哦。是宝可梦在战斗。$我强大的踢击一点忙都没帮上。", - "2": "嗯…如果我无论如何都会输,我希望能被彻底打败。" - } - }, - "battle_girl": { - "encounter": { - "1": "你不必试图勾引我。你可以输给我。" - }, - "victory": { - "1": "很难说再见,但我们快没时间了……" - } - }, - "hiker": { - "encounter": { - "1": "人到中年后,我的身体和我爬过的山一样强壮!", - "2": "我从父母那里遗传了这副魁梧的身材…$就像一座活生生的山脉…" - }, - "victory": { - "1": "至少在BMI方面我不能输!", - "2": "这还不够……永远不够。$我的坏胆固醇还不够高……" - } - }, - "ranger": { - "encounter": { - "1": "当我身处大自然中,其他事情都不重要了。", - "2": "如果我生活中没有大自然,有时就会突然感到焦虑。" - }, - "victory": { - "1": "无论我是赢是输,\n对广阔的大自然来说并不重要……", - "2": "与城市生活的窒息感相比,\n这种事情微不足道。" - }, - "defeat": { - "1": "我赢了。但与浩瀚的大自然相比,\n胜利算不了什么…", - "2": "与我的焦虑症相比,我觉得你也不会怎样…" - } - }, - "scientist": { - "encounter": { - "1": "我的研究将引导这个世界走向和平与欢乐。" - }, - "victory": { - "1": "我是个天才…我不应该输给你这样的人…" - } - }, - "school_kid": { - "encounter": { - "1": "……嘿嘿。我对计算和分析很有信心。", - "2": "我正在尽可能地积累经验,$因为我希望有一天能成为道馆馆主。" - }, - "victory": { - "1": "哦…计算和分析也许和个例不太匹配呀…", - "2": "我想,即使是艰难困苦的经历,也有存在的意义。" - } - }, - "artist": { - "encounter": { - "1": "我以前很受欢迎,但现在已经彻底过气了。" - }, - "victory": { - "1": "随着时代的变迁,价值观也在变化。$我意识到这一点已经太晚了。" - } - }, - "guitarist": { - "encounter": { - "1": "当我弹奏着走向胜利的旋律时,$准备好感受失败的节奏吧!" - }, - "victory": { - "1": "暂时沉默了,但我不屈的旋律将继续演奏。" - } - }, - "worker": { - "encounter": { - "1": "人们总误解我,这让我很烦。$我比大家想象的要干净得多。" - }, - "victory": { - "1": "我真的不想晒伤皮肤,所以我想在阴凉处工作。" - } - }, - "worker_female": { - "encounter": { - "1": "人们总是误解我,这让我很烦。 $我比大家想象的要干净得多。" - }, - "victory": { - "1": "我真的不想晒伤皮肤,\n所以我想在阴凉处工作。" - }, - "defeat": { - "1": "我的身体和心灵并不总同步。" - } - }, - "worker_double": { - "encounter": { - "1": "你会知道我们怎么击败你的。我们在工地训练过!" - }, - "victory": { - "1": "真奇怪…怎么会这样…我不应该被打败的。" - } - }, - "hex_maniac": { - "encounter": { - "1": "我通常只听古典音乐,但如果我输了,$我想我应该试试新时代的音乐!", - "2": "我的每一滴眼泪都让我变得更加坚强。" - }, - "victory": { - "1": "乐坛新时代的曙光就此出现了吗?", - "2": "现在我变得更强了。我随着他人怨恨而成长。" - }, - "defeat": { - "1": "“新时代”指的是二十世纪的古典作曲家,对吧?", - "2": "不要纠结于悲伤或沮丧。$你可以用悲愤来激励自己。" - } - }, - "psychic": { - "encounter": { - "1": "嘿!集中!" - }, - "victory": { - "1": "呃呃呃!" - } - }, - "officer": { - "encounter": { - "1": "准备好,因为正义即将得到伸张!", - "2": "准备好维护法律,在战场上伸张正义!" - }, - "victory": { - "1": "正义的分量比以往还要沉重……", - "2": "失败的阴影,在警局中徘徊。" - } - }, - "beauty": { - "encounter": { - "1": "我最后的战斗…我就是这么看待这场对战的…" - }, - "victory": { - "1": "很有趣…有时间再来一场最后的战斗…" - } - }, - "baker": { - "encounter": { - "1": "希望你准备好品尝失败的滋味!" - }, - "victory": { - "1": "我会卷土重来的。" - } - }, - "biker": { - "encounter": { - "1": "是时候加速,把你甩在后面了!" - }, - "victory": { - "1": "我会为下一场比赛调整状态。" - } - }, - "firebreather": { - "encounter": { - "1": "我的火焰会吞噬你!", - "2": "我的灵魂在燃烧,我要让你看看它有多滚烫!", - "3": "快来看看吧!" - }, - "victory": { - "1": "我燃成灰了…", - "2": "哟! 好烫!", - "3": "嗷! 我的鼻尖烧焦了!" - } - }, - "sailor": { - "encounter": { - "1": "伙计,如果你输了,你就得挨板子!", - "2": "来吧!这关系到我作为水手的尊严!", - "3": "你好啊!你晕船么?" - }, - "victory": { - "1": "啊,被孩子打败了。", - "2": "你的精神让我沉沦!", - "3": "好像是我晕船了…" - } - }, - "archer": { - "encounter": { - "1": "在你继续前进之前,\n让我看看你要如何和对付火箭队。", - "2": "我收到报告说你的实力与众不同,\n就让我来看看这是否属实吧。", - "3": "我是阿波罗,火箭对的干部。\n我不会对组织的敌人手软。" - }, - "victory": { - "1": "大失误……", - "2": "以我现在的实力,无法胜任我的任务……", - "3": "原……谅我,坂木。\n我竟被一名训练师打败了。." - } - }, - "ariana": { - "encounter": { - "1": "站住!我们可不能放过你!\n$这会损伤火箭对的名誉,明白吗?", - "2": "我不知道也不想知道我的所作所为正确与否…\n$我只要遵从坂木老大的指令就可以了!", - "3": "你的旅途到此为止了,我会把你狠狠扳倒!" - }, - "victory": { - "1": "切,你好强,可恶。\n$如果你加入火箭队,肯定能成为干部。", - "2": "好……好崩溃……", - "3": "嗯啊啊!这不可能!我使出全力还是输了!" - } - }, - "proton": { - "encounter": { - "1": "你想干什么?如果你要妨碍我们的事业,我可不会手下留情。", - "2": "你在这干什么?别人总说我是火箭队里最残忍和恐怖的人…\n$我强烈推荐你别来碍我们的事!", - "3": "我是兰斯,火箭队的干部。就让来扫除你对我们的阻挠。" - }, - "victory": { - "1": "我的防线崩溃了……", - "2": "你虽然这次赢了,但是这只是让火箭队的怒火继续燃烧!", - "3": "我输了…但是我不会忘记的。" - } - }, - "petrel": { - "encounter": { - "1": "哇哈哈哈,我们一直在等你。我?你不知道我是谁?是我,坂木啊。\n$伟大的坂木大人本人!哇哈哈哈!…啊?我听起来不像坂木吗?\n$我连看起来都不像?怎么会呢,我可认真的变装了!", - "2": "我是拉姆达,火箭队的干部。我不会允许你干涉我们的计划!", - "3": "火箭队干部拉姆达来会会这个入侵者!" - }, - "victory": { - "1": "好好好,我会说他在哪的", - "2": "我……我什么也做不了……坂木,请原谅我……", - "3": "不,我不能慌了神,必须通知其他人…" - } - }, - "tabitha": { - "encounter": { - "1": "呵呵呵!原来你都一路来到这里了!但你来晚了!", - "2": "呵呵呵……你终于来了?我们小瞧你了,没不过事! \n$我比你见过的所有队员都要厉害,我可不会拖延时间。\n$我会把你碾碎!", - "3": "我要让你尝尝痛苦的滋味!认命吧!" - }, - "victory": { - "1": "呵呵呵!虽然你打败了我,但你根本没机会打败老大!\n$如果你现在输了,你就不用面对那样严厉的鞭笞了!", - "2": "呵呵呵……所以,我也输了……", - "3": "啊哈!怎么会这样?像我这样的干部\n竟然输给了一个随处可见的训练师……" - } - }, - "courtney": { - "encounter": { - "1": "那个东西……你所拥有的那个东西……\n那就是……那就是我们熔岩队所寻找的东西……", - "2": "……那么……删除记忆……", - "3": "……哈……分析中……啊哈♪" - }, - "victory": { - "1": "……改变……世界。", - "2": "如预期。出乎意料。目标锁定…锁定你……完成。\n$开始……实验。材料是你…永远…啊哈……♪", - "3": "……又来了?出乎意料……我就知道。你……很有趣!……啊哈哈!♪" - } - }, - "shelly": { - "encounter": { - "1": "啊哈哈哈哈!你要插手海洋队的事?\n$你要么是绝对无畏,要么就是无知,或者两者兼有!\n$你太可爱了,太恶心了!我要把你打倒!", - "2": "怎么回事?这个小鬼头是谁?", - "3": "冷静点,耐心点。我很快就会把你击溃。" - }, - "victory": { - "1": "啊哈哈哈哈!我们意外地被人干扰了!我们别无选择。\n$不得不撤退了,但这会不是你最后一次面对海洋队!\n$我们还有其他计划!别忘了!", - "2": "啊?!我是不是对你太温柔了?!", - "3": "呃…难道在对战中你也一刻不停地在变强吗?\n$你真是个前途光明的小鬼……\n我和我的宝可梦已经没有任何力量去战斗了……\n$继续吧……准备去被水梧桐摧毁吧。" - } - }, - "matt": { - "encounter": { - "1": "嚯!哈哈哈!怎么,你是不是脑子不正常了?\n看看你,像个幕下力士!", - "2": "“哦吼!你!你真是个有趣的孩子!", - "3": "你在这里干什么?你跟踪我们了吗?" - }, - "victory": { - "1": "好吧,在老大有时间对付你之前,我来成为你的对手!", - "2": "我能感觉到!我感觉到了,没错!你身上散发出的力量!\n$更多!还想要更多!但看起来我们没时间了……", - "3": "真有趣!我就知道你会让我尽兴的!\n我期待有一天再次面对你!" - } - }, - "mars": { - "encounter": { - "1": "我是伙星,银河队的顶级干部之一。", - "2": "银河队对未来的愿景坚定不移。\n反对者将被无情地粉碎!", - "3": "“紧张吗?你是该感到紧张了!" - }, - "victory": { - "1": "这不可能!我怎么会输?!", - "2": "你很有本事,我承认。", - "3": "输了……犯了一个代价高昂的大错。" - } - }, - "jupiter": { - "encounter": { - "1": "岁星,银河队干部,为您效劳。", - "2": "抵抗是徒劳的。银河队必将获胜!", - "3": "你在发抖啊……已经害怕了吗?" - }, - "victory": { - "1": "不会吧……我输了?!", - "2": "厉害,你胆子真大!", - "3": "输成这样……真丢人。" - } - }, - "saturn": { - "encounter": { - "1": "我是镇星,银河队的干部。", - "2": "我们的使命是绝对的,任何阻碍都将被消灭!", - "3": "我从你的眼中看到的是恐惧吗?" - }, - "victory": { - "1": "不可能……被你打败了?!", - "2": "你证明了自己是一个值得尊敬的对手。", - "3": "失败的苦涩……难以接受……。" - } - }, - "zinzolin": { - "encounter": { - "1": "你可能会对等离子队构成威胁,所以我们现在就消灭你!", - "2": "哦,天哪……我没想到要在这么冷的天气里战斗!", - "3": "能走到今天这一步,你真是个了不起的训练师。\n但一切到此结束。" - }, - "victory": { - "1": "魁奇思大人……我让你失望了……", - "2": "好冷,我不仅发抖,还要遭罪。", - "3": "哼。你比我想象的要聪明,但还不够。" - } - }, - "rood": { - "encounter": { - "1": "你对等离子队是个威胁。我们现在不能让你离开这里!", - "2": "哦,这寒风……我从没想过我必须在这里战斗!", - "3": "能走到今天这一步,你是一位了不起的训练师,但这就是你的结局了。" - }, - "victory": { - "1": "魁奇思大人……我的任务失败了", - "2": "寒风刺骨。我瑟瑟发抖。我痛苦不堪。", - "3": "嗯,你是很有才。但是要打败等离子队还不够……!" - } - }, - "xerosic": { - "encounter": { - "1": "啊哈哈!我很乐意。\n来吧,小训练师!让我们看看你有什么本事!", - "2": "嗯……你比看上去更强大。\n我想知道你体内有多少能量。", - "3": "我一直在等你!我需要对你做一点研究!\n来吧,我们开始吧!" - }, - "victory": { - "1": "啊,你好强大啊……嗯……确实非常强大。", - "2": "叮叮叮!你成功了!\n战利品归胜利者!", - "3": "太棒了!太神奇了!\n你的技巧和勇气都无与伦比!" - } - }, - "bryony": { - "encounter": { - "1": "我是芭菈,能与你一战是我的荣幸。\n让我看看你的实力。", - "2": "令人印象深刻……你比你看上去的还要强大。\n让我们看看你真正的实力。", - "3": "我预料到了你的到来。\n是时候进行一个小实验了,我们开始吧?" - }, - "victory": { - "1": "你很强大。哦,嗯嗯!确实非常强大", - "2": "叮叮叮!你做得很好。胜利属于你。", - "3": "太棒了!了不起!你的技巧和勇气值得称赞。" - } - }, - "rocket_grunt": { - "encounter": { - "1": "你要有麻烦了!", - "2": "我们要干大事了!\n闪一边去,小子!", - "3": "把你的宝可梦交过来,\n不然就尝尝火箭队的厉害!", - "4": "你准备好感受火箭队真正的恐怖了吗!", - "5": "喂,小子!俺可是火箭队滴!" - }, - "victory": { - "1": "好讨厌的感觉啊!", - "2": "哎呀!不小心丢掉电梯钥匙啦!", - "3": "我搞砸了。", - "4": "我的伙计们不会放过你……!", - "5": "你说啥?俺们火箭队要玩完了?" - } - }, - "magma_grunt": { - "encounter": { - "1": "如果你挡在熔岩队路上,那就别指望我们手下留情!", - "2": "你最好别妨碍我们的计划!\n我们会让世界变得更美好!", - "3": "少碍事!熔岩队没时间理你这样的小孩!", - "4": "你有棉花糖没?我来给你好好烤烤!", - "5": "我们会利用火山的力量!\n它马上要…爆发了!懂吗?嘿嘿嘿……" - }, - "victory": { - "1": "哈?我输了?!", - "2": "我怎么会输!我为了训练饭都不吃了!", - "3": "不会吧,不就是一个小孩!", - "4": "呃啊…我得赶快逃回基地…", - "5": "你打败我了…你觉得老大会扣我工资吗?" - } - }, - "aqua_grunt": { - "encounter": { - "1": "即使是小孩,如果要和海洋队作对,也别指望我们手下留情!", - "2": "嚯…你好大的胆子,敢惹我们海洋队!", - "3": "不仅是我的水系宝可梦,整片大海即将淹没你!", - "4": "我们海洋队,是为了大义!", - "5": "准备好被我的…呃…我宝可梦的海流冲走吧!" - }, - "victory": { - "1": "你在开玩笑吧?", - "2": "害,没想到这种小屁孩也要管我的闲事!", - "3": "我输了?看来我得自己游回基地了。", - "4": "不是吧,怎么会,老大要生气了……", - "5": "你打败了我…老大不会要让我上跳板吧……" - } - }, - "galactic_grunt": { - "encounter": { - "1": "别惹银河队!", - "2": "见识下我们的科技,和我们所设想的未来!", - "3": "以银河队之名,我会扫清一切挡路的人!", - "4": "准备输的一败涂地吧!", - "5": "希望你做好被宇宙力量碾压的准备。" - }, - "victory": { - "1": "停机了…", - "2": "从长远来看,这次的挫折不用在意。", - "3": "小失败不会影响我们的宏图伟业!", - "4": "咋回事!?", - "5": "个人记录:提升对战水平,优先级,高……" - } - }, - "plasma_grunt": { - "encounter": { - "1": "异端不共戴天!", - "2": "要是我赢了你!就把你的宝可梦放生!", - "3": "要是敢和等离子队作对,我来好好关照你!", - "4": "等离子队会从你们这种自私的人手里解放宝可梦!", - "5": "我们的发型帅的一批,而我们的战斗水平呢,\n马上让你见识一下。" - }, - "victory": { - "1": "等离子子子子子子!", - "2": "我怎么会输……", - "3": "…没用的家伙!我得去偷个厉害点的宝可梦!", - "4": "伟大的事业总会被人阻挠…", - "5": "烂完了…烂烂烂烂烂!等离子队烂了!\n说短点就是,等烂子队!" - } - }, - "flare_grunt": { - "encounter": { - "1": "你的宝可梦无法与闪焰队的优雅相提并论", - "2": "带个墨镜吧,别被我闪瞎狗眼了!", - "3": "闪焰队将净化这个不完美的世界!", - "4": "准备面对闪焰队的美!", - "5": "时尚对我们来说最重要!" - }, - "victory": { - "1": "我的未来看起来并不明亮…", - "2": "这战斗比我想的更难搞,我得重头训练了。", - "3": "啊啊?我输了?!", - "4": "就算是在失败当中,闪焰队依旧优雅动人!", - "5": "你虽然打败了我,但是我输的也这么潇洒!" - } - }, - "aether_grunt": { - "encounter": { - "1": "我会用尽全力消灭你!", - "2": "我才不管你是不是小孩!\n只要和我们作对,我就把你打飞!", - "3": "上头要我拦下所有训练师,无论是谁!", - "4": "给你展现一下以太乐园的力量!", - "5": "既然你已经触达到了以太基金会的黑暗,\n那我要请你就此消失了。" - }, - "victory": { - "1": "哼!看来你有点实力。", - "2": "这什么情况!什么情况!", - "3": "啊!你怎么这么强!我这下可没法阻止你!", - "4": "嗯……看来我输了……", - "5": "我惊掉大牙了……" - } - }, - "faba": { - "encounter": { - "1": "我,分部长扎奥博, \n给你见识下现实世界的残酷吧!", - "2": "堂堂以太乐园的最后防线,\n我扎奥博竟然要跟个毛头小子对战。", - "3": "我,扎奥博,以太基金会分部长。\n世上唯一,无可替代!" - }, - "victory": { - "1": "哎咿呀!", - "2": "怎……怎么可能!这孩子!", - "3": "这就是……这就是为啥我讨厌小孩子!" - } - }, - "skull_grunt": { - "encounter": { - "1": "我们并不坏,YO,我们是硬汉!", - "2": "YO!咋样!我们就这样打招呼!\n混个脸熟呗,崽子!", - "3": "咱们就是一帮对别人的宝可梦\n比较感兴趣的哥们和姐们!", - "4": "别装B了,你有我们拽吗,老弟?", - "5": "骷髅队在此!没钱住房子!\n天天找乐子!青春混到死!" - }, - "victory": { - "1": "哈?这就完了?", - "2": "该逃跑了YO!闪一边去YO!", - "3": "你这种弱鸡宝可梦反正我们也不要!", - "4": "啥!? 这小屁孩也太牛B了!", - "5": "MAN!我能说什么,\n我的人生比宝可梦还烂。" - } - }, - "plumeria": { - "encounter": { - "1": " …哼嗯,你看起来也没啥特别的。", - "2": "这帮呆子对付你也花了太长时间了吧……", - "3": "要是惹了骷髅队的人!我就不和你开玩笑了!" - }, - "victory": { - "1": "哼嗯!你很强,我承认。", - "2": "哼,你是挺强的。现在我知道\n为啥那帮手下要花那么久对付一个小孩了。", - "3": "哼嗯!看来我得承认我输了。" - } - }, - "macro_grunt": { - "encounter": { - "1": "你的对战生涯到此为止了。", - "2": "你是一名训练师吧\n你没有干涉我们工作的权力!", - "3": "我是马洛科蒙集团的,要买马洛科蒙人寿保险吗。" - }, - "victory": { - "1": "除了礼貌地撤退我似乎别无选择…", - "2": "没法留住我的零花钱了,我又要财政赤字了…", - "3": "没人能比马洛科蒙集团的我们工作更卷!" - } - }, - "oleana": { - "encounter": { - "1": "我不会让你方案洛兹先生的计划!", - "2": "看来你打倒了所有我安排的训练师,本身也没对他们有啥期待…", - "3": "为了总裁!我不会输的!" - }, - "victory": { - "1": "*叹气*我赢不了。\n奥利薇,你真是个没用的女人", - "2": "呃啊!不可饶恕...我在想什么。\n走到这里的训练师果然不会轻易屈服!", - "3": "*叹气*奥利薇累累了……" - } - }, - "rocket_boss_giovanni_1": { - "encounter": { - "1": "我不得不说,能来到这里,你的确很不简单!" - }, - "victory": { - "1": "什么!这不可能!" - }, - "defeat": { - "1": "记住我的话。无法衡量自己的力量,说明你还是个孩子。" - } - }, - "rocket_boss_giovanni_2": { - "encounter": { - "1": "我的老伙计还需要我…你要挡我的路吗?" - }, - "victory": { - "1": "这怎么可能…?\n火箭队的梦想…就这么成为泡影了…" - }, - "defeat": { - "1": "火箭队会重生,而我会统治世界!" - } - }, - "magma_boss_maxie_1": { - "encounter": { - "1": "我会亲手埋葬你,希望你能喜欢!" - }, - "victory": { - "1": "啊!你…很厉害…我落后了…一点…" - }, - "defeat": { - "1": "熔岩队必胜!" - } - }, - "magma_boss_maxie_2": { - "encounter": { - "1": "你是我实现目标最后的障碍。\n准备好迎接我最强的一击吧!哈哈哈哈!" - }, - "victory": { - "1": "这…这不…呃" - }, - "defeat": { - "1": "现在…我要把这个星球变成人类的理想国度!" - } - }, - "aqua_boss_archie_1": { - "encounter": { - "1": "我是海洋队的老大,所以,你的路大概走到头了。" - }, - "victory": { - "1": "下次再见吧。我会记住你的脸的。" - }, - "defeat": { - "1": "天才!我的队伍不会再退缩了!" - } - }, - "aqua_boss_archie_2": { - "encounter": { - "1": "我等这一天很久了。\n这就是我的真实力量!" - }, - "victory": { - "1": "果然很强……啊!" - }, - "defeat": { - "1": "我会让这世界上的一切回归到最初的纯净状态!!" - } - }, - "galactic_boss_cyrus_1": { - "encounter": { - "1": "但在这之前,让我见识见识你那敢向银河队叫板的实力吧。" - }, - "victory": { - "1": "有意思,简直太有意思了。" - }, - "defeat": { - "1": "我要创造我的新世界…" - } - }, - "galactic_boss_cyrus_2": { - "encounter": { - "1": "是啊,我和你还真是有缘呢。\n不过,这段孽缘…就让我在此斩断吧!" - }, - "victory": { - "1": "怎么可能!怎么可能!怎么可能!" - }, - "defeat": { - "1": "永别了。" - } - }, - "plasma_boss_ghetsis_1": { - "encounter": { - "1": "无论是谁做了什么!都无法阻止我!" - }, - "victory": { - "1": "怎么回事?我可是建立了等离子队的完美的人啊!\n是要改变世界的完美的统治者!" - }, - "defeat": { - "1": "我是坐拥世界的完美统治者!哇哈哈哈!" - } - }, - "plasma_boss_ghetsis_2": { - "encounter": { - "1": "来吧!让我看看你彻底绝望时的那张脸!" - }, - "victory": { - "1": "不!我的伟大目标!我要完全支配世界啊!" - }, - "defeat": { - "1": "酋雷姆!融合吧!" - } - }, - "flare_boss_lysandre_1": { - "encounter": { - "1": "你想要阻止我?在对战中展示给我看吧!" - }, - "victory": { - "1": "看来你的确是想要阻止我。但是,先等一下。" - }, - "defeat": { - "1": "宝可梦…不该存在。" - } - }, - "flare_boss_lysandre_2": { - "encounter": { - "1": "你我的未来…究竟哪个才正确,\n就让我们来问问各自的宝可梦吧!" - }, - "victory": { - "1": "哇啊啊啊!" - }, - "defeat": { - "1": "没有远见的蠢货会继续玷污这个美丽的世界。" - } - }, - "aether_boss_lusamine_1": { - "encounter": { - "1": "你吓到我可爱的异兽了!我要让你先闭嘴!" - }, - "victory": { - "1": "你…你怎么这么不听话!" - }, - "defeat": { - "1": "哼嗯…" - } - }, - "aether_boss_lusamine_2": { - "encounter": { - "1": "为什么你要一直妨碍我!\n我受够你了,完完全全受够了! \n$不用说废话了…有了虚吾伊德的力量。\n我会让你明白,你来这里是有多么错误!" - }, - "victory": { - "1": "呃呃啊啊啊啊呜呜呜啊啊!" - }, - "defeat": { - "1": "我只要和我可爱的异兽在一起就好了!你们怎么样都无所谓了!" - } - }, - "skull_boss_guzma_1": { - "encounter": { - "1": "摧毁,摧毁,\n不管摧毁几次也从不手软\n$惹人厌的古兹马大爷在此。" - }, - "victory": { - "1": "切,我一定要找时间干掉你!" - }, - "defeat": { - "1": "大老远跑来就这,昂?" - } - }, - "skull_boss_guzma_2": { - "encounter": { - "1": "不管谁与我作对,我都会干掉他们!\n$这就是大坏蛋古兹马的全部!" - }, - "victory": { - "1": "古兹马!!你在干什么啊!!!" - }, - "defeat": { - "1": "你们真够蠢的!" - } - }, - "macro_boss_rose_1": { - "encounter": { - "1": "我必须为所有人提供无限的能源,实现繁荣。$这是我的目的,我的责任,我的使命!" - }, - "victory": { - "1": "你还是没有明白,训练师\n$我们…不,我要推动历史的进程啊!" - }, - "defeat": { - "1": "你完全不理解!" - } - }, - "macro_boss_rose_2": { - "encounter": { - "1": "我致力于解决伽勒尔的能源问题\n——当然也是全世界的能源问题。\n$我的经验与成果,造就了马洛科蒙集团,证明了我的正确与成功!\n$就算输了,我也不会改变主意的……" - }, - "victory": { - "1": "我都忘记宝可梦对战的魅力了!我太久没有着手对战了…\n$这的确让人很满足,我接受我的失败!" - }, - "defeat": { - "1": "我承认我做的事情非常渗人,我也不指望你能理解。\n$但我必须为伽勒尔地区提供无限的能源,确保永久的繁荣。" - } - }, - "brock": { - "encounter": { - "1": "我对岩石属性宝可梦的专精会击败你!来吧!", - "2": "我磐石般的意志将压倒你!", - "3": "让我展示给你看看,我宝可梦真正的力量!" - }, - "victory": { - "1": "你宝可梦的力量战胜了我坚如磐石的防御!", - "2": "世界很大!很高兴有机会和你战斗。", - "3": "也许我应该回去追寻我成为宝可梦饲养员的梦想……" - }, - "defeat": { - "1": "最好的进攻就是坚固的防守!$那是我做事的方式!", - "2": "下次来和我一起研究岩石属性,$更好地了解如何与它们对战!", - "3": "哈哈,我在各地的旅行有所回报了!" - } - }, - "misty": { - "encounter": { - "1": "我的战策就是使用水属性宝可梦全面进攻!", - "2": "嗨,我会让你见识我的水属性宝可梦的力量!", - "3": "我的梦想是踏上旅程,与强大的训练师战斗……$你能满足我吗?" - }, - "victory": { - "1": "你真的很强……我承认,你有技术的……", - "2": "哼……你知道你只是运气好,对吧?!", - "3": "哇,你太过分了!不敢相信你打败我了!" - }, - "defeat": { - "1": "强大的小霞对你来说,太过分了吗?", - "2": "我希望你看到了我宝可梦优雅的游泳技巧!", - "3": "你的宝可梦无法匹敌我的心腹和骄傲!" - } - }, - "lt_surge": { - "encounter": { - "1": "我的电属性宝可梦在战争中救了我!$我来给你展示一下!", - "2": "立正!我要电到你投降!", - "3": "我会像对待敌军一样,狠狠电你!" - }, - "victory": { - "1": "哇!你的队伍有真家伙,小子!", - "2": "啊啊,你很强!连我的电击技巧都输给了你。", - "3": "这失败真是把我给电麻了!" - }, - "defeat": { - "1": "哦耶!我的电属性宝可梦是世界第一!", - "2": "哈哈哈!真是一场电动人心的战斗,小子!", - "3": "宝可梦对战等于战争,$我向你展示了军队中的格斗技巧!" - } - }, - "erika": { - "encounter": { - "1": "啊,这里天气真好…$哦,对战?那好吧。", - "2": "我在宝可梦对战上的造诣,$可以与我的插花技巧相媲美。", - "3": "哦,希望我宝可梦的宜人香气\n不会再让我睡着…", - "4": "看看花园里的花朵,如此令人心旷神怡。" - }, - "victory": { - "1": "哦!我认输啦~", - "2": "这场比赛非常愉快。", - "3": "啊,看来我输了…", - "4": "哦,我的天哪。" - }, - "defeat": { - "1": "我怕我会打瞌睡…", - "2": "哦,我天。看来我的草属性宝可梦击败了你。", - "3": "那场战斗是如此令人心旷神怡。", - "4": "哦…这就完啦?" - } - }, - "janine": { - "encounter": { - "1": "我正在掌握毒属性攻击的艺术。$今天我来和你过过招!", - "2": "父亲相信我能独当一面。$我来证明他说的对!", - "3": "我的忍术,仅次于我的父亲!$你能跟的上吗?" - }, - "victory": { - "1": "就算现在,我仍然需要继续训练…我明白了。", - "2": "你的战斗技巧,超过了我。", - "3": "我要好好努力提高我的技术。" - }, - "defeat": { - "1": "呵呵…毒液耗尽了你所有的力量。", - "2": "哈!你根本无法抵挡我卓越的忍技!", - "3": "我没有辜负父亲对我的信任。" - } - }, - "sabrina": { - "encounter": { - "1": "我的超能力预见了你的到来!", - "2": "我不喜欢战斗,但如果你想,$我会展示我的实力!", - "3": "我能感觉到你的雄心壮志。$我倒要看看你是不是虚有其表。" - }, - "victory": { - "1": "你的力量……远远超出了我的预知……", - "2": "我没有准确预测到你的实力。", - "3": "即使我强大的超能力也无法感知到你这样强大的人。" - }, - "defeat": { - "1": "这场胜利……和我看到的未来一样啊!", - "2": "也许我预感到有强大实力的人,是另一个……", - "3": "在你奋不顾身投入战斗之前,\n磨练你的能力。$如果你这样做,你才未来可期……" - } - }, - "blaine": { - "encounter": { - "1": "哈!希望你带了烧伤治疗药!", - "2": "我火热的宝可梦将所有挑战者都焚烧殆尽!", - "3": "准备好玩火吧!" - }, - "victory": { - "1": "我已经焚烧殆尽了!甚至连灰烬都没有留下!", - "2": "我没有把火焰煽得足够高吗?", - "3": "我燃尽了……但这让我进步的动力燃烧得更旺了!" - }, - "defeat": { - "1": "我的熊熊烈火无法被扑灭!", - "2": "我的宝可梦因这次胜利而变得更加强大!", - "3": "哈!我的激情燃得比你的更热烈!" - } - }, - "giovanni": { - "encounter": { - "1": "我,火箭队的领袖,\n会让你的世界感受到痛苦!", - "2": "我在这里的训练在我再次面对老朋友之前至关重要。", - "3": "我认为你还没有准备好迎接你即将经历的失败!" - }, - "victory": { - "1": "什么!我输了?! 我没什么可和你说的!", - "2": "哼……你永远无法理解我希望实现的目标。", - "3": "这次失败只是暂时的。$我将找准时机,让火箭队浴火重生。" - }, - "defeat": { - "1": "不知自己几斤几两,\n说明你仍然只是一个孩子。", - "2": "不要再试图干涉我。", - "3": "我希望你明白挑战我是多么愚蠢。" - } - }, - "roxanne": { - "encounter": { - "1": "您能否展示一下您是如何战斗的么?", - "2": "你可以和更多训练师战斗来学到很多东西。", - "3": "哦,被你抓到我正在用功了~$你想战斗吗?" - }, - "victory": { - "1": "哦,看来我输了。$我明白了。", - "2": "看来我在战斗方面还有更多东西要学。", - "3": "我会把今天在这里学到的东西铭记于心。" - }, - "defeat": { - "1": "从我们的对战中,我学到了很多。$希望你也是。", - "2": "我期待再次与你战斗。$希望你能运用在此学到的东西。", - "3": "我凭借我所学到的一切赢得了胜利。" - } - }, - "brawly": { - "encounter": { - "1": "哦,伙计,挑战者!$让我看看你的能耐!", - "2": "你看起来很厉害嘛。$来对战吧!", - "3": "是时候掀起风暴了!$我们上吧!" - }, - "victory": { - "1": "哦哇,你把我冲走了!", - "2": "你驾驭了我的海浪,把我打败了!", - "3": "我觉得我就像是在武斗洞窟里迷路了!" - }, - "defeat": { - "1": "哈哈,我驾驭了大浪!$有时间再挑战我吧。", - "2": "再和我一起冲浪吧!", - "3": "就像潮水的涨落,\n我希望你也能再来挑战我。" - } - }, - "wattson": { - "encounter": { - "1": "是时候被电击了!$哈哈哈!", - "2": "我要让火星子飞蹦!$哈哈哈!", - "3": "我希望你带了麻痹药!$哇哈哈哈!" - }, - "victory": { - "1": "看来我的电量用完了!$哇哈哈哈!", - "2": "你完全接地了是吧!$哇哈哈哈!", - "3": "谢谢你给我电了一下!$哇哈哈哈!" - }, - "defeat": { - "1": "电充充满,有时间再挑战我吧!$哇哈哈哈!", - "2": "我希望你觉得我们的战斗激情似电!$哇哈哈哈!", - "3": "你没想到我赢了吧?$哇哈哈哈!" - } - }, - "flannery": { - "encounter": { - "1": "很高兴见到你!等等,不对……$我要粉碎你!", - "2": "我才当道馆主没多久,\n但我会让你灰飞烟灭!", - "3": "是时候展示爷爷教给我的招式了!来对战吧!" - }, - "victory": { - "1": "你让我想起了我的爷爷……$难怪我输了。", - "2": "我是不是太努力了?$我应该放松,不能太上头了。", - "3": "失败才不会呛到我。$是时候重新点燃训练了!" - }, - "defeat": { - "1": "我希望我让祖父感到骄傲了……$有时间我们再战斗吧。", - "2": "我……我简直不敢相信我赢了!$按照自己的方式做事奏效了!", - "3": "早点用炽热的招式再来交手吧!" - } - }, - "norman": { - "encounter": { - "1": "我没想到你能一路来到这里。$我们来对战吧。", - "2": "作为道馆主,我会尽一切努力赢得胜利。$我们开始吧!", - "3": "你最好全力以赴。$对战的时候到了!" - }, - "victory": { - "1": "我输给了你……?$但规则就是规则。", - "2": "难道我不该从城都搬家吗……?", - "3": "我不敢相信。$这是一场好对战。" - }, - "defeat": { - "1": "我们都尽力了。$希望我们不久之后能再对战。", - "2": "你应该尝试挑战我的孩子。$可能会有一些收获!", - "3": "谢谢你精彩的战斗。$下次好运。" - } - }, - "winona": { - "encounter": { - "1": "我一直在天空中翱翔寻找猎物…$而你就是我的目标!", - "2": "不管战况如何,我都会和我的飞行宝可梦$以优雅的姿态获胜。来战斗吧!", - "3": "我希望你不怕高。$我们一起升上高空吧!" - }, - "victory": { - "1": "你是我见过的第一位比我更有风度的训练师。$打的非常出色。", - "2": "哦,我的飞行系宝可梦都已经坠落了!$好吧。", - "3": "尽管我倒下了,我的宝可梦将继续翱翔!" - }, - "defeat": { - "1": "我与我的飞行系宝可梦,\n将永远优雅地起舞!", - "2": "我希望你喜欢我们的演出。$我们优雅的舞蹈已经落幕。", - "3": "你愿意再来观看我们优雅的编舞吗?" - } - }, - "tate": { - "encounter": { - "1": "嘿嘿嘿…$看到我没和妹妹在一起,很惊讶么?", - "2": "我可以读懂你在想什么…$你想要战斗!", - "3": "你如何击败一个…$读懂你一举一动的人?" - }, - "victory": { - "1": "赢不了啊…$我想小南了…", - "2": "你和宝可梦之间的联系比我们更强。", - "3": "如果我和小南联手,我们会赢的。$我们可以了解彼此的想法!" - }, - "defeat": { - "1": "我和我的宝可梦无与伦比!", - "2": "如果你连我都打不过,\n你肯定也打不过小南。", - "3": "这多亏了我和小南的严格训练。$我可以与宝可梦一心同体。" - } - }, - "liza": { - "encounter": { - "1": "呵呵呵…$看到我没和哥哥一起,很惊讶吗?", - "2": "我可以读懂你渴望什么…$你想战斗,不是吗?", - "3": "你如何击败一个…$与宝可梦们一心同体的人?" - }, - "victory": { - "1": "赢不了啊…$我想小枫了…", - "2": "你和宝可梦之间的联系…$比我强。", - "3": "如果我和小枫在一起,我们会赢的。$我们甚至可以接上彼此的话!" - }, - "defeat": { - "1": "我和我的宝可梦势不可挡。", - "2": "如果你连我都打不过,\n你肯定也打不过小枫。", - "3": "这多亏了我和小枫的严格训练。$我可以与我的宝可梦一心同体。" - } - }, - "juan": { - "encounter": { - "1": "别害羞啊。$我们来战斗吧!", - "2": "啊哈哈哈,敬请期待\n我和水属性宝可梦的盛大演出!", - "3": "我就是正在逼近的风暴!$你能经受住考验吗?", - "4": "请你见证我们的表演。$由我和宝可梦共同创造的宏伟水之幻境!" - }, - "victory": { - "1": "你可能是一个能挑战米可利的天才!", - "2": "我专注于优雅,而你刻苦锻炼。$你能击败我是很正常的。", - "3": "啊哈哈哈!$好吧,这次你赢了。", - "4": "从你身上,我感受到了技巧的光辉,\n它将战胜一切。" - }, - "defeat": { - "1": "宝可梦和我创造的水之幻境,让我取得了胜利。", - "2": "啊哈哈哈,我赢了,你输了。", - "3": "要我把我的服装借给你吗?\n可能能帮到你对战啊!$啊哈哈哈,我开玩笑的!", - "4": "我是赢家!也就是说,你输了。" - } - }, - "crasher_wake": { - "encounter": { - "1": "极限! 极限! 看好了!$极限假面…就此…登场!", - "2": "极限! 极限! 极限假面!", - "3": "我是滔滔巨浪,将你冲走!" - }, - "victory": { - "1": "我真是笑得合不拢嘴啊!$哈哈哈!那真是太有趣了!", - "2": "呼哇!结束收尾了!$我该怎么说呢……$我还想再对战!我还想再继续战斗!", - "3": "啊啊啊啊啊!?" - }, - "defeat": { - "1": "耶!就是这样!", - "2": "我赢了,但我还想要更多!\n我还想再更多地战斗!", - "3": "再见!" - } - }, - "falkner": { - "encounter": { - "1": "我将向你展示华丽的飞行宝可梦真正的力量!", - "2": "风啊,伴我同行!", - "3": "爸爸!我希望你能在空中注视着我的战斗!" - }, - "victory": { - "1": "明白了……我会礼貌地退场。", - "2": "输了就是输了。你确实很强大。", - "3": "…行吧! 嗯, 我输了。" - }, - "defeat": { - "1": "爸爸!我用你珍爱的飞行宝可梦赢了……", - "2": "飞行系宝可梦才是最强的!", - "3": "感觉我正在追赶上我的父亲!" - } - }, - "nessa": { - "encounter": { - "1": "无论你的小脑瓜子在搞什么阴谋诡计,$我和我的搭档都会确保它石沉大海。", - "2": "我来这里可不是为了闲聊,\n而是为了赢!", - "3": "这是我的宝可梦给你的一点小礼物……\n我希望你能接受!" - }, - "victory": { - "1": "你和你的宝可梦太过分了……", - "2": "怎么……?这怎么可能?!", - "3": "我完全被冲走了!" - }, - "defeat": { - "1": "汹涌的海浪再次袭来!", - "2": "是时候乘风破浪,取得胜利了!", - "3": "诶嘿嘿!" - } - }, - "melony": { - "encounter": { - "1": "我不会手下留情!", - "2": "好吧,我想我们应该开始了。", - "3": "我会把你冻得结结实实的!" - }, - "victory": { - "1": "你……你可厉害了,是不是?", - "2": "如果你找到玛瓜,一定要好好教训他,好吗?", - "3": "你的破冰方式有点过于直接了呢……" - }, - "defeat": { - "1": "现在你知道战斗有多残酷了吧?", - "2": "嘿!看来我又赢了!", - "3": "你是在保留实力吗?" - } - }, - "marlon": { - "encounter": { - "1": "你看起来很强!来吧!让我们开始吧!", - "2": "我的强大像大海一样无边无际。$你会被我冲走,绝对的。", - "3": "哦豁,由我来面对你!这可不得了咯!" - }, - "victory": { - "1": "你太厉害了!\n你培养了一些非常强大的宝可梦啊,$你已经掌握了训练师的精髓!", - "2": "你不仅仅是看起来,\n你是真的强,真的!$呃,我也被冲走了!", - "3": "你像凶猛的波浪一样强壮!" - }, - "defeat": { - "1": "你很强,但这还不足以动摇大海,懂?", - "2": "嘻!看来我又赢了!", - "3": "甜蜜的胜利!" - } - }, - "shauntal": { - "encounter": { - "1": "打扰了。你是挑战者,对吗?$我是四天王的幽灵系宝可梦使用者,$婉龙,我将是你的对手。", - "2": "我非常喜欢描写来到这里的训练师,\n以及他们训练的宝可梦。$我可以用你和你的宝可梦作为主题吗?", - "3": "每个与宝可梦相处的人都有故事要讲。$接下来要讲的故事是怎样的呢?" - }, - "victory": { - "1": "哇。我惊呆了!", - "2": "对…对不起!我必须先向我的宝可梦道歉……$都是因为我让你们有了不好的经历,真的很抱歉!", - "3": "你要知道,我仍然是四天王之一!" - }, - "defeat": { - "1": "额呵呵。", - "2": "给了我下一部小说的绝佳素材!", - "3": "就这样,又一篇故事来到尾声……" - } - }, - "marshal": { - "encounter": { - "1": "我的师傅,阿戴克,\n看到了你作为训练师的潜力,$对你很有兴趣。$我要来考验你——挖掘你力量的极限。\n丹田发力!", - "2": "胜利,决定性的胜利,\n正是我所求!挑战者,我来了!", - "3": "在我的心中,我寻求着成为战士的力量,\n克服自身的所有弱点!$以我的信念,取胜!" - }, - "victory": { - "1": "呼!干得好!", - "2": "不要停止战斗,追求更高的目标!", - "3": "你和你宝可梦展现的力量\n给我留下了深刻的印象……" - }, - "defeat": { - "1": "嗯…", - "2": "这真是场好战斗。", - "3": "哈啊!哈啊!嗨呀啊!" - } - }, - "cheren": { - "encounter": { - "1": "你让我想起了一位老朋友。$这让我对这场宝可梦战斗感到兴奋!", - "2": "不考虑清楚这一点,\n宝可梦对战就没有了意义。$这就是失去了和宝可梦一同战斗的意义。", - "3": "我的名字是黑连!我是道馆馆主,\n也是老师!$很高兴认识你。" - }, - "victory": { - "1": "谢谢……我又能发现自己的不足了。", - "2": "谢谢…接近理想的道路…我好像隐约看到了。", - "3": "嗯……这值得思考。" - }, - "defeat": { - "1": "作为道馆馆主,我要成为你要跨越的壁垒!", - "2": "好吧!", - "3": "正因为有宝可梦,我们才能走到这里。$为什么宝可梦会帮助我们,\n这个恐怕不仅是宝可梦与训练家…$而是生命与生命之间的问题。" - } - }, - "chili": { - "encounter": { - "1": "咿呀!是时候玩火了!!我是三兄弟中最强的!", - "2": "嗒哒!如火似焰的伯特——就是我\n——你接下来的对手!", - "3": "我将向你展示,\n我和我炽热的火系宝可梦的能耐!" - }, - "victory": { - "1": "被你干掉了。我……燃尽了……", - "2": "哇吼!你燃起来了!", - "3": "啊!被你干碎了!" - }, - "defeat": { - "1": "我燃起来啦!和我玩儿,你就会被烫伤!", - "2": "你要是玩儿火,就会被烫伤!", - "3": "我说,拜托,\n你的对手是我,没机会赢的!" - } - }, - "cilan": { - "encounter": { - "1": "无关个人情感…也不会有艰难的感受…$我和我的草属性宝可梦会…$呃…不管什么样的对手我们都会应战的。", - "2": "所以,呃,如果你愿意的话,我会,\n呃,尽我所能做好,呃,你知道的,你的对手。", - "3": "好吧……所以,我是天桐,\n我喜欢草属性宝可梦。" - }, - "victory": { - "1": "呃……已经结束了吗?", - "2": "…真是太意外了。你真…强。$看起来就算是伯特或寇恩都赢不了你…", - "3": "…嗯。看起来我来的…不是时候?" - }, - "defeat": { - "1": "哈?我赢了?", - "2": "我想…$我想我赢了,因为我一直在和我的兄弟伯特和寇恩竞争,\n我们都变得更强了。", - "3": "…这…这是一次非常吓人的经历呢…" - } - }, - "roark": { - "encounter": { - "1": "我需要看看你作为训练师的潜力。$还有,我要看看与你并肩作战的宝可梦的坚韧!", - "2": "来吧!这些是我的岩石系宝可梦,我的骄傲!", - "3": "岩石属性宝可梦就是最强的!", - "4": "我要看看你作为训练师的潜力。$还要看看与你并肩作战的宝可梦的坚韧!" - }, - "victory": { - "1": "什么?不可能!我强化的宝可梦们!", - "2": "……我大脑过载了。$下次邀请你参加地下的化石挖掘比赛。", - "3": "有你这种技术,赢得胜利是很正常的。", - "4": "什么?!连这也不够?", - "5": "我搞砸了。" - }, - "defeat": { - "1": "看?我为我的摇滚战斗风格感到骄傲!", - "2": "谢谢!这场战斗给了我自信,$我感觉能够打败我父亲了!", - "3": "我感觉就像我砸穿了一块顽石!" - } - }, - "morty": { - "encounter": { - "1": "只要我再多努力一点,我就能看到我遇到传说中的宝可梦的未来!$你会帮助我达到那个水平!", - "2": "据说,彩虹色的宝可梦会\n出现在真正强大的训练师面前。 $我一直相信着这个美丽的传说,\n所以,从出生开始,\n就在这里进行着秘密的修行。$因为这样,其他人看不到的东西\n我也能够看得到…$我看到的,是那个将传说中的宝可梦\n召唤到这片大地上的人的影子。$我一直相信,那就是我自己!\n希望你也能助我一臂之力!", - "3": "无论你相信还是不相信,神秘的力量确实存在。", - "4": "你可以见证我训练的成果。", - "5": "你必须让你与宝可梦的灵魂合二为一。你能做到吗?", - "6": "嘿,你想成为我训练的一部分吗?" - }, - "victory": { - "1": "我还不够好……", - "2": "我明白了…你的旅程…去了遥远的地方,你见过的比我多得多。$我羡慕你…", - "3": "这怎么可能……", - "4": "我认为我们的潜力没什么不同。$但是,我觉得你并不简单,似乎还有什么……", - "5": "我想我需要更多的训练。", - "6": "那太遗憾了" - }, - "defeat": { - "1": "我又向前迈进了一步。", - "2": "呵呵呵……", - "3": "什…么?!那还不够?", - "4": "我感觉就像我砸穿了一块顽石!", - "5": "哈哈哈啊!", - "6": "我知道我会赢!" - } - }, - "crispin": { - "encounter": { - "1": "我想赢,所以接下来我正要赢!", - "2": "我想对战就对战!懂吗!就应该这样!" - }, - "victory": { - "1": "我想赢……但我还是输了!", - "2": "我输了……因为我赢不了!" - }, - "defeat": { - "1": "嘿,等一下。我是不是赢了?$我觉得我赢了!太满足了!", - "2": "哇哦!那太棒了!" - } - }, - "amarys": { - "encounter": { - "1": "我想帮助某个人。因此,我不能输。$…我们的战斗现在开始。" - }, - "victory": { - "1": "我还不够,我明白了。" - }, - "defeat": { - "1": "胜利属于我。打得好。" - } - }, - "lacey": { - "encounter": { - "1": "我将用我平时的队伍\n作为四天王的一员面对你。" - }, - "victory": { - "1": "打得真好呀~" - }, - "defeat": { - "1": "让我们为你宝可梦的努力给予热烈的掌声!" - } - }, - "drayton": { - "encounter": { - "1": "哥们,我喜欢椅子。\n你喜欢椅子吗?简直是救星。$我不明白为什么大家不一直坐着。\n站着多累人!" - }, - "victory": { - "1": "我早该想到的!" - }, - "defeat": { - "1": "嘿嘿嘿!别介意我,\n我只是在这里小赢一下。$如果你不开心,我懂,\n但别因为我对乌栗发火,OK?" - } - }, - "ramos": { - "encounter": { - "1": "我用那些强壮的植物\n盖出来的游乐场精彩吗?$它们的力量象征着我这个园丁兼道馆馆主的实力,\n你真的确定能够与之抗衡吗?" - }, - "victory": { - "1": "你信任你的宝可梦,\n它们也信任你…不错的战斗,小豆芽。" - }, - "defeat": { - "1": "呵呵呵…确实,\n脆弱的小草甚至能穿透混凝土。" - } - }, - "viola": { - "encounter": { - "1": "败阵时的后悔,胜利的瞬间…$都是最棒的影象!很好呀,很好呀!$那么来吧!", - "2": "我的镜头总会聚焦在胜利上,\n我不会让任何事情破坏这个画面!" - }, - "victory": { - "1": "你和你的宝可梦向我展示了一个全新的镜头机位!\n很好呀,很好呀!", - "2": "你通过镜头看到的世界,\n和你与宝可梦并肩作战时看到的世界…$视角不同,即使是同一个世界看起来也完全不同。" - }, - "defeat": { - "1": "我胜利那一刻的照片,\n将是一个真正的赢家,对吧!", - "2": "是的!我拍了些很棒的照片!" - } - }, - "candice": { - "encounter": { - "1": "向小菘我挑战吗?好啊!\n我就是在等待强者$但是我也气势高昂,很强哦?", - "2": "宝可梦也好,时尚也好,恋爱也好,\n无论做什么都气势高昂!$就说到这儿吧,让你见识一下我的气势,\n要做好觉悟哦!" - }, - "victory": { - "1": "好厉害!我有点尊敬你了。", - "2": "好厉害!我有点尊敬你了!$嗯,感觉是被你的气势给压倒了。" - }, - "defeat": { - "1": "你的气势我看到了,但我还是不会输的!", - "2": "怎么样?小菘我的气势!\n宝可梦们的气势满满哦!" - } - }, - "gardenia": { - "encounter": { - "1": "你身上有一种胜利的气息。\n那么不管怎样,$这应该会是场有趣的战斗。\n让我们对战吧!" - }, - "victory": { - "1": "太棒了!你可擅长对战了,不是吗?" - }, - "defeat": { - "1": "太好了!我的宝可梦和我都很棒!" - } - }, - "aaron": { - "encounter": { - "1": "好的!让我来接受你的挑战!" - }, - "victory": { - "1": "战斗是一件深刻而复杂的事情……" - }, - "defeat": { - "1": "战胜一位四天王并不容易。" - } - }, - "cress": { - "encounter": { - "1": "没!错!你必须面对\n与我和我高贵的水属性的战斗!" - }, - "victory": { - "1": "输了?我?我不敢相信。" - }, - "defeat": { - "1": "当你的对手是我时,这是必然的结果。" - } - }, - "allister": { - "encounter": { - "1": "我是欧尼奥。$我…我来了……" - }, - "victory": { - "1": "我差点被吓得丢了面具…那真是…$哇。我可以看清你真正的实力。" - }, - "defeat": { - "1": "这真是太棒了!" - } - }, - "clay": { - "encounter": { - "1": "咳咳! 让我好等,不是吗,孩子?$好吧,是时候看看你能做到什么了!" - }, - "victory": { - "1": "真是的……我先说好,\n我可没有手下留情。" - }, - "defeat": { - "1": "最重要的是输掉的时候该怎么办。$只要你能在失败中找到教训,\n就能够不断地成长!" - } - }, - "kofu": { - "encounter": { - "1": "我会给你上一整道水系宝可梦大餐!\n但别真吃了它们!" - }, - "victory": { - "1": "吃了吗!你真是活力又新鲜啊,\n不是吗!$就是有点太鲜活了!" - }, - "defeat": { - "1": "你要再来找我,听见了吗?" - } - }, - "tulip": { - "encounter": { - "1": "请让我运用我的化妆技巧,$让你可爱的小宝可梦变得更美丽!" - }, - "victory": { - "1": "你妆点的力量宛如魔法加固,\n完全冲洗不掉啊。" - }, - "defeat": { - "1": "你知道吗,在我这行,\n那些没天赋的人往往会很快消失,$再也不会被提起。" - } - }, - "sidney": { - "encounter": { - "1": "你给我的印象不错,\n我猜这会是一场精彩的对战。$很棒!看起来真的很棒!$你和我,让我们享受一场\n只能在这里上演的战斗吧!" - }, - "victory": { - "1": "嗯,你觉得怎样?我输了!\n嗯,不过这很有趣,所以无所谓啊。" - }, - "defeat": { - "1": "别介意,OK?" - } - }, - "phoebe": { - "encounter": { - "1": "过去我在修行时得到了\n能与幽灵宝可梦亲密交流的能力。$没错,我和宝可梦之间\n有著强烈的羁绊。$那么,来试试看你有没有能力\n伤到我的宝可梦吧!" - }, - "victory": { - "1": "哦,天呀。我输了。" - }, - "defeat": { - "1": "我期待着下次再和你战斗!" - } - }, - "glacia": { - "encounter": { - "1": "我在这儿见到的尽是些\n弱不禁风的训练家和宝可梦。$你又如何呢?如果你能让我不得不用\n上全力的话就再好不过了!" - }, - "victory": { - "1": "你和你的宝可梦…\n你们的灵魂燃烧得多么热烈啊!$这股激烈的热能仿佛能征服一切。\n$难怪我的冰属性技巧也奈何不了你了。" - }, - "defeat": { - "1": "一场充满激情的战斗,确实。" - } - }, - "drake": { - "encounter": { - "1": "对于我们这些将宝可梦视为\n同伴一同战斗的训练家来说,$你知道怎样才能赢得胜利吗?\n你知道获得胜利的条件吗?$如果你不知道,\n那么你永远也无法战胜我!" - }, - "victory": { - "1": "干得漂亮,就是这样。" - }, - "defeat": { - "1": "我在这场战斗中全力以赴了!" - } - }, - "wallace": { - "encounter": { - "1": "你的气质变了,\n我能感觉到这一点。$现在,把你和你的宝可梦\n的力量展现给我看吧。$作为回礼,就由我和我的宝可梦\n演出一场水之幻影吧!" - }, - "victory": { - "1": "精彩。此刻,我能从你身上感觉到\n身为宝可梦训练家的可靠与高贵。$我真荣幸能遇到你和你的宝可梦。" - }, - "defeat": { - "1": "伟大的幻影!" - } - }, - "lorelei": { - "encounter": { - "1": "只要能让我用冰属性宝可梦,\n就绝对没人能赢得过我!\n能冻住对方可是很厉害的哦!$因为如果被冻住,你的宝可梦就无法动弹了!\n啊哈哈!你做好觉悟了吧!" - }, - "victory": { - "1": "你怎么敢!" - }, - "defeat": { - "1": "一旦你被冻结,你就什么都做不了。" - } - }, - "will": { - "encounter": { - "1": "我曾经环游世界,\n日以继夜地做着超能力宝可梦的修行之旅。$我会不断变强!没理由会在这里输掉!" - }, - "victory": { - "1": "……不会吧……" - }, - "defeat": { - "1": "就差一点。\n我想知道你缺少了什么。" - } - }, - "malva": { - "encounter": { - "1": "我的内心可是一直燃烧着呢。$燃烧着对你的怒火!" - }, - "victory": { - "1": "挑战者出色地击败了四天王之一,帕琦拉。" - }, - "defeat": { - "1": "真开心啊,能将你彻底粉碎!" - } - }, - "hala": { - "encounter": { - "1": "老哈拉让你放开嗓子!" - }, - "victory": { - "1": "我能感受到你在旅途中获得的力量。" - }, - "defeat": { - "1": "啊哈哈。多么有趣的战斗。" - } - }, - "rika": { - "encounter": { - "1": "我要对你手下留情,但……骗你的啦!$好好动脑!" - }, - "victory": { - "1": "不错,小子。" - }, - "defeat": { - "1": "啊哈哈哈哈!你真的很特别,小子!" - } - }, - "molayne": { - "encounter": { - "1": "我将队长的位置让给了我的表弟马玛内,\n但我对自己的能力很有信心。 $我的力量就像超新星一样!" - }, - "victory": { - "1": "我发现了一个有趣的训练师对手!" - }, - "defeat": { - "1": "啊哈哈。多么有趣的战斗。" - } - }, - "bruno": { - "encounter": { - "1": "我们将用势不可挡的力量磨灭你!呼哈!" - }, - "victory": { - "1": "为什么?我怎么会输?" - }, - "defeat": { - "1": "你可以随意挑战我,\n但结果永远不会改变!" - } - }, - "bugsy": { - "encounter": { - "1": "我是阿笔!\n对虫系宝可梦的熟悉不会输给任何人的!" - }, - "victory": { - "1": "哇,太棒了!\n你是个宝可梦专家!$我的研究还没有完成。\n好吧,你赢了。" - }, - "defeat": { - "1": "谢谢!多亏了我们的战斗,\n我的研究也取得了进展!" - } - }, - "koga": { - "encounter": { - "1": "哇哈哈哈哈!$宝可梦不仅仅是关于蛮力,拭目以待吧!" - }, - "victory": { - "1": "啊!你证明了自己!" - }, - "defeat": { - "1": "懂不懂要对忍者的技巧心神畏惧?" - } - }, - "bertha": { - "encounter": { - "1": "啊,让老婆婆看看你学到了什么?" - }, - "victory": { - "1": "好吧,亲爱的孩子,\n不得不说,那令人印象深刻。$你的宝可梦相信你并尽最大努力为你赢得胜利。$尽管我输了,\n我也止不住笑呢!" - }, - "defeat": { - "1": "哈哈哈!看来老婆婆我赢了!" - } - }, - "lenora": { - "encounter": { - "1": "那么,挑战者,让我来研究$你与你精心养育的宝可梦要如何战斗!" - }, - "victory": { - "1": "我关于你的理论是正确的。$你不仅仅是有天赋……你很努力!\n我向你致敬!" - }, - "defeat": { - "1": "啊哈哈!如果你输了,\n一定要分析原因,$并在下一场战斗中运用那些知识!" - } - }, - "siebold": { - "encounter": { - "1": "只要我活着,我将不断努力寻求终极美食…$以及和最强的对手战斗!" - }, - "victory": { - "1": "您的事迹,我志米铭记在心。" - }, - "defeat": { - "1": "我们的宝可梦战斗就像我灵魂的养料。\n它将让我继续前进。$这就是我将向你表示敬意的方式,\n感谢你在战斗中全力以赴!" - } - }, - "roxie": { - "encounter": { - "1": "准备好了吗!我要给你上一课!" - }, - "victory": { - "1": "够野的!你的想法比我的还要毒!" - }, - "defeat": { - "1": "嘿,拜托!认真点!\n你要加把劲啊!" - } - }, - "olivia": { - "encounter": { - "1": "没什么开场白。\n是时候和我丽姿,战斗了!" - }, - "victory": { - "1": "真的很可爱……你和你的宝可梦……" - }, - "defeat": { - "1": "嗯哼。" - } - }, - "poppy": { - "encounter": { - "1": "哦!你想和我进行宝可梦对战么?" - }, - "victory": { - "1": "呜哇?!嘛……" - }, - "defeat": { - "1": "耶!我做到了!我击~败~了~你!\n你可以来…打…复仇之战?$只要你想,随时来打复仇之战吧!" - } - }, - "agatha": { - "encounter": { - "1": "宝可梦是为战斗而生的! \n让我来告诉你什么是真正的战斗吧!" - }, - "victory": { - "1": "呵呵!你可真是了不起!" - }, - "defeat": { - "1": "额哈哈哈,真正的战斗就是该这样。" - } - }, - "flint": { - "encounter": { - "1": "希望你已经热身完毕,\n因为这里即将大爆炸!" - }, - "victory": { - "1": "不可思议!$你的动作如此火热,让我看起来温吞吞的!" - }, - "defeat": { - "1": "嗯?就这吗?\n我觉得你得再激情点。" - } - }, - "grimsley": { - "encounter": { - "1": "一无所有,\n或者,赢下所有!" - }, - "victory": { - "1": "一旦失败,\n就意味着失去一切……$下一次我要追寻胜利!" - }, - "defeat": { - "1": "如果有人赢了,\n和他对战的人就会输。" - } - }, - "caitlin": { - "encounter": { - "1": "当花儿绽开时、我便出现。\n成为你在等待的人…$你似乎同时具备实力和善意$我所寻找的是拥有卓越力量的对手…$请用出你的全力吧!" - }, - "victory": { - "1": "我和我的宝可梦学到了很多!非常感谢。" - }, - "defeat": { - "1": "我渴望以优雅的姿态取得胜利。" - } - }, - "diantha": { - "encounter": { - "1": "与你的宝可梦对战\n让你充满了未来的希望…$说真的,这让我更有活力地面对新的一天,确实如此!" - }, - "victory": { - "1": "拥有高尚灵魂的训练家和宝可梦的身姿,\n让我的心激烈地震颤…" - }, - "defeat": { - "1": "哦,太棒了!你觉得怎么样?\n我的队伍很酷吧~对吧?" - } - }, - "wikstrom": { - "encounter": { - "1": "年轻的挑战者,幸会!\n我乃是著名的钢铁之刃,公爵雁铠! $让我们开始战斗吧!预备!" - }, - "victory": { - "1": "辉煌!你与你尊贵的\n宝可梦之间的信任居然胜过了我!" - }, - "defeat": { - "1": "哦哦哦!这是怎么回事,\n我的心止不住地在震颤! $与如此有价值的对手的胜利\n让我的灵魂飞翔——我心翱翔!" - } - }, - "acerola": { - "encounter": { - "1": "对战只是找个乐子!来吧,我来会会你!" - }, - "victory": { - "1": "我……我说不出话!你是怎么做到的?!" - }, - "defeat": { - "1": "哈哈!真是吓人倒怪的胜利呀!" - } - }, - "larry_elite": { - "encounter": { - "1": "……你好,我是青木。$麻烦的是我还要兼任四天王。" - }, - "victory": { - "1": "好吧,我们翅膀下的疾风止于你这了啊…" - }, - "defeat": { - "1": "是时候和老板开会了。" - } - }, - "lance": { - "encounter": { - "1": "我一直在等你。让我来试试你有几斤几两。", - "2": "我知道你能走这么远。让我们开始吧。" - }, - "victory": { - "1": "被你拿下了啊。你太出色了!", - "2": "我从没想到会有另一个训练师打败我……$我很惊讶。" - }, - "defeat": { - "1": "就差一点。想再试一次吗?", - "2": "我没觉得你弱,别因此困扰。" - } - }, - "karen": { - "encounter": { - "1": "我是梨花,你想和我的恶属性宝可梦$来一场对决吗?", - "2": "我和你见过的那些人不一样。", - "3": "你组建了一支迷人的队伍。$我们的战斗应该会是场精彩的比赛。" - }, - "victory": { - "1": "不!我赢不了。你是怎么做到变得这么强的?", - "2": "我不会偏离我所选择的道路。", - "3": "冠军正期待与你见面。" - }, - "defeat": { - "1": "意料之中。", - "2": "嗯,还算有点意思。", - "3": "随时欢迎你来找我。" - } - }, - "milo": { - "encounter": { - "1": "看起来你显然很了解宝可梦。$这会是一场激烈的战斗!$如果我想赢,我得让我的宝可梦极巨化!" - }, - "victory": { - "1": "草的力量凋谢了…多么不可思议的挑战者!" - }, - "defeat": { - "1": "这必将让你大吃一惊。" - } - }, - "lucian": { - "encounter": { - "1": "请稍等,我正在读的书\n正要进入最精彩的部分…$英雄获得了一把神秘之剑,\n即将面临最后的考验…啊,算了。$既然你能走到这一步,\n我就不说这些了,和你战斗吧。$让我看看你是否\n能像我书中的主角一样荣耀!" - }, - "victory": { - "1": "我明白了…看来你把我逼入了绝境。" - }, - "defeat": { - "1": "我得维护我的名誉。" - } - }, - "drasna": { - "encounter": { - "1": "你很厉害吧,\n而且相当相当地厉害呢。$我很高兴,能和这样的对手交手,\n就能更好地培养宝可梦们了。" - }, - "victory": { - "1": "哎呀,就这么结束了,\n不好意思,可以的话欢迎再来。" - }, - "defeat": { - "1": "怎么会这样?" - } - }, - "kahili": { - "encounter": { - "1": "那么,既然来了……\n要不来看看今天的风更青睐谁?$是你……还是我?" - }, - "victory": { - "1": "让我这个四天王都感到沮丧,$看来你的力量货真价实。" - }, - "defeat": { - "1": "那真是一记好球!" - } - }, - "hassel": { - "encounter": { - "1": "让你亲身感受一下什么叫做猛烈的对战气息吧!" - }, - "victory": { - "1": "这次幸运之神对你微笑了,但是……$谁知道你下次还会不会这么幸运。" - }, - "defeat": { - "1": "那挺厉害的吧!" - } - }, - "blue": { - "encounter": { - "1": "能走到这里,你一定非常优秀。" - }, - "victory": { - "1": "我只输给过他,现在又是你……?$你问他是谁?哈哈哈……" - }, - "defeat": { - "1": "看吧?我的实力就是我来到这里的原因。" - } - }, - "piers": { - "encounter": { - "1": "准备好和我的队伍来个大狂欢吧!$尖钉镇,是时候嗨起来了!" - }, - "victory": { - "1": "我和我的队伍已经尽力了。$找个时间再来对战吧……" - }, - "defeat": { - "1": "我的喉咙因为呼喊而变得沙哑……$但这是一场激动人心的战斗!" - } - }, - "red": { - "encounter": { - "1": "…!" - }, - "victory": { - "1": "…?" - }, - "defeat": { - "1": "…!" - } - }, - "jasmine": { - "encounter": { - "1": "哦……你的宝可梦给人印象深刻。$我想我会享受这场战斗的。" - }, - "victory": { - "1": "你真的很强。我也得加把劲了。" - }, - "defeat": { - "1": "我从没想到会赢。" - } - }, - "lance_champion": { - "encounter": { - "1": "我依旧是冠军,所以我不会留情的。" - }, - "victory": { - "1": "这就是新冠军的崛起。" - }, - "defeat": { - "1": "我成功捍卫了冠军的头衔。" - } - }, - "steven": { - "encounter": { - "1": "告诉我…你在和宝可梦的旅途过程中看到了什么?$邂逅了那么多的训练师,\n你都会有什么样的感受呢?$在这丰饶的大地上旅行…\n有没有唤醒你内在的某种东西?$你不如就用一场对战来告诉我你心中的答案吧。$我也会和我的宝可梦用这种方式\n将我们所知道的告诉你的!" - }, - "victory": { - "1": "没想到连我这个联盟冠军\n都败在你的手上了呢…" - }, - "defeat": { - "1": "正如我所期待的。谢谢!" - } - }, - "cynthia": { - "encounter": { - "1": "我,竹兰,接受你的挑战!\n我是不会手软的!" - }, - "victory": { - "1": "无论对战多么有趣,\n它总会有结束的时候……" - }, - "defeat": { - "1": "即使你输了,\n也永远不要失去你对宝可梦的热爱。" - } - }, - "iris": { - "encounter": { - "1": "你知道吗?\n我真的很期待和强大的训练师进行认真的战斗!$我的意思是,来吧!\n到达这里的是那些渴望胜利的训练师,$他们与经历过无数艰难\n战斗的宝可梦一起战斗!$如果我和那样的人战斗,\n不仅我会变得更强,我的宝可梦也会!$我们也会更好地了解彼此!\n好!做好准备吧!$我是艾莉丝,宝可梦联盟冠军,\n我,将打败你!" - }, - "victory": { - "1": "啊……我尽力了,但我们输了……" - }, - "defeat": { - "1": "耶!我们赢了!" - } - }, - "hau": { - "encounter": { - "1": "我想知道,训练师是否会根据他们是\n来自温暖地区还是寒冷地区而以不同的方式战斗。$让我们来测试一下!" - }, - "victory": { - "1": "那太棒了!我觉得我现在有点了解你的感觉了!" - }, - "defeat": { - "1": "老铁,这才叫战斗!" - } - }, - "geeta": { - "encounter": { - "1": "我决定再试一次。$来吧…让我看看你的训练成果。" - }, - "victory": { - "1": "我期待着你的成就!" - }, - "defeat": { - "1": "怎么,这就结束了?" - } - }, - "nemona": { - "encounter": { - "1": "耶!我太兴奋了!让我们稍微放轻松!" - }, - "victory": { - "1": "好吧,太糟了,但我还是玩得很开心!$下次我一定会赢你!" - }, - "defeat": { - "1": "好吧,那是一场很棒的战斗!$肯定是会有收获的啦。" - } - }, - "leon": { - "encounter": { - "1": "来享受一段冠军时刻吧!" - }, - "victory": { - "1": "我的冠军生涯结束了……$但这是多么美好的冠军时刻啊!$谢谢你给了我最精彩的一战!" - }, - "defeat": { - "1": "名副其实的冠军时刻!" - } - }, - "whitney": { - "encounter": { - "1": "嘿!你不认为宝可梦超级可爱吗?" - }, - "victory": { - "1": "哇啊!哇啊!你太坏了!" - }, - "defeat": { - "1": "就是这样!" - } - }, - "chuck": { - "encounter": { - "1": "哈!你想挑战我?你是勇敢还是无知?" - }, - "victory": { - "1": "你很强!能不能收我为徒?" - }, - "defeat": { - "1": "搞定。你明白我比你强得多了吗?" - } - }, - "katy": { - "encounter": { - "1": "不要放松警惕,除非你想被虫丝绊倒哦!" - }, - "victory": { - "1": "我可爱的宝可梦们都像苍蝇一样坠落了!" - }, - "defeat": { - "1": "开饭啦,我可爱的彩粉蝶!" - } - }, - "pryce": { - "encounter": { - "1": "年轻不代表能获得胜利!经验才是关键。" - }, - "victory": { - "1": "无与伦比!赢得完美,试着不要忘记你现在的感受。" - }, - "defeat": { - "1": "正如我所料。" - } - }, - "clair": { - "encounter": { - "1": "你知道我是谁吗?知道还敢挑战我?" - }, - "victory": { - "1": "我想知道以你现在的水平能走多远,有趣。" - }, - "defeat": { - "1": "就是这样。" - } - }, - "maylene": { - "encounter": { - "1": "我现在要挑战你,我不会保留任何实力。$请准备好战斗!" - }, - "victory": { - "1": "是我输了…" - }, - "defeat": { - "1": "太棒了。" - } - }, - "fantina": { - "encounter": { - "1": "你来挑战吧。我会胜利。$这就是家缘市的道馆馆主。" - }, - "victory": { - "1": "你是最强的,我认输了。" - }, - "defeat": { - "1": "我非常,非常高兴!" - } - }, - "byron": { - "encounter": { - "1": "和我儿子瓢太一样的年轻人啊!$我相信培养年轻人\n关系到宝可梦光明的未来!$为此就让我来成为\n年轻人必须跨越的堡垒吧!" - }, - "victory": { - "1": "唔!我千锤百炼的宝可梦!" - }, - "defeat": { - "1": "哈哈哈哈!怎么样!我千锤百炼的宝可梦!" - } - }, - "olympia": { - "encounter": { - "1": "战斗是决定命运的古老传统。让我们开始吧!" - }, - "victory": { - "1": "创造你自己的道路。$不要让任何东西阻挡你的路、你的命运、你的未来。" - }, - "defeat": { - "1": "我们的道路现在已经清晰了。" - } - }, - "volkner": { - "encounter": { - "1": "能留到最后的训练家想必肯定是很强的…$希望你会是能让我回忆起\n宝可梦对战乐趣的训练家!" - }, - "victory": { - "1": "我输了…$你的心意,宝可梦的不顾一切。$战斗的时候就让我热血沸腾。" - }, - "defeat": { - "1": "完全没感觉…$和我希望的完全不一样!" - } - }, - "burgh": { - "encounter": { - "1": "唔…我有预感,\n只要赢了这场战斗就能画出更好的画来…$嗯!战斗充满了幻象!那么,马上开始吧。", - "2": "当然,我对我所有的宝可梦都相当骄傲! $现在…让我们马上开始吧!" - }, - "victory": { - "1": "结束了吗?我的女神抛弃我了吗?", - "2": "啊唔,输了……你还真是很强啊。" - }, - "defeat": { - "1": "唔啊……好……好美啊!", - "2": "偶尔也有一些不是很好看的胜利,$但只要努力了,\n不管怎么样的战斗,都是很美丽的。" - } - }, - "elesa": { - "encounter": { - "1": "最后一击!\n在确信这一点的时候全身会流淌过电流!$为追求这个快感,\n我要用可爱的宝可梦们让你头晕眼花。" - }, - "victory": { - "1": "本想让你头晕的,\n结果我倒反被你电到了。" - }, - "defeat": { - "1": "感觉还不够啊……下次能使出全力来吗?" - } - }, - "skyla": { - "encounter": { - "1": "终于到决战了!\n这是决定顶点的宝可梦对战吧?$我最喜欢顶点了!\n在高的地方能看到很远很远!$好了!就让我和你好好地玩一场吧!" - }, - "victory": { - "1": "和你的战斗让我更强了……谢谢。" - }, - "defeat": { - "1": "不管是赢了还是输了,战斗都能得到一些东西。" - } - }, - "brycen": { - "encounter": { - "1": "有其他的人和宝可梦在一起,$这份支持会让自己更强…\n让我来给你展示一下这样的强大吧!" - }, - "victory": { - "1": "你和你的宝可梦!配合得天衣无缝!\n华丽的友情!" - }, - "defeat": { - "1": "尝试极限!锻炼!" - } - }, - "drayden": { - "encounter": { - "1": "现在我寻求的是\n能让我看到光明未来的年轻训练家。$你有多少实力,就让我用我的经验,\n我对宝可梦倾注的爱来验证吧!" - }, - "victory": { - "1": "失败后涌现的这灼热的意志…\n该怎么说呢…" - }, - "defeat": { - "1": "啊啊啊!你的实力就这种程度吗!" - } - }, - "grant": { - "encounter": { - "1": "我只期待一件事。. $通过超越彼此,\n我们找到通往更高境界的道路。" - }, - "victory": { - "1": "你是一堵我无法逾越的墙!" - }, - "defeat": { - "1": "不要放弃。\n这就是人生的真谛。$大道至简。" - } - }, - "korrina": { - "encounter": { - "1": "小女子科尔尼来大显身手啦!" - }, - "victory": { - "1": "正因为有你,\n才能让你的宝可梦进化!" - }, - "defeat": { - "1": "好劲爆的战斗呀!" - } - }, - "clemont": { - "encounter": { - "1": "哦!我很高兴我们能见面!" - }, - "victory": { - "1": "你对战斗的热情激励了我!" - }, - "defeat": { - "1": "看来我的训练师成长强化机-马克2号,\n真的起作用了!" - } - }, - "valerie": { - "encounter": { - "1": "哦,这不是一个年轻的训练师吗……\n能这样遇见你真是太好了。 $我想你已经获得了这场战斗的资格,\n作为对你努力的奖励。 $难以捉摸的妖精可能看起来像微风一样脆弱,\n像花朵一样精致,但很坚强。" - }, - "victory": { - "1": "我希望明天你也能找到一些值得会心微笑的事物……" - }, - "defeat": { - "1": "哦,天哪,这太遗憾了……" - } - }, - "wulfric": { - "encounter": { - "1": "你知道吗?\n我们都说战斗能学到东西,羁绊之类的,$但实际上,我这么做只是因为有趣。 $谁在乎那些华而不实的东西?\n我们来战斗吧!" - }, - "victory": { - "1": "杰出!我像冰山一样坚硬,但你彻底击溃了我!" - }, - "defeat": { - "1": "和我干的结果就是这样!" - } - }, - "kabu": { - "encounter": { - "1": "每个训练师和宝可梦都在努力追求胜利。$但这意味着你的对手也在努力赢得胜利。$最终,比赛是由哪一方\n能够发挥出他们真正的潜力来决定的。" - }, - "victory": { - "1": "我很高兴今天能和你战斗!" - }, - "defeat": { - "1": "这是我感觉自己的成长的好方式!" - } - }, - "bea": { - "encounter": { - "1": "你有没有一种不可动摇的精神,\n受到什么攻击都安如磐石? $就让我来试试吧?" - }, - "victory": { - "1": "我感受到了你的宝可梦\n在战斗中被你指挥时的战斗之魂。" - }, - "defeat": { - "1": "每个人都希望能有一场这样的好比赛。" - } - }, - "opal": { - "encounter": { - "1": "让我看看你和你的宝可梦的表现如何!" - }, - "victory": { - "1": "你不够粉嫩呀,\n但你是一个优秀的训练师,$还拥有着优秀的宝可梦。" - }, - "defeat": { - "1": "对你来说太惨了,我觉得。" - } - }, - "bede": { - "encounter": { - "1": "就让我来证明你有多可怜,我有多强大。" - }, - "victory": { - "1": "我懂了……好吧。其实我还没拿出全力呢。" - }, - "defeat": { - "1": "我觉得我打的不错。" - } - }, - "gordie": { - "encounter": { - "1": "好了,我们来做个了结吧!" - }, - "victory": { - "1": "我只想要挖一个洞爬进去……$好吧,现在更像是掉了进去。" - }, - "defeat": { - "1": "像往常一样战斗,胜利就会随之而来!" - } - }, - "marnie": { - "encounter": { - "1": "事实上,言而总之… \n人家自己也想当冠军呀! $所以别认为我在针对你!" - }, - "victory": { - "1": "好吧,我还是输了……\n但是我看到了很多你和你宝可梦的优点哦" - }, - "defeat": { - "1": "希望你喜欢我们的战斗策略。" - } - }, - "raihan": { - "encounter": { - "1": "我打算击败冠军,赢得锦标赛,\n并向世界证明奇巴纳大人有多强!" - }, - "victory": { - "1": "就算输了我也好帅。$真是罪孽深重啊。$看来得再来张自拍了!" - }, - "defeat": { - "1": "为了纪念此刻,来张自拍吧!" - } - }, - "brassius": { - "encounter": { - "1": "你应该准备好了吧,\n一起完成这美丽的艺术作品吧!" - }, - "victory": { - "1": "啊……前卫!" - }, - "defeat": { - "1": "我将立即开始新的创作!" - } - }, - "iono": { - "encounter": { - "1": "谁在奇述!是我奇树!\n做好准备了吗!$...$直播开始!\n今天的小挑战者有多强?$奇树不知道哦~\n让我们一起来看看吧!" - }, - "victory": { - "1": "你的闪耀如1000万伏特!朋友!" - }, - "defeat": { - "1": "奇树奇树捕获你的眼球!" - } - }, - "larry": { - "encounter": { - "1": "归根结底,普普通通就是最强。" - }, - "victory": { - "1": "哼,给我上了一道“战败”。" - }, - "defeat": { - "1": "下班打卡,走了" - } - }, - "ryme": { - "encounter": { - "1": "宝贝, 一起! \n摇滚摇到骨子里!" - }, - "victory": { - "1": "你好酷!我佩服!\n我的灵魂为你哭!" - }, - "defeat": { - "1": "再会, 宝贝!" - } - }, - "grusha": { - "encounter": { - "1": "我保证我宝可梦的力量\n会让你感到寒冷彻骨!" - }, - "victory": { - "1": "你燃烧的热情……老实说,我有点喜欢。" - }, - "defeat": { - "1": "你没有升温。" - } - }, - "marnie_elite": { - "encounter": { - "1": "你已经走到这一步了?$哼~ 看看你能不能对付我的宝可梦!", - "2": "我将全力以赴, 别觉得我会手下留情哦~" - }, - "victory": { - "1": "不敢相信…我输掉了… $但是你确实赢得好,干得漂亮捏~", - "2": "看来我还要多多学习呀,\n不过你打的很不错哦~" - }, - "defeat": { - "1": "你打得不错,但是我更胜一筹!$祝你下次好运啦~", - "2": "看来我的练习有所回报了。\n感谢一战!" - } - }, - "nessa_elite": { - "encounter": { - "1": "海流正在朝着对我有利的方向转变。$准备好被卷走了吗?", - "2": "让我们在这场战斗中掀起波澜!$我希望你做好准备!" - }, - "victory": { - "1": "你完美地渡过了这片水域......干得好!", - "2": "看来我现在无法与你匹敌。干得好!" - }, - "defeat": { - "1": "水总能找到出路。\n真是爽快的一战!", - "2": "你打得很好,\n但海洋的力量是不可阻挡的!" - } - }, - "bea_elite": { - "encounter": { - "1": "做好准备!我的斗志熊熊燃烧!", - "2": "让我们看看你是否能跟上我永不停歇的节奏!" - }, - "victory": { - "1": "你的实力......令人印象深刻。\n你真的值得这场胜利。", - "2": "我以前从未感受过这种强度。\n太棒了!" - }, - "defeat": { - "1": "我的高强度训练又带来胜利了!\n干得好!", - "2": "你有实力,但我的训练更努力。\n精彩的战斗!" - } - }, - "allister_elite": { - "encounter": { - "1": "黑暗降临...你准备好面对你的恐惧了吗?", - "2": "让我们看看你能否应对我所操控的黑暗。" - }, - "victory": { - "1": "你已经驱散了阴影......\n暂时。干得很好。", - "2": "你的光芒刺穿了我的黑暗。干得好。" - }, - "defeat": { - "1": "黑影在轻语...\n你的力量还不够。", - "2": "黑暗获胜了......\n也许下次你会看到光明。" - } - }, - "raihan_elite": { - "encounter": { - "1": "虽然没法打败丹帝夺冠,\n让我觉得很遗憾……$但是有你这家伙当对手,\b倒是也还不赖啊!", - "2": "准备好面对龙之风暴!" - }, - "victory": { - "1": "你的气势就像暴风一样,\n连我都甘拜下风了!", - "2": "你完美地驾驭了我的风暴……打得好!" - }, - "defeat": { - "1": "又一场龙之风暴袭来,又一场胜利!打得好!", - "2": "你被我的龙之风暴卷入了!祝你下次好运!" - } - }, - "alder": { - "encounter": { - "1": "准备好和合众最强的训练家交手吧!" - }, - "victory": { - "1": "精彩!简直就是天下无双!" - }, - "defeat": { - "1": "战斗结束后,我的心像是吹过了温和的风……\n$真是厉害!" - } - }, - "kieran": { - "encounter": { - "1": "我的努力让我越来越强!\n$所以我不会输。" - }, - "victory": { - "1": "不可能……\n$真是一场有趣又激动人心的战斗啊!" - }, - "defeat": { - "1": "哇塞,好一场战斗!\n$你得多练练了。" - } - }, - "rival": { - "encounter": { - "1": "@c{smile}嘿,我在找你呢!我知道你急着上路,\n但至少说个再见吧…$@c{smile_eclosed}所以你终于要开始追逐梦想了?\n我几乎不敢相信。$@c{serious_smile_fists}来都来了,来一场对战怎么样?\n毕竟,我想看看你是不是准备周全了。$@c{serious_mopen_fists}不要手下留情,我想让你全力以赴!" - }, - "victory": { - "1": "@c{shock}哇…你彻底击败了我。\n你是真初学者吗?$@c{smile}也许是靠点运气,但是…\n谁知道,你可能真的能一路走下去。$顺便说一下,博士让我给你这些东西。它们看起来可牛了。$@c{serious_smile_fists}祝你好运!" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}你在这儿啊!我到处找你呢!$@c{angry_mopen}你忘了和你最好的朋友说再见了吗?$@c{smile_ehalf}你要去追逐梦想了,对吧?\n从今天开始,是不是…$@c{smile}不管怎样,忘了我的事就原谅你吧,\n但有个条件。@c{smile_wave_wink}你必须和我对战!$@c{angry_mopen}全力以赴!\n你也不想让你的冒险在开始之前就结束了,对吧?" - }, - "victory": { - "1": "@c{shock}你刚开始就已经这么强了?!@d{96}$@c{angry}你是不是开了?$@c{smile_wave_wink}只是开个玩笑啦!@d{64} @c{smile_eclosed}我输地心服口服了…\n我感觉你出去挺有天赋的。$@c{smile}顺便说一下,博士想让我给你一些东西。\n希望它们能帮上忙!$@c{smile_wave}像往常一样尽力而为!\n我相信你!" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}嘿,你也在这里吗?$@c{smile_eclosed}一路过关斩将,是吧?$@c{serious_mopen_fists}我知道看起来好像我尾随着你来到这里,\n怎么可能啦。$@c{serious_smile_fists}说真的,自从你在老家打败我后,\n我就一直很渴望再比一场。$我自己也进行了很多训练,\n所以这次我肯定会好好打一场。$@c{serious_mopen_fists}不要手下留情,就像以前一样!$让我们开始吧!" - }, - "victory": { - "1": "@c{neutral_eclosed}哦。我过于自信了。$@c{smile}不过没关系。我猜到可能会这样。$@c{serious_mopen_fists}这只意味着我下次需要更努力!$$@c{smile}呃,不是特意帮你,我正好有多余的这个,\n我觉得你可能想要。$$@c{serious_smile_fists}不过这次之后别指望再有了!$我不能一直给我的对手优势。$@c{smile}反正,保重!" - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}哦,真巧,在这里遇见你。\n看来你还没输过嘛。@c{angry_mopen}哈……好家伙!$@c{angry_mopen}我知道你在想什么,\n不,我才不会跟踪你什么呢。 @c{smile_eclosed}我只是碰巧在附近。$@c{smile_ehalf}我为你感到高兴,但我只想让你知道\n有时输了是可以接受的。$@c{smile}我们从错误中学到的东西\n往往比我们一直成功时学到的还要多。$@c{angry_mopen}无论如何,我为了我们的复赛已经努力训练了\n所以你最好全力以赴!" - }, - "victory": { - "1": "@c{neutral}我……没打算会输来着……$@c{smile}嗷……好吧。看来我要再更加努力训练了!$@c{smile_wave}我还给你带了个这个$@c{smile_wave_wink}不用谢我哦~.$@c{angry_mopen}不过,这是最后一个啦!\n你可别想再从我这赚小便宜了~$@c{smile_wave}要保重哦!" - }, - "defeat": { - "1": "输了有时候也不要紧的…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}嘿,看看这是谁!好久不见啊。$@c{neutral}你……还是没输过?哈…$@c{neutral_eclosed}这有点……不太对劲。$没有你一起,回家的感觉有很不一样。$@c{serious}虽然我知道这挺别扭的,但我就直说了。$@c{neutral_eclosed}我觉得你有点儿难以理喻。$@c{serious}没有人能够战无不胜。$失败乃成功之母。$@c{neutral_eclosed}你已经赢得了够好的成绩,\n但前面道阻且长,只会愈发艰难。 @c{neutral}你做好准备了没?$@c{serious_mopen_fists}如果做好了,证明给我看吧。" - }, - "victory": { - "1": "@c{angry_mhalf}这太离谱了……我几乎从没停下训练……$我们之间的差距怎么还是这么大?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}好久不见!还没输过,对吧。$@c{angry}我觉得你点烦了。@c{smile_wave_wink}开玩笑啦!$@c{smile_ehalf}但说真的,你现在不想家吗?\n不想…我吗?$我……我的意思是,我们真的很想你。$@c{smile_eclosed}我支持你的一切,包括你的梦想。\n但现实就是你早晚会经历失败。$@c{smile}当你失败的时候,我想像往常一样陪在你身边。$@c{angry_mopen}现在,给你看看我变得多强了吧!" - }, - "victory": { - "1": "@c{shock}都这样了……还是不够吗?$这样下去,你就永远不会回来了……" - }, - "defeat": { - "1": "你尽力了,现在让我们回家吧。" - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}嘿。$我不会对你说什么拐弯抹角的客套话。$@c{neutral_eclosed}我来,就是为了赢,简单明了。$@c{serious_mhalf_fists}我将所有时间都投入到训练中,\n掌握了如何发挥我的潜力。$@c{smile}当你削减掉不必要的睡眠和社交后,\n你会得到很多额外的时间。$@c{serious_mopen_fists}但在我获胜之前,这些都不重要了。$@c{neutral_eclosed}我甚至已经到达了战无不败的境地。$@c{smile_eclosed}我觉得你的思路倒是也没毛病。$@c{angry_mhalf}失败是属于弱者的,\n我已经不再软弱了。$@c{serious_mopen_fists}准备好吧。" - }, - "victory": { - "1": "@c{neutral}你…@d{64} 你是人吗?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}是我哦!没又把我忘了吧……是吗?$@c{smile}你应该为自己走了这么远感到骄傲。恭喜你!$但看来你的旅程到此为止了。$@c{smile_eclosed}你唤醒了我体内一些我从未有过的东西。\n就像我现在满脑子除了训练还是训练。$@c{smile_ehalf}我几乎已经没空吃饭睡觉了,\n我没日没夜训练我的宝可梦,每次都能变得更强。$@c{neutral}事实上,我……几乎不认识自己了。$现在,我终于达到了巅峰。\n我感觉我已经战无不胜了。$而且你知道吗?这一切都是因为你。$@c{smile_ehalf}我不知道到底是该感谢你还是恨你。$@c{angry_mopen}做好准备…" - }, - "victory": { - "1": "@c{neutral}你…@d{64} 你是人吗?" - }, - "defeat": { - "1": "@c{smile}你应该为自己走了这么远感到骄傲。" - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}又见面了。$@c{neutral}我花了点时间思考反思\n有理由说明为什么这一切都显得如此奇妙。$@c{neutral_eclosed}你所追逐的梦想,我想击败你的决心…$这都是某种庞大使命的一部分。$@c{serious}这不仅仅是关于我和你… 而是关于这个世界, @c{serious_mhalf_fists}我的使命就是将你推向极限。$@c{neutral_eclosed}我是否达成了那个使命,我说不上来,但我已尽我所能。$@c{neutral}我们最终到达的这个地方看起来很可怕\n 然而不知何故,我心中毫无畏惧,好像我早就来过这里。$@c{serious_mhalf_fists}你也有同样的感觉,对吧?$@c{serious}……这里好像有什么东西在呼唤我。\n这是世界早已记录的一切。$那些我们经历过的时光,那些记忆犹新的过去,\n其实只是遥远的回忆。$@c{neutral_eclosed}谁能保证它们是否真的发生过。$@c{serious_mopen_fists}你必须继续前进,不然的话,这一切将永无止境。\n这件事而只有你能办成。$@c{serious_smile_fists}我不清楚这一切意味着什么,但我知道……$@c{serious_mopen_fists}如果现在你不能就此击败我,\n你将毫无机会可言。" - }, - "victory": { - "1": "@c{smile_eclosed}看来我的使命在这里已经完成了。\n我想让你答应我一件事。$@c{smile}在你拯救世界之后,要回家。" - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}又只有我们两个人了。$@c{smile_eclosed}你知道吗,我在心里想啊想,\n想了好久……$@c{smile_ehalf}这一切背后是有什么原因吗,\n为什么一切现在看起来都这么奇怪……$@c{smile}你有你的梦想,而我内心有这个抱负……$我不禁感觉这一切背后有一个更庞大的力量,$掌控者我们所做的一切,你和我之间。$@c{smile_eclosed}我想我注定要推动你……到你的极限。$@c{smile_ehalf}我不清楚我是否一直做得很好,\n但到现在为止,我已经尽力了。$这个奇怪而可怕的地方……\n一切看起来都那么清晰……$这是世界早已记录的一切。$@c{smile_eclosed}我好像记不清我们一起度过的日子了。$@c{smile_ehalf}那些回忆到底是真的吗?\n怎么感觉这么久远……$@c{angry_mopen}你得继续前进,不然的话,这一切将永无止境。\n你是唯一能做到这件事的。$@c{smile_ehalf}我……不知道这一切意味着什么……\n但我明白$@c{neutral}如果你现在不能就此击败我,\n你将毫无机会可言。" - }, - "victory": { - "1": "@c{smile_ehalf}我……\n我想我完成了我的使命……$@c{smile_eclosed}答应我……在你拯救世界之后\n……要……平安到家。$@c{smile_ehalf}……谢谢你。" - } - } -} diff --git a/src/locales/zh_CN/dialogue-misc-male.json b/src/locales/zh_CN/dialogue-misc-male.json deleted file mode 100644 index e9ac66b7955..00000000000 --- a/src/locales/zh_CN/dialogue-misc-male.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "ending": "@c{smile}哦?你赢了?@d{96} @c{smile_eclosed}我应该早猜到了\n你回来了。\n$@c{smile}结束了。@d{64} 你终结了这个循环。\n$@c{serious_smile_fists}你也完成了自己的梦想,不是吗?\n你甚至一次都没失败。\n$@c{neutral}我是唯一能够记得你所作所为的人@d{96}\n我觉得这应该也还行吧?\n$@c{serious_smile_fists}你的传奇将永远留存于我们心中。\n$@c{smile_eclosed}不管了,我真是受够这个地方了,你也一样吗?我们回家吧。\n$@c{serious_smile_fists}可能等我们回家以后,再打一场?\n要是你想的话", - "ending_female": "@c{shock}你回来了?@d{32} 也就是说…@d{96} 你赢了呀!?\n@c{smile_ehalf}我应该早料到了。\n$@c{smile_eclosed}当然…我一直有这种感觉\n@c{smile}一切都结束了,对么? 你打破了循环。\n$@c{smile_ehalf}你也完成了自己的梦想,不是吗?\n你甚至一次都没失败。\n$我是唯一能够记得你所作所为的人\n@c{angry_mopen}我会努力不忘掉哒!\n$@c{smile_wave_wink}开玩笑啦,@d{64} @c{smile}我才不会忘呢。@d{32}\n你的传奇将永远留存于我们心中。\n$@c{smile_wave}不管了,@d{64} 时候不早了@d{96} ,应该吧?\n在这地方还真搞不清楚。\n$一起回家吧。 @c{smile_wave_wink}可能明天,我们再来打一场,为了重温回忆嘛~" -} \ No newline at end of file diff --git a/src/locales/zh_CN/dialogue-misc-female.json b/src/locales/zh_CN/dialogue-misc.json similarity index 100% rename from src/locales/zh_CN/dialogue-misc-female.json rename to src/locales/zh_CN/dialogue-misc.json diff --git a/src/locales/zh_CN/dialogue-female.json b/src/locales/zh_CN/dialogue.json similarity index 100% rename from src/locales/zh_CN/dialogue-female.json rename to src/locales/zh_CN/dialogue.json diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index 1e7ab421092..cf505d683a5 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -15,14 +15,10 @@ import bgmName from "./bgm-name.json"; import biome from "./biome.json"; import challenges from "./challenges.json"; import commandUiHandler from "./command-ui-handler.json"; -import dialogueMale from "./dialogue-male.json"; -import dialogueFemale from "./dialogue-female.json"; -import dialogueEndbossMale from "./dialogue-final-boss-male.json"; -import dialogueEndbossFemale from "./dialogue-final-boss-female.json"; -import dialogueMiscMale from "./dialogue-misc-male.json"; -import dialogueMiscFemale from "./dialogue-misc-female.json"; -import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json"; -import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json"; +import dialogue from "./dialogue.json"; +import battleSpecDialogue from "./dialogue-final-boss.json"; +import miscDialogue from "./dialogue-misc.json"; +import doubleBattleDialogue from "./dialogue-double-battle.json"; import egg from "./egg.json"; import fightUiHandler from "./fight-ui-handler.json"; import filterBar from "./filter-bar.json"; @@ -76,14 +72,10 @@ export const zhTwConfig = { commandUiHandler, common, achv, - PGMdialogue: dialogueMale, - PGFdialogue: dialogueFemale, - PGMbattleSpecDialogue: dialogueEndbossMale, - PGFbattleSpecDialogue: dialogueEndbossFemale, - PGMmiscDialogue: dialogueMiscMale, - PGFmiscDialogue: dialogueMiscFemale, - PGMdoubleBattleDialogue: dialogueDoubleBattleMale, - PGFdoubleBattleDialogue: dialogueDoubleBattleFemale, + dialogue, + battleSpecDialogue, + miscDialogue, + doubleBattleDialogue, egg, fightUiHandler, filterBar, diff --git a/src/locales/zh_TW/dialogue-double-battle-male.json b/src/locales/zh_TW/dialogue-double-battle-male.json deleted file mode 100644 index 684beac5eaf..00000000000 --- a/src/locales/zh_TW/dialogue-double-battle-male.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "blue_red_double": { - "encounter": { - "1": "青綠:嘿,赤紅,\n讓這傢伙看看我們是什麼來頭!$赤紅:...$青綠: 見識下真新鎮的實力!" - }, - "victory": { - "1": "青綠:打得真不錯$赤紅: ..." - } - }, - "red_blue_double": { - "encounter": { - "1": "赤紅: ...!$青綠:他人狠話不多。$青綠: 他人狠話不多。$青綠: 但別被他耍了,\n畢竟他可是個冠軍!" - }, - "victory": { - "1": "赤紅: ...!$青綠: 下次我們一定會贏你!" - } - }, - "tate_liza_double": { - "encounter": { - "1": "小楓:嘿嘿嘿……你驚訝嗎?$小南:這裡有兩個道館館主?$小楓: 我們是雙胞胎!$小南:我們無需交談,因為……我們可以通曉彼此的想法$小楓: 我們的組合……$小南: 你能打敗嗎?" - }, - "victory": { - "1": "小楓:什麼?我們的組合……$小南:被瓦解了!" - } - }, - "liza_tate_double": { - "encounter": { - "1": "小南:呵呵呵……你驚訝吧?$小楓:這裡有兩個道館館主?$小南:我們可以通曉……$小楓:彼此的想法……$小南:全在我們腦中!$小楓:我們的組合……$小南:你能打敗嗎?" - }, - "victory": { - "1": "小楓:你和你的寶可夢……$小南:簡直像親兄弟姐妹!" - } - }, - "wallace_steven_double": { - "encounter": { - "1": "大吾:米可利, 展現冠軍的實力吧!$米可利:我們將展示豐緣的實力!$米可利:我們將展示豐緣的實力!$大吾:要上了!" - }, - "victory": { - "1": "大吾:打得真不錯!$米可利:我們下次會贏的!" - } - }, - "steven_wallace_double": { - "encounter": { - "1": "大吾:你有什麼稀有的寶可夢嗎?$米可利:大吾……我們是來對戰的,\n不是來炫耀寶可夢的。$大吾:哦……知道了… 那麼要上了!" - }, - "victory": { - "1": "大吾:戰鬥結束了,\n來看看我的稀有寶可夢!$米可利:大吾……" - } - }, - "alder_iris_double": { - "encounter": { - "1": "阿戴克:我們倆是合眾最強的訓練家!$艾莉絲:與最強來一場最激烈的戰鬥吧!" - }, - "victory": { - "1": "阿戴克:哇哦!你真是超級厲害!$艾莉絲:我們下次會贏的啦!" - } - }, - "iris_alder_double": { - "encounter": { - "1": "艾莉絲:歡迎!挑戰者,\n合眾地區最強的冠軍大駕光臨!$阿戴克:艾莉絲,你是不是有點太興奮了…" - }, - "victory": { - "1": "艾莉絲:這樣的失敗可不好受啊…$阿戴克:但是只有失敗才能讓我們變強!" - } - }, - "piers_marnie_double": { - "encounter": { - "1": "瑪俐:哥哥,給他們展現尖釘鎮的實力!$聶梓:我們帶來黑暗!" - }, - "victory": { - "1": "瑪俐:你的強光亮瞎我們的黑暗了啦……$聶梓:實在太亮了…" - } - }, - "marnie_piers_double": { - "encounter": { - "1": "聶梓: 台下準備好了嗎!$瑪俐: 哥哥,我們是來對戰的,\n不是來唱歌的……" - }, - "victory": { - "1": "聶梓:這首歌獻給大家!$瑪俐:哥哥……" - } - } -} \ No newline at end of file diff --git a/src/locales/zh_TW/dialogue-double-battle-female.json b/src/locales/zh_TW/dialogue-double-battle.json similarity index 100% rename from src/locales/zh_TW/dialogue-double-battle-female.json rename to src/locales/zh_TW/dialogue-double-battle.json diff --git a/src/locales/zh_TW/dialogue-final-boss-male.json b/src/locales/zh_TW/dialogue-final-boss-male.json deleted file mode 100644 index 13bfee9eb96..00000000000 --- a/src/locales/zh_TW/dialogue-final-boss-male.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "encounter": "看來終於又到了那個時候。\n你知道自己為何會來到這裡,不是嗎?\n$你被吸引到這裡,因為你以前就來過這裡。\n無數次。\n$儘管,或許可以數一數。\n準確地說,這實際上是你的第{{cycleCount}}次循環。\n$每一次循環,你的思想都會恢復到之前的狀態。\n即便如此,不知何故,你之前自我的殘留仍然存在。\n$直到現在,你仍未成功,但我感覺這次你身上有一種異樣的氣息。\n$你是這裡唯一的人,儘管感覺上還有……另一個人。\n$你最終會成為對我來的一個硬茬嗎?\n我渴望了數千年的挑戰?\n$我們,開始。", - "firstStageWin": "我明白了。我所感覺到的氣息確實是真實的。\n看來我不再需要保留實力了。\n$別讓我失望。", - "secondStageWin": "…漂亮。" -} \ No newline at end of file diff --git a/src/locales/zh_TW/dialogue-final-boss-female.json b/src/locales/zh_TW/dialogue-final-boss.json similarity index 100% rename from src/locales/zh_TW/dialogue-final-boss-female.json rename to src/locales/zh_TW/dialogue-final-boss.json diff --git a/src/locales/zh_TW/dialogue-male.json b/src/locales/zh_TW/dialogue-male.json deleted file mode 100644 index 4236e239622..00000000000 --- a/src/locales/zh_TW/dialogue-male.json +++ /dev/null @@ -1,2137 +0,0 @@ -{ - "youngster": { - "encounter": { - "1": "嘿,想來對戰嗎?", - "2": "你也是新人訓練師嗎?", - "3": "嘿,我之前沒見過你。我們來對戰吧!", - "4": "我剛輸了,所以我正在尋找更多的寶可夢。$等等!你看起來很弱!\n來吧,我們對戰吧!", - "5": "我們見過面嗎?我記不太清了。$嗯,不管怎樣,很高興見到你!", - "6": "好的!我們上吧!", - "7": "好的!我來啦!我會向你展示我的實力!", - "8": "嚯嚯嚯...我會向你展示我的寶可夢有多厲害!", - "9": "不要浪費時間打招呼。你準備好了就放馬過來!", - "10": "別掉以輕心,$否則你可能會被小朋友打到哭鼻子哦。", - "11": "我精心培養了我的寶可夢。不許你傷害它們!", - "12": "恭喜你成功了!從這以後可不輕鬆哦。", - "13": "戰鬥永無止境!歡迎來到沒有盡頭的世界!" - }, - "victory": { - "1": "哇!你很強!", - "2": "我根本沒機會贏,對吧?", - "3": "我會等長大了再來打敗你!", - "4": "呃。我沒有更多寶可夢了。", - "5": "不可能…不可能!我怎麼可能又輸了…", - "6": "不!我輸了!", - "7": "哇!你真是太不可思議了!我既驚訝又欽佩!", - "8": "這怎麼…怎麼可能…$明明我和我的寶可夢是最強大的…", - "9": "下次我不會輸了!我們找時間再對戰吧!", - "10": "天哪!你看不出我還只是個小孩子嗎!$你那樣全力以赴太賴了!", - "11": "你的寶可夢更棒啊!和我交換吧!", - "12": "我之前有點上頭,我說了什麼來著?", - "13": "啊哈哈!就是這樣!$對!你已經熟悉這個世界了!" - } - }, - "lass": { - "encounter": { - "1": "我們來對戰吧,好嗎?", - "2": "你看起來像是個新人訓練師。我們來戰鬥吧!", - "3": "我不認識你。來對戰怎麼樣?", - "4": "讓我們來進行一場有趣的寶可夢對戰吧!", - "5": "我會向你展示如何真正使用寶可夢!", - "6": "一場認真的對戰從始於認真的開場白!$你確定你準備好了嗎?", - "7": "花無重開日,人無再少年。$你在對戰中只有一次機會。$很快,你就只能活在回憶中了。", - "8": "你最好對我手下留情,好嗎?$當然我會認真對戰的!", - "9": "學校很無聊,我無事可做。$*哈欠*…我只是來對戰打發時間。" - }, - "victory": { - "1": "那真是令人印象深刻!我還有很多要學習。", - "2": "我沒想到你會這麼輕易地打敗我…", - "3": "我希望有一天,我們能再進行一場對戰。", - "4": "那真是場非常有趣的對戰!$你讓我精疲力盡了…", - "5": "你給我上了一課!你真是太棒了!", - "6": "說真的,我輸了。$這,怎麼說,真的好難過,但你也真的很厲害。", - "7": "我不需要像這樣的記憶。刪除記憶中…", - "8": "嘿!我告訴過你要對我手下留情!$不過,當你認真的時候,你真的很酷。", - "9": "實際上,我開始厭倦對戰了…$一定有新的事情可以做…" - } - }, - "breeder": { - "encounter": { - "1": "聽話的寶可夢,自私的寶可夢…$寶可夢有獨特的性格呢。", - "2": "儘管我出生貧寒,但我的寶可夢培養的很好。", - "3": "嗯,你有沒有管教你的寶可夢?$過度溺愛是不好的。" - }, - "victory": { - "1": "對每個寶可夢因材施教是很重要的。", - "2": "不像一無是處的我…這些寶可夢都很優秀。", - "3": "過度的讚美會寵壞寶可夢和人。" - }, - "defeat": { - "1": "即使輸了,也不應該對你的寶可夢發火。", - "2": "相當好的寶可夢,對吧?我很會養東西。", - "3": "無論你多麼愛你的寶可夢,$你仍要在它沒做好時管教它們。" - } - }, - "breeder_female": { - "encounter": { - "1": "寶可夢永遠不會背叛你。$它們會回報你對它們的愛。", - "2": "要我教教你訓練優秀寶可夢的技巧嗎?", - "3": "特別的寶可夢有特別的培育技巧。" - }, - "victory": { - "1": "呃…事情不應該是這樣的。$我是不是用錯了能量方塊?", - "2": "這怎麼會發生在我的寶可夢身上…$你給你的寶可夢餵了什麼?", - "3": "如果我輸了,我告訴你我只是在消磨時間。$你根本不會傷害到我的自尊心。" - }, - "defeat": { - "1": "這證明了我的寶可夢已經接受了我的愛。", - "2": "訓出好寶可夢的真正技巧是捉到好的寶可夢。", - "3": "寶可夢的強弱取決於你的飼養方式。" - } - }, - "fisherman": { - "encounter": { - "1": "啊!你讓我錯過了一次咬鉤!$你打算怎麼辦?", - "2": "走開!你嚇跑了寶可夢!", - "3": "讓我看看你能否贏得勝利!" - }, - "victory": { - "1": "算了吧。", - "2": "下一次,我將捲土重來,凱旋而歸!", - "3": "我想這次我低估了海流。" - } - }, - "fisherman_female": { - "encounter": { - "1": "哇!我釣到了一條大魚!", - "2": "線已收好,準備提竿!", - "3": "準備製造波浪!" - }, - "victory": { - "1": "我會帶著更強大的魚鉤回來。", - "2": "下次我會贏得勝利。", - "3": "我只是在為回歸磨利我的魚鉤!" - } - }, - "swimmer": { - "encounter": { - "1": "是時候潛水了!", - "2": "讓我們一起乘風破浪,贏得勝利!", - "3": "該一鳴驚人了!" - }, - "victory": { - "1": "沉浸在失敗中!", - "2": "失敗的波浪!", - "3": "後浪死在沙灘上,我猜。" - } - }, - "backpacker": { - "encounter": { - "1": "收拾行李,開始遊戲!", - "2": "讓我看看你是否能跟上!", - "3": "全副武裝,挑戰者!", - "4": "我花了20年時間試圖找到自己……但我在哪裡?" - }, - "victory": { - "1": "這次絆倒了!", - "2": "哦,我覺得我迷路了。", - "3": "死路!", - "4": "等一下!嘿!你不知道我是誰嗎?" - } - }, - "ace_trainer": { - "encounter": { - "1": "你看起來挺自信的。", - "2": "你的寶可夢…… 讓我看看……", - "3": "因為我是王牌訓練師,人們認為我很強。", - "4": "你知道成為王牌訓練師需要什麼嗎?" - }, - "victory": { - "1": "是的…… 你的寶可夢很棒……", - "2": "什麼?!我是戰鬥天才啊!", - "3": "理所應當,你才是主角!", - "4": "好好好!你可以成為王牌訓練師!" - }, - "defeat": { - "1": "我將把我的身體和靈魂全都奉獻給寶可夢對戰!", - "2": "一切都在我的預料之中… \n沒有什麼好驚訝的…", - "3": "我覺得我長大後有點玻璃心,$你太壓力我我會垮的……", - "4": "我當然很強大,不會輸。$而且重要的是我要優雅地贏。" - } - }, - "parasol_lady": { - "encounter": { - "1": "是時候用優雅和從容來為戰鬥添彩了!" - }, - "victory": { - "1": "我的優雅依然完好無損!" - } - }, - "twins": { - "encounter": { - "1": "準備好囉,因為我們聯手,\n麻煩雙倍!", - "2": "兩顆心,一條繩$讓我們看看你能否跟上我們雙胞胎的力量!", - "3": "希望你準備好了面對雙倍的麻煩,$因為我們即將燃起來啦!" - }, - "victory": { - "1": "雖然我們在這一輪輸了,$但我們的羈絆依然堅不可摧!", - "2": "我們的雙胞胎精神,才不會就此熄滅。", - "3": "我們會作為充滿活力的二人組,$捲土重來,變得更強!" - }, - "defeat": { - "1": "雙胞胎的力量至高無上!", - "2": "兩顆心,一起贏!", - "3": "笑容成雙,共舞成雙!" - } - }, - "cyclist": { - "encounter": { - "1": "準備好在我後面吃土吧!", - "2": "挑戰者,準備好!我要把你打得落花流水!", - "3": "全速前進,讓我看看你能不能跟得上!" - }, - "victory": { - "1": "輪子可能不轉了,但我的決心沒有停下。", - "2": "被超越了!", - "3": "通往勝利的道路還有許多曲折等待探索。" - } - }, - "black_belt": { - "encounter": { - "1": "我讚揚你挑戰我的勇氣!$因為我是踢力最強的人!", - "2": "哦,我明白了。你想被切成碎片嗎?$或者你更喜歡當個沙袋?" - }, - "victory": { - "1": "哦。是寶可夢在戰鬥。$我強大的踢擊一點忙都沒幫上。", - "2": "嗯…如果我無論如何都會輸,我希望能被徹底打敗。" - } - }, - "battle_girl": { - "encounter": { - "1": "你不必試圖勾引我。你可以輸給我。" - }, - "victory": { - "1": "很難說再見,但我們快沒時間了……" - } - }, - "hiker": { - "encounter": { - "1": "人到中年後,我的身體和我爬過的山一樣強壯!", - "2": "我從父母那裡遺傳了這副魁梧的身材…$就像一座活生生的山脈…" - }, - "victory": { - "1": "至少在BMI方面我不能輸!", - "2": "這還不夠……永遠不夠。$我的壞膽固醇還不夠高……" - } - }, - "ranger": { - "encounter": { - "1": "當我身處大自然中,其他事情都不重要了。", - "2": "如果我生活中沒有大自然,有時就會突然感到焦慮。" - }, - "victory": { - "1": "無論我是贏是輸,\n對廣闊的大自然來說並不重要……", - "2": "與城市生活的窒息感相比,\n這種事情微不足道。" - }, - "defeat": { - "1": "我贏了。但與浩瀚的大自然相比,\n勝利算不了什麼…", - "2": "與我的焦慮症相比,我覺得你也不會怎樣…" - } - }, - "scientist": { - "encounter": { - "1": "我的研究將引導這個世界走向和平與歡樂。" - }, - "victory": { - "1": "我是個天才…我不應該輸給你這樣的人…" - } - }, - "school_kid": { - "encounter": { - "1": "……嘿嘿。我對計算和分析很有信心。", - "2": "我正在盡可能地積累經驗,$因為我希望有一天能成為道館館主。" - }, - "victory": { - "1": "哦…計算和分析也許和個例不太匹配呀…", - "2": "我想,即使是艱難困苦的經歷,也有存在的意義。" - } - }, - "artist": { - "encounter": { - "1": "我以前很受歡迎,但現在已經徹底過氣了。" - }, - "victory": { - "1": "隨著時代的變遷,價值觀也在變化。$我意識到這一點已經太晚了。" - } - }, - "guitarist": { - "encounter": { - "1": "當我彈奏著走向勝利的旋律時,$準備好感受失敗的節奏吧!" - }, - "victory": { - "1": "暫時沉默了,但我不屈的旋律將繼續演奏。" - } - }, - "worker": { - "encounter": { - "1": "人們總誤解我,這讓我很煩。$我比大家想象的要乾淨得多。" - }, - "victory": { - "1": "我真的不想曬傷皮膚,所以我想在陰涼處工作。" - } - }, - "worker_female": { - "encounter": { - "1": "人們總是誤解我,這讓我很煩。 $我比大家想象的要乾淨得多。" - }, - "victory": { - "1": "我真的不想曬傷皮膚,\n所以我想在陰涼處工作。" - }, - "defeat": { - "1": "我的身體和心靈並不總同步。" - } - }, - "worker_double": { - "encounter": { - "1": "你會知道我們怎麼擊敗你的。我們在工地訓練過!" - }, - "victory": { - "1": "真奇怪…怎麼會這樣…我不應該被打敗的。" - } - }, - "hex_maniac": { - "encounter": { - "1": "我通常只聽古典音樂,但如果我輸了,$我想我應該試試新時代的音樂!", - "2": "我的每一滴眼淚都讓我變得更加堅強。" - }, - "victory": { - "1": "樂壇新時代的曙光就此出現了嗎?", - "2": "現在我變得更強了。我隨著他人怨恨而成長。" - }, - "defeat": { - "1": "“新時代”指的是二十世紀的古典作曲家,對吧?", - "2": "不要糾結於悲傷或沮喪。$你可以用悲憤來激勵自己。" - } - }, - "psychic": { - "encounter": { - "1": "嘿!集中!" - }, - "victory": { - "1": "呃呃呃!" - } - }, - "officer": { - "encounter": { - "1": "準備好,因為正義即將得到伸張!", - "2": "準備好維護法律,在戰場上伸張正義!" - }, - "victory": { - "1": "正義的分量比以往還要沉重……", - "2": "失敗的陰影,在警局中徘徊。" - } - }, - "beauty": { - "encounter": { - "1": "我最後的戰鬥…我就是這麼看待這場對戰的…" - }, - "victory": { - "1": "很有趣…有時間再來一場最後的戰鬥…" - } - }, - "baker": { - "encounter": { - "1": "希望你準備好品嚐失敗的滋味!" - }, - "victory": { - "1": "我會捲土重來的。" - } - }, - "biker": { - "encounter": { - "1": "是時候加速,把你甩在後面了!" - }, - "victory": { - "1": "我會為下一場比賽調整狀態。" - } - }, - "firebreather": { - "encounter": { - "1": "我的火焰會吞噬你!", - "2": "我的靈魂在燃燒,我要讓你看看它有多滾燙!", - "3": "快來看看吧!" - }, - "victory": { - "1": "我燃成灰了…", - "2": "哟! 好燙!", - "3": "嗷! 我的鼻尖燒焦了!" - } - }, - "sailor": { - "encounter": { - "1": "夥計,如果你輸了,你就得挨板子!", - "2": "來吧!這關係到我作為水手的尊嚴!", - "3": "你好啊!你暈船麼?" - }, - "victory": { - "1": "啊,被孩子打敗了。", - "2": "你的精神讓我沉淪!", - "3": "好像是我暈船了…" - } - }, - "brock": { - "encounter": { - "1": "我對岩石屬性寶可夢的專精會擊敗你!來吧!", - "2": "我磐石般的意志將壓倒你!", - "3": "讓我展示給你看看,我寶可夢真正的力量!" - }, - "victory": { - "1": "你寶可夢的力量戰勝了我堅如磐石的防禦!", - "2": "世界很大!很高興有機會和你戰鬥。", - "3": "也許我應該回去追尋我成為寶可夢飼養員的夢想……" - }, - "defeat": { - "1": "最好的進攻就是堅固的防守!$那是我做事的方式!", - "2": "下次來和我一起研究岩石屬性,$更好地了解如何與它們對戰!", - "3": "哈哈,我在各地的旅行有所回報了!" - } - }, - "misty": { - "encounter": { - "1": "我的戰策就是使用水屬性寶可夢全面進攻!", - "2": "嗨,我會讓你見識我的水屬性寶可夢的力量!", - "3": "我的夢想是踏上旅程,與強大的訓練師戰鬥……$你能滿足我嗎?" - }, - "victory": { - "1": "你真的很強……我承認,你有技術的……", - "2": "哼……你知道你只是運氣好,對吧?!", - "3": "哇,你太過分了!不敢相信你打敗我了!" - }, - "defeat": { - "1": "強大的小霞對你來說,太過分了嗎?", - "2": "我希望你看到了我寶可夢優雅的游泳技巧!", - "3": "你的寶可夢無法匹敵我的心腹和驕傲!" - } - }, - "lt_surge": { - "encounter": { - "1": "我的電屬性寶可夢在戰爭中救了我!$我來給你展示一下!", - "2": "立正!我要電到你投降!", - "3": "我會像對待敵軍一樣,狠狠電你!" - }, - "victory": { - "1": "哇!你的隊伍有真傢伙,小子!", - "2": "啊啊,你很強!連我的電擊技巧都輸給了你。", - "3": "這失敗真是把我給電麻了!" - }, - "defeat": { - "1": "哦耶!我的電屬性寶可夢是世界第一!", - "2": "哈哈哈!真是一場電動人心的戰鬥,小子!", - "3": "寶可夢對戰等於戰爭,$我向你展示了軍隊中的格鬥技巧!" - } - }, - "erika": { - "encounter": { - "1": "啊,這裡天氣真好…$哦,對戰?那好吧。", - "2": "我在寶可夢對戰上的造詣,$可以與我的插花技巧相媲美。", - "3": "哦,希望我寶可夢的宜人香氣\n不會再讓我睡著…", - "4": "看看花園裡的花朵,如此令人心曠神怡。" - }, - "victory": { - "1": "哦!我認輸啦~", - "2": "這場比賽非常愉快。", - "3": "啊,看來我輸了…", - "4": "哦,我的天哪。" - }, - "defeat": { - "1": "我怕我會打瞌睡…", - "2": "哦,我天。看來我的草屬性寶可夢擊敗了你。", - "3": "那場戰鬥是如此令人心曠神怡。", - "4": "哦…這就完啦?" - } - }, - "janine": { - "encounter": { - "1": "我正在掌握毒屬性攻擊的藝術。$今天我來和你過過招!", - "2": "父親相信我能獨當一面。$我來證明他說的對!", - "3": "我的忍術,僅次於我的父親!$你能跟的上嗎?" - }, - "victory": { - "1": "就算現在,我仍然需要繼續訓練…我明白了。", - "2": "你的戰鬥技巧,超過了我。", - "3": "我要好好努力提高我的技術。" - }, - "defeat": { - "1": "呵呵…毒液耗盡了你所有的力量。", - "2": "哈!你根本無法抵擋我卓越的忍技!", - "3": "我沒有辜負父親對我的信任。" - } - }, - "sabrina": { - "encounter": { - "1": "我的超能力預見了你的到來!", - "2": "我不喜歡戰鬥,但如果你想,$我會展示我的實力!", - "3": "我能感覺到你的雄心壯志。$我倒要看看你是不是虛有其表。" - }, - "victory": { - "1": "你的力量……遠遠超出了我的預知……", - "2": "我沒有準確預測到你的實力。", - "3": "即使我強大的超能力也無法感知到你這樣強大的人。" - }, - "defeat": { - "1": "這場勝利……和我看到的未來一樣啊!", - "2": "也許我預感到有強大實力的人,是另一個……", - "3": "在你奮不顧身投入戰鬥之前,\n磨練你的能力。$如果你這樣做,你才未來可期……" - } - }, - "blaine": { - "encounter": { - "1": "哈!希望你帶了燒傷治療藥!", - "2": "我火熱的寶可夢將所有挑戰者都焚燒殆盡!", - "3": "準備好玩火吧!" - }, - "victory": { - "1": "我已經焚燒殆盡了!甚至連灰燼都沒有留下!", - "2": "我沒有把火焰煽得足夠高嗎?", - "3": "我燃盡了……但這讓我進步的動力燃燒得更旺了!" - }, - "defeat": { - "1": "我的熊熊烈火無法被撲滅!", - "2": "我的寶可夢因這次勝利而變得更加強大!", - "3": "哈!我的激情燃得比你的更熱烈!" - } - }, - "giovanni": { - "encounter": { - "1": "我,火箭隊的領袖,\n會讓你的世界感受到痛苦!", - "2": "我在這裡的訓練在我再次面對老朋友之前至關重要。", - "3": "我認為你還沒有準備好迎接你即將經歷的失敗!" - }, - "victory": { - "1": "什麼!我輸了?! 我沒什麼可和你說的!", - "2": "哼……你永遠無法理解我希望實現的目標。", - "3": "這次失敗只是暫時的。$我將找準時機,讓火箭隊浴火重生。" - }, - "defeat": { - "1": "不知自己幾斤幾兩,\n說明你仍然只是一個孩子。", - "2": "不要再試圖干涉我。", - "3": "我希望你明白挑戰我是多麼愚蠢。" - } - }, - "roxanne": { - "encounter": { - "1": "您能否展示一下您是如何戰鬥的麼?", - "2": "你可以和更多訓練師戰鬥來學到很多東西。", - "3": "哦,被你抓到我正在用功了~$你想戰鬥嗎?" - }, - "victory": { - "1": "哦,看來我輸了。$我明白了。", - "2": "看來我在戰鬥方面還有更多東西要學。", - "3": "我會把今天在這裡學到的東西銘記於心。" - }, - "defeat": { - "1": "從我們的對戰中,我學到了很多。$希望你也是。", - "2": "我期待再次與你戰鬥。$希望你能運用在此學到的東西。", - "3": "我憑借我所學到的一切贏得了勝利。" - } - }, - "brawly": { - "encounter": { - "1": "哦,夥計,挑戰者!$讓我看看你的能耐!", - "2": "你看起來很厲害嘛。$來對戰吧!", - "3": "是時候掀起風暴了!$我們上吧!" - }, - "victory": { - "1": "哦哇,你把我沖走了!", - "2": "你駕馭了我的海浪,把我打敗了!", - "3": "我覺得我就像是在武鬥洞窟裡迷路了!" - }, - "defeat": { - "1": "哈哈,我駕馭了大浪!$有時間再挑戰我吧。", - "2": "再和我一起衝浪吧!", - "3": "就像潮水的漲落,\n我希望你也能再來挑戰我。" - } - }, - "wattson": { - "encounter": { - "1": "是時候被電擊了!$哈哈哈!", - "2": "我要讓火星子飛蹦!$哈哈哈!", - "3": "我希望你帶了麻痺藥!$哇哈哈哈!" - }, - "victory": { - "1": "看來我的電量用完了!$哇哈哈哈!", - "2": "你完全接地了是吧!$哇哈哈哈!", - "3": "謝謝你給我電了一下!$哇哈哈哈!" - }, - "defeat": { - "1": "電充充滿,有時間再挑戰我吧!$哇哈哈哈!", - "2": "我希望你覺得我們的戰鬥激情似電!$哇哈哈哈!", - "3": "你沒想到我贏了吧?$哇哈哈哈!" - } - }, - "flannery": { - "encounter": { - "1": "很高興見到你!等等,不對……$我要粉碎你!", - "2": "我才當道館主沒多久,\n但我會讓你灰飛煙滅!", - "3": "是時候展示爺爺教給我的招式了!來對戰吧!" - }, - "victory": { - "1": "你讓我想起了我的爺爺……$難怪我輸了。", - "2": "我是不是太努力了?$我應該放鬆,不能太上頭了。", - "3": "失敗才不會嗆到我。$是時候重新點燃訓練了!" - }, - "defeat": { - "1": "我希望我讓祖父感到驕傲了……$有時間我們再戰鬥吧。", - "2": "我……我簡直不敢相信我贏了!$按照自己的方式做事奏效了!", - "3": "早點用炙熱的招式再來交手吧!" - } - }, - "norman": { - "encounter": { - "1": "我沒想到你能一路來到這裡。$我們來對戰吧。", - "2": "作為道館主,我會盡一切努力贏得勝利。$我們開始吧!", - "3": "你最好全力以赴。$對戰的時候到了!" - }, - "victory": { - "1": "我輸給了你……?$但規則就是規則。", - "2": "難道我不該從城都搬家嗎……?", - "3": "我不敢相信。$這是一場好對戰。" - }, - "defeat": { - "1": "我們都盡力了。$希望我們不久之後能再對戰。", - "2": "你應該嘗試挑戰我的孩子。$可能會有一些收穫!", - "3": "謝謝你精彩的戰鬥。$下次好運。" - } - }, - "winona": { - "encounter": { - "1": "我一直在天空中翱翔尋找獵物…$而你就是我的目標!", - "2": "不管戰況如何,我都會和我的飛行寶可夢$以優雅的姿態獲勝。來戰鬥吧!", - "3": "我希望你不怕高。$我們一起升上高空吧!" - }, - "victory": { - "1": "你是我見過的第一位比我更有風度的訓練師。$打的非常出色。", - "2": "哦,我的飛行系寶可夢都已經墜落了!$好吧。", - "3": "儘管我倒下了,我的寶可夢將繼續翱翔!" - }, - "defeat": { - "1": "我與我的飛行系寶可夢,\n將永遠優雅地起舞!", - "2": "我希望你喜歡我們的演出。$我們優雅的舞蹈已經落幕。", - "3": "你願意再來觀看我們優雅的編舞嗎?" - } - }, - "tate": { - "encounter": { - "1": "嘿嘿嘿…$看到我沒和妹妹在一起,很驚訝麼?", - "2": "我可以讀懂你在想什麼…$你想要戰鬥!", - "3": "你如何擊敗一個…$讀懂你一舉一動的人?" - }, - "victory": { - "1": "贏不了啊…$我想小南了…", - "2": "你和寶可夢之間的聯繫比我們更強。", - "3": "如果我和小南聯手,我們會贏的。$我們可以了解彼此的想法!" - }, - "defeat": { - "1": "我和我的寶可夢無與倫比!", - "2": "如果你連我都打不過,\n你肯定也打不過小南。", - "3": "這多虧了我和小南的嚴格訓練。$我可以與寶可夢一心同體。" - } - }, - "liza": { - "encounter": { - "1": "呵呵呵…$看到我沒和哥哥一起,很驚訝嗎?", - "2": "我可以讀懂你渴望什麼…$你想戰鬥,不是嗎?", - "3": "你如何擊敗一個…$與寶可夢們一心同體的人?" - }, - "victory": { - "1": "贏不了啊…$我想小楓了…", - "2": "你和寶可夢之間的聯繫…$比我強。", - "3": "如果我和小楓在一起,我們會贏的。$我們甚至可以接上彼此的話!" - }, - "defeat": { - "1": "我和我的寶可夢勢不可擋。", - "2": "如果你連我都打不過,\n你肯定也打不過小楓。", - "3": "這多虧了我和小楓的嚴格訓練。$我可以與我的寶可夢一心同體。" - } - }, - "juan": { - "encounter": { - "1": "別害羞啊。$我們來戰鬥吧!", - "2": "啊哈哈哈,敬請期待\n我和水屬性寶可夢的盛大演出!", - "3": "我就是正在逼近的風暴!$你能經受住考驗嗎?", - "4": "請你見證我們的表演。$由我和寶可夢共同創造的宏偉水之幻境!" - }, - "victory": { - "1": "你可能是一個能挑戰米可利的天才!", - "2": "我專注於優雅,而你刻苦鍛鍊。$你能擊敗我是很正常的。", - "3": "啊哈哈哈!$好吧,這次你贏了。", - "4": "從你身上,我感受到了技巧的光輝,\n它將戰勝一切。" - }, - "defeat": { - "1": "寶可夢和我創造的水之幻境,讓我取得了勝利。", - "2": "啊哈哈哈,我贏了,你輸了。", - "3": "要我把我的服裝借給你嗎?\n可能能幫到你對戰啊!$啊哈哈哈,我開玩笑的!", - "4": "我是贏家!也就是說,你輸了。" - } - }, - "crasher_wake": { - "encounter": { - "1": "極限! 極限! 看好了!$極限假面…就此…登場!", - "2": "極限! 極限! 極限假面!", - "3": "我是滔滔巨浪,將你沖走!" - }, - "victory": { - "1": "我真是笑得合不攏嘴啊!$哈哈哈!那真是太有趣了!", - "2": "呼哇!結束收尾了!$我該怎麼說呢……$我還想再對戰!我還想再繼續戰鬥!", - "3": "啊啊啊啊啊!?" - }, - "defeat": { - "1": "耶!就是這樣!", - "2": "我贏了,但我還想要更多!\n我還想再更多地戰鬥!", - "3": "再見!" - } - }, - "falkner": { - "encounter": { - "1": "我將向你展示華麗的飛行寶可夢真正的力量!", - "2": "風啊,伴我同行!", - "3": "爸爸!我希望你能在空中注視著我的戰鬥!" - }, - "victory": { - "1": "明白了……我會禮貌地退場。", - "2": "輸了就是輸了。你確實很強大。", - "3": "…行吧! 嗯, 我輸了。" - }, - "defeat": { - "1": "爸爸!我用你珍愛的飛行寶可夢贏了……", - "2": "飛行系寶可夢才是最強的!", - "3": "感覺我正在追趕上我的父親!" - } - }, - "nessa": { - "encounter": { - "1": "無論你的小腦瓜子在搞什麼陰謀詭計,$我和我的搭檔都會確保它石沉大海。", - "2": "我來這裡可不是為了閒聊,\n而是為了贏!", - "3": "這是我的寶可夢給你的一點小禮物……\n我希望你能接受!" - }, - "victory": { - "1": "你和你的寶可夢太過分了……", - "2": "怎麼……?這怎麼可能?!", - "3": "我完全被沖走了!" - }, - "defeat": { - "1": "洶湧的海浪再次襲來!", - "2": "是時候乘風破浪,取得勝利了!", - "3": "誒嘿嘿!" - } - }, - "melony": { - "encounter": { - "1": "我不會手下留情!", - "2": "好吧,我想我們應該開始了。", - "3": "我會把你凍得結結實實的!" - }, - "victory": { - "1": "你……你可厲害了,是不是?", - "2": "如果你找到瑪瓜,一定要好好教訓他,好嗎?", - "3": "你的破冰方式有點過於直接了呢……" - }, - "defeat": { - "1": "現在你知道戰鬥有多殘酷了吧?", - "2": "嘿!看來我又贏了!", - "3": "你是在保留實力嗎?" - } - }, - "marlon": { - "encounter": { - "1": "你看起來很強!來吧!讓我們開始吧!", - "2": "我的強大像大海一樣無邊無際。$你會被我沖走,絕對的。", - "3": "哦豁,由我來面對你!這可不得了咯!" - }, - "victory": { - "1": "你太厲害了!\n你培養了一些非常強大的寶可夢啊,$你已經掌握了訓練師的精髓!", - "2": "你不僅僅是看起來,\n你是真的強,真的!$呃,我也被沖走了!", - "3": "你像兇猛的波浪一樣強壯!" - }, - "defeat": { - "1": "你很強,但這還不足以動搖大海,懂?", - "2": "嘻!看來我又贏了!", - "3": "甜蜜的勝利!" - } - }, - "shauntal": { - "encounter": { - "1": "打擾了。你是挑戰者,對嗎?$我是四天王的幽靈系寶可夢使用者,$婉龍,我將是你的對手。", - "2": "我非常喜歡描寫來到這裡的訓練師,\n以及他們訓練的寶可夢。$我可以用你和你的寶可夢作為主題嗎?", - "3": "每個與寶可夢相處的人都有故事要講。$接下來要講的故事是怎樣的呢?" - }, - "victory": { - "1": "哇。我驚呆了!", - "2": "對…對不起!我必須先向我的寶可夢道歉……$都是因為我讓你們有了不好的經歷,真的很抱歉!", - "3": "你要知道,我仍然是四天王之一!" - }, - "defeat": { - "1": "額呵呵。", - "2": "給了我下一部小說的絕佳素材!", - "3": "就這樣,又一篇故事來到尾聲……" - } - }, - "marshal": { - "encounter": { - "1": "我的師傅,阿戴克,\n看到了你作為訓練師的潛力,$對你很有興趣。$我要來考驗你——挖掘你力量的極限。\n丹田發力!", - "2": "勝利,決定性的勝利,\n正是我所求!挑戰者,我來了!", - "3": "在我的心中,我尋求著成為戰士的力量,\n克服自身的所有弱點!$以我的信念,取勝!" - }, - "victory": { - "1": "呼!幹得好!", - "2": "不要停止戰鬥,追求更高的目標!", - "3": "你和你寶可夢展現的力量\n給我留下了深刻的印象……" - }, - "defeat": { - "1": "嗯…", - "2": "這真是場好戰鬥。", - "3": "哈啊!哈啊!嗨呀啊!" - } - }, - "cheren": { - "encounter": { - "1": "你讓我想起了一位老朋友。$這讓我對這場寶可夢戰鬥感到興奮!", - "2": "不考慮清楚這一點,\n寶可夢對戰就沒有了意義。$這就是失去了和寶可夢一同戰鬥的意義。", - "3": "我的名字是黑連!我是道館館主,\n也是老師!$很高興認識你。" - }, - "victory": { - "1": "謝謝……我又能發現自己的不足了。", - "2": "謝謝…接近理想的道路…我好像隱約看到了。", - "3": "嗯……這值得思考。" - }, - "defeat": { - "1": "作為道館館主,我要成為你要跨越的壁壘!", - "2": "好吧!", - "3": "正因為有寶可夢,我們才能走到這裡。$為什麼寶可夢會幫助我們,\n這個恐怕不僅是寶可夢與訓練家…$而是生命與生命之間的問題。" - } - }, - "chili": { - "encounter": { - "1": "咿呀!是時候玩火了!!我是三兄弟中最強的!", - "2": "嗒噠!如火似焰的伯特——就是我\n——你接下來的對手!", - "3": "我將向你展示,\n我和我熾熱的火系寶可夢的能耐!" - }, - "victory": { - "1": "被你幹掉了。我……燃盡了……", - "2": "哇吼!你燃起來了!", - "3": "啊!被你幹碎了!" - }, - "defeat": { - "1": "我燃起來啦!和我玩兒,你就會被燙傷!", - "2": "你要是玩兒火,就會被燙傷!", - "3": "我說,拜託,\n你的對手是我,沒機會贏的!" - } - }, - "cilan": { - "encounter": { - "1": "無關個人情感…也不會有艱難的感受…$我和我的草屬性寶可夢會…$呃…不管什麼樣的對手我們都會應戰的。", - "2": "所以,呃,如果你願意的話,我會,\n呃,盡我所能做好,呃,你知道的,你的對手。", - "3": "好吧……所以,我是天桐,\n我喜歡草屬性寶可夢。" - }, - "victory": { - "1": "呃……已經結束了嗎?", - "2": "…真是太意外了。你真…強。$看起來就算是伯特或寇恩都贏不了你…", - "3": "…嗯。看起來我來的…不是時候?" - }, - "defeat": { - "1": "哈?我贏了?", - "2": "我想…$我想我贏了,因為我一直在和我的兄弟伯特和寇恩競爭,\n我們都變得更強了。", - "3": "…這…這是一次非常嚇人的經歷呢…" - } - }, - "roark": { - "encounter": { - "1": "我需要看看你作為訓練師的潛力。$還有,我要看看與你並肩作戰的寶可夢的堅韌!", - "2": "來吧!這些是我的岩石系寶可夢,我的驕傲!", - "3": "岩石屬性寶可夢就是最強的!", - "4": "我要看看你作為訓練師的潛力。$還要看看與你並肩作戰的寶可夢的堅韌!" - }, - "victory": { - "1": "什麼?不可能!我強化的寶可夢們!", - "2": "……我大腦過載了。$下次邀請你參加地下的化石挖掘比賽。", - "3": "有你這種技術,贏得勝利是很正常的。", - "4": "什麼?!連這也不夠?", - "5": "我搞砸了。" - }, - "defeat": { - "1": "看?我為我的搖滾戰鬥風格感到驕傲!", - "2": "謝謝!這場戰鬥給了我自信,$我感覺能夠打敗我父親了!", - "3": "我感覺就像我砸穿了一塊頑石!" - } - }, - "morty": { - "encounter": { - "1": "只要我再多努力一點,我就能看到我遇到傳說中的寶可夢的未來!$你會幫助我達到那個水平!", - "2": "據說,彩虹色的寶可夢會\n出現在真正強大的訓練師面前。 $我一直相信著這個美麗的傳說,\n所以,從出生開始,\n就在這裡進行著秘密的修行。$因為這樣,其他人看不到的東西\n我也能夠看得到…$我看到的,是那個將傳說中的寶可夢\n召喚到這片大地上的人的影子。$我一直相信,那就是我自己!\n希望你也能助我一臂之力!", - "3": "無論你相信還是不相信,神秘的力量確實存在。", - "4": "你可以見證我訓練的成果。", - "5": "你必須讓你與寶可夢的靈魂合二為一。你能做到嗎?", - "6": "嘿,你想成為我訓練的一部分嗎?" - }, - "victory": { - "1": "我還不夠好……", - "2": "我明白了…你的旅程…去了遙遠的地方,你見過的比我多得多。$我羨慕你…", - "3": "這怎麼可能……", - "4": "我認為我們的潛力沒什麼不同。$但是,我覺得你並不簡單,似乎還有什麼……", - "5": "我想我需要更多的訓練。", - "6": "那太遺憾了" - }, - "defeat": { - "1": "我又向前邁進了一步。", - "2": "呵呵呵……", - "3": "什…麼?!那還不夠?", - "4": "我感覺就像我砸穿了一塊頑石!", - "5": "哈哈哈啊!", - "6": "我知道我會贏!" - } - }, - "crispin": { - "encounter": { - "1": "我想贏,所以接下來我正要贏!", - "2": "我想對戰就對戰!懂嗎!就應該這樣!" - }, - "victory": { - "1": "我想贏……但我還是輸了!", - "2": "我輸了……因為我贏不了!" - }, - "defeat": { - "1": "嘿,等一下。我是不是贏了?$我覺得我贏了!太滿足了!", - "2": "哇哦!那太棒了!" - } - }, - "amarys": { - "encounter": { - "1": "我想幫助某個人。因此,我不能輸。$…我們的戰鬥現在開始。" - }, - "victory": { - "1": "我還不夠,我明白了。" - }, - "defeat": { - "1": "勝利屬於我。打得好。" - } - }, - "lacey": { - "encounter": { - "1": "我將用我平時的隊伍\n作為四天王的一員面對你。" - }, - "victory": { - "1": "打得真好呀~" - }, - "defeat": { - "1": "讓我們為你寶可夢的努力給予熱烈的掌聲!" - } - }, - "drayton": { - "encounter": { - "1": "哥們,我喜歡椅子。\n你喜歡椅子嗎?簡直是救星。$我不明白為什麼大家不一直坐著。\n站著多累人!" - }, - "victory": { - "1": "我早該想到的!" - }, - "defeat": { - "1": "嘿嘿嘿!別介意我,\n我只是在這裡小贏一下。$如果你不開心,我懂,\n但別因為我對烏栗發火,OK?" - } - }, - "ramos": { - "encounter": { - "1": "我用那些強壯的植物\n蓋出來的遊樂場精彩嗎?$它們的力量象徵著我這個園丁兼道館館主的實力,\n你真的確定能夠與之抗衡嗎?" - }, - "victory": { - "1": "你信任你的寶可夢,\n它們也信任你…不錯的戰鬥,小豆芽。" - }, - "defeat": { - "1": "呵呵呵…確實,\n脆弱的小草甚至能穿透混凝土。" - } - }, - "viola": { - "encounter": { - "1": "敗陣時的後悔,勝利的瞬間…$都是最棒的影象!很好呀,很好呀!$那麼來吧!", - "2": "我的鏡頭總會聚焦在勝利上,\n我不會讓任何事情破壞這個畫面!" - }, - "victory": { - "1": "你和你的寶可夢向我展示了一個全新的鏡頭機位!\n很好呀,很好呀!", - "2": "你通過鏡頭看到的世界,\n和你與寶可夢並肩作戰時看到的世界…$視角不同,即使是同一個世界看起來也完全不同。" - }, - "defeat": { - "1": "我勝利那一刻的照片,\n將是一個真正的贏家,對吧!", - "2": "是的!我拍了些很棒的照片!" - } - }, - "candice": { - "encounter": { - "1": "向小菘我挑戰嗎?好啊!\n我就是在等待強者$但是我也氣勢高昂,很強哦?", - "2": "寶可夢也好,時尚也好,戀愛也好,\n無論做什麼都氣勢高昂!$就說到這兒吧,讓你見識一下我的氣勢,\n要做好覺悟哦!" - }, - "victory": { - "1": "好厲害!我有點尊敬你了。", - "2": "好厲害!我有點尊敬你了!$嗯,感覺是被你的氣勢給壓倒了。" - }, - "defeat": { - "1": "你的氣勢我看到了,但我還是不會輸的!", - "2": "怎麼樣?小菘我的氣勢!\n寶可夢們的氣勢滿滿哦!" - } - }, - "gardenia": { - "encounter": { - "1": "你身上有一種勝利的氣息。\n那麼不管怎樣,$這應該會是場有趣的戰鬥。\n讓我們對戰吧!" - }, - "victory": { - "1": "太棒了!你可擅長對戰了,不是嗎?" - }, - "defeat": { - "1": "太好了!我的寶可夢和我都很棒!" - } - }, - "aaron": { - "encounter": { - "1": "好的!讓我來接受你的挑戰!" - }, - "victory": { - "1": "戰鬥是一件深刻而複雜的事情……" - }, - "defeat": { - "1": "戰勝一位四天王並不容易。" - } - }, - "cress": { - "encounter": { - "1": "沒!錯!你必須面對\n與我和我高貴的水屬性的戰鬥!" - }, - "victory": { - "1": "輸了?我?我不敢相信。" - }, - "defeat": { - "1": "當你的對手是我時,這是必然的結果。" - } - }, - "allister": { - "encounter": { - "1": "我是歐尼奧。$我…我來了……" - }, - "victory": { - "1": "我差點被嚇得丟了面具…那真是…$哇。我可以看清你真正的實力。" - }, - "defeat": { - "1": "這真是太棒了!" - } - }, - "clay": { - "encounter": { - "1": "咳咳! 讓我好等,不是嗎,孩子?$好吧,是時候看看你能做到什麼了!" - }, - "victory": { - "1": "真是的……我先說好,\n我可沒有手下留情。" - }, - "defeat": { - "1": "最重要的是輸掉的時候該怎麼辦。$只要你能在失敗中找到教訓,\n就能夠不斷地成長!" - } - }, - "kofu": { - "encounter": { - "1": "我會給你上一整道水系寶可夢大餐!\n但別真吃了它們!" - }, - "victory": { - "1": "吃了嗎!你真是活力又新鮮啊,\n不是嗎!$就是有點太鮮活了!" - }, - "defeat": { - "1": "你要再來找我,聽見了嗎?" - } - }, - "tulip": { - "encounter": { - "1": "請讓我運用我的化妝技巧,$讓你可愛的小寶可夢變得更美麗!" - }, - "victory": { - "1": "你妝點的力量宛如魔法加固,\n完全沖洗不掉啊。" - }, - "defeat": { - "1": "你知道嗎,在我這行,\n那些沒天賦的人往往會很快消失,$再也不會被提起。" - } - }, - "sidney": { - "encounter": { - "1": "你給我的印象不錯,\n我猜這會是一場精彩的對戰。$很棒!看起來真的很棒!$你和我,讓我們享受一場\n只能在這裡上演的戰鬥吧!" - }, - "victory": { - "1": "嗯,你覺得怎樣?我輸了!\n嗯,不過這很有趣,所以無所謂啊。" - }, - "defeat": { - "1": "別介意,OK?" - } - }, - "phoebe": { - "encounter": { - "1": "過去我在修行時得到了\n能與幽靈寶可夢親密交流的能力。$沒錯,我和寶可夢之間\n有著強烈的羈絆。$那麼,來試試看你有沒有能力\n傷到我的寶可夢吧!" - }, - "victory": { - "1": "哦,天呀。我輸了。" - }, - "defeat": { - "1": "我期待著下次再和你戰鬥!" - } - }, - "glacia": { - "encounter": { - "1": "我在這兒見到的盡是些\n弱不禁風的訓練家和寶可夢。$你又如何呢?如果你能讓我不得不用\n上全力的話就再好不過了!" - }, - "victory": { - "1": "你和你的寶可夢…\n你們的靈魂燃燒得多麼熱烈啊!$這股激烈的熱能仿佛能征服一切。\n$難怪我的冰屬性技巧也奈何不了你了。" - }, - "defeat": { - "1": "一場充滿激情的戰鬥,確實。" - } - }, - "drake": { - "encounter": { - "1": "對於我們這些將寶可夢視為\n同伴一同戰鬥的訓練家來說,$你知道怎樣才能贏得勝利嗎?\n你知道獲得勝利的條件嗎?$如果你不知道,\n那麼你永遠也無法戰勝我!" - }, - "victory": { - "1": "幹得漂亮,就是這樣。" - }, - "defeat": { - "1": "我在這場戰鬥中全力以赴了!" - } - }, - "wallace": { - "encounter": { - "1": "你的氣質變了,\n我能感覺到這一點。$現在,把你和你的寶可夢\n的力量展現給我看吧。$作為回禮,就由我和我的寶可夢\n演出一場水之幻影吧!" - }, - "victory": { - "1": "精彩。此刻,我能從你身上感覺到\n身為寶可夢訓練家的可靠與高貴。$我真榮幸能遇到你和你的寶可夢。" - }, - "defeat": { - "1": "偉大的幻影!" - } - }, - "lorelei": { - "encounter": { - "1": "只要能讓我用冰屬性寶可夢,\n就絕對沒人能贏得過我!\n能凍住對方可是很厲害的哦!$因為如果被凍住,你的寶可夢就無法動彈了!\n啊哈哈!你做好覺悟了吧!" - }, - "victory": { - "1": "你怎麼敢!" - }, - "defeat": { - "1": "一旦你被凍結,你就什麼都做不了。" - } - }, - "will": { - "encounter": { - "1": "我曾經環遊世界,\n日以繼夜地做著超能力寶可夢的修行之旅。$我會不斷變強!沒理由會在這裡輸掉!" - }, - "victory": { - "1": "……不會吧……" - }, - "defeat": { - "1": "就差一點。\n我想知道你缺少了什麼。" - } - }, - "malva": { - "encounter": { - "1": "我的內心可是一直燃燒著呢。$燃燒著對你的怒火!" - }, - "victory": { - "1": "挑戰者出色地擊敗了四天王之一,帕琦拉。" - }, - "defeat": { - "1": "真開心啊,能將你徹底粉碎!" - } - }, - "hala": { - "encounter": { - "1": "老哈拉讓你放開嗓子!" - }, - "victory": { - "1": "我能感受到你在旅途中所獲得的力量。" - }, - "defeat": { - "1": "啊哈哈。多麼有趣的戰鬥。" - } - }, - "molayne": { - "encounter": { - "1": "我將隊長的位置讓給了我的表弟馬瑪內,\n但我對自己的能力很有信心。 $我的力量就像超新星一樣!" - }, - "victory": { - "1": "我發現了一個有趣的訓練師對手!" - }, - "defeat": { - "1": "啊哈哈。多麼有趣的戰鬥。" - } - }, - "rika": { - "encounter": { - "1": "我要對你手下留情,但……騙你的啦! $好好動腦!" - }, - "victory": { - "1": "不錯,小子。" - }, - "defeat": { - "1": "啊哈哈哈哈!你真的很特别,小子!" - } - }, - "bruno": { - "encounter": { - "1": "我們將用勢不可擋的力量磨滅你!呼哈!" - }, - "victory": { - "1": "為什麼?我怎麼會輸?" - }, - "defeat": { - "1": "你可以隨意挑戰我,\n但結果永遠不會改變!" - } - }, - "bugsy": { - "encounter": { - "1": "我是阿筆!\n對蟲系寶可夢的熟悉不會輸給任何人的!" - }, - "victory": { - "1": "哇,太棒了!\n你是個寶可夢專家!$我的研究還沒有完成。\n好吧,你贏了。" - }, - "defeat": { - "1": "謝謝!多虧了我們的戰鬥,\n我的研究也取得了進展!" - } - }, - "koga": { - "encounter": { - "1": "哇哈哈哈哈!$寶可夢不僅僅是關於蠻力,拭目以待吧!" - }, - "victory": { - "1": "啊!你證明了自己!" - }, - "defeat": { - "1": "懂不懂要對忍者的技巧心神畏懼?" - } - }, - "bertha": { - "encounter": { - "1": "啊,讓老婆婆看看你學到了什麼?" - }, - "victory": { - "1": "好吧,親愛的孩子,\n不得不說,那令人印象深刻。$你的寶可夢相信你並盡最大努力為你贏得勝利。$儘管我輸了,\n我也止不住笑呢!" - }, - "defeat": { - "1": "哈哈哈!看來老婆婆我贏了!" - } - }, - "lenora": { - "encounter": { - "1": "那麼,挑戰者,讓我來研究$你與你精心養育的寶可夢要如何戰鬥!" - }, - "victory": { - "1": "我關於你的理論是正確的。$你不僅僅是有天賦……你很努力!\n我向你致敬!" - }, - "defeat": { - "1": "啊哈哈!如果你輸了,\n一定要分析原因,$並在下一場戰鬥中運用那些知識!" - } - }, - "siebold": { - "encounter": { - "1": "只要我活著,我將不斷努力尋求終極美食…$以及和最強的對手戰鬥!" - }, - "victory": { - "1": "您的事蹟,我志米銘記在心。" - }, - "defeat": { - "1": "我們的寶可夢戰鬥就像我靈魂的養料。\n它將讓我繼續前進。$這就是我將向你表示敬意的方式,\n感謝你在戰鬥中全力以赴!" - } - }, - "roxie": { - "encounter": { - "1": "準備好了嗎!我要給你上一課!" - }, - "victory": { - "1": "夠野的!你的想法比我的還要毒!" - }, - "defeat": { - "1": "嘿,拜託!認真點!\n你要加把勁啊!" - } - }, - "olivia": { - "encounter": { - "1": "沒什麼開場白。\n是時候和我麗姿,戰鬥了!" - }, - "victory": { - "1": "真的很可愛……你和你的寶可夢……" - }, - "defeat": { - "1": "嗯哼。" - } - }, - "poppy": { - "encounter": { - "1": "哦!你想和我進行寶可夢對戰麼?" - }, - "victory": { - "1": "嗚哇?!嘛……" - }, - "defeat": { - "1": "耶!我做到了!我擊~敗~了~你!\n你可以來…打…復仇之戰?$只要你想,隨時來打復仇之戰吧!" - } - }, - "agatha": { - "encounter": { - "1": "寶可夢是用來戰鬥的!我會讓你看看真正訓練家的戰鬥!" - }, - "victory": { - "1": "哦,我的天!你真是個特別的孩子!" - }, - "defeat": { - "1": "哈哈哈,這才是正確的戰鬥方式!" - } - }, - "flint": { - "encounter": { - "1": "希望你已經熱身完畢,\n因為這裡即將大爆炸!" - }, - "victory": { - "1": "不可思議!$你的動作如此火熱,讓我看起來溫吞吞的!" - }, - "defeat": { - "1": "嗯?就這嗎?\n我覺得你得再激情點。" - } - }, - "grimsley": { - "encounter": { - "1": "一無所有,\n或者,贏下所有!" - }, - "victory": { - "1": "一旦失敗,\n就意味著失去一切……$下一次我要追尋勝利!" - }, - "defeat": { - "1": "如果有人贏了,\n和他對戰的人就會輸。" - } - }, - "caitlin": { - "encounter": { - "1": "當花兒綻開時、我便出現。\n成為你在等待的人…$你似乎同時具備實力和善意$我所尋找的是擁有卓越力量的對手…$請用出你的全力吧!" - }, - "victory": { - "1": "我和我的寶可夢學到了很多!非常感謝。" - }, - "defeat": { - "1": "我渴望以優雅的姿態取得勝利。" - } - }, - "diantha": { - "encounter": { - "1": "與你的寶可夢對戰\n讓你充滿了未來的希望…$說真的,這讓我更有活力地面對新的一天,確實如此!" - }, - "victory": { - "1": "擁有高尚靈魂的訓練家和寶可夢的身姿,\n讓我的心激烈地震顫…" - }, - "defeat": { - "1": "哦,太棒了!你覺得怎麼樣?\n我的隊伍很酷吧~對吧?" - } - }, - "wikstrom": { - "encounter": { - "1": "年輕的挑戰者,幸會!\n我乃是著名的鋼鐵之刃,公爵雁鎧! $讓我們開始戰鬥吧!預備!" - }, - "victory": { - "1": "輝煌!你與你尊貴的\n寶可夢之間的信任居然勝過了我!" - }, - "defeat": { - "1": "哦哦哦!這是怎麼回事,\n我的心止不住地在震顫! $與如此有價值的對手的勝利\n讓我的靈魂飛翔——我心翱翔!" - } - }, - "acerola": { - "encounter": { - "1": "對戰只是找個樂子!來吧,我來會會你!" - }, - "victory": { - "1": "我……我說不出話!你是怎麼做到的?!" - }, - "defeat": { - "1": "哈哈!真是嚇人倒怪的勝利呀!" - } - }, - "larry_elite": { - "encounter": { - "1": "……你好,我是青木。$麻煩的是我還要兼任四天王。" - }, - "victory": { - "1": "好吧,我們翅膀下的疾風止於你這了啊…" - }, - "defeat": { - "1": "是時候和老闆開會了。" - } - }, - "lance": { - "encounter": { - "1": "我一直在等你。讓我來試試你有幾斤幾兩。", - "2": "我知道你能走這麼遠。讓我們開始吧。" - }, - "victory": { - "1": "被你拿下了啊。你太出色了!", - "2": "我從沒想到會有另一個訓練師打敗我……$我很驚訝。" - }, - "defeat": { - "1": "就差一點。想再試一次嗎?", - "2": "我沒覺得你弱,別因此困擾。" - } - }, - "karen": { - "encounter": { - "1": "我是梨花,你想和我的惡屬性寶可夢$來一場對決嗎?", - "2": "我和你見過的那些人不一樣。", - "3": "你組建了一支迷人的隊伍。$我們的戰鬥應該會是場精彩的比賽。" - }, - "victory": { - "1": "不!我贏不了。你是怎麼做到變得這麼強的?", - "2": "我不會偏離我所選擇的道路。", - "3": "冠軍正期待與你見面。" - }, - "defeat": { - "1": "意料之中。", - "2": "嗯,還算有點意思。", - "3": "隨時歡迎你來找我。" - } - }, - "milo": { - "encounter": { - "1": "看起來你顯然很了解寶可夢。$這會是一場激烈的戰鬥!$如果我想贏,我得讓我的寶可夢極巨化!" - }, - "victory": { - "1": "草的力量凋謝了…多麼不可思議的挑戰者!" - }, - "defeat": { - "1": "這必將讓你大吃一驚。" - } - }, - "lucian": { - "encounter": { - "1": "請稍等,我正在讀的書\n正要進入最精彩的部分…$英雄獲得了一把神秘之劍,\n即將面臨最後的考驗…啊,算了。$既然你能走到這一步,\n我就不說這些了,和你戰鬥吧。$讓我看看你是否\n能像我書中的主角一樣榮耀!" - }, - "victory": { - "1": "我明白了…看來你把我逼入了絕境。" - }, - "defeat": { - "1": "我得維護我的名譽。" - } - }, - "drasna": { - "encounter": { - "1": "你很厲害吧,\n而且相當相當地厲害呢。$我很高興,能和這樣的對手交手,\n就能更好地培養寶可夢們了。" - }, - "victory": { - "1": "哎呀,就這麼結束了,\n不好意思,可以的話歡迎再來。" - }, - "defeat": { - "1": "怎麼會這樣?" - } - }, - "kahili": { - "encounter": { - "1": "那麼,既然來了……\n要不來看看今天的風更青睞誰?$是你……還是我?" - }, - "victory": { - "1": "讓我這個四天王都感到沮喪,$看來你的力量貨真價實。" - }, - "defeat": { - "1": "那真是一記好球!" - } - }, - "hassel": { - "encounter": { - "1": "讓你親身感受一下什麼叫做猛烈的對戰氣息吧!" - }, - "victory": { - "1": "這次幸運之神對我微笑了,但是……$誰知道我下次會不會這麼幸運。" - }, - "defeat": { - "1": "那可真厲害!" - } - }, - "blue": { - "encounter": { - "1": "能走到這裡,你一定非常優秀。" - }, - "victory": { - "1": "我只輸給過他,現在又是你……?$你問他是誰?哈哈哈……" - }, - "defeat": { - "1": "看吧?我的實力就是我來到這裡的原因。" - } - }, - "piers": { - "encounter": { - "1": "準備好和我的隊伍來個大狂歡吧!$尖釘鎮,是時候嗨起來了!" - }, - "victory": { - "1": "我和我的隊伍已經盡力了。$找個時間再來對戰吧……" - }, - "defeat": { - "1": "我的喉嚨因為呼喊而變得沙啞……$但這是一場激動人心的戰鬥!" - } - }, - "red": { - "encounter": { - "1": "…!" - }, - "victory": { - "1": "…?" - }, - "defeat": { - "1": "…!" - } - }, - "jasmine": { - "encounter": { - "1": "哦……你的寶可夢給人印象深刻。$我想我會享受這場戰鬥的。" - }, - "victory": { - "1": "你真的很強。我也得加把勁了。" - }, - "defeat": { - "1": "我從沒想到會贏。" - } - }, - "lance_champion": { - "encounter": { - "1": "我依舊是冠軍,所以我不會留情的。" - }, - "victory": { - "1": "這就是新冠軍的崛起。" - }, - "defeat": { - "1": "我成功捍衛了冠軍的頭銜。" - } - }, - "steven": { - "encounter": { - "1": "告訴我…你在和寶可夢的旅途過程中看到了什麼?$邂逅了那麼多的訓練師,\n你都會有什麼樣的感受呢?$在這豐饒的大地上旅行…\n有沒有喚醒你內在的某種東西?$你不如就用一場對戰來告訴我你心中的答案吧。$我也會和我的寶可夢用這種方式\n將我們所知道的告訴你的!" - }, - "victory": { - "1": "沒想到連我這個聯盟冠軍\n都敗在你的手上了呢…" - }, - "defeat": { - "1": "正如我所期待的。謝謝!" - } - }, - "cynthia": { - "encounter": { - "1": "我,竹蘭,接受你的挑戰!\n我是絕不會手軟的!" - }, - "victory": { - "1": "無論對戰多麼有趣,\n它總會有結束的時候……" - }, - "defeat": { - "1": "即使你輸了,\n也永遠不要失去你對寶可夢的熱愛。" - } - }, - "iris": { - "encounter": { - "1": "你知道嗎?\n我真的很期待和強大的訓練師進行認真的戰鬥!$我的意思是,來吧!\n到達這裡的是那些渴望勝利的訓練師,$他們與經歷過無數艱難\n戰鬥的寶可夢一起戰鬥!$如果我和那樣的人戰鬥,\n不僅我會變得更強,我的寶可夢也會!$我們也會更好地了解彼此!\n好!做好準備吧!$我是艾莉絲,寶可夢聯盟冠軍,\n我,將打敗你!" - }, - "victory": { - "1": "啊……我盡力了,但我們輸了……" - }, - "defeat": { - "1": "耶!我們贏了!" - } - }, - "hau": { - "encounter": { - "1": "我想知道,訓練師是否會根據他們是\n來自溫暖地區還是寒冷地區而以不同的方式戰鬥。$讓我們來測試一下!" - }, - "victory": { - "1": "那太棒了!我覺得我現在有點了解你的感覺了!" - }, - "defeat": { - "1": "老鐵,這才叫戰鬥!" - } - }, - "geeta": { - "encounter": { - "1": "我決定再試一次。$來吧…讓我看看你的訓練成果。" - }, - "victory": { - "1": "我期待著你的成就!" - }, - "defeat": { - "1": "怎麼,這就結束了?" - } - }, - "nemona": { - "encounter": { - "1": "耶!我太興奮了!讓我們稍微放輕鬆!" - }, - "victory": { - "1": "好吧,太糟了,但我還是玩得很開心!$下次我一定會贏你!" - }, - "defeat": { - "1": "好吧,那是一場很棒的戰鬥!$肯定是會有收穫的啦。" - } - }, - "leon": { - "encounter": { - "1": "來享受一段冠軍時刻吧!" - }, - "victory": { - "1": "我的冠軍生涯結束了……但這是多麼美好的冠軍時刻啊!但這是多麼美好的冠軍時刻啊!謝謝你給了我最精彩的一戰!" - }, - "defeat": { - "1": "名副其實的冠軍時刻!" - } - }, - "whitney": { - "encounter": { - "1": "嘿!你不認為寶可夢超級可愛嗎?" - }, - "victory": { - "1": "哇啊!哇啊!你太壞了!" - }, - "defeat": { - "1": "就是這樣!" - } - }, - "chuck": { - "encounter": { - "1": "哈!你想挑戰我?你是勇敢還是無知?" - }, - "victory": { - "1": "你很強!能不能收我為徒?" - }, - "defeat": { - "1": "搞定。你明白我比你強得多了嗎?" - } - }, - "katy": { - "encounter": { - "1": "不要放鬆警惕,除非你想被蟲絲絆倒哦!" - }, - "victory": { - "1": "我可愛的寶可夢們都像蒼蠅一樣墜落了!" - }, - "defeat": { - "1": "開飯啦,我可愛的彩粉蝶!" - } - }, - "pryce": { - "encounter": { - "1": "年輕不代表能獲得勝利!經驗才是關鍵。" - }, - "victory": { - "1": "無與倫比!贏得完美,試著不要忘記你現在的感受。" - }, - "defeat": { - "1": "正如我所料。" - } - }, - "clair": { - "encounter": { - "1": "你知道我是誰嗎?知道還敢挑戰我?" - }, - "victory": { - "1": "我想知道以你現在的水平能走多遠,有趣。" - }, - "defeat": { - "1": "就是這樣。" - } - }, - "maylene": { - "encounter": { - "1": "我現在要挑戰你,我不會保留任何實力。$請準備好戰鬥!" - }, - "victory": { - "1": "是我輸了…" - }, - "defeat": { - "1": "太棒了。" - } - }, - "fantina": { - "encounter": { - "1": "你來挑戰吧。我會勝利。$這就是家緣市的道館館主。" - }, - "victory": { - "1": "你是最強的,我認輸了。" - }, - "defeat": { - "1": "我非常,非常高興!" - } - }, - "byron": { - "encounter": { - "1": "和我兒子瓢太一樣的年輕人啊!$我相信培養年輕人\n關係到寶可夢光明的未來!$為此就讓我來成為\n年輕人必須跨越的堡壘吧!" - }, - "victory": { - "1": "唔!我千錘百煉的寶可夢!" - }, - "defeat": { - "1": "哈哈哈哈!怎麼樣!我千錘百煉的寶可夢!" - } - }, - "olympia": { - "encounter": { - "1": "戰鬥是決定命運的古老傳統。讓我們開始吧!" - }, - "victory": { - "1": "創造你自己的道路。$不要讓任何東西阻擋你的路、你的命運、你的未來。" - }, - "defeat": { - "1": "我們的道路現在已經清晰了。" - } - }, - "volkner": { - "encounter": { - "1": "能留到最後的訓練家想必肯定是很強的…$希望你會是能讓我回憶起\n寶可夢對戰樂趣的訓練家!" - }, - "victory": { - "1": "我輸了…$你的心意,寶可夢的不顧一切。$戰鬥的時候就讓我熱血沸騰。" - }, - "defeat": { - "1": "完全沒感覺…$和我希望的完全不一樣!" - } - }, - "burgh": { - "encounter": { - "1": "唔…我有預感,\n只要贏了這場戰鬥就能畫出更好的畫來…$嗯!戰鬥充滿了幻象!那麼,馬上開始吧。", - "2": "當然,我對我所有的寶可夢都相當驕傲! $現在…讓我們馬上開始吧!" - }, - "victory": { - "1": "結束了嗎?我的女神拋棄我了嗎?", - "2": "啊唔,輸了……你還真是很強啊。" - }, - "defeat": { - "1": "唔啊……好……好美啊!", - "2": "偶爾也有一些不是很好看的勝利,$但只要努力了,\n不管怎麼樣的戰鬥,都是很美麗的。" - } - }, - "elesa": { - "encounter": { - "1": "最後一擊!\n在確信這一點的時候全身會流淌過電流!$為追求這個快感,\n我要用可愛的寶可夢們讓你頭暈眼花。" - }, - "victory": { - "1": "本想讓你頭暈的,\n結果我倒反被你電到了。" - }, - "defeat": { - "1": "感覺還不夠啊……下次能使出全力來嗎?" - } - }, - "skyla": { - "encounter": { - "1": "終於到決戰了!\n這是決定頂點的寶可夢對戰吧?$我最喜歡頂點了!\n在高的地方能看到很遠很遠!$好了!就讓我和你好好地玩一場吧!" - }, - "victory": { - "1": "和你的戰鬥讓我更強了……謝謝。" - }, - "defeat": { - "1": "不管是贏了還是輸了,戰鬥都能得到一些東西。" - } - }, - "brycen": { - "encounter": { - "1": "有其他的人和寶可夢在一起,$這份支持會讓自己更強…\n讓我來給你展示一下這樣的強大吧!" - }, - "victory": { - "1": "你和你的寶可夢!配合得天衣無縫!\n華麗的友情!" - }, - "defeat": { - "1": "嘗試極限!鍛鍊!" - } - }, - "drayden": { - "encounter": { - "1": "現在我尋求的是\n能讓我看到光明未來的年輕訓練家。$你有多少實力,就讓我用我的經驗,\n我對寶可夢傾注的愛來驗證吧!" - }, - "victory": { - "1": "失敗後湧現的這灼熱的意志…\n該怎麼說呢…" - }, - "defeat": { - "1": "啊啊啊!你的實力就這種程度嗎!" - } - }, - "grant": { - "encounter": { - "1": "我只期待一件事。. $通過超越彼此,\n我們找到通往更高境界的道路。" - }, - "victory": { - "1": "你是一堵我無法逾越的牆!" - }, - "defeat": { - "1": "不要放棄。\n這就是人生的真諦。$大道至簡。" - } - }, - "korrina": { - "encounter": { - "1": "小女子科爾尼來大顯身手啦!" - }, - "victory": { - "1": "正因為有你,\n才能讓你的寶可夢進化!" - }, - "defeat": { - "1": "好勁爆的戰鬥呀!" - } - }, - "clemont": { - "encounter": { - "1": "哦!我很高興我們能見面!" - }, - "victory": { - "1": "你對戰鬥的熱情激勵了我!" - }, - "defeat": { - "1": "看來我的訓練師成長強化機-馬克2號,\n真的起作用了!" - } - }, - "valerie": { - "encounter": { - "1": "哦,這不是一個年輕的訓練師嗎……\n能這樣遇見你真是太好了。 $我想你已經獲得了這場戰鬥的資格,\n作為對你努力的獎勵。 $難以捉摸的妖精可能看起來像微風一樣脆弱,\n像花朵一樣精緻,但很堅強。" - }, - "victory": { - "1": "我希望明天你也能找到一些值得會心微笑的事物……" - }, - "defeat": { - "1": "哦,天哪,這太遺憾了……" - } - }, - "wulfric": { - "encounter": { - "1": "你知道嗎?\n我們都說戰鬥能學到東西,羈絆之類的,$但實際上,我這麼做只是因為有趣。 $誰在乎那些華而不實的東西?\n我們來戰鬥吧!" - }, - "victory": { - "1": "傑出!我像冰山一樣堅硬,但你徹底擊潰了我!" - }, - "defeat": { - "1": "和我幹的結果就是這樣!" - } - }, - "kabu": { - "encounter": { - "1": "每個訓練師和寶可夢都在努力追求勝利。$但這意味著你的對手也在努力贏得勝利。$最終,比賽是由哪一方\n能夠發揮出他們真正的潛力來決定的。" - }, - "victory": { - "1": "我很高興今天能和你戰鬥!" - }, - "defeat": { - "1": "這是我感覺自己的成長的好方式!" - } - }, - "bea": { - "encounter": { - "1": "你有沒有一種不可動搖的精神,\n受到什麼攻擊都安如磐石? $就讓我來試試吧?" - }, - "victory": { - "1": "我感受到了你的寶可夢\n在戰鬥中被你指揮時的戰鬥之魂。" - }, - "defeat": { - "1": "每個人都希望能有一場這樣的好比賽。" - } - }, - "opal": { - "encounter": { - "1": "讓我看看你和你的寶可夢的表現如何!" - }, - "victory": { - "1": "你不夠粉嫩呀,\n但你是一個優秀的訓練師,$還擁有著優秀的寶可夢。" - }, - "defeat": { - "1": "對你來說太慘了,我覺得。" - } - }, - "bede": { - "encounter": { - "1": "就讓我來證明你有多可憐,我有多強大。" - }, - "victory": { - "1": "我懂了……好吧。其實我還沒拿出全力呢。" - }, - "defeat": { - "1": "我覺得我打得不錯。" - } - }, - "gordie": { - "encounter": { - "1": "好了,我們來做個了結吧!" - }, - "victory": { - "1": "我只想要挖一個洞爬進去……$好吧,現在更像是掉了進去。" - }, - "defeat": { - "1": "像往常一樣戰鬥,勝利就會隨之而來!" - } - }, - "marnie": { - "encounter": { - "1": "事實上,言而總之… \n人家自己也想當冠軍呀! $所以別認為我在針對你!" - }, - "victory": { - "1": "好吧,我還是輸了……\n但是我看到了很多你和你寶可夢的優點哦" - }, - "defeat": { - "1": "希望你喜歡我們的戰鬥策略。" - } - }, - "raihan": { - "encounter": { - "1": "我打算擊敗冠軍,贏得錦標賽,\n並向世界證明奇巴納大人有多強!" - }, - "victory": { - "1": "就算輸了我也好帥。$真是罪孽深重啊。$看來得再來張自拍了!" - }, - "defeat": { - "1": "為了紀念此刻,來張自拍吧!" - } - }, - "brassius": { - "encounter": { - "1": "你應該準備好了吧,\n一起完成這美麗的藝術作品吧!" - }, - "victory": { - "1": "啊……前衛!" - }, - "defeat": { - "1": "我將立即開始新的創作!" - } - }, - "iono": { - "encounter": { - "1": "誰在奇述!是我奇樹!\n做好準備了嗎!$...$直播開始!\n今天的小挑戰者有多強?$奇樹不知道哦~\n讓我們一起來看看吧!" - }, - "victory": { - "1": "你的閃耀如1000萬伏特!朋友!" - }, - "defeat": { - "1": "奇樹奇樹捕獲你的眼球!" - } - }, - "larry": { - "encounter": { - "1": "歸根結底,普普通通就是最強。" - }, - "victory": { - "1": "哼,給我上了一道“戰敗”。" - }, - "defeat": { - "1": "下班打卡,走了" - } - }, - "ryme": { - "encounter": { - "1": "寶貝, 一起! \n搖滾搖到骨子裡!" - }, - "victory": { - "1": "你好酷!我佩服!\n我的靈魂為你哭!" - }, - "defeat": { - "1": "再會, 寶貝!" - } - }, - "grusha": { - "encounter": { - "1": "我保證我寶可夢的力量\n會讓你感到寒冷徹骨!" - }, - "victory": { - "1": "你燃燒的熱情……老實說,我有點喜歡。" - }, - "defeat": { - "1": "你沒有升溫。" - } - }, - "marnie_elite": { - "encounter": { - "1": "你已經走到這一步了?$哼~ 看看你能不能對付我的寶可夢!", - "2": "我將全力以赴, 別覺得我會手下留情哦~" - }, - "victory": { - "1": "不敢相信…我輸掉了… $但是你確實贏得好,幹得漂亮捏~", - "2": "看來我還要多多學習呀,\n不過你打得很不錯哦~" - }, - "defeat": { - "1": "你打得不錯,但是我更勝一籌!$祝你下次好運啦~", - "2": "看來我的練習有所回報了。\n感謝一戰!" - } - }, - "nessa_elite": { - "encounter": { - "1": "海流正在朝著對我有利的方向轉變。$準備好被捲走了嗎?", - "2": "讓我們在這場戰鬥中掀起波瀾!$我希望你做好準備!" - }, - "victory": { - "1": "你完美地渡過了這片水域......幹得好!", - "2": "看來我現在無法與你匹敵。幹得好!" - }, - "defeat": { - "1": "水總能找到出路。\n真是爽快的一戰!", - "2": "你打得很好,\n但海洋的力量是不可阻擋的!" - } - }, - "bea_elite": { - "encounter": { - "1": "做好準備!我的鬥志熊熊燃燒!", - "2": "讓我們看看你是否能跟上我永不停歇的節奏!" - }, - "victory": { - "1": "你的實力......令人印象深刻。\n你真的值得這場勝利。", - "2": "我以前從未感受過這種強度。\n太棒了!" - }, - "defeat": { - "1": "我的高強度訓練又帶來勝利了!\n幹得好!", - "2": "你有實力,但我的訓練更努力。\n精彩的戰鬥!" - } - }, - "allister_elite": { - "encounter": { - "1": "黑暗降臨...你準備好面對你的恐懼了嗎?", - "2": "讓我們看看你能否應對我所操控的黑暗。" - }, - "victory": { - "1": "你已經驅散了陰影......\n暫時。幹得很好。", - "2": "你的光芒刺穿了我的黑暗。幹得好。" - }, - "defeat": { - "1": "黑影在輕語...\n你的力量還不夠。", - "2": "黑暗獲勝了......\n也許下次你會看到光明。" - } - }, - "raihan_elite": { - "encounter": { - "1": "風暴來臨!你能挺過這場戰鬥嗎!", - "2": "準備好面對風暴之眼!" - }, - "victory": { - "1": "你戰勝了風暴...難以置信!", - "2": "你完美地駕馭了風……打得好!" - }, - "defeat": { - "1": "又一場風暴襲來,又一場勝利!打得好!", - "2": "你被我的風暴捲入了!祝你下次好運!" - } - }, - "alder": { - "encounter": { - "1": "準備好和合眾最強的訓練家交手吧!" - }, - "victory": { - "1": "精彩!簡直就是天下無雙!" - }, - "defeat": { - "1": "戰鬥結束後,我的心像是吹過了溫和的風…\n$真是厲害!" - } - }, - "kieran": { - "encounter": { - "1": "我的努力讓我越來越強!\n$所以我不會輸。" - }, - "victory": { - "1": "不可能…\n$真是一場有趣又激動人心的戰鬥啊!" - }, - "defeat": { - "1": "哇塞,好一場戰鬥!\n$你得多練練了。" - } - }, - "rival": { - "encounter": { - "1": "@c{smile}嘿,我在找你呢!我知道你急著上路,\n但至少說個再見吧…$@c{smile_eclosed}所以你終於要開始追逐夢想了?\n我幾乎不敢相信。$@c{serious_smile_fists}來都來了,來一場對戰怎麼樣?\n畢竟,我想看看你是不是準備周全了。$@c{serious_mopen_fists}不要手下留情,我想讓你全力以赴!" - }, - "victory": { - "1": "@c{shock}哇…你徹底擊敗了我。\n你是真初學者嗎?$@c{smile}也許是靠點運氣,但是…\n誰知道,你可能真的能一路走下去。$順便說一下,博士讓我給你這些東西。它們看起來可牛了。$@c{serious_smile_fists}祝你好运!" - } - }, - "rival_female": { - "encounter": { - "1": "@c{smile_wave}你在這兒啊!我到處找你呢!$@c{angry_mopen}你忘了和你最好的朋友說再見了嗎?$@c{smile_ehalf}你要去追逐夢想了,對吧?\n從今天開始,是不是…$@c{smile}不管怎樣,忘了我的事就原諒你吧,\n但有個條件。@c{smile_wave_wink}你必須和我對戰!$@c{angry_mopen}全力以赴!\n你也不想讓你的冒險在開始之前就結束了,對吧?" - }, - "victory": { - "1": "@c{shock}你剛開始就已經這麼強了?!@d{96}$@c{angry}你是不是開了?$@c{smile_wave_wink}只是開個玩笑啦!@d{64} @c{smile_eclosed}我輸地心服口服了…\n我感覺你出去挺有天賦的。$@c{smile}順便說一下,博士想讓我給你一些東西。\n希望它們能幫上忙!$@c{smile_wave}像往常一樣盡力而為!\n我相信你!" - } - }, - "rival_2": { - "encounter": { - "1": "@c{smile}嘿,你也在這裡嗎?$@c{smile_eclosed}一路過關斬將,是吧?$@c{serious_mopen_fists}我知道看起來好像我尾隨著你來到這裡,\n怎麼可能啦。$@c{serious_smile_fists}說真的,自從你在老家打敗我後,\n我就一直很渴望再比一場。$我自己也進行了很多訓練,\n所以這次我肯定會好好打一場。$@c{serious_mopen_fists}不要手下留情,就像以前一樣!$讓我們開始吧!" - }, - "victory": { - "1": "@c{neutral_eclosed}哦。我過於自信了。$@c{smile}不過沒關係。我猜到可能會這樣。$@c{serious_mopen_fists}這只意味著我下次需要更努力!$$@c{smile}呃,不是特意幫你,我正好有多餘的這個,\n我覺得你可能想要。$$@c{serious_smile_fists}不過這次之後別指望再有了!$我不能一直給我的對手優勢。$@c{smile}反正,保重!" - } - }, - "rival_2_female": { - "encounter": { - "1": "@c{smile_wave}哦,真巧,在這裡遇見你。\n看來你還沒輸過嘛。@c{angry_mopen}哈……好傢伙!$@c{angry_mopen}我知道你在想什麼,\n不,我才不會跟蹤你什麼呢。 @c{smile_eclosed}我只是碰巧在附近。$@c{smile_ehalf}我為你感到高興,但我只想讓你知道\n有時輸了是可以接受的。$@c{smile}我們從錯誤中學到的東西\n往往比我們一直成功時學到的還要多。$@c{angry_mopen}無論如何,我為了我們的複賽已經努力訓練了\n所以你最好全力以赴!" - }, - "victory": { - "1": "@c{neutral}我……沒打算會輸來著……$@c{smile}嗷……好吧。看來我要再更加努力訓練了!$@c{smile_wave}我還給你帶了個這個$@c{smile_wave_wink}不用謝我哦~.$@c{angry_mopen}不過,這是最後一個啦!\n 你可別想再從我這賺小便宜了~$@c{smile_wave}要保重哦!" - }, - "defeat": { - "1": "輸了有時候也不要緊的…" - } - }, - "rival_3": { - "encounter": { - "1": "@c{smile}嘿,看看這是誰!好久不見啊。$@c{neutral}你……還是沒輸過?哈…$@c{neutral_eclosed}這有點……不太對勁。$沒有你一起,回家的感覺有很不一樣。$@c{serious}雖然我知道這挺別扭的,但我就直說了。$@c{neutral_eclosed}我覺得你有點兒難以理解。$@c{serious}沒有人能夠戰無不勝。$失敗乃成功之母。$@c{neutral_eclosed}你已經贏得了夠好的成績,\n但前面道阻且長,只會愈發艱難。 @c{neutral}你做好準備了沒?$@c{serious_mopen_fists}如果做好了,證明給我看吧。" - }, - "victory": { - "1": "@c{angry_mhalf}這太離譜了……我幾乎從沒停下訓練……$我們之間的差距怎麼還是這麼大?" - } - }, - "rival_3_female": { - "encounter": { - "1": "@c{smile_wave}好久不見!還沒輸過,對吧。$@c{angry}我覺得你點煩了。@c{smile_wave_wink}開玩笑啦!$@c{smile_ehalf}但說真的,你現在不想家嗎?\n 不想…我嗎?$我……我的意思是,我們真的很想你。$@c{smile_eclosed}我支持你的一切,包括你的夢想。\n但現實就是你早晚會經歷失敗。$@c{smile}當你失敗的時候,我想像往常一樣陪在你身邊。$@c{angry_mopen}現在,給你看看我變得多強了吧!" - }, - "victory": { - "1": "@c{shock}都這樣了……還是不夠嗎?$這樣下去,你就永遠不會回來了……" - }, - "defeat": { - "1": "你盡力了,現在讓我們回家吧。" - } - }, - "rival_4": { - "encounter": { - "1": "@c{neutral}嘿。$我不會對你說什麼拐彎抹角的客套話。$@c{neutral_eclosed}我來,就是為了贏,簡單明了。$@c{serious_mhalf_fists}我將所有時間都投入到訓練中,\n掌握了如何發揮我的潛力。$@c{smile}當你削減掉不必要的睡眠和社交後,\n你會得到很多額外的時間。$@c{serious_mopen_fists}但在我獲勝之前,這些都不重要了。$@c{neutral_eclosed}我甚至已經到達了戰無不敗的境地。$@c{smile_eclosed}我覺得你的思路倒是也沒毛病。$@c{angry_mhalf}失敗是屬於弱者的,\n我已經不再軟弱了。$@c{serious_mopen_fists}準備好吧。" - }, - "victory": { - "1": "@c{neutral}你…@d{64} 你是人嗎?" - } - }, - "rival_4_female": { - "encounter": { - "1": "@c{neutral}是我哦!沒又把我忘了吧……是嗎?$@c{smile}你應該為自己走了這麼遠感到驕傲。恭喜你!$但看來你的旅程到此為止了。$@c{smile_eclosed}你喚醒了我體內一些我從未有過的東西。\n就像我現在滿腦子除了訓練還是訓練。$@c{smile_ehalf}我幾乎已經沒空吃飯睡覺了,\n我沒日沒夜訓練我的寶可夢,每次都能變得更強。$@c{neutral}事實上,我……幾乎不認識自己了。$現在,我終於達到了巔峰。\n我感覺我已經戰無不勝了。$而且你知道嗎?這一切都是因為你。$@c{smile_ehalf}我不知道到底是該感謝你還是恨你。$@c{angry_mopen}做好準備…" - }, - "victory": { - "1": "@c{neutral}你…@d{64} 你是人嗎?" - }, - "defeat": { - "1": "@c{smile}你應該為自己走了這麼遠感到驕傲。" - } - }, - "rival_5": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - } - }, - "rival_5_female": { - "encounter": { - "1": "@c{neutral}…" - }, - "victory": { - "1": "@c{neutral}…" - }, - "defeat": { - "1": "$@c{smile_ehalf}…" - } - }, - "rival_6": { - "encounter": { - "1": "@c{smile_eclosed}又見面了。$@c{neutral}我花了點時間思考反思\n有理由說明為什麼這一切都顯得如此奇妙。$@c{neutral_eclosed}你所追逐的夢想,我想擊敗你的決心…$這都是某種龐大使命的一部分。$@c{serious}這不僅僅是關於我和你… 而是關於這個世界, @c{serious_mhalf_fists}我的使命就是將你推向極限。$@c{neutral_eclosed}我是否達成了那個使命,我說不上來,但我已盡我所能。$@c{neutral}我們最終到達的這個地方看起來很可怕\n 然而不知何故,我心中毫無畏懼,好像我早就來過這裡。$@c{serious_mhalf_fists}你也有同樣的感覺,對吧?$@c{serious}……這裡好像有什麼東西在呼喚我。\n這是世界早已記錄的一切。$那些我們經歷過的時光,那些記憶猶新的過去,\n其實只是遙遠的回憶。$@c{neutral_eclosed}誰能保證它們是否真的發生過。$@c{serious_mopen_fists}你必須繼續前進,不然的話,這一切將永無止境。\n這件事而只有你能辦成。$@c{serious_smile_fists}我不清楚這一切意味著什麼,但我知道……$@c{serious_mopen_fists}如果現在你不能就此擊敗我,\n你將毫無機會可言。" - }, - "victory": { - "1": "@c{smile_eclosed}看來我的使命在這裡已經完成了。\n我想讓你答應我一件事。$@c{smile}在你拯救世界之後,要回家。" - } - }, - "rival_6_female": { - "encounter": { - "1": "@c{smile_ehalf}又只有我們兩個人了。$@c{smile_eclosed}你知道嗎,我在心裡想啊想,\n想了好久……$@c{smile_ehalf}這一切背後是有什麼原因嗎,\n為什麼一切現在看起來都這麼奇怪……$@c{smile}你有你的夢想,而我內心有這個抱負……$我不禁感覺這一切背後有一個更龐大的力量,$掌控者我們所做的一切,你和我之間。$@c{smile_eclosed}我想我注定要推動你……到你的極限。$@c{smile_ehalf}我不清楚我是否一直做得很好,\n但到現在為止,我已經盡力了。$這個奇怪而可怕的地方……\n一切看起來都那麼清晰……$這是世界早已記錄的一切。$@c{smile_eclosed}我好像記不清我們一起度過的日子了。$@c{smile_ehalf}那些回憶到底是真的嗎?\n怎麼感覺這麼久遠……$@c{angry_mopen}你得繼續前進,不然的話,這一切將永無止境。\n你是唯一能做到這件事的。$@c{smile_ehalf}我……不知道這一切意味著什麼……\n但我明白$@c{neutral}如果你現在不能就此擊敗我,\n你將毫無機會可言。" - }, - "victory": { - "1": "@c{smile_ehalf}我……\n我想我完成了我的使命……$@c{smile_eclosed}答應我……在你拯救世界之後\n……要……平安到家。$@c{smile_ehalf}……謝謝你。" - } - } -} \ No newline at end of file diff --git a/src/locales/zh_TW/dialogue-misc-male.json b/src/locales/zh_TW/dialogue-misc-male.json deleted file mode 100644 index 24e2109e5b3..00000000000 --- a/src/locales/zh_TW/dialogue-misc-male.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "ending": "@c{smile}哦?你贏了?@d{96} @c{smile_eclosed}我應該早猜到了\n你回來了。\n$@c{smile}結束了。@d{64} 你終結了這個循環。\n$@c{serious_smile_fists}你也完成了自己的夢想,不是嗎?\n你甚至一次都沒失敗。\n$@c{neutral}我是唯一能夠記得你所作所為的人@d{96}\n我覺得這應該也還行吧?\n$@c{serious_smile_fists}你的傳奇將永遠留存於我們心中。\n$@c{smile_eclosed}不管了,我真是受夠這個地方了,你也一樣嗎?我們回家吧。\n$@c{serious_smile_fists}可能等我們回家以後,再打一場?\n要是你想的話", - "ending_female": "@c{shock}你回來了?@d{32} 也就是說…@d{96} 你贏了呀!?\n@c{smile_ehalf}我應該早料到了。\n$@c{smile_eclosed}當然…我一直有這種感覺\n@c{smile}一切都結束了,對麼? 你打破了循環。\n$@c{smile_ehalf}你也完成了自己的夢想,不是嗎?\n你甚至一次都沒失敗。\n$我是唯一能夠記得你所作所為的人\n@c{angry_mopen}我會努力不忘掉哒!\n$@c{smile_wave_wink}開玩笑啦,@d{64} @c{smile}我才不會忘呢。@d{32}\n你的傳奇將永遠留存於我們心中。\n$@c{smile_wave}不管了,@d{64} 時候不早了@d{96} ,應該吧?\n在這地方還真搞不清楚。\n$一起回家吧。 @c{smile_wave_wink}可能明天,我們再來打一場,為了重溫回憶嘛~" -} \ No newline at end of file diff --git a/src/locales/zh_TW/dialogue-misc-female.json b/src/locales/zh_TW/dialogue-misc.json similarity index 100% rename from src/locales/zh_TW/dialogue-misc-female.json rename to src/locales/zh_TW/dialogue-misc.json diff --git a/src/locales/zh_TW/dialogue-female.json b/src/locales/zh_TW/dialogue.json similarity index 100% rename from src/locales/zh_TW/dialogue-female.json rename to src/locales/zh_TW/dialogue.json diff --git a/src/phases/encounter-phase.ts b/src/phases/encounter-phase.ts index dfa198c8339..9d74063627a 100644 --- a/src/phases/encounter-phase.ts +++ b/src/phases/encounter-phase.ts @@ -366,7 +366,9 @@ export class EncounterPhase extends BattlePhase { const currentLanguage = i18next.resolvedLanguage ?? "en"; const ordinalIndex = (ordinalUse.includes(currentLanguage)) ? ["st", "nd", "rd"][((count + 90) % 100 - 10) % 10 - 1] ?? "th" : ""; const cycleCount = count.toLocaleString() + ordinalIndex; - const encounterDialogue = i18next.t(`${(this.scene.gameData.gender === PlayerGender.FEMALE) ? "PGF" : "PGM"}battleSpecDialogue:encounter`, {cycleCount: cycleCount}); + const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET; + const genderStr = PlayerGender[genderIndex].toLowerCase(); + const encounterDialogue = i18next.t("battleSpecDialogue:encounter", { context: genderStr, cycleCount: cycleCount }); this.scene.ui.showDialogue(encounterDialogue, enemy?.species.name, null, () => { this.doEncounterCommon(false); }); diff --git a/src/ui/ui.ts b/src/ui/ui.ts index e62cd37aae3..dc12ac92be2 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -37,7 +37,7 @@ import UnavailableModalUiHandler from "./unavailable-modal-ui-handler"; import OutdatedModalUiHandler from "./outdated-modal-ui-handler"; import SessionReloadModalUiHandler from "./session-reload-modal-ui-handler"; import { Button } from "#enums/buttons"; -import i18next, { ParseKeys } from "i18next"; +import i18next from "i18next"; import GamepadBindingUiHandler from "./settings/gamepad-binding-ui-handler"; import SettingsKeyboardUiHandler from "#app/ui/settings/settings-keyboard-ui-handler"; import KeyboardBindingUiHandler from "#app/ui/settings/keyboard-binding-ui-handler"; @@ -298,34 +298,30 @@ export default class UI extends Phaser.GameObjects.Container { } } - showDialogue(text: string, name: string | undefined, delay: integer | null = 0, callback: Function, callbackDelay?: integer, promptDelay?: integer): void { - // First get the gender of the player (default male) (also used if UNSET) - let playerGenderPrefix = "PGM"; - if ((this.scene as BattleScene).gameData.gender === PlayerGender.FEMALE) { - playerGenderPrefix = "PGF"; - } - // Add the prefix to the text - const localizationKey: string = playerGenderPrefix + text; + showDialogue(i18nKey: string, name: string | undefined, delay: integer | null = 0, callback: Function, callbackDelay?: integer, promptDelay?: integer): void { + const battleScene = this.scene as BattleScene; // Get localized dialogue (if available) let hasi18n = false; - if (i18next.exists(localizationKey) ) { - text = i18next.t(localizationKey as ParseKeys); + if (i18next.exists(i18nKey) ) { + const genderIndex = battleScene.gameData.gender ?? PlayerGender.UNSET; + const genderStr = PlayerGender[genderIndex].toLowerCase(); + i18nKey = i18next.t(i18nKey, { context: genderStr }); hasi18n = true; // Skip dialogue if the player has enabled the option and the dialogue has been already seen - if ((this.scene as BattleScene).skipSeenDialogues && (this.scene as BattleScene).gameData.getSeenDialogues()[localizationKey] === true) { - console.log(`Dialogue ${localizationKey} skipped`); + if (battleScene.skipSeenDialogues &&battleScene.gameData.getSeenDialogues()[i18nKey] === true) { + console.log(`Dialogue ${i18nKey} skipped`); callback(); return; } } let showMessageAndCallback = () => { - hasi18n && (this.scene as BattleScene).gameData.saveSeenDialogue(localizationKey); + hasi18n && battleScene.gameData.saveSeenDialogue(i18nKey); callback(); }; - if (text.indexOf("$") > -1) { - const messagePages = text.split(/\$/g).map(m => m.trim()); + if (i18nKey.indexOf("$") > -1) { + const messagePages = i18nKey.split(/\$/g).map(m => m.trim()); for (let p = messagePages.length - 1; p >= 0; p--) { const originalFunc = showMessageAndCallback; showMessageAndCallback = () => this.showDialogue(messagePages[p], name, null, originalFunc); @@ -334,23 +330,18 @@ export default class UI extends Phaser.GameObjects.Container { } else { const handler = this.getHandler(); if (handler instanceof MessageUiHandler) { - (handler as MessageUiHandler).showDialogue(text, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); + (handler as MessageUiHandler).showDialogue(i18nKey, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); } else { - this.getMessageHandler().showDialogue(text, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); + this.getMessageHandler().showDialogue(i18nKey, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); } } } - shouldSkipDialogue(text): boolean { - let playerGenderPrefix = "PGM"; - if ((this.scene as BattleScene).gameData.gender === PlayerGender.FEMALE) { - playerGenderPrefix = "PGF"; - } + shouldSkipDialogue(i18nKey: string): boolean { + const battleScene = this.scene as BattleScene; - const key = playerGenderPrefix + text; - - if (i18next.exists(key) ) { - if ((this.scene as BattleScene).skipSeenDialogues && (this.scene as BattleScene).gameData.getSeenDialogues()[key] === true) { + if (i18next.exists(i18nKey) ) { + if (battleScene.skipSeenDialogues && battleScene.gameData.getSeenDialogues()[i18nKey] === true) { return true; } } From 1e95068f14ce868d19082d166e4a37aefc5fcb50 Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Thu, 29 Aug 2024 19:40:12 +0200 Subject: [PATCH 003/116] [Localization] [EN] Admin Dialouge as it was intended by blitzy (#3896) * Admin Dialouge as it was intended by blitzy * Dont forget the females * Delete female file --- src/locales/en/dialogue.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/locales/en/dialogue.json b/src/locales/en/dialogue.json index 7bb2df0b1cd..e96a42daf1d 100644 --- a/src/locales/en/dialogue.json +++ b/src/locales/en/dialogue.json @@ -455,7 +455,7 @@ "3": "I'm going to give you a little taste of pain! Resign yourself to it!" }, "victory": { - "1": "Hehehe! You might have beaten me, but you don't stand a chance against the Boss!\n$If you get lost now, you won't have to face a sound whipping!", + "1": "Hehehe! You might have beaten me, but you don't stand a chance against the boss!\n$If you get lost now, you won't have to face a sound whipping!", "2": "Hehehe... So, I lost, too...", "3": "Ahya! How could this be? For an Admin like me to lose to some random trainer...", "3_female": null @@ -463,14 +463,14 @@ }, "courtney": { "encounter": { - "1": "The thing...The thing that you hold...That is what... That's what we of Team Magma seek...", - "2": "... Well then...Deleting...", - "3": "...Ha. ...Analyzing... ...Hah♪" + "1": "Don't. Get. In. My. Way.", + "2": "You... ...I want to...analyze. Ahahaha", + "3": "... Well then...Deleting..." }, "victory": { - "1": "... ...Change...the world.", + "1": "Hah hah... Uhn...hah hah...", "2": "As anticipated. Unanticipated. You. Target lock...completed.\n$Commencing...experiment. You. Forever. Aha... ♪", - "3": "...Again? That's unanticipated. ...I knew it. You...are interesting! ...Haha. ♪" + "3": "That's unanticipated. ...I knew it. You...are interesting! ...Haha. ♪" } }, "shelly": { @@ -489,14 +489,14 @@ }, "matt": { "encounter": { - "1": "Hoohahaha! What, you got a screw loose or something? Look at you, little Makuhita person!", - "2": "Oho! You! You're that funny kid!", - "3": "What are you doing here? Did you follow us?" + "1": "All right then, until the boss has time for you, I'll be your opponent!", + "2": "Hooah! Full on! I'm burning up! Well! Welll! Wellllll! Let's battle it out until we've got nothing left!", + "3": "Hoo hah! I'm gonna smash you up!" }, "victory": { - "1": "All right then, until the Boss has time for you, I'll be your opponent!", + "1": "Muwuhahaha! That battle was fun even though I lost!", "2": "I can feel it! I can feel it, all right! The strength coming offa you!\n$More! I still want more! But looks like we're outta time...", - "3": "That was fun! I knew you'd show me a good time! I look forward to facing you again someday!", + "3": "Oho! That's a loss I can be proud of!", "3_female": null } }, @@ -541,13 +541,13 @@ "encounter": { "1": "You could become a threat to Team Plasma, so we will eliminate you here and now!", "1_female": null, - "2": "Oh, for crying out loud... I didn't expect to have to battle in this freezing cold!", + "2": "You don't have the sense to know when to quit, it seems. It's an act of mercy on my part to bring an end to this now!", "3": "You're an impressive Trainer to have made it this far. But it ends here.", "3_female": null }, "victory": { "1": "Ghetsis... I have failed you...", - "2": "It's bitter cold. I'm shivering. I'm suffering. Yet, I still stand victorious.", + "2": "It's bitter cold. I'm shivering. I'm suffering. Yet, we will stand victorious.", "3": "Hmph. You're a smarter Trainer than I expected, but not smart enough.", "3_female": null } @@ -556,13 +556,13 @@ "encounter": { "1": "You are a threat to Team Plasma. We cannot let you walk away from here and now!", "1_female": null, - "2": "Oh, this icy wind... I never thought I'd have to fight here!", + "2": "It seems you don't know when to give up. I'll make sure no one interferes with our plans!", "3": "You are a remarkable Trainer to have made it this far. But this is where it ends.", "3_female": null }, "victory": { "1": "Ghetsis... I have failed my mission...", - "2": "The cold is piercing. I'm shivering. I'm suffering. Yet, I have triumphed.", + "2": "The cold is piercing. I'm shivering. I'm suffering. Yet, we will stand triumphant.", "3": "Hm. You are a talented Trainer, but unfortunately not talented enough." } }, From c112abbcd20fbd1f0171762c4464b9601d10731d Mon Sep 17 00:00:00 2001 From: Leo Kim <47556641+KimJeongSun@users.noreply.github.com> Date: Fri, 30 Aug 2024 03:59:33 +0900 Subject: [PATCH 004/116] [Challenge] Inverse battle challenge (#3525) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add inverse battle challenge. refactoring type.ts for inverse battle challenge * update type integer -> number * add inverse battle condition to thunder wave, conversion 2. * add inverse_battle test code, add checking gameMode in runToSummon not to overwrite gameMode to CLASSIC always * update startBattle with isClassicMode default = true * add inverse achievement * fix achv validation condition * remove unnecessary new line * update defaultWidth 160 -> 200 * update locales * fix korean translation * fix korean translation2 * Update src/locales/de/achv.ts Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> * Update src/locales/de/challenges.ts Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> * Update src/locales/de/challenges.ts Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> * resize challenge description 96 -> 84 * update challenge select UI size. * revert font size to 84. update de translation * Update src/locales/fr/challenges.ts Co-authored-by: Lugiad' * Update src/locales/fr/achv.ts Co-authored-by: Lugiad' * Update src/locales/es/challenges.ts Co-authored-by: Asdar * Update src/locales/fr/challenges.ts Co-authored-by: Lugiad' * Update src/locales/fr/achv.ts Co-authored-by: Lugiad' * Update src/locales/es/achv.ts Co-authored-by: Asdar * Update src/locales/fr/achv.ts Co-authored-by: Lugiad' * shrink de font size on achivement * set middle align to achv title * Update src/locales/zh_CN/achv.ts Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> * Update src/locales/zh_TW/achv.ts Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> * Update src/locales/zh_CN/challenges.ts Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> * Update src/locales/zh_TW/challenges.ts Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> * fix zh_TW ahiv.ts * fix import code on inverse battle test for updated phase * Update src/data/type.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * update requested changes * Update src/locales/pt_BR/achv.ts Co-authored-by: José Ricardo Fleury Oliveira * Update src/locales/pt_BR/achv.ts Co-authored-by: José Ricardo Fleury Oliveira * Update src/locales/pt_BR/challenges.ts Co-authored-by: José Ricardo Fleury Oliveira * [draft] update inverse battle apply function * change the way how to use applyChallenge for inverse type * resolve confilct * fix test codes * remove unnecessary multiplier variable and break codes * update getTypeDamageMultiplier argument type from `number` to `Type` * Fix inverse types tests (#1) * Fix Inverse Battle tests * Add timeout parameter to tests * update requested changes * update requested changes * update requested changes2 * update comments * Update src/test/utils/helpers/challengeModeHelper.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Update src/test/utils/helpers/challengeModeHelper.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * fix mis pasted code * revert loadChallenge code for FreshStartChallenge * code refactoring * restore challenge.json lost translations * revert UI changes * revert unreverted newlines * Run History inclusion * requested changes from torranx * update WaterSuperEffectTypeMultiplierAttr for inverse battle matchup. * fix test code. adding flying press test code * update requested change from xavion3 * updated requested change from xavion 2 * update requested changes from xavion 3 * remove exception code which is not valid * attach partial mark to Freeze dry. requested by xavion * add missing game over phase code when we delete old phases.ts * fix test codes * merge conflict * fix achv condition * updated achv block condition. we don't want to change desc now * resolve conflict * Eternatus Moveset Tinkering * Cleaning it up --------- Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Co-authored-by: Lugiad' Co-authored-by: Asdar Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: José Ricardo Fleury Oliveira Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com> Co-authored-by: frutescens --- public/images/items.json | 6835 +++++++++-------- public/images/items.png | Bin 56828 -> 57239 bytes src/data/challenge.ts | 65 +- src/data/move.ts | 37 +- src/data/type.ts | 318 +- src/enums/challenges.ts | 3 +- src/field/pokemon.ts | 13 +- src/locales/de/achv.json | 4 + src/locales/de/challenges.json | 7 + src/locales/en/achv-female.json | 4 + src/locales/en/achv.json | 4 + src/locales/en/challenges.json | 7 + src/locales/es/achv.json | 4 + src/locales/es/challenges.json | 7 + src/locales/fr/achv.json | 4 + src/locales/fr/challenges.json | 7 + src/locales/ja/challenges.json | 1 + src/locales/ko/achv.json | 4 + src/locales/ko/challenges.json | 7 + src/locales/pt_BR/achv.json | 4 + src/locales/pt_BR/challenges.json | 7 + src/locales/zh_CN/achv.json | 4 + src/locales/zh_CN/challenges.json | 7 + src/locales/zh_TW/achv.json | 4 + src/locales/zh_TW/challenges.json | 7 + src/system/achv.ts | 68 +- src/test/battle/inverse_battle.test.ts | 203 + src/test/utils/gameManager.ts | 3 + src/test/utils/helpers/challengeModeHelper.ts | 78 + src/ui/run-info-ui-handler.ts | 45 +- 30 files changed, 4005 insertions(+), 3756 deletions(-) create mode 100644 src/test/battle/inverse_battle.test.ts create mode 100644 src/test/utils/helpers/challengeModeHelper.ts diff --git a/public/images/items.json b/public/images/items.json index c347790b92f..bb86b46aa4d 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,8 +4,8 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 425, - "h": 425 + "w": 426, + "h": 426 }, "scale": 1, "frames": [ @@ -240,6 +240,27 @@ "h": 31 } }, + { + "filename": "inverse", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 22, + "h": 30 + }, + "frame": { + "x": 0, + "y": 241, + "w": 22, + "h": 30 + } + }, { "filename": "ribbon_gen3", "rotated": false, @@ -256,7 +277,7 @@ }, "frame": { "x": 0, - "y": 241, + "y": 271, "w": 22, "h": 29 } @@ -277,7 +298,7 @@ }, "frame": { "x": 0, - "y": 270, + "y": 300, "w": 22, "h": 29 } @@ -298,7 +319,7 @@ }, "frame": { "x": 0, - "y": 299, + "y": 329, "w": 22, "h": 29 } @@ -340,7 +361,7 @@ }, "frame": { "x": 0, - "y": 328, + "y": 358, "w": 22, "h": 28 } @@ -361,28 +382,7 @@ }, "frame": { "x": 0, - "y": 356, - "w": 22, - "h": 28 - } - }, - { - "filename": "ribbon_gen6", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 2, - "w": 22, - "h": 28 - }, - "frame": { - "x": 0, - "y": 384, + "y": 386, "w": 22, "h": 28 } @@ -619,7 +619,7 @@ } }, { - "filename": "elixir", + "filename": "lock_capsule", "rotated": false, "trimmed": true, "sourceSize": { @@ -628,15 +628,15 @@ }, "spriteSourceSize": { "x": 7, - "y": 4, - "w": 18, - "h": 24 + "y": 5, + "w": 19, + "h": 22 }, "frame": { "x": 407, "y": 0, - "w": 18, - "h": 24 + "w": 19, + "h": 22 } }, { @@ -724,7 +724,7 @@ } }, { - "filename": "ribbon_gen8", + "filename": "ribbon_gen6", "rotated": false, "trimmed": true, "sourceSize": { @@ -744,6 +744,27 @@ "h": 28 } }, + { + "filename": "ribbon_gen8", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 2, + "w": 22, + "h": 28 + }, + "frame": { + "x": 22, + "y": 237, + "w": 22, + "h": 28 + } + }, { "filename": "black_augurite", "rotated": false, @@ -760,7 +781,7 @@ }, "frame": { "x": 22, - "y": 237, + "y": 265, "w": 22, "h": 25 } @@ -781,7 +802,7 @@ }, "frame": { "x": 22, - "y": 262, + "y": 290, "w": 23, "h": 24 } @@ -802,7 +823,7 @@ }, "frame": { "x": 22, - "y": 286, + "y": 314, "w": 24, "h": 24 } @@ -823,7 +844,7 @@ }, "frame": { "x": 22, - "y": 310, + "y": 338, "w": 24, "h": 24 } @@ -844,7 +865,7 @@ }, "frame": { "x": 22, - "y": 334, + "y": 362, "w": 24, "h": 24 } @@ -865,13 +886,13 @@ }, "frame": { "x": 22, - "y": 358, + "y": 386, "w": 24, "h": 24 } }, { - "filename": "earth_plate", + "filename": "mega_bracelet", "rotated": false, "trimmed": true, "sourceSize": { @@ -879,20 +900,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 + "x": 6, + "y": 8, + "w": 20, + "h": 16 }, "frame": { "x": 22, - "y": 382, - "w": 24, - "h": 24 + "y": 410, + "w": 20, + "h": 16 } }, { - "filename": "coupon", + "filename": "relic_band", "rotated": false, "trimmed": true, "sourceSize": { @@ -900,37 +921,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 + "x": 7, + "y": 9, + "w": 17, + "h": 16 }, "frame": { - "x": 22, - "y": 406, - "w": 23, - "h": 19 - } - }, - { - "filename": "golden_mystic_ticket", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 - }, - "frame": { - "x": 45, - "y": 406, - "w": 23, - "h": 19 + "x": 42, + "y": 410, + "w": 17, + "h": 16 } }, { @@ -955,7 +955,7 @@ } }, { - "filename": "mega_bracelet", + "filename": "abomasite", "rotated": false, "trimmed": true, "sourceSize": { @@ -963,20 +963,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, + "x": 8, "y": 8, - "w": 20, + "w": 16, "h": 16 }, "frame": { "x": 28, "y": 70, - "w": 20, + "w": 16, "h": 16 } }, { - "filename": "calcium", + "filename": "absolite", "rotated": false, "trimmed": true, "sourceSize": { @@ -985,36 +985,15 @@ }, "spriteSourceSize": { "x": 8, - "y": 4, + "y": 8, "w": 16, - "h": 24 + "h": 16 }, "frame": { - "x": 39, - "y": 86, + "x": 44, + "y": 70, "w": 16, - "h": 24 - } - }, - { - "filename": "carbos", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 39, - "y": 110, - "w": 16, - "h": 24 + "h": 16 } }, { @@ -1033,11 +1012,32 @@ }, "frame": { "x": 39, - "y": 134, + "y": 86, "w": 21, "h": 24 } }, + { + "filename": "earth_plate", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 39, + "y": 110, + "w": 24, + "h": 24 + } + }, { "filename": "fist_plate", "rotated": false, @@ -1054,7 +1054,7 @@ }, "frame": { "x": 39, - "y": 158, + "y": 134, "w": 24, "h": 24 } @@ -1075,7 +1075,7 @@ }, "frame": { "x": 39, - "y": 182, + "y": 158, "w": 24, "h": 24 } @@ -1095,8 +1095,8 @@ "h": 24 }, "frame": { - "x": 44, - "y": 206, + "x": 39, + "y": 182, "w": 24, "h": 24 } @@ -1117,7 +1117,7 @@ }, "frame": { "x": 44, - "y": 230, + "y": 206, "w": 24, "h": 24 } @@ -1137,8 +1137,8 @@ "h": 24 }, "frame": { - "x": 45, - "y": 254, + "x": 44, + "y": 230, "w": 24, "h": 24 } @@ -1158,8 +1158,8 @@ "h": 24 }, "frame": { - "x": 46, - "y": 278, + "x": 44, + "y": 254, "w": 24, "h": 24 } @@ -1179,8 +1179,8 @@ "h": 24 }, "frame": { - "x": 46, - "y": 302, + "x": 45, + "y": 278, "w": 24, "h": 24 } @@ -1201,7 +1201,7 @@ }, "frame": { "x": 46, - "y": 326, + "y": 302, "w": 24, "h": 24 } @@ -1222,7 +1222,7 @@ }, "frame": { "x": 46, - "y": 350, + "y": 326, "w": 24, "h": 24 } @@ -1243,137 +1243,11 @@ }, "frame": { "x": 46, - "y": 374, + "y": 350, "w": 24, "h": 24 } }, - { - "filename": "abomasite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 48, - "y": 70, - "w": 16, - "h": 16 - } - }, - { - "filename": "ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 55, - "y": 86, - "w": 18, - "h": 24 - } - }, - { - "filename": "full_restore", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 55, - "y": 110, - "w": 18, - "h": 24 - } - }, - { - "filename": "hp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 60, - "y": 134, - "w": 16, - "h": 24 - } - }, - { - "filename": "iron", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 63, - "y": 158, - "w": 16, - "h": 24 - } - }, - { - "filename": "kings_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 63, - "y": 182, - "w": 23, - "h": 24 - } - }, { "filename": "lucky_punch_great", "rotated": false, @@ -1389,180 +1263,12 @@ "h": 24 }, "frame": { - "x": 68, - "y": 206, - "w": 24, - "h": 24 - } - }, - { - "filename": "lucky_punch_master", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 68, - "y": 230, - "w": 24, - "h": 24 - } - }, - { - "filename": "lucky_punch_ultra", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 69, - "y": 254, - "w": 24, - "h": 24 - } - }, - { - "filename": "lustrous_globe", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 70, - "y": 278, - "w": 24, - "h": 24 - } - }, - { - "filename": "meadow_plate", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 70, - "y": 302, - "w": 24, - "h": 24 - } - }, - { - "filename": "mind_plate", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 70, - "y": 326, - "w": 24, - "h": 24 - } - }, - { - "filename": "muscle_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 70, - "y": 350, - "w": 24, - "h": 24 - } - }, - { - "filename": "pixie_plate", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 70, + "x": 46, "y": 374, "w": 24, "h": 24 } }, - { - "filename": "salac_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 68, - "y": 398, - "w": 24, - "h": 24 - } - }, { "filename": "ability_capsule", "rotated": false, @@ -1585,7 +1291,7 @@ } }, { - "filename": "lure", + "filename": "calcium", "rotated": false, "trimmed": true, "sourceSize": { @@ -1595,39 +1301,18 @@ "spriteSourceSize": { "x": 8, "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 92, - "y": 398, - "w": 17, - "h": 24 - } - }, - { - "filename": "max_elixir", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, + "w": 16, "h": 24 }, "frame": { "x": 59, "y": 27, - "w": 18, + "w": 16, "h": 24 } }, { - "filename": "scanner", + "filename": "lucky_punch_master", "rotated": false, "trimmed": true, "sourceSize": { @@ -1641,14 +1326,14 @@ "h": 24 }, "frame": { - "x": 77, + "x": 75, "y": 26, "w": 24, "h": 24 } }, { - "filename": "silk_scarf", + "filename": "lucky_punch_ultra", "rotated": false, "trimmed": true, "sourceSize": { @@ -1662,12 +1347,33 @@ "h": 24 }, "frame": { - "x": 101, + "x": 99, "y": 26, "w": 24, "h": 24 } }, + { + "filename": "revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 10, + "y": 8, + "w": 12, + "h": 17 + }, + "frame": { + "x": 123, + "y": 26, + "w": 12, + "h": 17 + } + }, { "filename": "big_mushroom", "rotated": false, @@ -1710,6 +1416,69 @@ "h": 23 } }, + { + "filename": "elixir", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 60, + "y": 70, + "w": 18, + "h": 24 + } + }, + { + "filename": "coin_case", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 78, + "y": 73, + "w": 24, + "h": 23 + } + }, + { + "filename": "kings_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 102, + "y": 50, + "w": 23, + "h": 24 + } + }, { "filename": "berry_pouch", "rotated": false, @@ -1726,11 +1495,284 @@ }, "frame": { "x": 102, - "y": 50, + "y": 74, "w": 23, "h": 23 } }, + { + "filename": "aerodactylite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 60, + "y": 94, + "w": 16, + "h": 16 + } + }, + { + "filename": "carbos", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 63, + "y": 110, + "w": 16, + "h": 24 + } + }, + { + "filename": "ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 63, + "y": 134, + "w": 18, + "h": 24 + } + }, + { + "filename": "full_restore", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 63, + "y": 158, + "w": 18, + "h": 24 + } + }, + { + "filename": "lustrous_globe", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 63, + "y": 182, + "w": 24, + "h": 24 + } + }, + { + "filename": "max_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 24 + }, + "frame": { + "x": 68, + "y": 206, + "w": 22, + "h": 24 + } + }, + { + "filename": "meadow_plate", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 68, + "y": 230, + "w": 24, + "h": 24 + } + }, + { + "filename": "mind_plate", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 68, + "y": 254, + "w": 24, + "h": 24 + } + }, + { + "filename": "muscle_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 69, + "y": 278, + "w": 24, + "h": 24 + } + }, + { + "filename": "pixie_plate", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 70, + "y": 302, + "w": 24, + "h": 24 + } + }, + { + "filename": "salac_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 70, + "y": 326, + "w": 24, + "h": 24 + } + }, + { + "filename": "scanner", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 70, + "y": 350, + "w": 24, + "h": 24 + } + }, + { + "filename": "silk_scarf", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 70, + "y": 374, + "w": 24, + "h": 24 + } + }, { "filename": "sky_plate", "rotated": false, @@ -1746,14 +1788,14 @@ "h": 24 }, "frame": { - "x": 125, - "y": 36, + "x": 59, + "y": 398, "w": 24, "h": 24 } }, { - "filename": "choice_specs", + "filename": "hp_up", "rotated": false, "trimmed": true, "sourceSize": { @@ -1761,41 +1803,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 125, - "y": 60, - "w": 24, - "h": 18 - } - }, - { - "filename": "max_ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, + "x": 8, "y": 4, - "w": 18, + "w": 16, "h": 24 }, "frame": { - "x": 149, - "y": 36, - "w": 18, + "x": 83, + "y": 398, + "w": 16, "h": 24 } }, { - "filename": "adamant_crystal", + "filename": "reveal_glass", "rotated": false, "trimmed": true, "sourceSize": { @@ -1804,15 +1825,36 @@ }, "spriteSourceSize": { "x": 4, - "y": 6, + "y": 4, "w": 23, - "h": 21 + "h": 24 }, "frame": { - "x": 149, - "y": 60, + "x": 79, + "y": 96, "w": 23, - "h": 21 + "h": 24 + } + }, + { + "filename": "dynamax_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 23, + "h": 23 + }, + "frame": { + "x": 102, + "y": 97, + "w": 23, + "h": 23 } }, { @@ -1830,8 +1872,8 @@ "h": 24 }, "frame": { - "x": 167, - "y": 21, + "x": 81, + "y": 120, "w": 24, "h": 24 } @@ -1851,12 +1893,54 @@ "h": 24 }, "frame": { - "x": 191, - "y": 21, + "x": 81, + "y": 144, "w": 24, "h": 24 } }, + { + "filename": "oval_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 105, + "y": 120, + "w": 21, + "h": 24 + } + }, + { + "filename": "shiny_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 105, + "y": 144, + "w": 21, + "h": 24 + } + }, { "filename": "stone_plate", "rotated": false, @@ -1872,12 +1956,33 @@ "h": 24 }, "frame": { - "x": 215, - "y": 21, + "x": 87, + "y": 168, "w": 24, "h": 24 } }, + { + "filename": "iron", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 111, + "y": 168, + "w": 16, + "h": 24 + } + }, { "filename": "sun_stone", "rotated": false, @@ -1893,12 +1998,33 @@ "h": 24 }, "frame": { - "x": 239, - "y": 21, + "x": 90, + "y": 192, "w": 24, "h": 24 } }, + { + "filename": "lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 114, + "y": 192, + "w": 17, + "h": 24 + } + }, { "filename": "toxic_plate", "rotated": false, @@ -1914,8 +2040,8 @@ "h": 24 }, "frame": { - "x": 263, - "y": 21, + "x": 92, + "y": 216, "w": 24, "h": 24 } @@ -1935,14 +2061,14 @@ "h": 24 }, "frame": { - "x": 287, - "y": 21, + "x": 92, + "y": 240, "w": 24, "h": 24 } }, { - "filename": "silver_powder", + "filename": "max_elixir", "rotated": false, "trimmed": true, "sourceSize": { @@ -1950,41 +2076,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 11, - "w": 24, - "h": 15 - }, - "frame": { - "x": 167, - "y": 45, - "w": 24, - "h": 15 - } - }, - { - "filename": "max_revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, + "x": 7, "y": 4, - "w": 22, + "w": 18, "h": 24 }, "frame": { - "x": 311, - "y": 21, - "w": 22, + "x": 116, + "y": 216, + "w": 18, "h": 24 } }, { - "filename": "coin_case", + "filename": "max_ether", "rotated": false, "trimmed": true, "sourceSize": { @@ -1992,16 +2097,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 + "x": 7, + "y": 4, + "w": 18, + "h": 24 }, "frame": { - "x": 333, - "y": 20, - "w": 24, - "h": 23 + "x": 116, + "y": 240, + "w": 18, + "h": 24 } }, { @@ -2019,12 +2124,75 @@ "h": 23 }, "frame": { - "x": 357, - "y": 20, + "x": 93, + "y": 264, "w": 24, "h": 23 } }, + { + "filename": "black_belt", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 117, + "y": 264, + "w": 22, + "h": 23 + } + }, + { + "filename": "silver_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 11, + "w": 24, + "h": 15 + }, + "frame": { + "x": 93, + "y": 287, + "w": 24, + "h": 15 + } + }, + { + "filename": "griseous_core", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 94, + "y": 302, + "w": 23, + "h": 23 + } + }, { "filename": "hearthflame_mask", "rotated": false, @@ -2040,138 +2208,12 @@ "h": 23 }, "frame": { - "x": 381, - "y": 20, + "x": 94, + "y": 325, "w": 24, "h": 23 } }, - { - "filename": "red_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 20, - "h": 24 - }, - "frame": { - "x": 405, - "y": 24, - "w": 20, - "h": 24 - } - }, - { - "filename": "amulet_coin", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 172, - "y": 60, - "w": 23, - "h": 21 - } - }, - { - "filename": "candy_overlay", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 12, - "w": 16, - "h": 15 - }, - "frame": { - "x": 191, - "y": 45, - "w": 16, - "h": 15 - } - }, - { - "filename": "dragon_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 207, - "y": 45, - "w": 24, - "h": 18 - } - }, - { - "filename": "exp_balance", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 231, - "y": 45, - "w": 24, - "h": 22 - } - }, - { - "filename": "exp_share", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 255, - "y": 45, - "w": 24, - "h": 22 - } - }, { "filename": "leppa_berry", "rotated": false, @@ -2187,8 +2229,8 @@ "h": 23 }, "frame": { - "x": 279, - "y": 45, + "x": 94, + "y": 348, "w": 24, "h": 23 } @@ -2208,264 +2250,12 @@ "h": 23 }, "frame": { - "x": 303, - "y": 45, + "x": 94, + "y": 371, "w": 24, "h": 23 } }, - { - "filename": "revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 - }, - "frame": { - "x": 195, - "y": 60, - "w": 12, - "h": 17 - } - }, - { - "filename": "icy_reins_of_unity", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 207, - "y": 63, - "w": 24, - "h": 20 - } - }, - { - "filename": "metal_powder", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 24, - "h": 20 - }, - "frame": { - "x": 231, - "y": 67, - "w": 24, - "h": 20 - } - }, - { - "filename": "peat_block", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 255, - "y": 67, - "w": 24, - "h": 22 - } - }, - { - "filename": "twisted_spoon", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 279, - "y": 68, - "w": 24, - "h": 23 - } - }, - { - "filename": "dynamax_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 23, - "h": 23 - }, - "frame": { - "x": 303, - "y": 68, - "w": 23, - "h": 23 - } - }, - { - "filename": "black_belt", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 327, - "y": 45, - "w": 22, - "h": 23 - } - }, - { - "filename": "griseous_core", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 326, - "y": 68, - "w": 23, - "h": 23 - } - }, - { - "filename": "reveal_glass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 349, - "y": 43, - "w": 23, - "h": 24 - } - }, - { - "filename": "leek", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 372, - "y": 43, - "w": 23, - "h": 23 - } - }, - { - "filename": "rare_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 349, - "y": 67, - "w": 23, - "h": 23 - } - }, - { - "filename": "rarer_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 372, - "y": 66, - "w": 23, - "h": 23 - } - }, { "filename": "bug_tera_shard", "rotated": false, @@ -2481,14 +2271,98 @@ "h": 23 }, "frame": { - "x": 395, - "y": 48, + "x": 117, + "y": 287, "w": 22, "h": 23 } }, { - "filename": "auspicious_armor", + "filename": "red_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 20, + "h": 24 + }, + "frame": { + "x": 99, + "y": 394, + "w": 20, + "h": 24 + } + }, + { + "filename": "candy_overlay", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 12, + "w": 16, + "h": 15 + }, + "frame": { + "x": 117, + "y": 310, + "w": 16, + "h": 15 + } + }, + { + "filename": "max_lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 118, + "y": 325, + "w": 17, + "h": 24 + } + }, + { + "filename": "max_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 118, + "y": 349, + "w": 18, + "h": 24 + } + }, + { + "filename": "adamant_crystal", "rotated": false, "trimmed": true, "sourceSize": { @@ -2497,78 +2371,15 @@ }, "spriteSourceSize": { "x": 4, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 395, - "y": 71, - "w": 23, - "h": 21 - } - }, - { - "filename": "binding_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, "y": 6, "w": 23, - "h": 20 + "h": 21 }, "frame": { - "x": 372, - "y": 89, + "x": 118, + "y": 373, "w": 23, - "h": 20 - } - }, - { - "filename": "healing_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 23, - "h": 22 - }, - "frame": { - "x": 349, - "y": 90, - "w": 23, - "h": 22 - } - }, - { - "filename": "black_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 395, - "y": 92, - "w": 23, - "h": 17 + "h": 21 } }, { @@ -2586,12 +2397,96 @@ "h": 23 }, "frame": { - "x": 73, - "y": 73, + "x": 119, + "y": 394, "w": 22, "h": 23 } }, + { + "filename": "choice_specs", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 24, + "h": 18 + }, + "frame": { + "x": 135, + "y": 36, + "w": 24, + "h": 18 + } + }, + { + "filename": "twisted_spoon", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 125, + "y": 54, + "w": 24, + "h": 23 + } + }, + { + "filename": "exp_balance", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 22 + }, + "frame": { + "x": 125, + "y": 77, + "w": 24, + "h": 22 + } + }, + { + "filename": "amulet_coin", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 125, + "y": 99, + "w": 23, + "h": 21 + } + }, { "filename": "dragon_tera_shard", "rotated": false, @@ -2607,8 +2502,8 @@ "h": 23 }, "frame": { - "x": 95, - "y": 73, + "x": 126, + "y": 120, "w": 22, "h": 23 } @@ -2628,56 +2523,14 @@ "h": 23 }, "frame": { - "x": 73, - "y": 96, + "x": 126, + "y": 143, "w": 22, "h": 23 } }, { - "filename": "fairy_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 95, - "y": 96, - "w": 22, - "h": 23 - } - }, - { - "filename": "fighting_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 117, - "y": 78, - "w": 22, - "h": 23 - } - }, - { - "filename": "blank_memory", + "filename": "dragon_fang", "rotated": false, "trimmed": true, "sourceSize": { @@ -2687,102 +2540,18 @@ "spriteSourceSize": { "x": 5, "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 117, - "y": 101, - "w": 22, - "h": 22 - } - }, - { - "filename": "fire_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, + "w": 21, "h": 23 }, "frame": { - "x": 139, - "y": 81, - "w": 22, + "x": 127, + "y": 166, + "w": 21, "h": 23 } }, { - "filename": "fire_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 161, - "y": 81, - "w": 22, - "h": 23 - } - }, - { - "filename": "quick_powder", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 24, - "h": 20 - }, - "frame": { - "x": 139, - "y": 104, - "w": 24, - "h": 20 - } - }, - { - "filename": "big_nugget", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 163, - "y": 104, - "w": 20, - "h": 20 - } - }, - { - "filename": "max_lure", + "filename": "super_lure", "rotated": false, "trimmed": true, "sourceSize": { @@ -2796,348 +2565,12 @@ "h": 24 }, "frame": { - "x": 183, - "y": 81, + "x": 131, + "y": 189, "w": 17, "h": 24 } }, - { - "filename": "rusted_sword", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 22 - }, - "frame": { - "x": 200, - "y": 83, - "w": 23, - "h": 22 - } - }, - { - "filename": "rusted_shield", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 24, - "h": 20 - }, - "frame": { - "x": 183, - "y": 105, - "w": 24, - "h": 20 - } - }, - { - "filename": "apicot_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 207, - "y": 105, - "w": 19, - "h": 20 - } - }, - { - "filename": "relic_crown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 18 - }, - "frame": { - "x": 223, - "y": 87, - "w": 23, - "h": 18 - } - }, - { - "filename": "blue_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 226, - "y": 105, - "w": 20, - "h": 20 - } - }, - { - "filename": "flying_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 246, - "y": 89, - "w": 22, - "h": 23 - } - }, - { - "filename": "blunder_policy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 19 - }, - "frame": { - "x": 246, - "y": 112, - "w": 22, - "h": 19 - } - }, - { - "filename": "focus_sash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 268, - "y": 91, - "w": 22, - "h": 23 - } - }, - { - "filename": "ghost_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 290, - "y": 91, - "w": 22, - "h": 23 - } - }, - { - "filename": "grass_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 312, - "y": 91, - "w": 22, - "h": 23 - } - }, - { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 - }, - "frame": { - "x": 334, - "y": 91, - "w": 15, - "h": 23 - } - }, - { - "filename": "sacred_ash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 268, - "y": 114, - "w": 24, - "h": 20 - } - }, - { - "filename": "shadow_reins_of_unity", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 292, - "y": 114, - "w": 24, - "h": 20 - } - }, - { - "filename": "soft_sand", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 316, - "y": 114, - "w": 24, - "h": 20 - } - }, - { - "filename": "eviolite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 73, - "y": 119, - "w": 15, - "h": 15 - } - }, - { - "filename": "max_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 76, - "y": 134, - "w": 18, - "h": 24 - } - }, { "filename": "max_repel", "rotated": false, @@ -3153,33 +2586,12 @@ "h": 24 }, "frame": { - "x": 79, - "y": 158, + "x": 134, + "y": 213, "w": 16, "h": 24 } }, - { - "filename": "oval_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 86, - "y": 182, - "w": 21, - "h": 24 - } - }, { "filename": "pp_max", "rotated": false, @@ -3195,8 +2607,8 @@ "h": 24 }, "frame": { - "x": 92, - "y": 206, + "x": 134, + "y": 237, "w": 16, "h": 24 } @@ -3216,12 +2628,180 @@ "h": 24 }, "frame": { - "x": 92, - "y": 230, + "x": 149, + "y": 54, "w": 16, "h": 24 } }, + { + "filename": "auspicious_armor", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 149, + "y": 78, + "w": 23, + "h": 21 + } + }, + { + "filename": "exp_share", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 22 + }, + "frame": { + "x": 148, + "y": 99, + "w": 24, + "h": 22 + } + }, + { + "filename": "leek", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 148, + "y": 121, + "w": 23, + "h": 23 + } + }, + { + "filename": "rare_candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 148, + "y": 144, + "w": 23, + "h": 23 + } + }, + { + "filename": "rarer_candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 148, + "y": 167, + "w": 23, + "h": 23 + } + }, + { + "filename": "fairy_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 148, + "y": 190, + "w": 22, + "h": 23 + } + }, + { + "filename": "fighting_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 150, + "y": 213, + "w": 22, + "h": 23 + } + }, + { + "filename": "fire_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 150, + "y": 236, + "w": 22, + "h": 23 + } + }, { "filename": "protein", "rotated": false, @@ -3237,8 +2817,8 @@ "h": 24 }, "frame": { - "x": 93, - "y": 254, + "x": 139, + "y": 261, "w": 16, "h": 24 } @@ -3258,56 +2838,14 @@ "h": 24 }, "frame": { - "x": 94, - "y": 278, + "x": 139, + "y": 285, "w": 16, "h": 24 } }, { - "filename": "shiny_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 94, - "y": 302, - "w": 21, - "h": 24 - } - }, - { - "filename": "dragon_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 94, - "y": 326, - "w": 21, - "h": 23 - } - }, - { - "filename": "ground_tera_shard", + "filename": "fire_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -3321,14 +2859,14 @@ "h": 23 }, "frame": { - "x": 94, - "y": 349, + "x": 155, + "y": 259, "w": 22, "h": 23 } }, { - "filename": "ice_tera_shard", + "filename": "flying_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -3342,54 +2880,12 @@ "h": 23 }, "frame": { - "x": 94, - "y": 372, + "x": 155, + "y": 282, "w": 22, "h": 23 } }, - { - "filename": "prism_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 88, - "y": 119, - "w": 15, - "h": 15 - } - }, - { - "filename": "super_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 94, - "y": 134, - "w": 17, - "h": 24 - } - }, { "filename": "super_repel", "rotated": false, @@ -3405,14 +2901,14 @@ "h": 24 }, "frame": { - "x": 95, - "y": 158, + "x": 159, + "y": 22, "w": 16, "h": 24 } }, { - "filename": "berry_pot", + "filename": "peat_block", "rotated": false, "trimmed": true, "sourceSize": { @@ -3420,20 +2916,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, + "x": 4, "y": 5, - "w": 18, + "w": 24, "h": 22 }, "frame": { - "x": 340, - "y": 114, - "w": 18, + "x": 175, + "y": 21, + "w": 24, "h": 22 } }, { - "filename": "unknown", + "filename": "healing_charm", "rotated": false, "trimmed": true, "sourceSize": { @@ -3441,20 +2937,41 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 + "x": 5, + "y": 5, + "w": 23, + "h": 22 }, "frame": { - "x": 358, - "y": 112, - "w": 16, - "h": 24 + "x": 199, + "y": 21, + "w": 23, + "h": 22 } }, { - "filename": "never_melt_ice", + "filename": "rusted_sword", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 22 + }, + "frame": { + "x": 222, + "y": 21, + "w": 23, + "h": 22 + } + }, + { + "filename": "blank_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -3465,307 +2982,13 @@ "x": 5, "y": 5, "w": 22, - "h": 23 + "h": 22 }, "frame": { - "x": 374, - "y": 109, + "x": 245, + "y": 21, "w": 22, - "h": 23 - } - }, - { - "filename": "normal_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 396, - "y": 109, - "w": 22, - "h": 23 - } - }, - { - "filename": "zinc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 107, - "y": 182, - "w": 16, - "h": 24 - } - }, - { - "filename": "hyper_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 108, - "y": 206, - "w": 17, - "h": 23 - } - }, - { - "filename": "lansat_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 23 - }, - "frame": { - "x": 108, - "y": 229, - "w": 21, - "h": 23 - } - }, - { - "filename": "leaf_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 109, - "y": 252, - "w": 21, - "h": 23 - } - }, - { - "filename": "mystic_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 23 - }, - "frame": { - "x": 110, - "y": 275, - "w": 20, - "h": 23 - } - }, - { - "filename": "petaya_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 115, - "y": 298, - "w": 22, - "h": 23 - } - }, - { - "filename": "poison_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 115, - "y": 321, - "w": 22, - "h": 23 - } - }, - { - "filename": "psychic_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 116, - "y": 344, - "w": 22, - "h": 23 - } - }, - { - "filename": "reaper_cloth", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 116, - "y": 367, - "w": 22, - "h": 23 - } - }, - { - "filename": "rock_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 111, - "y": 123, - "w": 22, - "h": 23 - } - }, - { - "filename": "steel_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 111, - "y": 146, - "w": 22, - "h": 23 - } - }, - { - "filename": "stellar_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 133, - "y": 124, - "w": 22, - "h": 23 - } - }, - { - "filename": "water_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 155, - "y": 124, - "w": 22, - "h": 23 + "h": 22 } }, { @@ -3783,8 +3006,8 @@ "h": 22 }, "frame": { - "x": 133, - "y": 147, + "x": 267, + "y": 21, "w": 22, "h": 22 } @@ -3804,33 +3027,12 @@ "h": 22 }, "frame": { - "x": 155, - "y": 147, + "x": 289, + "y": 21, "w": 22, "h": 22 } }, - { - "filename": "wide_lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 177, - "y": 125, - "w": 22, - "h": 23 - } - }, { "filename": "dark_memory", "rotated": false, @@ -3846,14 +3048,14 @@ "h": 22 }, "frame": { - "x": 199, - "y": 125, + "x": 311, + "y": 21, "w": 22, "h": 22 } }, { - "filename": "dire_hit", + "filename": "focus_sash", "rotated": false, "trimmed": true, "sourceSize": { @@ -3862,19 +3064,229 @@ }, "spriteSourceSize": { "x": 5, - "y": 5, + "y": 4, "w": 22, - "h": 22 + "h": 23 }, "frame": { - "x": 221, - "y": 125, + "x": 333, + "y": 20, "w": 22, - "h": 22 + "h": 23 } }, { - "filename": "deep_sea_tooth", + "filename": "ghost_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 355, + "y": 20, + "w": 22, + "h": 23 + } + }, + { + "filename": "grass_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 377, + "y": 20, + "w": 22, + "h": 23 + } + }, + { + "filename": "icy_reins_of_unity", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 399, + "y": 22, + "w": 24, + "h": 20 + } + }, + { + "filename": "dragon_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 24, + "h": 18 + }, + "frame": { + "x": 175, + "y": 43, + "w": 24, + "h": 18 + } + }, + { + "filename": "metal_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 24, + "h": 20 + }, + "frame": { + "x": 199, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "quick_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 24, + "h": 20 + }, + "frame": { + "x": 223, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "rusted_shield", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 24, + "h": 20 + }, + "frame": { + "x": 247, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "sacred_ash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 271, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "shadow_reins_of_unity", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 295, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "soft_sand", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 319, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "binding_band", "rotated": false, "trimmed": true, "sourceSize": { @@ -3884,77 +3296,14 @@ "spriteSourceSize": { "x": 5, "y": 6, - "w": 22, - "h": 21 + "w": 23, + "h": 20 }, "frame": { - "x": 177, - "y": 148, - "w": 22, - "h": 21 - } - }, - { - "filename": "dna_splicers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 199, - "y": 147, - "w": 22, - "h": 22 - } - }, - { - "filename": "dragon_memory", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 221, - "y": 147, - "w": 22, - "h": 22 - } - }, - { - "filename": "electirizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 243, - "y": 131, - "w": 22, - "h": 22 + "x": 343, + "y": 43, + "w": 23, + "h": 20 } }, { @@ -3972,12 +3321,558 @@ "h": 21 }, "frame": { - "x": 265, - "y": 134, + "x": 366, + "y": 43, "w": 23, "h": 21 } }, + { + "filename": "black_glasses", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 165, + "y": 61, + "w": 23, + "h": 17 + } + }, + { + "filename": "unknown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 172, + "y": 78, + "w": 16, + "h": 24 + } + }, + { + "filename": "apicot_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 172, + "y": 102, + "w": 19, + "h": 20 + } + }, + { + "filename": "ground_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 171, + "y": 122, + "w": 22, + "h": 23 + } + }, + { + "filename": "ice_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 171, + "y": 145, + "w": 22, + "h": 23 + } + }, + { + "filename": "dire_hit", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 171, + "y": 168, + "w": 22, + "h": 22 + } + }, + { + "filename": "never_melt_ice", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 170, + "y": 190, + "w": 22, + "h": 23 + } + }, + { + "filename": "lansat_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 23 + }, + "frame": { + "x": 172, + "y": 213, + "w": 21, + "h": 23 + } + }, + { + "filename": "leaf_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 172, + "y": 236, + "w": 21, + "h": 23 + } + }, + { + "filename": "zinc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 177, + "y": 259, + "w": 16, + "h": 24 + } + }, + { + "filename": "berry_pot", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 18, + "h": 22 + }, + "frame": { + "x": 177, + "y": 283, + "w": 18, + "h": 22 + } + }, + { + "filename": "normal_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 188, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "petaya_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 210, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "poison_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 232, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "psychic_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 254, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "reaper_cloth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 276, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "rock_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 298, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "steel_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 320, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "stellar_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 342, + "y": 63, + "w": 22, + "h": 23 + } + }, + { + "filename": "dna_splicers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 364, + "y": 64, + "w": 22, + "h": 22 + } + }, + { + "filename": "aggronite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 188, + "y": 86, + "w": 16, + "h": 16 + } + }, + { + "filename": "burn_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 204, + "y": 86, + "w": 23, + "h": 17 + } + }, + { + "filename": "chill_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 227, + "y": 86, + "w": 23, + "h": 17 + } + }, + { + "filename": "coupon", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 250, + "y": 86, + "w": 23, + "h": 19 + } + }, + { + "filename": "golden_mystic_ticket", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 273, + "y": 86, + "w": 23, + "h": 19 + } + }, + { + "filename": "mystic_ticket", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 296, + "y": 86, + "w": 23, + "h": 19 + } + }, { "filename": "n_lunarizer", "rotated": false, @@ -3993,8 +3888,8 @@ "h": 21 }, "frame": { - "x": 288, - "y": 134, + "x": 319, + "y": 86, "w": 23, "h": 21 } @@ -4014,14 +3909,14 @@ "h": 21 }, "frame": { - "x": 311, - "y": 134, + "x": 342, + "y": 86, "w": 23, "h": 21 } }, { - "filename": "deep_sea_scale", + "filename": "deep_sea_tooth", "rotated": false, "trimmed": true, "sourceSize": { @@ -4032,17 +3927,17 @@ "x": 5, "y": 6, "w": 22, - "h": 20 + "h": 21 }, "frame": { - "x": 243, - "y": 153, + "x": 365, + "y": 86, "w": 22, - "h": 20 + "h": 21 } }, { - "filename": "mystic_ticket", + "filename": "dawn_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -4050,16 +3945,121 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 + "x": 6, + "y": 6, + "w": 20, + "h": 21 }, "frame": { - "x": 265, - "y": 155, - "w": 23, - "h": 19 + "x": 389, + "y": 43, + "w": 20, + "h": 21 + } + }, + { + "filename": "hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 409, + "y": 42, + "w": 17, + "h": 23 + } + }, + { + "filename": "dragon_memory", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 386, + "y": 64, + "w": 22, + "h": 22 + } + }, + { + "filename": "sachet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 18, + "h": 23 + }, + "frame": { + "x": 408, + "y": 65, + "w": 18, + "h": 23 + } + }, + { + "filename": "dusk_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 387, + "y": 86, + "w": 21, + "h": 21 + } + }, + { + "filename": "razor_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 18, + "h": 20 + }, + "frame": { + "x": 408, + "y": 88, + "w": 18, + "h": 20 } }, { @@ -4077,14 +4077,14 @@ "h": 19 }, "frame": { - "x": 288, - "y": 155, + "x": 191, + "y": 103, "w": 23, "h": 19 } }, { - "filename": "reviver_seed", + "filename": "sharp_beak", "rotated": false, "trimmed": true, "sourceSize": { @@ -4093,15 +4093,99 @@ }, "spriteSourceSize": { "x": 5, - "y": 8, - "w": 23, - "h": 20 + "y": 5, + "w": 21, + "h": 23 }, "frame": { - "x": 311, - "y": 155, - "w": 23, - "h": 20 + "x": 193, + "y": 122, + "w": 21, + "h": 23 + } + }, + { + "filename": "water_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 214, + "y": 103, + "w": 22, + "h": 23 + } + }, + { + "filename": "whipped_dream", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 23 + }, + "frame": { + "x": 193, + "y": 145, + "w": 21, + "h": 23 + } + }, + { + "filename": "wide_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 214, + "y": 126, + "w": 22, + "h": 23 + } + }, + { + "filename": "electirizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 193, + "y": 168, + "w": 22, + "h": 22 } }, { @@ -4119,12 +4203,33 @@ "h": 22 }, "frame": { - "x": 334, - "y": 136, + "x": 192, + "y": 190, "w": 22, "h": 22 } }, + { + "filename": "blunder_policy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 19 + }, + "frame": { + "x": 214, + "y": 149, + "w": 22, + "h": 19 + } + }, { "filename": "enigma_berry", "rotated": false, @@ -4140,33 +4245,12 @@ "h": 22 }, "frame": { - "x": 356, - "y": 136, + "x": 215, + "y": 168, "w": 22, "h": 22 } }, - { - "filename": "burn_drive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 334, - "y": 158, - "w": 23, - "h": 17 - } - }, { "filename": "fairy_memory", "rotated": false, @@ -4182,8 +4266,8 @@ "h": 22 }, "frame": { - "x": 378, - "y": 132, + "x": 214, + "y": 190, "w": 22, "h": 22 } @@ -4203,54 +4287,12 @@ "h": 22 }, "frame": { - "x": 400, - "y": 132, + "x": 193, + "y": 212, "w": 22, "h": 22 } }, - { - "filename": "chill_drive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 357, - "y": 158, - "w": 23, - "h": 17 - } - }, - { - "filename": "wellspring_mask", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 380, - "y": 154, - "w": 23, - "h": 21 - } - }, { "filename": "fire_memory", "rotated": false, @@ -4266,8 +4308,8 @@ "h": 22 }, "frame": { - "x": 403, - "y": 154, + "x": 193, + "y": 234, "w": 22, "h": 22 } @@ -4287,8 +4329,8 @@ "h": 22 }, "frame": { - "x": 123, - "y": 169, + "x": 193, + "y": 256, "w": 22, "h": 22 } @@ -4308,8 +4350,8 @@ "h": 22 }, "frame": { - "x": 145, - "y": 169, + "x": 215, + "y": 212, "w": 22, "h": 22 } @@ -4329,8 +4371,8 @@ "h": 22 }, "frame": { - "x": 167, - "y": 169, + "x": 215, + "y": 234, "w": 22, "h": 22 } @@ -4350,8 +4392,8 @@ "h": 22 }, "frame": { - "x": 189, - "y": 169, + "x": 215, + "y": 256, "w": 22, "h": 22 } @@ -4371,75 +4413,12 @@ "h": 22 }, "frame": { - "x": 211, - "y": 169, + "x": 195, + "y": 278, "w": 22, "h": 22 } }, - { - "filename": "shell_bell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 23, - "h": 20 - }, - "frame": { - "x": 233, - "y": 173, - "w": 23, - "h": 20 - } - }, - { - "filename": "dubious_disc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 256, - "y": 174, - "w": 22, - "h": 19 - } - }, - { - "filename": "fairy_feather", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 20 - }, - "frame": { - "x": 278, - "y": 174, - "w": 22, - "h": 20 - } - }, { "filename": "guard_spec", "rotated": false, @@ -4455,8 +4434,8 @@ "h": 22 }, "frame": { - "x": 300, - "y": 175, + "x": 217, + "y": 278, "w": 22, "h": 22 } @@ -4476,8 +4455,8 @@ "h": 22 }, "frame": { - "x": 322, - "y": 175, + "x": 236, + "y": 105, "w": 22, "h": 22 } @@ -4497,8 +4476,8 @@ "h": 22 }, "frame": { - "x": 344, - "y": 175, + "x": 236, + "y": 127, "w": 22, "h": 22 } @@ -4518,33 +4497,12 @@ "h": 22 }, "frame": { - "x": 366, - "y": 175, + "x": 258, + "y": 105, "w": 22, "h": 22 } }, - { - "filename": "leftovers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 15, - "h": 22 - }, - "frame": { - "x": 388, - "y": 175, - "w": 15, - "h": 22 - } - }, { "filename": "mini_black_hole", "rotated": false, @@ -4560,8 +4518,8 @@ "h": 22 }, "frame": { - "x": 403, - "y": 176, + "x": 280, + "y": 105, "w": 22, "h": 22 } @@ -4581,8 +4539,8 @@ "h": 22 }, "frame": { - "x": 125, - "y": 191, + "x": 258, + "y": 127, "w": 22, "h": 22 } @@ -4602,12 +4560,33 @@ "h": 22 }, "frame": { - "x": 147, - "y": 191, + "x": 280, + "y": 127, "w": 22, "h": 22 } }, + { + "filename": "dubious_disc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 236, + "y": 149, + "w": 22, + "h": 19 + } + }, { "filename": "psychic_memory", "rotated": false, @@ -4623,8 +4602,8 @@ "h": 22 }, "frame": { - "x": 169, - "y": 191, + "x": 237, + "y": 168, "w": 22, "h": 22 } @@ -4644,12 +4623,33 @@ "h": 22 }, "frame": { - "x": 191, - "y": 191, + "x": 236, + "y": 190, "w": 22, "h": 22 } }, + { + "filename": "mystic_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 23 + }, + "frame": { + "x": 237, + "y": 212, + "w": 20, + "h": 23 + } + }, { "filename": "hard_meteorite", "rotated": false, @@ -4665,8 +4665,8 @@ "h": 22 }, "frame": { - "x": 213, - "y": 191, + "x": 237, + "y": 235, "w": 20, "h": 22 } @@ -4686,12 +4686,75 @@ "h": 21 }, "frame": { - "x": 233, - "y": 193, + "x": 237, + "y": 257, "w": 22, "h": 21 } }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 302, + "y": 105, + "w": 17, + "h": 23 + } + }, + { + "filename": "wellspring_mask", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 319, + "y": 107, + "w": 23, + "h": 21 + } + }, + { + "filename": "reviver_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 8, + "w": 23, + "h": 20 + }, + "frame": { + "x": 302, + "y": 128, + "w": 23, + "h": 20 + } + }, { "filename": "scroll_of_darkness", "rotated": false, @@ -4707,117 +4770,12 @@ "h": 22 }, "frame": { - "x": 255, - "y": 193, + "x": 342, + "y": 107, "w": 22, "h": 22 } }, - { - "filename": "douse_drive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 277, - "y": 194, - "w": 23, - "h": 17 - } - }, - { - "filename": "relic_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 9, - "w": 17, - "h": 16 - }, - "frame": { - "x": 125, - "y": 213, - "w": 17, - "h": 16 - } - }, - { - "filename": "shock_drive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 142, - "y": 213, - "w": 23, - "h": 17 - } - }, - { - "filename": "wise_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 165, - "y": 213, - "w": 23, - "h": 17 - } - }, - { - "filename": "malicious_armor", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 188, - "y": 213, - "w": 22, - "h": 20 - } - }, { "filename": "scroll_of_waters", "rotated": false, @@ -4833,8 +4791,8 @@ "h": 22 }, "frame": { - "x": 210, - "y": 213, + "x": 364, + "y": 107, "w": 22, "h": 22 } @@ -4854,12 +4812,75 @@ "h": 22 }, "frame": { - "x": 232, - "y": 214, + "x": 386, + "y": 107, "w": 22, "h": 22 } }, + { + "filename": "oval_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 19 + }, + "frame": { + "x": 408, + "y": 108, + "w": 18, + "h": 19 + } + }, + { + "filename": "sitrus_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 239, + "y": 278, + "w": 20, + "h": 22 + } + }, + { + "filename": "upgrade", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 258, + "y": 149, + "w": 22, + "h": 19 + } + }, { "filename": "starf_berry", "rotated": false, @@ -4875,8 +4896,8 @@ "h": 22 }, "frame": { - "x": 254, - "y": 215, + "x": 259, + "y": 168, "w": 22, "h": 22 } @@ -4896,8 +4917,8 @@ "h": 22 }, "frame": { - "x": 300, - "y": 197, + "x": 258, + "y": 190, "w": 22, "h": 22 } @@ -4917,8 +4938,8 @@ "h": 22 }, "frame": { - "x": 322, - "y": 197, + "x": 257, + "y": 212, "w": 22, "h": 22 } @@ -4938,12 +4959,33 @@ "h": 22 }, "frame": { - "x": 344, - "y": 197, + "x": 257, + "y": 234, "w": 22, "h": 22 } }, + { + "filename": "metal_alloy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 21, + "h": 19 + }, + "frame": { + "x": 280, + "y": 149, + "w": 21, + "h": 19 + } + }, { "filename": "tm_bug", "rotated": false, @@ -4959,8 +5001,8 @@ "h": 22 }, "frame": { - "x": 366, - "y": 197, + "x": 281, + "y": 168, "w": 22, "h": 22 } @@ -4980,54 +5022,12 @@ "h": 22 }, "frame": { - "x": 129, - "y": 230, + "x": 280, + "y": 190, "w": 22, "h": 22 } }, - { - "filename": "sharp_beak", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 130, - "y": 252, - "w": 21, - "h": 23 - } - }, - { - "filename": "whipped_dream", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 23 - }, - "frame": { - "x": 130, - "y": 275, - "w": 21, - "h": 23 - } - }, { "filename": "tm_dragon", "rotated": false, @@ -5043,8 +5043,8 @@ "h": 22 }, "frame": { - "x": 151, - "y": 230, + "x": 279, + "y": 212, "w": 22, "h": 22 } @@ -5064,8 +5064,8 @@ "h": 22 }, "frame": { - "x": 151, - "y": 252, + "x": 279, + "y": 234, "w": 22, "h": 22 } @@ -5085,138 +5085,12 @@ "h": 22 }, "frame": { - "x": 151, - "y": 274, + "x": 259, + "y": 256, "w": 22, "h": 22 } }, - { - "filename": "potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 137, - "y": 298, - "w": 17, - "h": 23 - } - }, - { - "filename": "sachet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 18, - "h": 23 - }, - "frame": { - "x": 137, - "y": 321, - "w": 18, - "h": 23 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 138, - "y": 344, - "w": 17, - "h": 23 - } - }, - { - "filename": "lock_capsule", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 19, - "h": 22 - }, - "frame": { - "x": 154, - "y": 296, - "w": 19, - "h": 22 - } - }, - { - "filename": "metal_coat", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 19, - "h": 22 - }, - "frame": { - "x": 138, - "y": 367, - "w": 19, - "h": 22 - } - }, - { - "filename": "sitrus_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 22 - }, - "frame": { - "x": 155, - "y": 318, - "w": 20, - "h": 22 - } - }, { "filename": "tm_fighting", "rotated": false, @@ -5232,8 +5106,8 @@ "h": 22 }, "frame": { - "x": 155, - "y": 340, + "x": 259, + "y": 278, "w": 22, "h": 22 } @@ -5253,75 +5127,12 @@ "h": 22 }, "frame": { - "x": 157, - "y": 362, + "x": 281, + "y": 256, "w": 22, "h": 22 } }, - { - "filename": "relic_gold", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 11, - "w": 15, - "h": 11 - }, - "frame": { - "x": 173, - "y": 230, - "w": 15, - "h": 11 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 173, - "y": 241, - "w": 17, - "h": 22 - } - }, - { - "filename": "soothe_bell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 173, - "y": 263, - "w": 17, - "h": 22 - } - }, { "filename": "tm_flying", "rotated": false, @@ -5337,14 +5148,224 @@ "h": 22 }, "frame": { - "x": 173, - "y": 285, + "x": 281, + "y": 278, "w": 22, "h": 22 } }, { - "filename": "dawn_stone", + "filename": "baton", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 408, + "y": 127, + "w": 18, + "h": 18 + } + }, + { + "filename": "golden_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 325, + "y": 128, + "w": 17, + "h": 20 + } + }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 342, + "y": 129, + "w": 23, + "h": 20 + } + }, + { + "filename": "deep_sea_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 365, + "y": 129, + "w": 22, + "h": 20 + } + }, + { + "filename": "poison_barb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 387, + "y": 129, + "w": 21, + "h": 21 + } + }, + { + "filename": "candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 11, + "w": 18, + "h": 18 + }, + "frame": { + "x": 408, + "y": 145, + "w": 18, + "h": 18 + } + }, + { + "filename": "douse_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 195, + "y": 300, + "w": 23, + "h": 17 + } + }, + { + "filename": "relic_crown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 18 + }, + "frame": { + "x": 218, + "y": 300, + "w": 23, + "h": 18 + } + }, + { + "filename": "fairy_feather", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 20 + }, + "frame": { + "x": 241, + "y": 300, + "w": 22, + "h": 20 + } + }, + { + "filename": "malicious_armor", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 263, + "y": 300, + "w": 22, + "h": 20 + } + }, + { + "filename": "big_nugget", "rotated": false, "trimmed": true, "sourceSize": { @@ -5355,13 +5376,76 @@ "x": 6, "y": 6, "w": 20, - "h": 21 + "h": 20 }, "frame": { - "x": 190, - "y": 233, + "x": 285, + "y": 300, "w": 20, - "h": 21 + "h": 20 + } + }, + { + "filename": "shock_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 155, + "y": 305, + "w": 23, + "h": 17 + } + }, + { + "filename": "lucky_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 178, + "y": 305, + "w": 17, + "h": 20 + } + }, + { + "filename": "wise_glasses", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 195, + "y": 317, + "w": 23, + "h": 17 } }, { @@ -5379,8 +5463,8 @@ "h": 21 }, "frame": { - "x": 210, - "y": 235, + "x": 218, + "y": 318, "w": 22, "h": 21 } @@ -5400,33 +5484,12 @@ "h": 21 }, "frame": { - "x": 232, - "y": 236, + "x": 240, + "y": 320, "w": 22, "h": 21 } }, - { - "filename": "gb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 190, - "y": 254, - "w": 20, - "h": 20 - } - }, { "filename": "tart_apple", "rotated": false, @@ -5442,14 +5505,14 @@ "h": 21 }, "frame": { - "x": 254, - "y": 237, + "x": 262, + "y": 320, "w": 22, "h": 21 } }, { - "filename": "tera_orb", + "filename": "shiny_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -5459,14 +5522,35 @@ "spriteSourceSize": { "x": 5, "y": 6, - "w": 22, - "h": 20 + "w": 21, + "h": 21 }, "frame": { - "x": 210, - "y": 256, - "w": 22, - "h": 20 + "x": 284, + "y": 320, + "w": 21, + "h": 21 + } + }, + { + "filename": "alakazite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 139, + "y": 309, + "w": 16, + "h": 16 } }, { @@ -5484,12 +5568,54 @@ "h": 22 }, "frame": { - "x": 232, - "y": 257, + "x": 135, + "y": 325, "w": 22, "h": 22 } }, + { + "filename": "zoom_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 157, + "y": 322, + "w": 21, + "h": 21 + } + }, + { + "filename": "metronome", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 178, + "y": 325, + "w": 17, + "h": 22 + } + }, { "filename": "tm_grass", "rotated": false, @@ -5505,12 +5631,54 @@ "h": 22 }, "frame": { - "x": 254, - "y": 258, + "x": 136, + "y": 347, "w": 22, "h": 22 } }, + { + "filename": "blue_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 158, + "y": 343, + "w": 20, + "h": 20 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 141, + "y": 369, + "w": 17, + "h": 23 + } + }, { "filename": "tm_ground", "rotated": false, @@ -5526,12 +5694,54 @@ "h": 22 }, "frame": { - "x": 175, - "y": 307, + "x": 158, + "y": 363, "w": 22, "h": 22 } }, + { + "filename": "metal_coat", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 19, + "h": 22 + }, + "frame": { + "x": 141, + "y": 392, + "w": 19, + "h": 22 + } + }, + { + "filename": "tera_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 195, + "y": 334, + "w": 22, + "h": 20 + } + }, { "filename": "tm_ice", "rotated": false, @@ -5547,8 +5757,8 @@ "h": 22 }, "frame": { - "x": 177, - "y": 329, + "x": 217, + "y": 339, "w": 22, "h": 22 } @@ -5568,8 +5778,8 @@ "h": 22 }, "frame": { - "x": 179, - "y": 351, + "x": 239, + "y": 341, "w": 22, "h": 22 } @@ -5589,8 +5799,8 @@ "h": 22 }, "frame": { - "x": 179, - "y": 373, + "x": 261, + "y": 341, "w": 22, "h": 22 } @@ -5610,14 +5820,14 @@ "h": 22 }, "frame": { - "x": 157, - "y": 384, + "x": 283, + "y": 341, "w": 22, "h": 22 } }, { - "filename": "upgrade", + "filename": "tm_rock", "rotated": false, "trimmed": true, "sourceSize": { @@ -5626,36 +5836,15 @@ }, "spriteSourceSize": { "x": 5, - "y": 7, + "y": 5, "w": 22, - "h": 19 + "h": 22 }, "frame": { - "x": 109, - "y": 406, + "x": 160, + "y": 385, "w": 22, - "h": 19 - } - }, - { - "filename": "metal_alloy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 21, - "h": 19 - }, - "frame": { - "x": 131, - "y": 406, - "w": 21, - "h": 19 + "h": 22 } }, { @@ -5673,8 +5862,8 @@ "h": 19 }, "frame": { - "x": 152, - "y": 406, + "x": 160, + "y": 407, "w": 20, "h": 19 } @@ -5694,14 +5883,14 @@ "h": 19 }, "frame": { - "x": 172, - "y": 406, + "x": 180, + "y": 407, "w": 20, "h": 19 } }, { - "filename": "absolite", + "filename": "altarianite", "rotated": false, "trimmed": true, "sourceSize": { @@ -5715,14 +5904,14 @@ "h": 16 }, "frame": { - "x": 116, - "y": 390, + "x": 178, + "y": 347, "w": 16, "h": 16 } }, { - "filename": "aerodactylite", + "filename": "leftovers", "rotated": false, "trimmed": true, "sourceSize": { @@ -5731,35 +5920,14 @@ }, "spriteSourceSize": { "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 132, - "y": 390, - "w": 16, - "h": 16 - } - }, - { - "filename": "tm_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, "y": 5, - "w": 22, + "w": 15, "h": 22 }, "frame": { - "x": 388, - "y": 198, - "w": 22, + "x": 180, + "y": 363, + "w": 15, "h": 22 } }, @@ -5778,12 +5946,33 @@ "h": 22 }, "frame": { - "x": 277, - "y": 211, + "x": 182, + "y": 385, "w": 22, "h": 22 } }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 200, + "y": 407, + "w": 20, + "h": 19 + } + }, { "filename": "tm_water", "rotated": false, @@ -5799,8 +5988,8 @@ "h": 22 }, "frame": { - "x": 276, - "y": 233, + "x": 195, + "y": 354, "w": 22, "h": 22 } @@ -5820,8 +6009,8 @@ "h": 22 }, "frame": { - "x": 276, - "y": 255, + "x": 217, + "y": 361, "w": 22, "h": 22 } @@ -5841,8 +6030,8 @@ "h": 22 }, "frame": { - "x": 299, - "y": 219, + "x": 239, + "y": 363, "w": 22, "h": 22 } @@ -5862,8 +6051,8 @@ "h": 22 }, "frame": { - "x": 321, - "y": 219, + "x": 261, + "y": 363, "w": 22, "h": 22 } @@ -5883,12 +6072,54 @@ "h": 22 }, "frame": { - "x": 343, - "y": 219, + "x": 283, + "y": 363, "w": 22, "h": 22 } }, + { + "filename": "soothe_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 204, + "y": 385, + "w": 17, + "h": 22 + } + }, + { + "filename": "white_herb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 220, + "y": 407, + "w": 20, + "h": 19 + } + }, { "filename": "x_defense", "rotated": false, @@ -5904,8 +6135,8 @@ "h": 22 }, "frame": { - "x": 365, - "y": 219, + "x": 221, + "y": 385, "w": 22, "h": 22 } @@ -5925,12 +6156,33 @@ "h": 22 }, "frame": { - "x": 298, - "y": 241, + "x": 243, + "y": 385, "w": 22, "h": 22 } }, + { + "filename": "miracle_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 19, + "h": 19 + }, + "frame": { + "x": 240, + "y": 407, + "w": 19, + "h": 19 + } + }, { "filename": "x_sp_def", "rotated": false, @@ -5946,8 +6198,8 @@ "h": 22 }, "frame": { - "x": 320, - "y": 241, + "x": 265, + "y": 385, "w": 22, "h": 22 } @@ -5967,117 +6219,12 @@ "h": 22 }, "frame": { - "x": 342, - "y": 241, + "x": 287, + "y": 385, "w": 22, "h": 22 } }, - { - "filename": "dusk_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 364, - "y": 241, - "w": 21, - "h": 21 - } - }, - { - "filename": "poison_barb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 387, - "y": 220, - "w": 21, - "h": 21 - } - }, - { - "filename": "golden_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 408, - "y": 220, - "w": 17, - "h": 20 - } - }, - { - "filename": "shiny_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 385, - "y": 241, - "w": 21, - "h": 21 - } - }, - { - "filename": "quick_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 406, - "y": 241, - "w": 19, - "h": 21 - } - }, { "filename": "masterpiece_teacup", "rotated": false, @@ -6093,8 +6240,8 @@ "h": 18 }, "frame": { - "x": 298, - "y": 263, + "x": 259, + "y": 407, "w": 21, "h": 18 } @@ -6114,14 +6261,14 @@ "h": 18 }, "frame": { - "x": 319, - "y": 263, + "x": 280, + "y": 407, "w": 21, "h": 18 } }, { - "filename": "unremarkable_teacup", + "filename": "dark_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -6129,20 +6276,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 7, "y": 7, - "w": 21, + "w": 18, "h": 18 }, "frame": { - "x": 340, - "y": 263, - "w": 21, + "x": 301, + "y": 407, + "w": 18, "h": 18 } }, { - "filename": "zoom_lens", + "filename": "relic_gold", "rotated": false, "trimmed": true, "sourceSize": { @@ -6150,20 +6297,41 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 + "x": 9, + "y": 11, + "w": 15, + "h": 11 }, "frame": { - "x": 276, - "y": 277, - "w": 21, - "h": 21 + "x": 0, + "y": 414, + "w": 15, + "h": 11 } }, { - "filename": "everstone", + "filename": "full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 4, + "w": 15, + "h": 23 + }, + "frame": { + "x": 301, + "y": 212, + "w": 15, + "h": 23 + } + }, + { + "filename": "quick_claw", "rotated": false, "trimmed": true, "sourceSize": { @@ -6172,15 +6340,78 @@ }, "spriteSourceSize": { "x": 6, - "y": 8, - "w": 20, - "h": 17 + "y": 6, + "w": 19, + "h": 21 }, "frame": { - "x": 297, - "y": 281, + "x": 301, + "y": 235, + "w": 19, + "h": 21 + } + }, + { + "filename": "spell_tag", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 303, + "y": 256, + "w": 19, + "h": 21 + } + }, + { + "filename": "candy_jar", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 303, + "y": 277, + "w": 19, + "h": 20 + } + }, + { + "filename": "gb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, "w": 20, - "h": 17 + "h": 20 + }, + "frame": { + "x": 305, + "y": 297, + "w": 20, + "h": 20 } }, { @@ -6198,8 +6429,8 @@ "h": 20 }, "frame": { - "x": 317, - "y": 281, + "x": 305, + "y": 317, "w": 20, "h": 20 } @@ -6219,54 +6450,12 @@ "h": 20 }, "frame": { - "x": 337, - "y": 281, + "x": 305, + "y": 337, "w": 20, "h": 20 } }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 357, - "y": 281, - "w": 19, - "h": 20 - } - }, - { - "filename": "baton", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 361, - "y": 263, - "w": 18, - "h": 18 - } - }, { "filename": "pb", "rotated": false, @@ -6282,12 +6471,33 @@ "h": 20 }, "frame": { - "x": 379, - "y": 262, + "x": 305, + "y": 357, "w": 20, "h": 20 } }, + { + "filename": "hard_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 309, + "y": 377, + "w": 19, + "h": 20 + } + }, { "filename": "pb_gold", "rotated": false, @@ -6303,33 +6513,12 @@ "h": 20 }, "frame": { - "x": 399, - "y": 262, + "x": 302, + "y": 148, "w": 20, "h": 20 } }, - { - "filename": "razor_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 376, - "y": 282, - "w": 20, - "h": 19 - } - }, { "filename": "rb", "rotated": false, @@ -6345,33 +6534,12 @@ "h": 20 }, "frame": { - "x": 396, - "y": 282, + "x": 322, + "y": 148, "w": 20, "h": 20 } }, - { - "filename": "spell_tag", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 192, - "y": 395, - "w": 19, - "h": 21 - } - }, { "filename": "smooth_meteorite", "rotated": false, @@ -6387,8 +6555,8 @@ "h": 20 }, "frame": { - "x": 211, - "y": 276, + "x": 303, + "y": 168, "w": 20, "h": 20 } @@ -6408,8 +6576,8 @@ "h": 20 }, "frame": { - "x": 231, - "y": 279, + "x": 342, + "y": 149, "w": 20, "h": 20 } @@ -6429,14 +6597,14 @@ "h": 20 }, "frame": { - "x": 251, - "y": 280, + "x": 362, + "y": 149, "w": 20, "h": 20 } }, { - "filename": "mystery_egg", + "filename": "flame_orb", "rotated": false, "trimmed": true, "sourceSize": { @@ -6444,20 +6612,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, + "x": 7, + "y": 7, + "w": 18, "h": 18 }, "frame": { - "x": 195, - "y": 276, - "w": 16, + "x": 323, + "y": 168, + "w": 18, "h": 18 } }, { - "filename": "white_herb", + "filename": "unremarkable_teacup", "rotated": false, "trimmed": true, "sourceSize": { @@ -6465,16 +6633,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, + "x": 5, "y": 7, - "w": 20, - "h": 19 + "w": 21, + "h": 18 }, "frame": { - "x": 211, - "y": 296, - "w": 20, - "h": 19 + "x": 341, + "y": 169, + "w": 21, + "h": 18 } }, { @@ -6492,8 +6660,8 @@ "h": 18 }, "frame": { - "x": 231, - "y": 299, + "x": 362, + "y": 169, "w": 20, "h": 18 } @@ -6513,54 +6681,12 @@ "h": 18 }, "frame": { - "x": 251, - "y": 300, + "x": 382, + "y": 150, "w": 20, "h": 18 } }, - { - "filename": "hard_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 271, - "y": 298, - "w": 19, - "h": 20 - } - }, - { - "filename": "miracle_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 19, - "h": 19 - }, - "frame": { - "x": 290, - "y": 298, - "w": 19, - "h": 19 - } - }, { "filename": "wl_awakening", "rotated": false, @@ -6576,8 +6702,8 @@ "h": 18 }, "frame": { - "x": 309, - "y": 301, + "x": 382, + "y": 168, "w": 20, "h": 18 } @@ -6597,12 +6723,33 @@ "h": 18 }, "frame": { - "x": 329, - "y": 301, + "x": 402, + "y": 163, "w": 20, "h": 18 } }, + { + "filename": "everstone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 17 + }, + "frame": { + "x": 402, + "y": 181, + "w": 20, + "h": 17 + } + }, { "filename": "wl_custom_spliced", "rotated": false, @@ -6618,8 +6765,8 @@ "h": 18 }, "frame": { - "x": 349, - "y": 301, + "x": 382, + "y": 186, "w": 20, "h": 18 } @@ -6639,8 +6786,8 @@ "h": 18 }, "frame": { - "x": 369, - "y": 301, + "x": 402, + "y": 198, "w": 20, "h": 18 } @@ -6660,14 +6807,14 @@ "h": 18 }, "frame": { - "x": 389, - "y": 302, + "x": 303, + "y": 188, "w": 20, "h": 18 } }, { - "filename": "aggronite", + "filename": "light_ball", "rotated": false, "trimmed": true, "sourceSize": { @@ -6675,37 +6822,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 + "x": 7, + "y": 7, + "w": 18, + "h": 18 }, "frame": { - "x": 409, - "y": 302, - "w": 16, - "h": 16 - } - }, - { - "filename": "alakazite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 409, - "y": 318, - "w": 16, - "h": 16 + "x": 323, + "y": 186, + "w": 18, + "h": 18 } }, { @@ -6723,8 +6849,8 @@ "h": 18 }, "frame": { - "x": 211, - "y": 315, + "x": 341, + "y": 187, "w": 20, "h": 18 } @@ -6744,12 +6870,33 @@ "h": 18 }, "frame": { - "x": 231, - "y": 317, + "x": 361, + "y": 187, "w": 20, "h": 18 } }, + { + "filename": "light_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 323, + "y": 204, + "w": 18, + "h": 18 + } + }, { "filename": "wl_full_restore", "rotated": false, @@ -6765,8 +6912,8 @@ "h": 18 }, "frame": { - "x": 251, - "y": 318, + "x": 341, + "y": 205, "w": 20, "h": 18 } @@ -6786,33 +6933,12 @@ "h": 18 }, "frame": { - "x": 271, - "y": 318, + "x": 361, + "y": 205, "w": 20, "h": 18 } }, - { - "filename": "oval_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 - }, - "frame": { - "x": 291, - "y": 317, - "w": 18, - "h": 19 - } - }, { "filename": "wl_hyper_potion", "rotated": false, @@ -6828,8 +6954,8 @@ "h": 18 }, "frame": { - "x": 309, - "y": 319, + "x": 381, + "y": 204, "w": 20, "h": 18 } @@ -6849,8 +6975,8 @@ "h": 18 }, "frame": { - "x": 329, - "y": 319, + "x": 401, + "y": 216, "w": 20, "h": 18 } @@ -6870,8 +6996,8 @@ "h": 18 }, "frame": { - "x": 349, - "y": 319, + "x": 381, + "y": 222, "w": 20, "h": 18 } @@ -6891,8 +7017,8 @@ "h": 18 }, "frame": { - "x": 369, - "y": 319, + "x": 401, + "y": 234, "w": 20, "h": 18 } @@ -6912,33 +7038,12 @@ "h": 18 }, "frame": { - "x": 389, - "y": 320, + "x": 320, + "y": 222, "w": 20, "h": 18 } }, - { - "filename": "altarianite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 409, - "y": 334, - "w": 16, - "h": 16 - } - }, { "filename": "wl_max_ether", "rotated": false, @@ -6954,54 +7059,12 @@ "h": 18 }, "frame": { - "x": 199, - "y": 333, + "x": 340, + "y": 223, "w": 20, "h": 18 } }, - { - "filename": "razor_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 18, - "h": 20 - }, - "frame": { - "x": 201, - "y": 351, - "w": 18, - "h": 20 - } - }, - { - "filename": "lucky_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 201, - "y": 371, - "w": 17, - "h": 20 - } - }, { "filename": "wl_max_potion", "rotated": false, @@ -7017,12 +7080,96 @@ "h": 18 }, "frame": { - "x": 219, - "y": 335, + "x": 360, + "y": 223, "w": 20, "h": 18 } }, + { + "filename": "ampharosite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 320, + "y": 240, + "w": 16, + "h": 16 + } + }, + { + "filename": "mystery_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 18 + }, + "frame": { + "x": 322, + "y": 256, + "w": 16, + "h": 18 + } + }, + { + "filename": "toxic_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 322, + "y": 274, + "w": 18, + "h": 18 + } + }, + { + "filename": "eviolite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 336, + "y": 241, + "w": 15, + "h": 15 + } + }, { "filename": "wl_max_revive", "rotated": false, @@ -7038,8 +7185,8 @@ "h": 18 }, "frame": { - "x": 219, - "y": 353, + "x": 351, + "y": 241, "w": 20, "h": 18 } @@ -7059,8 +7206,8 @@ "h": 18 }, "frame": { - "x": 218, - "y": 371, + "x": 325, + "y": 292, "w": 20, "h": 18 } @@ -7080,8 +7227,8 @@ "h": 18 }, "frame": { - "x": 239, - "y": 336, + "x": 325, + "y": 310, "w": 20, "h": 18 } @@ -7101,8 +7248,8 @@ "h": 18 }, "frame": { - "x": 259, - "y": 336, + "x": 325, + "y": 328, "w": 20, "h": 18 } @@ -7122,8 +7269,8 @@ "h": 18 }, "frame": { - "x": 279, - "y": 336, + "x": 325, + "y": 346, "w": 20, "h": 18 } @@ -7143,159 +7290,12 @@ "h": 18 }, "frame": { - "x": 239, - "y": 354, + "x": 371, + "y": 241, "w": 20, "h": 18 } }, - { - "filename": "candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 11, - "w": 18, - "h": 18 - }, - "frame": { - "x": 259, - "y": 354, - "w": 18, - "h": 18 - } - }, - { - "filename": "dark_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 277, - "y": 354, - "w": 18, - "h": 18 - } - }, - { - "filename": "flame_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 238, - "y": 372, - "w": 18, - "h": 18 - } - }, - { - "filename": "light_ball", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 256, - "y": 372, - "w": 18, - "h": 18 - } - }, - { - "filename": "light_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 274, - "y": 372, - "w": 18, - "h": 18 - } - }, - { - "filename": "toxic_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 299, - "y": 337, - "w": 18, - "h": 18 - } - }, - { - "filename": "ampharosite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 317, - "y": 337, - "w": 16, - "h": 16 - } - }, { "filename": "audinite", "rotated": false, @@ -7311,8 +7311,8 @@ "h": 16 }, "frame": { - "x": 333, - "y": 337, + "x": 328, + "y": 364, "w": 16, "h": 16 } @@ -7332,12 +7332,33 @@ "h": 16 }, "frame": { - "x": 349, - "y": 337, + "x": 328, + "y": 380, "w": 16, "h": 16 } }, + { + "filename": "prism_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 338, + "y": 259, + "w": 15, + "h": 15 + } + }, { "filename": "beedrillite", "rotated": false, @@ -7353,8 +7374,8 @@ "h": 16 }, "frame": { - "x": 365, - "y": 337, + "x": 353, + "y": 259, "w": 16, "h": 16 } @@ -7374,8 +7395,8 @@ "h": 16 }, "frame": { - "x": 295, - "y": 355, + "x": 369, + "y": 259, "w": 16, "h": 16 } @@ -7395,8 +7416,8 @@ "h": 16 }, "frame": { - "x": 381, - "y": 338, + "x": 385, + "y": 259, "w": 16, "h": 16 } @@ -7416,8 +7437,8 @@ "h": 16 }, "frame": { - "x": 311, - "y": 355, + "x": 401, + "y": 252, "w": 16, "h": 16 } @@ -7437,8 +7458,8 @@ "h": 16 }, "frame": { - "x": 327, - "y": 353, + "x": 401, + "y": 268, "w": 16, "h": 16 } @@ -7458,8 +7479,8 @@ "h": 16 }, "frame": { - "x": 343, - "y": 353, + "x": 340, + "y": 275, "w": 16, "h": 16 } @@ -7479,8 +7500,8 @@ "h": 16 }, "frame": { - "x": 359, - "y": 353, + "x": 356, + "y": 275, "w": 16, "h": 16 } @@ -7500,8 +7521,8 @@ "h": 16 }, "frame": { - "x": 375, - "y": 354, + "x": 372, + "y": 275, "w": 16, "h": 16 } @@ -7521,8 +7542,8 @@ "h": 16 }, "frame": { - "x": 391, - "y": 354, + "x": 345, + "y": 291, "w": 16, "h": 16 } @@ -7542,8 +7563,8 @@ "h": 16 }, "frame": { - "x": 407, - "y": 350, + "x": 345, + "y": 307, "w": 16, "h": 16 } @@ -7563,8 +7584,8 @@ "h": 16 }, "frame": { - "x": 407, - "y": 366, + "x": 361, + "y": 291, "w": 16, "h": 16 } @@ -7584,8 +7605,8 @@ "h": 16 }, "frame": { - "x": 211, - "y": 391, + "x": 345, + "y": 323, "w": 16, "h": 16 } @@ -7605,8 +7626,8 @@ "h": 16 }, "frame": { - "x": 211, - "y": 407, + "x": 361, + "y": 307, "w": 16, "h": 16 } @@ -7626,8 +7647,8 @@ "h": 16 }, "frame": { - "x": 227, - "y": 390, + "x": 345, + "y": 339, "w": 16, "h": 16 } @@ -7647,8 +7668,8 @@ "h": 16 }, "frame": { - "x": 227, - "y": 406, + "x": 361, + "y": 323, "w": 16, "h": 16 } @@ -7668,8 +7689,8 @@ "h": 16 }, "frame": { - "x": 243, - "y": 390, + "x": 361, + "y": 339, "w": 16, "h": 16 } @@ -7689,8 +7710,8 @@ "h": 16 }, "frame": { - "x": 243, - "y": 406, + "x": 377, + "y": 291, "w": 16, "h": 16 } @@ -7710,8 +7731,8 @@ "h": 16 }, "frame": { - "x": 259, - "y": 390, + "x": 377, + "y": 307, "w": 16, "h": 16 } @@ -7731,8 +7752,8 @@ "h": 16 }, "frame": { - "x": 259, - "y": 406, + "x": 377, + "y": 323, "w": 16, "h": 16 } @@ -7752,8 +7773,8 @@ "h": 16 }, "frame": { - "x": 275, - "y": 390, + "x": 377, + "y": 339, "w": 16, "h": 16 } @@ -7773,8 +7794,8 @@ "h": 16 }, "frame": { - "x": 275, - "y": 406, + "x": 345, + "y": 355, "w": 16, "h": 16 } @@ -7794,8 +7815,8 @@ "h": 16 }, "frame": { - "x": 292, - "y": 372, + "x": 361, + "y": 355, "w": 16, "h": 16 } @@ -7815,8 +7836,8 @@ "h": 16 }, "frame": { - "x": 308, - "y": 371, + "x": 377, + "y": 355, "w": 16, "h": 16 } @@ -7836,7 +7857,7 @@ "h": 16 }, "frame": { - "x": 324, + "x": 344, "y": 371, "w": 16, "h": 16 @@ -7857,8 +7878,8 @@ "h": 16 }, "frame": { - "x": 340, - "y": 369, + "x": 360, + "y": 371, "w": 16, "h": 16 } @@ -7878,8 +7899,8 @@ "h": 16 }, "frame": { - "x": 356, - "y": 369, + "x": 376, + "y": 371, "w": 16, "h": 16 } @@ -7899,8 +7920,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 370, + "x": 344, + "y": 387, "w": 16, "h": 16 } @@ -7920,8 +7941,8 @@ "h": 16 }, "frame": { - "x": 388, - "y": 370, + "x": 360, + "y": 387, "w": 16, "h": 16 } @@ -7941,8 +7962,8 @@ "h": 16 }, "frame": { - "x": 292, - "y": 388, + "x": 376, + "y": 387, "w": 16, "h": 16 } @@ -7962,8 +7983,8 @@ "h": 16 }, "frame": { - "x": 308, - "y": 387, + "x": 328, + "y": 396, "w": 16, "h": 16 } @@ -7983,8 +8004,8 @@ "h": 16 }, "frame": { - "x": 324, - "y": 387, + "x": 344, + "y": 403, "w": 16, "h": 16 } @@ -8004,8 +8025,8 @@ "h": 16 }, "frame": { - "x": 340, - "y": 385, + "x": 360, + "y": 403, "w": 16, "h": 16 } @@ -8025,8 +8046,8 @@ "h": 16 }, "frame": { - "x": 356, - "y": 385, + "x": 376, + "y": 403, "w": 16, "h": 16 } @@ -8046,8 +8067,8 @@ "h": 16 }, "frame": { - "x": 291, - "y": 404, + "x": 393, + "y": 284, "w": 16, "h": 16 } @@ -8067,8 +8088,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 386, + "x": 393, + "y": 300, "w": 16, "h": 16 } @@ -8088,8 +8109,8 @@ "h": 16 }, "frame": { - "x": 388, - "y": 386, + "x": 393, + "y": 316, "w": 16, "h": 16 } @@ -8109,8 +8130,8 @@ "h": 16 }, "frame": { - "x": 404, - "y": 382, + "x": 393, + "y": 332, "w": 16, "h": 16 } @@ -8130,8 +8151,8 @@ "h": 16 }, "frame": { - "x": 404, - "y": 398, + "x": 393, + "y": 348, "w": 16, "h": 16 } @@ -8151,8 +8172,8 @@ "h": 16 }, "frame": { - "x": 340, - "y": 401, + "x": 409, + "y": 284, "w": 16, "h": 16 } @@ -8172,8 +8193,8 @@ "h": 16 }, "frame": { - "x": 356, - "y": 401, + "x": 409, + "y": 300, "w": 16, "h": 16 } @@ -8193,8 +8214,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 402, + "x": 409, + "y": 316, "w": 16, "h": 16 } @@ -8214,8 +8235,8 @@ "h": 16 }, "frame": { - "x": 388, - "y": 402, + "x": 409, + "y": 332, "w": 16, "h": 16 } @@ -8226,6 +8247,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:4669e332ee400e355936594c14e7221c:1a1f5a801c94e8eb8589e13bc50105a1:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:6dd58685cd89890a4361a424b59bfe65:ff9159978f3a103ee1d656fb76e37457:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 9de02d9e0e95643ae8f183cbaf08f9e55acbbe6c..23c87cf3204bcb5b3b69eaa1775a9ce81d0952c7 100644 GIT binary patch literal 57239 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 IM6N<$f@McVP5=M^ literal 56828 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 nRA*pg-6VRbq!a^DJKgGXoru- 1) { + effectiveness.value = 0.5; + return true; + } + + return false; + } +} + /** * Lowers the amount of starter points available. */ @@ -785,6 +828,14 @@ export function applyChallenges(gameMode: GameMode, challengeType: ChallengeType * @returns True if any challenge was successfully applied. */ export function applyChallenges(gameMode: GameMode, challengeType: ChallengeType.FIXED_BATTLES, waveIndex: Number, battleConfig: FixedBattleConfig): boolean; +/** + * Apply all challenges that modify type effectiveness. + * @param gameMode {@linkcode GameMode} The current gameMode + * @param challengeType {@linkcode ChallengeType} ChallengeType.TYPE_EFFECTIVENESS + * @param effectiveness {@linkcode Utils.NumberHolder} The current effectiveness of the move. + * @returns True if any challenge was successfully applied. + */ +export function applyChallenges(gameMode: GameMode, challengeType: ChallengeType.TYPE_EFFECTIVENESS, effectiveness: Utils.NumberHolder): boolean; /** * Apply all challenges that modify what level AI are. * @param gameMode {@link GameMode} The current gameMode @@ -866,6 +917,9 @@ export function applyChallenges(gameMode: GameMode, challengeType: ChallengeType case ChallengeType.FIXED_BATTLES: ret ||= c.applyFixedBattle(args[0], args[1]); break; + case ChallengeType.TYPE_EFFECTIVENESS: + ret ||= c.applyTypeEffectiveness(args[0]); + break; case ChallengeType.AI_LEVEL: ret ||= c.applyLevelChange(args[0], args[1], args[2], args[3]); break; @@ -907,6 +961,8 @@ export function copyChallenge(source: Challenge | any): Challenge { return LowerStarterPointsChallenge.loadChallenge(source); case Challenges.FRESH_START: return FreshStartChallenge.loadChallenge(source); + case Challenges.INVERSE_BATTLE: + return InverseBattleChallenge.loadChallenge(source); } throw new Error("Unknown challenge copied"); } @@ -918,5 +974,6 @@ export function initChallenges() { new SingleGenerationChallenge(), new SingleTypeChallenge(), new FreshStartChallenge(), + new InverseBattleChallenge(), ); } diff --git a/src/data/move.ts b/src/data/move.ts index c8043282b00..d50dc7e2074 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4,7 +4,7 @@ import { EncoreTag, GulpMissileTag, HelpingHandTag, SemiInvulnerableTag, ShellTr import { getPokemonNameWithAffix } from "../messages"; import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon"; import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects } from "./status-effect"; -import { getTypeResistances, Type } from "./type"; +import { getTypeDamageMultiplier, Type } from "./type"; import { Constructor } from "#app/utils"; import * as Utils from "../utils"; import { WeatherType } from "./weather"; @@ -37,6 +37,9 @@ import { StatChangePhase } from "#app/phases/stat-change-phase"; import { SwitchPhase } from "#app/phases/switch-phase"; import { SwitchSummonPhase } from "#app/phases/switch-summon-phase"; import { SpeciesFormChangeRevertWeatherFormTrigger } from "./pokemon-forms"; +import { NumberHolder } from "#app/utils"; +import { GameMode } from "#app/game-mode"; +import { applyChallenges, ChallengeType } from "./challenge"; export enum MoveCategory { PHYSICAL, @@ -4180,8 +4183,12 @@ export class WaterSuperEffectTypeMultiplierAttr extends VariableMoveTypeMultipli apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { const multiplier = args[0] as Utils.NumberHolder; if (target.isOfType(Type.WATER)) { - multiplier.value *= 4; // Increased twice because initial reduction against water - return true; + const effectivenessAgainstWater = new Utils.NumberHolder(getTypeDamageMultiplier(move.type, Type.WATER)); + applyChallenges(user.scene.gameMode, ChallengeType.TYPE_EFFECTIVENESS, effectivenessAgainstWater); + if (effectivenessAgainstWater.value !== 0) { + multiplier.value *= 2 / effectivenessAgainstWater.value; + return true; + } } return false; @@ -6203,7 +6210,7 @@ export class ResistLastMoveTypeAttr extends MoveEffectAttr { return false; } const userTypes = user.getTypes(); - const validTypes = getTypeResistances(moveData.type).filter(t => !userTypes.includes(t)); // valid types are ones that are not already the user's types + const validTypes = this.getTypeResistances(user.scene.gameMode, moveData.type).filter(t => !userTypes.includes(t)); // valid types are ones that are not already the user's types if (!validTypes.length) { return false; } @@ -6215,6 +6222,25 @@ export class ResistLastMoveTypeAttr extends MoveEffectAttr { return true; } + /** + * Retrieve the types resisting a given type. Used by Conversion 2 + * @returns An array populated with Types, or an empty array if no resistances exist (Unknown or Stellar type) + */ + getTypeResistances(gameMode: GameMode, type: number): Type[] { + const typeResistances: Type[] = []; + + for (let i = 0; i < Object.keys(Type).length; i++) { + const multiplier = new NumberHolder(1); + multiplier.value = getTypeDamageMultiplier(type, i); + applyChallenges(gameMode, ChallengeType.TYPE_EFFECTIVENESS, multiplier); + if (multiplier.value < 1) { + typeResistances.push(i); + } + } + + return typeResistances; + } + getCondition(): MoveConditionFunc { return (user, target, move) => { const moveHistory = target.getLastXMoves(); @@ -7940,7 +7966,8 @@ export function initMoves() { .target(MoveTarget.ALL_NEAR_OTHERS), new AttackMove(Moves.FREEZE_DRY, Type.ICE, MoveCategory.SPECIAL, 70, 100, 20, 10, 0, 6) .attr(StatusEffectAttr, StatusEffect.FREEZE) - .attr(WaterSuperEffectTypeMultiplierAttr), + .attr(WaterSuperEffectTypeMultiplierAttr) + .partial(), // This currently just multiplies the move's power instead of changing its effectiveness. It also doesn't account for abilities that modify type effectiveness such as tera shell. new AttackMove(Moves.DISARMING_VOICE, Type.FAIRY, MoveCategory.SPECIAL, 40, -1, 15, -1, 0, 6) .soundBased() .target(MoveTarget.ALL_NEAR_ENEMIES), diff --git a/src/data/type.ts b/src/data/type.ts index 7a9f7f3605e..47bea8dd72b 100644 --- a/src/data/type.ts +++ b/src/data/type.ts @@ -23,7 +23,7 @@ export enum Type { export type TypeDamageMultiplier = 0 | 0.125 | 0.25 | 0.5 | 1 | 2 | 4 | 8; -export function getTypeDamageMultiplier(attackType: integer, defType: integer): TypeDamageMultiplier { +export function getTypeDamageMultiplier(attackType: Type, defType: Type): TypeDamageMultiplier { if (attackType === Type.UNKNOWN || defType === Type.UNKNOWN) { return 1; } @@ -33,26 +33,10 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): switch (attackType) { case Type.FIGHTING: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.POISON: - case Type.GROUND: - case Type.ROCK: - case Type.BUG: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.ICE: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.GHOST: - default: return 0; + default: + return 1; } case Type.FIGHTING: switch (attackType) { @@ -60,25 +44,12 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.PSYCHIC: case Type.FAIRY: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.POISON: - case Type.GROUND: - case Type.GHOST: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.ICE: - case Type.DRAGON: - return 1; case Type.ROCK: case Type.BUG: case Type.DARK: return 0.5; default: - return 0; + return 1; } case Type.FLYING: switch (attackType) { @@ -86,43 +57,20 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ELECTRIC: case Type.ICE: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.POISON: - case Type.GHOST: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.PSYCHIC: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.FIGHTING: case Type.BUG: case Type.GRASS: return 0.5; case Type.GROUND: - default: return 0; + default: + return 1; } case Type.POISON: switch (attackType) { case Type.GROUND: case Type.PSYCHIC: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.ROCK: - case Type.GHOST: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.ELECTRIC: - case Type.ICE: - case Type.DRAGON: - case Type.DARK: - return 1; case Type.FIGHTING: case Type.POISON: case Type.BUG: @@ -130,7 +78,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.FAIRY: return 0.5; default: - return 0; + return 1; } case Type.GROUND: switch (attackType) { @@ -138,25 +86,13 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.GRASS: case Type.ICE: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.FLYING: - case Type.GROUND: - case Type.BUG: - case Type.GHOST: - case Type.STEEL: - case Type.FIRE: - case Type.PSYCHIC: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.POISON: case Type.ROCK: return 0.5; case Type.ELECTRIC: - default: return 0; + default: + return 1; } case Type.ROCK: switch (attackType) { @@ -166,23 +102,13 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.WATER: case Type.GRASS: return 2; - case Type.ROCK: - case Type.BUG: - case Type.GHOST: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.ICE: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.NORMAL: case Type.FLYING: case Type.POISON: case Type.FIRE: return 0.5; default: - return 0; + return 1; } case Type.BUG: switch (attackType) { @@ -190,51 +116,26 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ROCK: case Type.FIRE: return 2; - case Type.NORMAL: - case Type.POISON: - case Type.BUG: - case Type.GHOST: - case Type.STEEL: - case Type.WATER: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.ICE: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.FIGHTING: case Type.GROUND: case Type.GRASS: return 0.5; default: - return 0; + return 1; } case Type.GHOST: switch (attackType) { case Type.GHOST: case Type.DARK: return 2; - case Type.FLYING: - case Type.GROUND: - case Type.ROCK: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.ICE: - case Type.DRAGON: - case Type.FAIRY: - return 1; case Type.POISON: case Type.BUG: return 0.5; case Type.NORMAL: case Type.FIGHTING: - default: return 0; + default: + return 1; } case Type.STEEL: switch (attackType) { @@ -242,11 +143,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.GROUND: case Type.FIRE: return 2; - case Type.GHOST: - case Type.WATER: - case Type.ELECTRIC: - case Type.DARK: - return 1; case Type.NORMAL: case Type.FLYING: case Type.ROCK: @@ -259,8 +155,9 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.FAIRY: return 0.5; case Type.POISON: - default: return 0; + default: + return 1; } case Type.FIRE: switch (attackType) { @@ -268,16 +165,6 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.ROCK: case Type.WATER: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.FLYING: - case Type.POISON: - case Type.GHOST: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.DRAGON: - case Type.DARK: - return 1; case Type.BUG: case Type.STEEL: case Type.FIRE: @@ -286,33 +173,20 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.FAIRY: return 0.5; default: - return 0; + return 1; } case Type.WATER: switch (attackType) { case Type.GRASS: case Type.ELECTRIC: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.FLYING: - case Type.POISON: - case Type.GROUND: - case Type.ROCK: - case Type.BUG: - case Type.GHOST: - case Type.PSYCHIC: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.STEEL: case Type.FIRE: case Type.WATER: case Type.ICE: return 0.5; default: - return 0; + return 1; } case Type.GRASS: switch (attackType) { @@ -322,49 +196,24 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.FIRE: case Type.ICE: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.ROCK: - case Type.GHOST: - case Type.STEEL: - case Type.PSYCHIC: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.GROUND: case Type.WATER: case Type.GRASS: case Type.ELECTRIC: return 0.5; default: - return 0; + return 1; } case Type.ELECTRIC: switch (attackType) { case Type.GROUND: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.POISON: - case Type.ROCK: - case Type.BUG: - case Type.GHOST: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.PSYCHIC: - case Type.ICE: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.FLYING: case Type.STEEL: case Type.ELECTRIC: return 0.5; default: - return 0; + return 1; } case Type.PSYCHIC: switch (attackType) { @@ -372,25 +221,11 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.GHOST: case Type.DARK: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.POISON: - case Type.GROUND: - case Type.ROCK: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.ICE: - case Type.DRAGON: - case Type.FAIRY: - return 1; case Type.FIGHTING: case Type.PSYCHIC: return 0.5; default: - return 0; + return 1; } case Type.ICE: switch (attackType) { @@ -399,24 +234,10 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.STEEL: case Type.FIRE: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.POISON: - case Type.GROUND: - case Type.BUG: - case Type.GHOST: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.DRAGON: - case Type.DARK: - case Type.FAIRY: - return 1; case Type.ICE: return 0.5; default: - return 0; + return 1; } case Type.DRAGON: switch (attackType) { @@ -424,25 +245,13 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.DRAGON: case Type.FAIRY: return 2; - case Type.NORMAL: - case Type.FIGHTING: - case Type.FLYING: - case Type.POISON: - case Type.GROUND: - case Type.ROCK: - case Type.BUG: - case Type.GHOST: - case Type.STEEL: - case Type.PSYCHIC: - case Type.DARK: - return 1; case Type.FIRE: case Type.WATER: case Type.GRASS: case Type.ELECTRIC: return 0.5; default: - return 0; + return 1; } case Type.DARK: switch (attackType) { @@ -450,106 +259,33 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer): case Type.BUG: case Type.FAIRY: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.POISON: - case Type.GROUND: - case Type.ROCK: - case Type.STEEL: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.ICE: - case Type.DRAGON: - return 1; case Type.GHOST: case Type.DARK: return 0.5; case Type.PSYCHIC: - default: return 0; + default: + return 1; } case Type.FAIRY: switch (attackType) { case Type.POISON: case Type.STEEL: return 2; - case Type.NORMAL: - case Type.FLYING: - case Type.GROUND: - case Type.ROCK: - case Type.GHOST: - case Type.FIRE: - case Type.WATER: - case Type.GRASS: - case Type.ELECTRIC: - case Type.PSYCHIC: - case Type.ICE: - case Type.FAIRY: - return 1; case Type.FIGHTING: case Type.BUG: case Type.DARK: return 0.5; case Type.DRAGON: - default: return 0; + default: + return 1; } case Type.STELLAR: return 1; } - return 0; -} - -/** - * Retrieve the types resisting a given type - * @returns An array populated with Types, or an empty array if no resistances exist (Unknown or Stellar type) - */ -export function getTypeResistances(type: number): Type[] { - switch (type) { - case Type.NORMAL: - return [Type.ROCK, Type.STEEL, Type.GHOST]; - case Type.FIGHTING: - return [Type.FLYING, Type.POISON, Type.BUG, Type.PSYCHIC, Type.FAIRY, Type.GHOST]; - case Type.FLYING: - return [Type.ROCK, Type.ELECTRIC, Type.STEEL]; - case Type.POISON: - return [Type.POISON, Type.GROUND, Type.ROCK, Type.GHOST, Type.STEEL]; - case Type.GROUND: - return [Type.BUG, Type.GRASS, Type.FLYING]; - case Type.ROCK: - return [Type.FIGHTING, Type.GROUND, Type.STEEL]; - case Type.BUG: - return [Type.FIGHTING, Type.FLYING, Type.POISON, Type.GHOST, Type.STEEL, Type.FIRE, Type.FAIRY]; - case Type.GHOST: - return [Type.DARK, Type.NORMAL]; - case Type.STEEL: - return [Type.STEEL, Type.FIRE, Type.WATER, Type.ELECTRIC]; - case Type.FIRE: - return [Type.ROCK, Type.FIRE, Type.WATER, Type.DRAGON]; - case Type.WATER: - return [Type.WATER, Type.GRASS, Type.DRAGON]; - case Type.GRASS: - return [Type.FLYING, Type.POISON, Type.BUG, Type.STEEL, Type.FIRE, Type.GRASS, Type.DRAGON]; - case Type.ELECTRIC: - return [Type.GRASS, Type.ELECTRIC, Type.DRAGON, Type.GROUND]; - case Type.PSYCHIC: - return [Type.STEEL, Type.PSYCHIC]; - case Type.ICE: - return [Type.STEEL, Type.FIRE, Type.WATER, Type.ICE]; - case Type.DRAGON: - return [Type.STEEL, Type.FAIRY]; - case Type.DARK: - return [Type.FIGHTING, Type.DARK, Type.FAIRY]; - case Type.FAIRY: - return [Type.POISON, Type.STEEL, Type.FIRE]; - case Type.UNKNOWN: - case Type.STELLAR: - default: - return []; - } + return 1; } /** diff --git a/src/enums/challenges.ts b/src/enums/challenges.ts index 690e1cdc32d..c4dc7460dfe 100644 --- a/src/enums/challenges.ts +++ b/src/enums/challenges.ts @@ -3,5 +3,6 @@ export enum Challenges { SINGLE_TYPE, LOWER_MAX_STARTER_COST, LOWER_STARTER_POINTS, - FRESH_START + FRESH_START, + INVERSE_BATTLE, } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 8a3a6b280cb..58764ff1046 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -49,6 +49,7 @@ import { BerryType } from "#enums/berry-type"; import { Biome } from "#enums/biome"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; +import { Challenges } from "#enums/challenges"; import { getPokemonNameWithAffix } from "#app/messages.js"; import { DamagePhase } from "#app/phases/damage-phase.js"; import { FaintPhase } from "#app/phases/faint-phase.js"; @@ -1315,12 +1316,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return 1; } } - - return getTypeDamageMultiplier(moveType, defType); + const multiplier = new Utils.NumberHolder(getTypeDamageMultiplier(moveType, defType)); + applyChallenges(this.scene.gameMode, ChallengeType.TYPE_EFFECTIVENESS, multiplier); + return multiplier.value; }).reduce((acc, cur) => acc * cur, 1) as TypeDamageMultiplier; + const typeMultiplierAgainstFlying = new Utils.NumberHolder(getTypeDamageMultiplier(moveType, Type.FLYING)); + applyChallenges(this.scene.gameMode, ChallengeType.TYPE_EFFECTIVENESS, typeMultiplierAgainstFlying); // Handle strong winds lowering effectiveness of types super effective against pure flying - if (!ignoreStrongWinds && arena.weather?.weatherType === WeatherType.STRONG_WINDS && !arena.weather.isEffectSuppressed(this.scene) && this.isOfType(Type.FLYING) && getTypeDamageMultiplier(moveType, Type.FLYING) === 2) { + if (!ignoreStrongWinds && arena.weather?.weatherType === WeatherType.STRONG_WINDS && !arena.weather.isEffectSuppressed(this.scene) && this.isOfType(Type.FLYING) && typeMultiplierAgainstFlying.value === 2) { multiplier /= 2; if (!simulated) { this.scene.queueMessage(i18next.t("weather:strongWindsEffectMessage")); @@ -3852,6 +3856,9 @@ export class EnemyPokemon extends Pokemon { new PokemonMove(Moves.FLAMETHROWER), new PokemonMove(Moves.COSMIC_POWER) ]; + if (this.scene.gameMode.hasChallenge(Challenges.INVERSE_BATTLE)) { + this.moveset[2] = new PokemonMove(Moves.THUNDERBOLT); + } break; default: super.generateAndPopulateMoveset(); diff --git a/src/locales/de/achv.json b/src/locales/de/achv.json index 0649bcf3169..d2e56089720 100644 --- a/src/locales/de/achv.json +++ b/src/locales/de/achv.json @@ -269,5 +269,9 @@ "FRESH_START": { "name": "Hussa, noch einmal von vorn!", "description": "Schließe die 'Neuanfang' Herausforderung ab" + }, + "INVERSE_BATTLE": { + "name": "Spieglein, Spieglein an der Wand", + "description": "Schließe die 'Umkehrkampf' Herausforderung ab" } } \ No newline at end of file diff --git a/src/locales/de/challenges.json b/src/locales/de/challenges.json index 1b41a707a81..17c33353bc6 100644 --- a/src/locales/de/challenges.json +++ b/src/locales/de/challenges.json @@ -25,5 +25,12 @@ "desc": "Du kannst nur die ursprünglichen Starter verwenden, genau so, als hättest du gerade erst mit Pokérogue begonnen.", "value.0": "Aus", "value.1": "An" + }, + "inverseBattle": { + "name": "Umkehrkampf", + "shortName": "Umkehrkampf", + "desc": "Die Typen-Effektivität wird umgekehrt, und kein Typ ist gegen einen anderen Typ immun.\nDeaktiviert die Erfolge anderer Herausforderungen.", + "value.0": "Aus", + "value.1": "An" } } \ No newline at end of file diff --git a/src/locales/en/achv-female.json b/src/locales/en/achv-female.json index ec695c3ed2a..edcd8c53fb7 100644 --- a/src/locales/en/achv-female.json +++ b/src/locales/en/achv-female.json @@ -260,5 +260,9 @@ "FRESH_START": { "name": "First Try!", "description": "Complete the Fresh Start challenge." + }, + "INVERSE_BATTLE": { + "name": "Mirror rorriM", + "description": "Complete the Inverse Battle challenge.\n.egnellahc elttaB esrevnI eht etelpmoC" } } \ No newline at end of file diff --git a/src/locales/en/achv.json b/src/locales/en/achv.json index 185b42d181a..0ed746c77b3 100644 --- a/src/locales/en/achv.json +++ b/src/locales/en/achv.json @@ -279,5 +279,9 @@ "FRESH_START": { "name": "First Try!", "description": "Complete the Fresh Start challenge." + }, + "INVERSE_BATTLE": { + "name": "Mirror rorriM", + "description": "Complete the Inverse Battle challenge.\n.egnellahc elttaB esrevnI eht etelpmoC" } } \ No newline at end of file diff --git a/src/locales/en/challenges.json b/src/locales/en/challenges.json index c89fa7a21bf..f189266cea2 100644 --- a/src/locales/en/challenges.json +++ b/src/locales/en/challenges.json @@ -25,5 +25,12 @@ "desc": "You can only use the original starters, and only as if you had just started PokéRogue.", "value.0": "Off", "value.1": "On" + }, + "inverseBattle": { + "name": "Inverse Battle", + "shortName": "Inverse", + "desc": "Type matchups are reversed and no type is immune to any other type.\nDisables other challenges' achievements.", + "value.0": "Off", + "value.1": "On" } } \ No newline at end of file diff --git a/src/locales/es/achv.json b/src/locales/es/achv.json index c3a22c566d0..c94b8858233 100644 --- a/src/locales/es/achv.json +++ b/src/locales/es/achv.json @@ -170,5 +170,9 @@ "CLASSIC_VICTORY": { "name": "Imbatible", "description": "Completa el juego en modo clásico." + }, + "INVERSE_BATTLE": { + "name": "Espejo ojepsE", + "description": "Completa el reto de Combate Inverso.\n.osrevnI etabmoC ed oter le atelpmoC" } } \ No newline at end of file diff --git a/src/locales/es/challenges.json b/src/locales/es/challenges.json index a855f3dbc2b..6a7db8c10c3 100644 --- a/src/locales/es/challenges.json +++ b/src/locales/es/challenges.json @@ -18,5 +18,12 @@ "name": "Monotipo", "desc": "Solo puedes usar Pokémon with the {{type}} type.", "desc_default": "Solo puedes usar Pokémon del tipo elegido." + }, + "inverseBattle": { + "name": "Combate Inverso", + "shortName": "Inverso", + "desc": "La efectividad de los tipos es invertida. No hay inmunidades entre tipos.\nEste reto deshabilita logros de otros retos.", + "value.0": "Desactivado", + "value.1": "Activado" } } \ No newline at end of file diff --git a/src/locales/fr/achv.json b/src/locales/fr/achv.json index f83fa3079f2..60655ae22cf 100644 --- a/src/locales/fr/achv.json +++ b/src/locales/fr/achv.json @@ -274,5 +274,9 @@ "FRESH_START": { "name": "Du premier coup !", "description": "Terminer un challenge « Nouveau départ »." + }, + "INVERSE_BATTLE": { + "name": "La teuté à verlan", + "description": "Terminer un challenge en Combat Inversé.\nMineter un lenjcha en Ba-con Versin." } } diff --git a/src/locales/fr/challenges.json b/src/locales/fr/challenges.json index 50a8e34f298..a83ec2e0be4 100644 --- a/src/locales/fr/challenges.json +++ b/src/locales/fr/challenges.json @@ -25,5 +25,12 @@ "desc": "Vous ne pouvez choisir que les starters de base du jeu, comme si vous le recommenciez.", "value.0": "Non", "value.1": "Oui" + }, + "inverseBattle": { + "name": "Combat Inversé", + "shortName": "Inversé", + "desc": "Les affinités de la table des types sont inversées et plus aucun type n’a d’immunité.\nDésactive les succès des autres challenges.", + "value.0": "Non", + "value.1": "Oui" } } \ No newline at end of file diff --git a/src/locales/ja/challenges.json b/src/locales/ja/challenges.json index 29f6ca835fe..54225ebf766 100644 --- a/src/locales/ja/challenges.json +++ b/src/locales/ja/challenges.json @@ -22,6 +22,7 @@ }, "freshStart": { "name": "出直し", + "shortName": "出直し", "desc": "ポケローグを 始めた ばかりの ような ままで ゲーム開始の 最初のパートナーしか 使えません", "value.0": "オフ", "value.1": "オン" diff --git a/src/locales/ko/achv.json b/src/locales/ko/achv.json index 73753dd9b5a..8546dff949c 100644 --- a/src/locales/ko/achv.json +++ b/src/locales/ko/achv.json @@ -260,5 +260,9 @@ "FRESH_START": { "name": "첫트!", "description": "새 출발 챌린지 모드 클리어." + }, + "INVERSE_BATTLE": { + "name": "상성 전문가(였던 것)", + "description": "거꾸로 배틀 챌린지 모드 클리어." } } \ No newline at end of file diff --git a/src/locales/ko/challenges.json b/src/locales/ko/challenges.json index 433b0990e87..7efdfef3570 100644 --- a/src/locales/ko/challenges.json +++ b/src/locales/ko/challenges.json @@ -25,5 +25,12 @@ "desc": "포켓로그를 처음 시작했던 때처럼 강화가 전혀 되지 않은 오리지널 스타팅 포켓몬만 고를 수 있습니다.", "value.0": "해제", "value.1": "설정" + }, + "inverseBattle": { + "name": "거꾸로 배틀", + "shortName": "거꾸로", + "desc": "타입 상성이 반대로 바뀌고 면역 타입은 약점 타입이 됩니다.\n설정 시 다른 챌린지 업적은 달성할 수 없습니다.", + "value.0": "해제", + "value.1": "설정" } } \ No newline at end of file diff --git a/src/locales/pt_BR/achv.json b/src/locales/pt_BR/achv.json index aee3dd48cc5..acdec1ae306 100644 --- a/src/locales/pt_BR/achv.json +++ b/src/locales/pt_BR/achv.json @@ -264,5 +264,9 @@ "FRESH_START": { "name": "De Primeira!", "description": "Complete o desafio de novo começo." + }, + "INVERSE_BATTLE": { + "name": "A torre da derrotA", + "description": "Complete o desafio da Batalha Inversa.\n.asrevnI ahlataB ad oifased o etelpmoC" } } \ No newline at end of file diff --git a/src/locales/pt_BR/challenges.json b/src/locales/pt_BR/challenges.json index 43a40e29b56..6b20a92f4f6 100644 --- a/src/locales/pt_BR/challenges.json +++ b/src/locales/pt_BR/challenges.json @@ -25,5 +25,12 @@ "desc": "Você só pode usar os iniciais originais, como se tivesse acabado de começar o PokéRogue.", "value.0": "Desligado", "value.1": "Ligado" + }, + "inverseBattle": { + "name": "Batalha Inversa", + "shortName": "Inversa", + "desc": "Fraquezas e resistências de tipos são invertidas e nenhum tipo é imune a outro tipo.\nDesativa as conquistas de outros desafios.", + "value.0": "Desligado", + "value.1": "Ligado" } } \ No newline at end of file diff --git a/src/locales/zh_CN/achv.json b/src/locales/zh_CN/achv.json index 103a9bb41b5..8de0c48a2c3 100644 --- a/src/locales/zh_CN/achv.json +++ b/src/locales/zh_CN/achv.json @@ -268,5 +268,9 @@ "FRESH_START": { "name": "初次尝试!", "description": "完成初次尝试挑战" + }, + "INVERSE_BATTLE": { + "name": "镜子子镜", + "description": "完成逆转之战挑战\n战挑战之转逆成完" } } diff --git a/src/locales/zh_CN/challenges.json b/src/locales/zh_CN/challenges.json index 0b454d759fb..9351ec96285 100644 --- a/src/locales/zh_CN/challenges.json +++ b/src/locales/zh_CN/challenges.json @@ -25,5 +25,12 @@ "desc": "你只能使用御三家,就像是你第一次玩宝可梦肉鸽一样。", "value.0": "关闭", "value.1": "开启" + }, + "inverseBattle": { + "name": "逆转之战", + "shortName": "逆转之战", + "desc": "属性相克关系被反转,且没有任何属性对其他属性免疫。\n禁用其他挑战的成就。", + "value.0": "关闭", + "value.1": "开启" } } \ No newline at end of file diff --git a/src/locales/zh_TW/achv.json b/src/locales/zh_TW/achv.json index dcd6f26ae82..6587394cf41 100644 --- a/src/locales/zh_TW/achv.json +++ b/src/locales/zh_TW/achv.json @@ -252,5 +252,9 @@ }, "MONO_FAIRY": { "name": "林克,醒醒!" + }, + "INVERSE_BATTLE": { + "name": "鏡子子鏡", + "description": "完成逆轉之戰挑戰\n戰挑戰之轉逆成完" } } \ No newline at end of file diff --git a/src/locales/zh_TW/challenges.json b/src/locales/zh_TW/challenges.json index c6c4f90e65e..a1fc6b8f50f 100644 --- a/src/locales/zh_TW/challenges.json +++ b/src/locales/zh_TW/challenges.json @@ -19,5 +19,12 @@ "name": "單屬性", "desc": "你只能使用{{type}}\n屬性的寶可夢", "desc_default": "你只能使用所選\n屬性的寶可夢" + }, + "inverseBattle": { + "name": "逆轉之戰", + "shortName": "逆轉之戰", + "desc": "屬性相克關系被反轉,且沒有任何屬性對其他屬性免疫。\n禁用其他挑戰的成就。", + "value.0": "關閉", + "value.1": "開啓" } } \ No newline at end of file diff --git a/src/system/achv.ts b/src/system/achv.ts index 0f9bc5ac6de..5436cce24ab 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -5,8 +5,9 @@ import { pokemonEvolutions } from "#app/data/pokemon-evolutions"; import i18next from "i18next"; import * as Utils from "../utils"; import { PlayerGender } from "#enums/player-gender"; -import { Challenge, FreshStartChallenge, SingleGenerationChallenge, SingleTypeChallenge } from "#app/data/challenge.js"; -import { ConditionFn } from "#app/@types/common.js"; +import { Challenge, FreshStartChallenge, InverseBattleChallenge, SingleGenerationChallenge, SingleTypeChallenge } from "#app/data/challenge"; +import { Challenges } from "#app/enums/challenges"; +import { ConditionFn } from "#app/@types/common"; export enum AchvTier { COMMON, @@ -137,8 +138,8 @@ export class ModifierAchv extends Achv { } export class ChallengeAchv extends Achv { - constructor(localizationKey: string, name: string, description: string, iconImage: string, score: integer, challengeFunc: (challenge: Challenge) => boolean) { - super(localizationKey, name, description, iconImage, score, (_scene: BattleScene, args: any[]) => challengeFunc((args[0] as Challenge))); + constructor(localizationKey: string, name: string, description: string, iconImage: string, score: integer, challengeFunc: (challenge: Challenge, scene: BattleScene) => boolean) { + super(localizationKey, name, description, iconImage, score, (_scene: BattleScene, args: any[]) => challengeFunc(args[0] as Challenge, _scene)); } } @@ -275,6 +276,8 @@ export function getAchievementDescription(localizationKey: string): string { return i18next.t("achv:MonoType.description", { context: genderStr, "type": i18next.t(`pokemonInfo:Type.${localizationKey.slice(5)}`) }); case "FRESH_START": return i18next.t("achv:FRESH_START.description", { context: genderStr }); + case "INVERSE_BATTLE": + return i18next.t("achv:INVERSE_BATTLE.description", { context: genderStr }); default: return ""; } @@ -323,34 +326,35 @@ export const achvs = { PERFECT_IVS: new Achv("PERFECT_IVS", "", "PERFECT_IVS.description", "blunder_policy", 100), CLASSIC_VICTORY: new Achv("CLASSIC_VICTORY", "", "CLASSIC_VICTORY.description", "relic_crown", 150), UNEVOLVED_CLASSIC_VICTORY: new Achv("UNEVOLVED_CLASSIC_VICTORY", "", "UNEVOLVED_CLASSIC_VICTORY.description", "eviolite", 175, c => c.getParty().some(p => p.getSpeciesForm(true).speciesId in pokemonEvolutions)), - MONO_GEN_ONE_VICTORY: new ChallengeAchv("MONO_GEN_ONE", "", "MONO_GEN_ONE.description", "ribbon_gen1", 100, c => c instanceof SingleGenerationChallenge && c.value === 1), - MONO_GEN_TWO_VICTORY: new ChallengeAchv("MONO_GEN_TWO", "", "MONO_GEN_TWO.description", "ribbon_gen2", 100, c => c instanceof SingleGenerationChallenge && c.value === 2), - MONO_GEN_THREE_VICTORY: new ChallengeAchv("MONO_GEN_THREE", "", "MONO_GEN_THREE.description", "ribbon_gen3", 100, c => c instanceof SingleGenerationChallenge && c.value === 3), - MONO_GEN_FOUR_VICTORY: new ChallengeAchv("MONO_GEN_FOUR", "", "MONO_GEN_FOUR.description", "ribbon_gen4", 100, c => c instanceof SingleGenerationChallenge && c.value === 4), - MONO_GEN_FIVE_VICTORY: new ChallengeAchv("MONO_GEN_FIVE", "", "MONO_GEN_FIVE.description", "ribbon_gen5", 100, c => c instanceof SingleGenerationChallenge && c.value === 5), - MONO_GEN_SIX_VICTORY: new ChallengeAchv("MONO_GEN_SIX", "", "MONO_GEN_SIX.description", "ribbon_gen6", 100, c => c instanceof SingleGenerationChallenge && c.value === 6), - MONO_GEN_SEVEN_VICTORY: new ChallengeAchv("MONO_GEN_SEVEN", "", "MONO_GEN_SEVEN.description", "ribbon_gen7", 100, c => c instanceof SingleGenerationChallenge && c.value === 7), - MONO_GEN_EIGHT_VICTORY: new ChallengeAchv("MONO_GEN_EIGHT", "", "MONO_GEN_EIGHT.description", "ribbon_gen8", 100, c => c instanceof SingleGenerationChallenge && c.value === 8), - MONO_GEN_NINE_VICTORY: new ChallengeAchv("MONO_GEN_NINE", "", "MONO_GEN_NINE.description", "ribbon_gen9", 100, c => c instanceof SingleGenerationChallenge && c.value === 9), - MONO_NORMAL: new ChallengeAchv("MONO_NORMAL", "", "MONO_NORMAL.description", "silk_scarf", 100, c => c instanceof SingleTypeChallenge && c.value === 1), - MONO_FIGHTING: new ChallengeAchv("MONO_FIGHTING", "", "MONO_FIGHTING.description", "black_belt", 100, c => c instanceof SingleTypeChallenge && c.value === 2), - MONO_FLYING: new ChallengeAchv("MONO_FLYING", "", "MONO_FLYING.description", "sharp_beak", 100, c => c instanceof SingleTypeChallenge && c.value === 3), - MONO_POISON: new ChallengeAchv("MONO_POISON", "", "MONO_POISON.description", "poison_barb", 100, c => c instanceof SingleTypeChallenge && c.value === 4), - MONO_GROUND: new ChallengeAchv("MONO_GROUND", "", "MONO_GROUND.description", "soft_sand", 100, c => c instanceof SingleTypeChallenge && c.value === 5), - MONO_ROCK: new ChallengeAchv("MONO_ROCK", "", "MONO_ROCK.description", "hard_stone", 100, c => c instanceof SingleTypeChallenge && c.value === 6), - MONO_BUG: new ChallengeAchv("MONO_BUG", "", "MONO_BUG.description", "silver_powder", 100, c => c instanceof SingleTypeChallenge && c.value === 7), - MONO_GHOST: new ChallengeAchv("MONO_GHOST", "", "MONO_GHOST.description", "spell_tag", 100, c => c instanceof SingleTypeChallenge && c.value === 8), - MONO_STEEL: new ChallengeAchv("MONO_STEEL", "", "MONO_STEEL.description", "metal_coat", 100, c => c instanceof SingleTypeChallenge && c.value === 9), - MONO_FIRE: new ChallengeAchv("MONO_FIRE", "", "MONO_FIRE.description", "charcoal", 100, c => c instanceof SingleTypeChallenge && c.value === 10), - MONO_WATER: new ChallengeAchv("MONO_WATER", "", "MONO_WATER.description", "mystic_water", 100, c => c instanceof SingleTypeChallenge && c.value === 11), - MONO_GRASS: new ChallengeAchv("MONO_GRASS", "", "MONO_GRASS.description", "miracle_seed", 100, c => c instanceof SingleTypeChallenge && c.value === 12), - MONO_ELECTRIC: new ChallengeAchv("MONO_ELECTRIC", "", "MONO_ELECTRIC.description", "magnet", 100, c => c instanceof SingleTypeChallenge && c.value === 13), - MONO_PSYCHIC: new ChallengeAchv("MONO_PSYCHIC", "", "MONO_PSYCHIC.description", "twisted_spoon", 100, c => c instanceof SingleTypeChallenge && c.value === 14), - MONO_ICE: new ChallengeAchv("MONO_ICE", "", "MONO_ICE.description", "never_melt_ice", 100, c => c instanceof SingleTypeChallenge && c.value === 15), - MONO_DRAGON: new ChallengeAchv("MONO_DRAGON", "", "MONO_DRAGON.description", "dragon_fang", 100, c => c instanceof SingleTypeChallenge && c.value === 16), - MONO_DARK: new ChallengeAchv("MONO_DARK", "", "MONO_DARK.description", "black_glasses", 100, c => c instanceof SingleTypeChallenge && c.value === 17), - MONO_FAIRY: new ChallengeAchv("MONO_FAIRY", "", "MONO_FAIRY.description", "fairy_feather", 100, c => c instanceof SingleTypeChallenge && c.value === 18), - FRESH_START: new ChallengeAchv("FRESH_START", "", "FRESH_START.description", "reviver_seed", 100, c => c instanceof FreshStartChallenge && c.value === 1), + MONO_GEN_ONE_VICTORY: new ChallengeAchv("MONO_GEN_ONE", "", "MONO_GEN_ONE.description", "ribbon_gen1", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 1 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_TWO_VICTORY: new ChallengeAchv("MONO_GEN_TWO", "", "MONO_GEN_TWO.description", "ribbon_gen2", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 2 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_THREE_VICTORY: new ChallengeAchv("MONO_GEN_THREE", "", "MONO_GEN_THREE.description", "ribbon_gen3", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 3 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_FOUR_VICTORY: new ChallengeAchv("MONO_GEN_FOUR", "", "MONO_GEN_FOUR.description", "ribbon_gen4", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 4 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_FIVE_VICTORY: new ChallengeAchv("MONO_GEN_FIVE", "", "MONO_GEN_FIVE.description", "ribbon_gen5", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 5 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_SIX_VICTORY: new ChallengeAchv("MONO_GEN_SIX", "", "MONO_GEN_SIX.description", "ribbon_gen6", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 6 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_SEVEN_VICTORY: new ChallengeAchv("MONO_GEN_SEVEN", "", "MONO_GEN_SEVEN.description", "ribbon_gen7", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 7 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_EIGHT_VICTORY: new ChallengeAchv("MONO_GEN_EIGHT", "", "MONO_GEN_EIGHT.description", "ribbon_gen8", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 8 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GEN_NINE_VICTORY: new ChallengeAchv("MONO_GEN_NINE", "", "MONO_GEN_NINE.description", "ribbon_gen9", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 9 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_NORMAL: new ChallengeAchv("MONO_NORMAL", "", "MONO_NORMAL.description", "silk_scarf", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 1 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_FIGHTING: new ChallengeAchv("MONO_FIGHTING", "", "MONO_FIGHTING.description", "black_belt", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 2 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_FLYING: new ChallengeAchv("MONO_FLYING", "", "MONO_FLYING.description", "sharp_beak", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 3 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_POISON: new ChallengeAchv("MONO_POISON", "", "MONO_POISON.description", "poison_barb", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 4 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GROUND: new ChallengeAchv("MONO_GROUND", "", "MONO_GROUND.description", "soft_sand", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 5 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_ROCK: new ChallengeAchv("MONO_ROCK", "", "MONO_ROCK.description", "hard_stone", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 6 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_BUG: new ChallengeAchv("MONO_BUG", "", "MONO_BUG.description", "silver_powder", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 7 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GHOST: new ChallengeAchv("MONO_GHOST", "", "MONO_GHOST.description", "spell_tag", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 8 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_STEEL: new ChallengeAchv("MONO_STEEL", "", "MONO_STEEL.description", "metal_coat", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 9 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_FIRE: new ChallengeAchv("MONO_FIRE", "", "MONO_FIRE.description", "charcoal", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 10 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_WATER: new ChallengeAchv("MONO_WATER", "", "MONO_WATER.description", "mystic_water", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 11 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_GRASS: new ChallengeAchv("MONO_GRASS", "", "MONO_GRASS.description", "miracle_seed", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 12 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_ELECTRIC: new ChallengeAchv("MONO_ELECTRIC", "", "MONO_ELECTRIC.description", "magnet", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 13 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_PSYCHIC: new ChallengeAchv("MONO_PSYCHIC", "", "MONO_PSYCHIC.description", "twisted_spoon", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 14 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_ICE: new ChallengeAchv("MONO_ICE", "", "MONO_ICE.description", "never_melt_ice", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 15 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_DRAGON: new ChallengeAchv("MONO_DRAGON", "", "MONO_DRAGON.description", "dragon_fang", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 16 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_DARK: new ChallengeAchv("MONO_DARK", "", "MONO_DARK.description", "black_glasses", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 17 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + MONO_FAIRY: new ChallengeAchv("MONO_FAIRY", "", "MONO_FAIRY.description", "fairy_feather", 100, (c, scene) => c instanceof SingleTypeChallenge && c.value === 18 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + FRESH_START: new ChallengeAchv("FRESH_START", "", "FRESH_START.description", "reviver_seed", 100, (c, scene) => c instanceof FreshStartChallenge && c.value > 0 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), + INVERSE_BATTLE: new ChallengeAchv("INVERSE_BATTLE", "", "INVERSE_BATTLE.description", "inverse", 100, c => c instanceof InverseBattleChallenge && c.value > 0), }; export function initAchievements() { diff --git a/src/test/battle/inverse_battle.test.ts b/src/test/battle/inverse_battle.test.ts new file mode 100644 index 00000000000..be8b04155eb --- /dev/null +++ b/src/test/battle/inverse_battle.test.ts @@ -0,0 +1,203 @@ +import { BattlerIndex } from "#app/battle"; +import { allMoves } from "#app/data/move"; +import { Type } from "#app/data/type"; +import { MoveEndPhase } from "#app/phases/move-end-phase"; +import { TurnEndPhase } from "#app/phases/turn-end-phase"; +import { Abilities } from "#enums/abilities"; +import { ArenaTagType } from "#enums/arena-tag-type"; +import { Challenges } from "#enums/challenges"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import { StatusEffect } from "#enums/status-effect"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; + +const TIMEOUT = 20 * 1000; + +describe("Inverse Battle", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + + game.challengeMode.addChallenge(Challenges.INVERSE_BATTLE, 1, 1); + + game.override + .battleType("single") + .starterSpecies(Species.FEEBAS) + .ability(Abilities.BALL_FETCH) + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.BALL_FETCH); + }); + + it("1. immune types are 2x effective - Thunderbolt against Ground Type", async () => { + game.override.enemySpecies(Species.SANDSHREW); + + await game.challengeMode.startBattle(); + + const player = game.scene.getPlayerPokemon()!; + const enemy = game.scene.getEnemyPokemon()!; + + expect(enemy.getMoveEffectiveness(player, allMoves[Moves.THUNDERBOLT])).toBe(2); + }, TIMEOUT); + + it("2. 2x effective types are 0.5x effective - Thunderbolt against Flying Type", async () => { + game.override.enemySpecies(Species.PIDGEY); + + await game.challengeMode.startBattle(); + + const player = game.scene.getPlayerPokemon()!; + const enemy = game.scene.getEnemyPokemon()!; + + expect(enemy.getMoveEffectiveness(player, allMoves[Moves.THUNDERBOLT])).toBe(0.5); + }, TIMEOUT); + + it("3. 0.5x effective types are 2x effective - Thunderbolt against Electric Type", async () => { + game.override.enemySpecies(Species.CHIKORITA); + + await game.challengeMode.startBattle(); + + const player = game.scene.getPlayerPokemon()!; + const enemy = game.scene.getEnemyPokemon()!; + + expect(enemy.getMoveEffectiveness(player, allMoves[Moves.THUNDERBOLT])).toBe(2); + }, TIMEOUT); + + it("4. Stealth Rock follows the inverse matchups - Stealth Rock against Charizard deals 1/32 of max HP", async () => { + game.scene.arena.addTag(ArenaTagType.STEALTH_ROCK, 1, Moves.STEALTH_ROCK, 0); + game.override + .enemySpecies(Species.CHARIZARD) + .enemyLevel(100); + + await game.challengeMode.startBattle(); + + const charizard = game.scene.getEnemyPokemon()!; + + const maxHp = charizard.getMaxHp(); + const damage_prediction = Math.max(Math.round(charizard.getMaxHp() / 32), 1); + console.log("Damage calcuation before round: " + charizard.getMaxHp() / 32); + const currentHp = charizard.hp; + const expectedHP = maxHp - damage_prediction; + + console.log("Charizard's max HP: " + maxHp, "Damage: " + damage_prediction, "Current HP: " + currentHp, "Expected HP: " + expectedHP); + expect(currentHp).toBeGreaterThan(maxHp * 31 / 32 - 1); + }, TIMEOUT); + + it("5. Freeze Dry is 2x effective against Water Type like other Ice type Move - Freeze Dry against Squirtle", async () => { + game.override.enemySpecies(Species.SQUIRTLE); + + await game.challengeMode.startBattle(); + + const player = game.scene.getPlayerPokemon()!; + const enemy = game.scene.getEnemyPokemon()!; + + expect(enemy.getMoveEffectiveness(player, allMoves[Moves.FREEZE_DRY])).toBe(2); + }, TIMEOUT); + + it("6. Water Absorb should heal against water moves - Water Absorb against Water gun", async () => { + game.override + .moveset([Moves.WATER_GUN]) + .enemyAbility(Abilities.WATER_ABSORB); + + await game.challengeMode.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + enemy.hp = enemy.getMaxHp() - 1; + game.move.select(Moves.WATER_GUN); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); + + await game.phaseInterceptor.to(MoveEndPhase); + + expect(enemy.hp).toBe(enemy.getMaxHp()); + }, TIMEOUT); + + it("7. Fire type does not get burned - Will-O-Wisp against Charmander", async () => { + game.override + .moveset([Moves.WILL_O_WISP]) + .enemySpecies(Species.CHARMANDER); + + await game.challengeMode.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.WILL_O_WISP); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); + await game.move.forceHit(); + + await game.phaseInterceptor.to(MoveEndPhase); + + expect(enemy.status?.effect).not.toBe(StatusEffect.BURN); + }, TIMEOUT); + + it("8. Electric type does not get paralyzed - Nuzzle against Pikachu", async () => { + game.override + .moveset([Moves.NUZZLE]) + .enemySpecies(Species.PIKACHU) + .enemyLevel(50); + + await game.challengeMode.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.NUZZLE); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); + + await game.phaseInterceptor.to(MoveEndPhase); + + expect(enemy.status?.effect).not.toBe(StatusEffect.PARALYSIS); + }, TIMEOUT); + + + it("10. Anticipation should trigger on 2x effective moves - Anticipation against Thunderbolt", async () => { + game.override + .moveset([Moves.THUNDERBOLT]) + .enemySpecies(Species.SANDSHREW) + .enemyAbility(Abilities.ANTICIPATION); + + await game.challengeMode.startBattle(); + + expect(game.scene.getEnemyPokemon()?.summonData.abilitiesApplied[0]).toBe(Abilities.ANTICIPATION); + }, TIMEOUT); + + it("11. Conversion 2 should change the type to the resistive type - Conversion 2 against Dragonite", async () => { + game.override + .moveset([Moves.CONVERSION_2]) + .enemyMoveset([Moves.DRAGON_CLAW, Moves.DRAGON_CLAW, Moves.DRAGON_CLAW, Moves.DRAGON_CLAW]); + + await game.challengeMode.startBattle(); + + const player = game.scene.getPlayerPokemon()!; + + game.move.select(Moves.CONVERSION_2); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + + await game.phaseInterceptor.to(TurnEndPhase); + + expect(player.getTypes()[0]).toBe(Type.DRAGON); + }, TIMEOUT); + + it("12. Flying Press should be 0.25x effective against Grass + Dark Type - Flying Press against Meowscarada", async () => { + game.override + .moveset([Moves.FLYING_PRESS]) + .enemySpecies(Species.MEOWSCARADA); + + await game.challengeMode.startBattle(); + + const player = game.scene.getPlayerPokemon()!; + const enemy = game.scene.getEnemyPokemon()!; + + expect(enemy.getMoveEffectiveness(player, allMoves[Moves.FLYING_PRESS])).toBe(0.25); + }, TIMEOUT); +}); diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index 6ade758fd6f..60d07065090 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -40,6 +40,7 @@ import fs from "fs"; import { vi } from "vitest"; import { ClassicModeHelper } from "./helpers/classicModeHelper"; import { DailyModeHelper } from "./helpers/dailyModeHelper"; +import { ChallengeModeHelper } from "./helpers/challengeModeHelper"; import { MoveHelper } from "./helpers/moveHelper"; import { OverridesHelper } from "./helpers/overridesHelper"; import { SettingsHelper } from "./helpers/settingsHelper"; @@ -57,6 +58,7 @@ export default class GameManager { public readonly move: MoveHelper; public readonly classicMode: ClassicModeHelper; public readonly dailyMode: DailyModeHelper; + public readonly challengeMode: ChallengeModeHelper; public readonly settings: SettingsHelper; /** @@ -77,6 +79,7 @@ export default class GameManager { this.move = new MoveHelper(this); this.classicMode = new ClassicModeHelper(this); this.dailyMode = new DailyModeHelper(this); + this.challengeMode = new ChallengeModeHelper(this); this.settings = new SettingsHelper(this); } diff --git a/src/test/utils/helpers/challengeModeHelper.ts b/src/test/utils/helpers/challengeModeHelper.ts new file mode 100644 index 00000000000..184f11f505c --- /dev/null +++ b/src/test/utils/helpers/challengeModeHelper.ts @@ -0,0 +1,78 @@ +import { BattleStyle } from "#app/enums/battle-style"; +import { Species } from "#app/enums/species"; +import overrides from "#app/overrides"; +import { EncounterPhase } from "#app/phases/encounter-phase"; +import { SelectStarterPhase } from "#app/phases/select-starter-phase"; +import { Mode } from "#app/ui/ui"; +import { generateStarter } from "../gameManagerUtils"; +import { GameManagerHelper } from "./gameManagerHelper"; +import { Challenge } from "#app/data/challenge"; +import { CommandPhase } from "#app/phases/command-phase"; +import { TurnInitPhase } from "#app/phases/turn-init-phase"; +import { Challenges } from "#enums/challenges"; +import { copyChallenge } from "data/challenge"; + +/** + * Helper to handle Challenge mode specifics + */ +export class ChallengeModeHelper extends GameManagerHelper { + + challenges: Challenge[] = []; + + /** + * Adds a challenge to the challenge mode helper. + * @param id - The challenge id. + * @param value - The challenge value. + * @param severity - The challenge severity. + */ + addChallenge(id: Challenges, value: number, severity: number) { + const challenge = copyChallenge({ id, value, severity }); + this.challenges.push(challenge); + } + + /** + * Runs the Challenge game to the summon phase. + * @param gameMode - Optional game mode to set. + * @returns A promise that resolves when the summon phase is reached. + */ + async runToSummon(species?: Species[]) { + await this.game.runToTitle(); + + this.game.onNextPrompt("TitlePhase", Mode.TITLE, () => { + this.game.scene.gameMode.challenges = this.challenges; + const starters = generateStarter(this.game.scene, species); + const selectStarterPhase = new SelectStarterPhase(this.game.scene); + this.game.scene.pushPhase(new EncounterPhase(this.game.scene, false)); + selectStarterPhase.initBattle(starters); + }); + + await this.game.phaseInterceptor.run(EncounterPhase); + if (overrides.OPP_HELD_ITEMS_OVERRIDE.length === 0) { + this.game.removeEnemyHeldItems(); + } + } + + /** + * Transitions to the start of a battle. + * @param species - Optional array of species to start the battle with. + * @returns A promise that resolves when the battle is started. + */ + async startBattle(species?: Species[]) { + await this.runToSummon(species); + + if (this.game.scene.battleStyle === BattleStyle.SWITCH) { + this.game.onNextPrompt("CheckSwitchPhase", Mode.CONFIRM, () => { + this.game.setMode(Mode.MESSAGE); + this.game.endPhase(); + }, () => this.game.isCurrentPhase(CommandPhase) || this.game.isCurrentPhase(TurnInitPhase)); + + this.game.onNextPrompt("CheckSwitchPhase", Mode.CONFIRM, () => { + this.game.setMode(Mode.MESSAGE); + this.game.endPhase(); + }, () => this.game.isCurrentPhase(CommandPhase) || this.game.isCurrentPhase(TurnInitPhase)); + } + + await this.game.phaseInterceptor.to(CommandPhase); + console.log("==================[New Turn]=================="); + } +} diff --git a/src/ui/run-info-ui-handler.ts b/src/ui/run-info-ui-handler.ts index ff4ed919e75..25210277edc 100644 --- a/src/ui/run-info-ui-handler.ts +++ b/src/ui/run-info-ui-handler.ts @@ -374,23 +374,14 @@ export default class RunInfoUiHandler extends UiHandler { case GameModes.CHALLENGE: modeText.appendText(`${i18next.t("gameMode:challenge")}`, false); modeText.appendText(`\t\t${i18next.t("runHistory:challengeRules")}: `); - const runChallenges = this.runInfo.challenges; - const rules: string[] = []; - for (let i = 0; i < runChallenges.length; i++) { - if (runChallenges[i].id === Challenges.SINGLE_GENERATION && runChallenges[i].value !== 0) { - rules.push(i18next.t(`runHistory:challengeMonoGen${runChallenges[i].value}`)); - } else if (runChallenges[i].id === Challenges.SINGLE_TYPE && runChallenges[i].value !== 0) { - rules.push(i18next.t(`pokemonInfo:Type.${Type[runChallenges[i].value-1]}` as const)); - } else if (runChallenges[i].id === Challenges.FRESH_START && runChallenges[i].value !== 0) { - rules.push(i18next.t("challenges:freshStart.name")); - } - } + const rules: string[] = this.challengeParser(); if (rules) { for (let i = 0; i < rules.length; i++) { + const newline = i > 0 && i%2 === 0; if (i > 0) { - modeText.appendText(" + ", false); + modeText.appendText(" + ", newline); } - modeText.appendText(rules[i], false); + modeText.appendText(rules[i], newline); } } break; @@ -466,6 +457,34 @@ export default class RunInfoUiHandler extends UiHandler { this.runContainer.add(this.runInfoContainer); } + /** + * This function parses the Challenges section of the Run Entry and returns a list of active challenge. + * @return string[] of active challenge names + */ + private challengeParser(): string[] { + const rules: string[] = []; + for (let i = 0; i < this.runInfo.challenges.length; i++) { + if (this.runInfo.challenges[i].value !== 0) { + switch (this.runInfo.challenges[i].id) { + case Challenges.SINGLE_GENERATION: + rules.push(i18next.t(`runHistory:challengeMonoGen${this.runInfo.challenges[i].value}`)); + break; + case Challenges.SINGLE_TYPE: + rules.push(i18next.t(`pokemonInfo:Type.${Type[this.runInfo.challenges[i].value-1]}` as const)); + break; + case Challenges.FRESH_START: + rules.push(i18next.t("challenges:freshStart.name")); + break; + case Challenges.INVERSE_BATTLE: + // + rules.push(i18next.t("challenges:inverseBattle.shortName").split("").reverse().join("")); + break; + } + } + } + return rules; + } + /** * Parses and displays the run's player party. * Default Information: Icon, Level, Nature, Ability, Passive, Shiny Status, Fusion Status, Stats, and Moves. From db9434ac11b2735ca31d32f755be84ed838f0e42 Mon Sep 17 00:00:00 2001 From: damocleas Date: Thu, 29 Aug 2024 15:29:06 -0400 Subject: [PATCH 005/116] [Balance] Biome Changes / Minor Passive Changes / Minor Egg Move Changes / Beta GMax form adjustments (#3852) * [Balance] Previous Egg/Passive/Eternatus Update Adjustments * Update pokemon-species.ts * Updated Eternatus, src/field/pokemon.ts * Update egg-moves.ts for Drowzee and Darkrai * Update biomes.ts * Update biomes.ts to screw over Dojo! * Update pokemon-species.ts gmax adjustments --- src/data/biomes.ts | 26 +++++++++++++------------- src/data/egg-moves.ts | 6 +++--- src/data/pokemon-species.ts | 12 ++++++------ src/field/pokemon.ts | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index ed579112249..2cdb29a94ec 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -35,36 +35,36 @@ interface BiomeDepths { export const biomeLinks: BiomeLinks = { [Biome.TOWN]: Biome.PLAINS, [Biome.PLAINS]: [ Biome.GRASS, Biome.METROPOLIS, Biome.LAKE ], - [Biome.GRASS]: Biome.TALL_GRASS, + [Biome.GRASS]: [ Biome.TALL_GRASS, [ Biome.CONSTRUCTION_SITE, 2 ] ], [Biome.TALL_GRASS]: [ Biome.FOREST, Biome.CAVE ], [Biome.SLUM]: Biome.CONSTRUCTION_SITE, [Biome.FOREST]: [ Biome.JUNGLE, Biome.MEADOW ], [Biome.SEA]: [ Biome.SEABED, Biome.ICE_CAVE ], [Biome.SWAMP]: [ Biome.GRAVEYARD, Biome.TALL_GRASS ], - [Biome.BEACH]: [ Biome.SEA, [ Biome.ISLAND, 4 ] ], + [Biome.BEACH]: [ Biome.SEA, [ Biome.ISLAND, 3 ] ], [Biome.LAKE]: [ Biome.BEACH, Biome.SWAMP, Biome.CONSTRUCTION_SITE ], - [Biome.SEABED]: [ Biome.CAVE, [ Biome.VOLCANO, 4 ] ], - [Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.WASTELAND, 3 ] ], + [Biome.SEABED]: [ Biome.CAVE, [ Biome.VOLCANO, 3 ] ], + [Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.DOJO, 2] [ Biome.WASTELAND, 2 ] ], [Biome.BADLANDS]: [ Biome.DESERT, Biome.MOUNTAIN ], [Biome.CAVE]: [ Biome.BADLANDS, Biome.LAKE ], - [Biome.DESERT]: Biome.RUINS, + [Biome.DESERT]: [ Biome.RUINS, [ Biome.CONSTRUCTION_SITE, 2 ] ], [Biome.ICE_CAVE]: Biome.SNOWY_FOREST, - [Biome.MEADOW]: [ Biome.PLAINS, [ Biome.FAIRY_CAVE, 2 ] ], + [Biome.MEADOW]: [ Biome.PLAINS, Biome.FAIRY_CAVE ], [Biome.POWER_PLANT]: Biome.FACTORY, - [Biome.VOLCANO]: [ Biome.BEACH, [ Biome.ICE_CAVE, 4 ] ], + [Biome.VOLCANO]: [ Biome.BEACH, [ Biome.ICE_CAVE, 3 ] ], [Biome.GRAVEYARD]: Biome.ABYSS, - [Biome.DOJO]: [ Biome.PLAINS, [ Biome.TEMPLE, 3 ] ], - [Biome.FACTORY]: [ Biome.PLAINS, [ Biome.LABORATORY, 4 ] ], + [Biome.DOJO]: [ Biome.PLAINS, [ Biome.JUNGLE, 2], [ Biome.TEMPLE, 2 ] ], + [Biome.FACTORY]: [ Biome.TALL_GRASS, [ Biome.LABORATORY, 3 ] ], [Biome.RUINS]: [ Biome.FOREST ], [Biome.WASTELAND]: Biome.BADLANDS, [Biome.ABYSS]: [ Biome.CAVE, [ Biome.SPACE, 3 ], [ Biome.WASTELAND, 3 ] ], [Biome.SPACE]: Biome.RUINS, - [Biome.CONSTRUCTION_SITE]: [ Biome.DOJO, Biome.POWER_PLANT ], + [Biome.CONSTRUCTION_SITE]: [ Biome.POWER_PLANT, [ Biome.DOJO, 2 ] ], [Biome.JUNGLE]: [ Biome.TEMPLE ], - [Biome.FAIRY_CAVE]: [ Biome.ICE_CAVE, [ Biome.SPACE, 3 ] ], - [Biome.TEMPLE]: [ Biome.SWAMP, [ Biome.RUINS, 3 ] ], + [Biome.FAIRY_CAVE]: [ Biome.ICE_CAVE, [ Biome.SPACE, 2 ] ], + [Biome.TEMPLE]: [ Biome.DESERT, [ Biome.SWAMP, 2 ], [ Biome.RUINS, 2 ] ], [Biome.METROPOLIS]: Biome.SLUM, - [Biome.SNOWY_FOREST]: [ Biome.FOREST, Biome.LAKE, Biome.MOUNTAIN ], + [Biome.SNOWY_FOREST]: [ Biome.FOREST, Biome.MOUNTAIN, [ Biome.LAKE, 2 ] ], [Biome.ISLAND]: Biome.SEA, [Biome.LABORATORY]: Biome.CONSTRUCTION_SITE }; diff --git a/src/data/egg-moves.ts b/src/data/egg-moves.ts index f88ac2c71b2..b516238c46e 100644 --- a/src/data/egg-moves.ts +++ b/src/data/egg-moves.ts @@ -43,7 +43,7 @@ export const speciesEggMoves = { [Species.SHELLDER]: [ Moves.ROCK_BLAST, Moves.WATER_SHURIKEN, Moves.BANEFUL_BUNKER, Moves.BONE_RUSH ], [Species.GASTLY]: [ Moves.SLUDGE_BOMB, Moves.AURA_SPHERE, Moves.NASTY_PLOT, Moves.ASTRAL_BARRAGE ], [Species.ONIX]: [ Moves.SHORE_UP, Moves.BODY_PRESS, Moves.HEAVY_SLAM, Moves.DIAMOND_STORM ], - [Species.DROWZEE]: [ Moves.BADDY_BAD, Moves.STRENGTH_SAP, Moves.LUMINA_CRASH, Moves.SPORE ], + [Species.DROWZEE]: [ Moves.BADDY_BAD, Moves.STRENGTH_SAP, Moves.LUMINA_CRASH, Moves.DARK_VOID ], [Species.KRABBY]: [ Moves.FIRE_LASH, Moves.PLAY_ROUGH, Moves.IVY_CUDGEL, Moves.SHELL_SMASH ], [Species.VOLTORB]: [ Moves.NASTY_PLOT, Moves.OVERHEAT, Moves.FROST_BREATH, Moves.ELECTRO_DRIFT ], [Species.EXEGGCUTE]: [ Moves.FICKLE_BEAM, Moves.APPLE_ACID, Moves.TRICK_ROOM, Moves.LUMINA_CRASH ], @@ -125,7 +125,7 @@ export const speciesEggMoves = { [Species.SUICUNE]: [ Moves.RECOVER, Moves.NASTY_PLOT, Moves.FREEZE_DRY, Moves.STEAM_ERUPTION ], [Species.LARVITAR]: [ Moves.DRAGON_DANCE, Moves.MOUNTAIN_GALE, Moves.SHORE_UP, Moves.DIAMOND_STORM ], [Species.LUGIA]: [ Moves.NASTY_PLOT, Moves.LUMINA_CRASH, Moves.AURA_SPHERE, Moves.OBLIVION_WING ], - [Species.HO_OH]: [ Moves.FLOATY_FALL, Moves.SOLAR_BLADE, Moves.REVIVAL_BLESSING, Moves.BOLT_BEAK ], + [Species.HO_OH]: [ Moves.FLOATY_FALL, Moves.PRECIPICE_BLADES, Moves.REVIVAL_BLESSING, Moves.BOLT_BEAK ], [Species.CELEBI]: [ Moves.PHOTON_GEYSER, Moves.MATCHA_GOTCHA, Moves.REVIVAL_BLESSING, Moves.QUIVER_DANCE ], [Species.TREECKO]: [ Moves.NASTY_PLOT, Moves.APPLE_ACID, Moves.SECRET_SWORD, Moves.DRAGON_ENERGY ], [Species.TORCHIC]: [ Moves.HIGH_JUMP_KICK, Moves.SUPERCELL_SLAM, Moves.KNOCK_OFF, Moves.V_CREATE ], @@ -249,7 +249,7 @@ export const speciesEggMoves = { [Species.CRESSELIA]: [ Moves.COSMIC_POWER, Moves.SECRET_SWORD, Moves.SIZZLY_SLIDE, Moves.LUMINA_CRASH ], [Species.PHIONE]: [ Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.SPLISHY_SPLASH, Moves.QUIVER_DANCE ], [Species.MANAPHY]: [ Moves.BOUNCY_BUBBLE, Moves.FREEZE_DRY, Moves.SPLISHY_SPLASH, Moves.QUIVER_DANCE ], - [Species.DARKRAI]: [ Moves.FIERY_WRATH, Moves.MOONBLAST, Moves.SEARING_SHOT, Moves.SPORE ], + [Species.DARKRAI]: [ Moves.FIERY_WRATH, Moves.MOONBLAST, Moves.FIERY_DANCE, Moves.MAKE_IT_RAIN ], [Species.SHAYMIN]: [ Moves.MATCHA_GOTCHA, Moves.FIERY_DANCE, Moves.AEROBLAST, Moves.QUIVER_DANCE ], [Species.ARCEUS]: [ Moves.NO_RETREAT, Moves.COLLISION_COURSE, Moves.ASTRAL_BARRAGE, Moves.MULTI_ATTACK ], [Species.VICTINI]: [ Moves.BLUE_FLARE, Moves.BOLT_STRIKE, Moves.LUSTER_PURGE, Moves.VICTORY_DANCE ], diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 832f7112748..db601935bfc 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -1132,7 +1132,7 @@ export function initSpecies() { ), new PokemonSpecies(Species.SNORLAX, 1, false, false, false, "Sleeping Pokémon", Type.NORMAL, null, 2.1, 460, Abilities.IMMUNITY, Abilities.THICK_FAT, Abilities.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, GrowthRate.SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 2.1, 460, Abilities.IMMUNITY, Abilities.THICK_FAT, Abilities.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, Type.GRASS, 35, 460, Abilities.THICK_FAT, Abilities.THICK_FAT, Abilities.THICK_FAT, 640, 200, 135, 85, 80, 125, 15, 25, 50, 189), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 35, 460, Abilities.THICK_FAT, Abilities.THICK_FAT, Abilities.THICK_FAT, 640, 200, 135, 85, 80, 125, 15, 25, 50, 189), ), new PokemonSpecies(Species.ARTICUNO, 1, true, false, false, "Freeze Pokémon", Type.ICE, Type.FLYING, 1.7, 55.4, Abilities.PRESSURE, Abilities.NONE, Abilities.SNOW_CLOAK, 580, 90, 85, 100, 95, 125, 85, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.ZAPDOS, 1, true, false, false, "Electric Pokémon", Type.ELECTRIC, Type.FLYING, 1.6, 52.6, Abilities.PRESSURE, Abilities.NONE, Abilities.STATIC, 580, 90, 90, 85, 125, 90, 100, 3, 35, 290, GrowthRate.SLOW, null, false), @@ -2252,19 +2252,19 @@ export function initSpecies() { new PokemonSpecies(Species.THWACKEY, 8, false, false, false, "Beat Pokémon", Type.GRASS, null, 0.7, 14, Abilities.OVERGROW, Abilities.NONE, Abilities.GRASSY_SURGE, 420, 70, 85, 70, 55, 60, 80, 45, 50, 147, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.RILLABOOM, 8, false, false, false, "Drummer Pokémon", Type.GRASS, null, 2.1, 90, Abilities.OVERGROW, Abilities.NONE, Abilities.GRASSY_SURGE, 530, 100, 125, 90, 60, 70, 85, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.GRASS, null, 2.1, 90, Abilities.OVERGROW, Abilities.NONE, Abilities.GRASSY_SURGE, 530, 100, 125, 90, 60, 70, 85, 45, 50, 265, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, null, 28, 90, Abilities.GRASSY_SURGE, Abilities.GRASSY_SURGE, Abilities.GRASSY_SURGE, 630, 125, 150, 115, 65, 95, 80, 45, 50, 265), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, null, 28, 90, Abilities.GRASSY_SURGE, Abilities.GRASSY_SURGE, Abilities.GRASSY_SURGE, 630, 125, 150, 105, 85, 85, 80, 45, 50, 265), ), new PokemonSpecies(Species.SCORBUNNY, 8, false, false, false, "Rabbit Pokémon", Type.FIRE, null, 0.3, 4.5, Abilities.BLAZE, Abilities.NONE, Abilities.LIBERO, 310, 50, 71, 40, 40, 40, 69, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.RABOOT, 8, false, false, false, "Rabbit Pokémon", Type.FIRE, null, 0.6, 9, Abilities.BLAZE, Abilities.NONE, Abilities.LIBERO, 420, 65, 86, 60, 55, 60, 94, 45, 50, 147, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.CINDERACE, 8, false, false, false, "Striker Pokémon", Type.FIRE, null, 1.4, 33, Abilities.BLAZE, Abilities.NONE, Abilities.LIBERO, 530, 80, 116, 75, 65, 75, 119, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.FIRE, null, 1.4, 33, Abilities.BLAZE, Abilities.NONE, Abilities.LIBERO, 530, 80, 116, 75, 65, 75, 119, 45, 50, 265, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIRE, null, 27, 33, Abilities.LIBERO, Abilities.LIBERO, Abilities.LIBERO, 630, 90, 151, 85, 85, 85, 134, 45, 50, 265), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIRE, null, 27, 33, Abilities.LIBERO, Abilities.LIBERO, Abilities.LIBERO, 630, 100, 146, 80, 90, 80, 134, 45, 50, 265), ), new PokemonSpecies(Species.SOBBLE, 8, false, false, false, "Water Lizard Pokémon", Type.WATER, null, 0.3, 4, Abilities.TORRENT, Abilities.NONE, Abilities.SNIPER, 310, 50, 40, 40, 70, 40, 70, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.DRIZZILE, 8, false, false, false, "Water Lizard Pokémon", Type.WATER, null, 0.7, 11.5, Abilities.TORRENT, Abilities.NONE, Abilities.SNIPER, 420, 65, 60, 55, 95, 55, 90, 45, 50, 147, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.INTELEON, 8, false, false, false, "Secret Agent Pokémon", Type.WATER, null, 1.9, 45.2, Abilities.TORRENT, Abilities.NONE, Abilities.SNIPER, 530, 70, 85, 65, 125, 65, 120, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.WATER, null, 1.9, 45.2, Abilities.TORRENT, Abilities.NONE, Abilities.SNIPER, 530, 70, 85, 65, 125, 65, 120, 45, 50, 265, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, null, 40, 45.2, Abilities.SNIPER, Abilities.SNIPER, Abilities.SNIPER, 630, 90, 90, 85, 150, 85, 130, 45, 50, 265), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, null, 40, 45.2, Abilities.SNIPER, Abilities.SNIPER, Abilities.SNIPER, 630, 95, 97, 77, 147, 77, 137, 45, 50, 265), ), new PokemonSpecies(Species.SKWOVET, 8, false, false, false, "Cheeky Pokémon", Type.NORMAL, null, 0.3, 2.5, Abilities.CHEEK_POUCH, Abilities.NONE, Abilities.GLUTTONY, 275, 70, 55, 55, 35, 35, 25, 255, 50, 55, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.GREEDENT, 8, false, false, false, "Greedy Pokémon", Type.NORMAL, null, 0.6, 6, Abilities.CHEEK_POUCH, Abilities.NONE, Abilities.GLUTTONY, 460, 120, 95, 95, 55, 75, 20, 90, 50, 161, GrowthRate.MEDIUM_FAST, 50, false), @@ -3470,7 +3470,7 @@ export const starterPassiveAbilities = { [Species.SUICUNE]: Abilities.UNAWARE, [Species.LARVITAR]: Abilities.SAND_RUSH, [Species.LUGIA]: Abilities.DELTA_STREAM, - [Species.HO_OH]: Abilities.DROUGHT, + [Species.HO_OH]: Abilities.MAGIC_GUARD, [Species.CELEBI]: Abilities.GRASSY_SURGE, [Species.TREECKO]: Abilities.TINTED_LENS, [Species.TORCHIC]: Abilities.RECKLESS, @@ -3591,7 +3591,7 @@ export const starterPassiveAbilities = { [Species.HEATRAN]: Abilities.EARTH_EATER, [Species.REGIGIGAS]: Abilities.MINDS_EYE, [Species.GIRATINA]: Abilities.SHADOW_SHIELD, - [Species.CRESSELIA]: Abilities.UNAWARE, + [Species.CRESSELIA]: Abilities.SHADOW_SHIELD, [Species.PHIONE]: Abilities.SIMPLE, [Species.MANAPHY]: Abilities.PRIMORDIAL_SEA, [Species.DARKRAI]: Abilities.UNNERVE, diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 58764ff1046..6df486aab39 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -3846,7 +3846,7 @@ export class EnemyPokemon extends Pokemon { this.moveset = (formIndex !== undefined ? formIndex : this.formIndex) ? [ new PokemonMove(Moves.DYNAMAX_CANNON), - new PokemonMove(Moves.SLUDGE_BOMB), + new PokemonMove(Moves.CROSS_POISON), new PokemonMove(Moves.FLAMETHROWER), new PokemonMove(Moves.RECOVER, 0, -4) ] From 9833b1da7e67d3041c98bd273add09704e2ce580 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Thu, 29 Aug 2024 14:10:38 -0700 Subject: [PATCH 006/116] [Balance] Randomized Biome after End Biome (#3888) * Biome.END goes somewhere random * this way island is included too * no towns or plains * Enums are dumb --------- Co-authored-by: frutescens --- src/data/biomes.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 2cdb29a94ec..3879053b066 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -7663,6 +7663,12 @@ export function initBiomes() { biomeDepths[Biome.TOWN] = [ 0, 1 ]; const traverseBiome = (biome: Biome, depth: integer) => { + if (biome === Biome.END) { + const biomeList = Object.keys(Biome).filter(key => !isNaN(Number(key))); + biomeList.pop(); // Removes Biome.END from the list + const randIndex = Utils.randInt(biomeList.length, 2); // Will never be Biome.TOWN or Biome.PLAINS + biome = Biome[biomeList[randIndex]]; + } const linkedBiomes: (Biome | [ Biome, integer ])[] = Array.isArray(biomeLinks[biome]) ? biomeLinks[biome] as (Biome | [ Biome, integer ])[] : [ biomeLinks[biome] as Biome ]; From b2cd21bcb18f4c0929a3d0b2e3e872388a47a7e7 Mon Sep 17 00:00:00 2001 From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Thu, 29 Aug 2024 17:13:10 -0400 Subject: [PATCH 007/116] Fix evolution items not working on mons without forms (#3902) --- src/modifier/modifier-type.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 938f73a1e08..3afeb79ff2b 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -791,10 +791,10 @@ export class EvolutionItemModifierType extends PokemonModifierType implements Ge super("", EvolutionItem[evolutionItem].toLowerCase(), (_type, args) => new Modifiers.EvolutionItemModifier(this, (args[0] as PlayerPokemon).id), (pokemon: PlayerPokemon) => { if (pokemonEvolutions.hasOwnProperty(pokemon.species.speciesId) && pokemonEvolutions[pokemon.species.speciesId].filter(e => e.item === this.evolutionItem - && (!e.condition || e.condition.predicate(pokemon)) && (e.preFormKey === pokemon.getFormKey())).length && (pokemon.getFormKey() !== SpeciesFormKey.GIGANTAMAX)) { + && (!e.condition || e.condition.predicate(pokemon)) && (e.preFormKey === null || e.preFormKey === pokemon.getFormKey())).length && (pokemon.getFormKey() !== SpeciesFormKey.GIGANTAMAX)) { return null; } else if (pokemon.isFusion() && pokemon.fusionSpecies && pokemonEvolutions.hasOwnProperty(pokemon.fusionSpecies.speciesId) && pokemonEvolutions[pokemon.fusionSpecies.speciesId].filter(e => e.item === this.evolutionItem - && (!e.condition || e.condition.predicate(pokemon)) && (e.preFormKey === pokemon.getFusionFormKey())).length && (pokemon.getFusionFormKey() !== SpeciesFormKey.GIGANTAMAX)) { + && (!e.condition || e.condition.predicate(pokemon)) && (e.preFormKey === null || e.preFormKey === pokemon.getFusionFormKey())).length && (pokemon.getFusionFormKey() !== SpeciesFormKey.GIGANTAMAX)) { return null; } From e4da48f51a279c174a2273258ed4dfc35f450134 Mon Sep 17 00:00:00 2001 From: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com> Date: Thu, 29 Aug 2024 23:47:37 +0200 Subject: [PATCH 008/116] [Bug] Starter select default attributes fixes (#3870) * Test changes to starter ui stuff for edge case stuff to fix * Minor bug fixes * [starter-ui] cleanup outdated fix * use existing method to get the default form from the caught attributes * clear the existing StarterPreferences of potential invalid values * remember the last variant used even when disabling shiny form * fix variant and shiny checks for edge case with variant flags but no shiny flag * more fixes for invalid starter prefs and default settings --------- Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com> Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com> --- src/system/game-data.ts | 2 + src/ui/starter-select-ui-handler.ts | 362 ++++++++++++++-------------- 2 files changed, 180 insertions(+), 184 deletions(-) diff --git a/src/system/game-data.ts b/src/system/game-data.ts index d10d6288696..f8d13286ca4 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -243,6 +243,8 @@ export class StarterPrefs { if (pStr !== StarterPrefers_private_latest) { // something changed, store the update localStorage.setItem(`starterPrefs_${loggedInUser?.username}`, pStr); + // update the latest prefs + StarterPrefers_private_latest = pStr; } } } diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index f9b40dd96e6..267a62104e3 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -915,7 +915,9 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.allSpecies.forEach((species, s) => { const icon = this.starterContainers[s].icon; const dexEntry = this.scene.gameData.dexData[species.speciesId]; - this.starterPreferences[species.speciesId] = this.starterPreferences[species.speciesId] ?? {}; + + // Initialize the StarterAttributes for this species + this.starterPreferences[species.speciesId] = this.initStarterPrefs(species); if (dexEntry.caughtAttr) { icon.clearTint(); @@ -942,6 +944,93 @@ export default class StarterSelectUiHandler extends MessageUiHandler { return false; } + /** + * Get the starter attributes for the given PokemonSpecies, after sanitizing them. + * If somehow a preference is set for a form, variant, gender, ability or nature + * that wasn't actually unlocked or is invalid it will be cleared here + * + * @param species The species to get Starter Preferences for + * @returns StarterAttributes for the species + */ + initStarterPrefs(species: PokemonSpecies): StarterAttributes { + const starterAttributes = this.starterPreferences[species.speciesId]; + const dexEntry = this.scene.gameData.dexData[species.speciesId]; + const starterData = this.scene.gameData.starterData[species.speciesId]; + + // no preferences or Pokemon wasn't caught, return empty attribute + if (!starterAttributes || !dexEntry.caughtAttr) { + return {}; + } + + const caughtAttr = dexEntry.caughtAttr; + + const hasShiny = caughtAttr & DexAttr.SHINY; + const hasNonShiny = caughtAttr & DexAttr.NON_SHINY; + if (starterAttributes.shiny && !hasShiny) { + // shiny form wasn't unlocked, purging shiny and variant setting + delete starterAttributes.shiny; + delete starterAttributes.variant; + } else if (starterAttributes.shiny === false && !hasNonShiny) { + // non shiny form wasn't unlocked, purging shiny setting + delete starterAttributes.shiny; + } + + if (starterAttributes.variant !== undefined && !isNaN(starterAttributes.variant)) { + const unlockedVariants = [ + hasNonShiny, + hasShiny && caughtAttr & DexAttr.DEFAULT_VARIANT, + hasShiny && caughtAttr & DexAttr.VARIANT_2, + hasShiny && caughtAttr & DexAttr.VARIANT_3 + ]; + if (!unlockedVariants[starterAttributes.variant + 1]) { // add 1 as -1 = non-shiny + // requested variant wasn't unlocked, purging setting + delete starterAttributes.variant; + } + } + + if (starterAttributes.female !== undefined) { + if (!(starterAttributes.female ? caughtAttr & DexAttr.FEMALE : caughtAttr & DexAttr.MALE)) { + // requested gender wasn't unlocked, purging setting + delete starterAttributes.female; + } + } + + if (starterAttributes.ability !== undefined) { + const speciesHasSingleAbility = species.ability2 === species.ability1; + const abilityAttr = starterData.abilityAttr; + const hasAbility1 = abilityAttr & AbilityAttr.ABILITY_1; + const hasAbility2 = abilityAttr & AbilityAttr.ABILITY_2; + const hasHiddenAbility = abilityAttr & AbilityAttr.ABILITY_HIDDEN; + // Due to a past bug it is possible that some Pokemon with a single ability have the ability2 flag + // In this case, we only count ability2 as valid if ability1 was not unlocked, otherwise we ignore it + const unlockedAbilities = [ + hasAbility1, + speciesHasSingleAbility ? hasAbility2 && !hasAbility1 : hasAbility2, + hasHiddenAbility + ]; + if (!unlockedAbilities[starterAttributes.ability]) { + // requested ability wasn't unlocked, purging setting + delete starterAttributes.ability; + } + } + + const selectedForm = starterAttributes.form; + if (selectedForm !== undefined && (!species.forms[selectedForm]?.isStarterSelectable || !(caughtAttr & this.scene.gameData.getFormAttr(selectedForm)))) { + // requested form wasn't unlocked/isn't a starter form, purging setting + delete starterAttributes.form; + } + + if (starterAttributes.nature !== undefined) { + const unlockedNatures = this.scene.gameData.getNaturesForAttr(dexEntry.natureAttr); + if (unlockedNatures.indexOf(starterAttributes.nature as unknown as Nature) < 0) { + // requested nature wasn't unlocked, purging setting + delete starterAttributes.nature; + } + } + + return starterAttributes; + } + /** * Set the selections for all filters to their default starting value */ @@ -1749,9 +1838,9 @@ export default class StarterSelectUiHandler extends MessageUiHandler { switch (button) { case Button.CYCLE_SHINY: if (this.canCycleShiny) { - const newVariant = props.variant; + const newVariant = starterAttributes.variant ? starterAttributes.variant as Variant : props.variant; starterAttributes.shiny = starterAttributes.shiny ? !starterAttributes.shiny : true; - this.setSpeciesDetails(this.lastSpecies, !props.shiny, undefined, undefined, props.shiny ? 0 : undefined, undefined, undefined); + this.setSpeciesDetails(this.lastSpecies, !props.shiny, undefined, undefined, props.shiny ? 0 : newVariant, undefined, undefined); if (starterAttributes.shiny) { this.scene.playSound("se/sparkle"); // Set the variant label to the shiny tint @@ -1760,10 +1849,6 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonShinyIcon.setTint(tint); this.pokemonShinyIcon.setVisible(true); } else { - // starterAttributes.variant = 0; - if (starterAttributes?.variant) { - delete starterAttributes.variant; - } this.pokemonShinyIcon.setVisible(false); success = true; } @@ -2276,43 +2361,39 @@ export default class StarterSelectUiHandler extends MessageUiHandler { container.cost = this.scene.gameData.getSpeciesStarterValue(container.species.speciesId); // First, ensure you have the caught attributes for the species else default to bigint 0 - const isCaught = this.scene.gameData.dexData[container.species.speciesId]?.caughtAttr || BigInt(0); - - // Define the variables based on whether their respective variants have been caught - const isVariant3Caught = !!(isCaught & DexAttr.VARIANT_3); - const isVariant2Caught = !!(isCaught & DexAttr.VARIANT_2); - const isVariantCaught = !!(isCaught & DexAttr.SHINY); - const isUncaught = !isCaught && !isVariantCaught && !isVariant2Caught && !isVariant3Caught; - const isPassiveUnlocked = this.scene.gameData.starterData[container.species.speciesId].passiveAttr > 0; - const isPassiveUnlockable = this.isPassiveAvailable(container.species.speciesId) && !isPassiveUnlocked; - const isCostReduced = this.scene.gameData.starterData[container.species.speciesId].valueReduction > 0; - const isCostReductionUnlockable = this.isValueReductionAvailable(container.species.speciesId); - const isFavorite = this.starterPreferences[container.species.speciesId]?.favorite ?? false; - - const isWin = this.scene.gameData.starterData[container.species.speciesId].classicWinCount > 0; - const isNotWin = this.scene.gameData.starterData[container.species.speciesId].classicWinCount === 0; - const isUndefined = this.scene.gameData.starterData[container.species.speciesId].classicWinCount === undefined; - const isHA = this.scene.gameData.starterData[container.species.speciesId].abilityAttr & AbilityAttr.ABILITY_HIDDEN; - const isEggPurchasable = this.isSameSpeciesEggAvailable(container.species.speciesId); + const caughtAttr = this.scene.gameData.dexData[container.species.speciesId]?.caughtAttr || BigInt(0); + const starterData = this.scene.gameData.starterData[container.species.speciesId]; + // Gen filter const fitsGen = this.filterBar.getVals(DropDownColumn.GEN).includes(container.species.generation); + // Type filter const fitsType = this.filterBar.getVals(DropDownColumn.TYPES).some(type => container.species.isOfType((type as number) - 1)); + // Caught / Shiny filter + const isNonShinyCaught = !!(caughtAttr & DexAttr.NON_SHINY); + const isShinyCaught = !!(caughtAttr & DexAttr.SHINY); + const isVariant1Caught = isShinyCaught && !!(caughtAttr & DexAttr.DEFAULT_VARIANT); + const isVariant2Caught = isShinyCaught && !!(caughtAttr & DexAttr.VARIANT_2); + const isVariant3Caught = isShinyCaught && !!(caughtAttr & DexAttr.VARIANT_3); + const isUncaught = !isNonShinyCaught && !isVariant1Caught && !isVariant2Caught && !isVariant3Caught; const fitsCaught = this.filterBar.getVals(DropDownColumn.CAUGHT).some(caught => { if (caught === "SHINY3") { return isVariant3Caught; } else if (caught === "SHINY2") { return isVariant2Caught && !isVariant3Caught; } else if (caught === "SHINY") { - return isVariantCaught && !isVariant2Caught && !isVariant3Caught; + return isVariant1Caught && !isVariant2Caught && !isVariant3Caught; } else if (caught === "NORMAL") { - return isCaught && !isVariantCaught && !isVariant2Caught && !isVariant3Caught; + return isNonShinyCaught && !isVariant1Caught && !isVariant2Caught && !isVariant3Caught; } else if (caught === "UNCAUGHT") { return isUncaught; } }); + // Passive Filter + const isPassiveUnlocked = starterData.passiveAttr > 0; + const isPassiveUnlockable = this.isPassiveAvailable(container.species.speciesId) && !isPassiveUnlocked; const fitsPassive = this.filterBar.getVals(DropDownColumn.UNLOCKS).some(unlocks => { if (unlocks.val === "PASSIVE" && unlocks.state === DropDownState.ON) { return isPassiveUnlocked; @@ -2325,6 +2406,9 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } }); + // Cost Reduction Filter + const isCostReduced = starterData.valueReduction > 0; + const isCostReductionUnlockable = this.isValueReductionAvailable(container.species.speciesId); const fitsCostReduction = this.filterBar.getVals(DropDownColumn.UNLOCKS).some(unlocks => { if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.ON) { return isCostReduced; @@ -2337,6 +2421,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } }); + // Favorite Filter + const isFavorite = this.starterPreferences[container.species.speciesId]?.favorite ?? false; const fitsFavorite = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { if (misc.val === "FAVORITE" && misc.state === DropDownState.ON) { return isFavorite; @@ -2349,28 +2435,34 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } }); + // Ribbon / Classic Win Filter + const hasWon = starterData.classicWinCount > 0; + const hasNotWon = starterData.classicWinCount === 0; + const isUndefined = starterData.classicWinCount === undefined; const fitsWin = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { - if (container.species.speciesId < 10) { - } if (misc.val === "WIN" && misc.state === DropDownState.ON) { - return isWin; + return hasWon; } else if (misc.val === "WIN" && misc.state === DropDownState.EXCLUDE) { - return isNotWin || isUndefined; + return hasNotWon || isUndefined; } else if (misc.val === "WIN" && misc.state === DropDownState.OFF) { return true; } }); + // HA Filter + const hasHA = starterData.abilityAttr & AbilityAttr.ABILITY_HIDDEN; const fitsHA = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { if (misc.val === "HIDDEN_ABILITY" && misc.state === DropDownState.ON) { - return isHA; + return hasHA; } else if (misc.val === "HIDDEN_ABILITY" && misc.state === DropDownState.EXCLUDE) { - return !isHA; + return !hasHA; } else if (misc.val === "HIDDEN_ABILITY" && misc.state === DropDownState.OFF) { return true; } }); + // Egg Purchasable Filter + const isEggPurchasable = this.isSameSpeciesEggAvailable(container.species.speciesId); const fitsEgg = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { if (misc.val === "EGG" && misc.state === DropDownState.ON) { return isEggPurchasable; @@ -2381,6 +2473,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } }); + // Pokerus Filter const fitsPokerus = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { if (misc.val === "POKERUS" && misc.state === DropDownState.ON) { return this.pokerusSpecies.includes(container.species); @@ -2579,56 +2672,13 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.natureCursor = species ? this.scene.gameData.getSpeciesDefaultNature(species) : 0; const starterAttributes : StarterAttributes | null = species ? {...this.starterPreferences[species.speciesId]} : null; - // validate starterAttributes - if (starterAttributes) { - // this may cause changes so we created a copy of the attributes before - if (starterAttributes.variant && !isNaN(starterAttributes.variant)) { - if (![ - this.speciesStarterDexEntry!.caughtAttr & DexAttr.NON_SHINY, // TODO: is that bang correct? - this.speciesStarterDexEntry!.caughtAttr & DexAttr.DEFAULT_VARIANT, // TODO: is that bang correct? - this.speciesStarterDexEntry!.caughtAttr & DexAttr.VARIANT_2, // TODO: is that bang correct? - this.speciesStarterDexEntry!.caughtAttr & DexAttr.VARIANT_3 // TODO: is that bang correct? - ][starterAttributes.variant+1]) { // add 1 as -1 = non-shiny - // requested variant wasn't unlocked, purging setting - delete starterAttributes.variant; - } - } - - if (typeof starterAttributes.female !== "boolean" || !(starterAttributes.female ? - this.speciesStarterDexEntry!.caughtAttr & DexAttr.FEMALE : // TODO: is this bang correct? - this.speciesStarterDexEntry!.caughtAttr & DexAttr.MALE // TODO: is this bang correct? - )) { - // requested gender wasn't unlocked, purging setting - delete starterAttributes.female; - } - - const abilityAttr = this.scene.gameData.starterData[species!.speciesId].abilityAttr; // TODO: is this bang correct? - if (![ - abilityAttr & AbilityAttr.ABILITY_1, - species!.ability2 ? (abilityAttr & AbilityAttr.ABILITY_2) : abilityAttr & AbilityAttr.ABILITY_HIDDEN, // TODO: is this bang correct? - species!.ability2 && abilityAttr & AbilityAttr.ABILITY_HIDDEN // TODO: is this bang correct? - ][starterAttributes.ability!]) { // TODO: is this bang correct? - // requested ability wasn't unlocked, purging setting - delete starterAttributes.ability; - } - - if (!(species?.forms[starterAttributes.form!]?.isStarterSelectable && this.speciesStarterDexEntry!.caughtAttr & this.scene.gameData.getFormAttr(starterAttributes.form!))) { // TODO: are those bangs correct? - // requested form wasn't unlocked/isn't a starter form, purging setting - delete starterAttributes.form; - } - - if (this.scene.gameData.getNaturesForAttr(this.speciesStarterDexEntry?.natureAttr).indexOf(starterAttributes.nature as unknown as Nature) < 0) { - // requested nature wasn't unlocked, purging setting - delete starterAttributes.nature; - } - } if (starterAttributes?.nature) { // load default nature from stater save data, if set this.natureCursor = starterAttributes.nature; } if (starterAttributes?.ability && !isNaN(starterAttributes.ability)) { - // load default nature from stater save data, if set + // load default ability from stater save data, if set this.abilityCursor = starterAttributes.ability; } @@ -2675,7 +2725,6 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonLuckText.setText(luck.toString()); this.pokemonLuckText.setTint(getVariantTint(Math.min(luck - 1, 2) as Variant)); this.pokemonLuckLabelText.setVisible(this.pokemonLuckText.visible); - this.pokemonShinyIcon.setVisible(this.starterPreferences[species.speciesId]?.shiny ?? false); //Growth translate let growthReadable = Utils.toReadableString(GrowthRate[species.growthRate]); @@ -2699,12 +2748,14 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonHatchedIcon.setFrame(getEggTierForSpecies(species)); } this.pokemonHatchedCountText.setText(`${this.speciesStarterDexEntry.hatchedCount}`); + const defaultDexAttr = this.getCurrentDexProps(species.speciesId); const defaultProps = this.scene.gameData.getSpeciesDexAttrProps(species, defaultDexAttr); const variant = defaultProps.variant; const tint = getVariantTint(variant); this.pokemonShinyIcon.setFrame(getVariantIcon(variant)); this.pokemonShinyIcon.setTint(tint); + this.pokemonShinyIcon.setVisible(defaultProps.shiny); this.pokemonCaughtHatchedContainer.setVisible(true); if (pokemonPrevolutions.hasOwnProperty(species.speciesId)) { this.pokemonCaughtHatchedContainer.setY(16); @@ -2894,21 +2945,13 @@ export default class StarterSelectUiHandler extends MessageUiHandler { const dexEntry = this.scene.gameData.dexData[species.speciesId]; const abilityAttr = this.scene.gameData.starterData[species.speciesId].abilityAttr; - const isCaught = this.scene.gameData.dexData[species.speciesId]?.caughtAttr || BigInt(0); - const isVariant3Caught = !!(isCaught & DexAttr.VARIANT_3); - const isVariant2Caught = !!(isCaught & DexAttr.VARIANT_2); - const isDefaultVariantCaught = !!(isCaught & DexAttr.DEFAULT_VARIANT); - const isVariantCaught = !!(isCaught & DexAttr.SHINY); - const isMaleCaught = !!(isCaught & DexAttr.MALE); - const isFemaleCaught = !!(isCaught & DexAttr.FEMALE); - - const starterAttributes = this.starterPreferences[species.speciesId]; - - const props = this.scene.gameData.getSpeciesDexAttrProps(species, this.getCurrentDexProps(species.speciesId)); - const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species); - const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species); + const caughtAttr = this.scene.gameData.dexData[species.speciesId]?.caughtAttr || BigInt(0); if (!dexEntry.caughtAttr) { + const props = this.scene.gameData.getSpeciesDexAttrProps(species, this.getCurrentDexProps(species.speciesId)); + const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species); + const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species); + if (shiny === undefined || shiny !== props.shiny) { shiny = props.shiny; } @@ -2927,83 +2970,6 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (natureIndex === undefined || natureIndex !== defaultNature) { natureIndex = defaultNature; } - } else { - // compare current shiny, formIndex, female, variant, abilityIndex, natureIndex with the caught ones - // if the current ones are not caught, we need to find the next caught ones - if (shiny) { - if (!(isVariantCaught || isVariant2Caught || isVariant3Caught)) { - shiny = false; - starterAttributes.shiny = false; - variant = 0; - starterAttributes.variant = 0; - } else { - shiny = true; - starterAttributes.shiny = true; - if (variant === 0 && !isDefaultVariantCaught) { - if (isVariant2Caught) { - variant = 1; - starterAttributes.variant = 1; - } else if (isVariant3Caught) { - variant = 2; - starterAttributes.variant = 2; - } else { - variant = 0; - starterAttributes.variant = 0; - } - } else if (variant === 1 && !isVariant2Caught) { - if (isVariantCaught) { - variant = 0; - starterAttributes.variant = 0; - } else if (isVariant3Caught) { - variant = 2; - starterAttributes.variant = 2; - } else { - variant = 0; - starterAttributes.variant = 0; - } - } else if (variant === 2 && !isVariant3Caught) { - if (isVariantCaught) { - variant = 0; - starterAttributes.variant = 0; - } else if (isVariant2Caught) { - variant = 1; - starterAttributes.variant = 1; - } else { - variant = 0; - starterAttributes.variant = 0; - } - } - } - } - if (female) { - if (!isFemaleCaught) { - female = false; - starterAttributes.female = false; - } - } else { - if (!isMaleCaught) { - female = true; - starterAttributes.female = true; - } - } - - if (species.forms) { - const formCount = species.forms.length; - let newFormIndex = formIndex??0; - if (species.forms[newFormIndex]) { - const isValidForm = species.forms[newFormIndex].isStarterSelectable && dexEntry.caughtAttr & this.scene.gameData.getFormAttr(newFormIndex); - if (!isValidForm) { - do { - newFormIndex = (newFormIndex + 1) % formCount; - if (species.forms[newFormIndex].isStarterSelectable && dexEntry.caughtAttr & this.scene.gameData.getFormAttr(newFormIndex)) { - break; - } - } while (newFormIndex !== props.formIndex); - formIndex = newFormIndex; - starterAttributes.form = formIndex; - } - } - } } this.shinyOverlay.setVisible(shiny ?? false); // TODO: is false the correct default? @@ -3045,8 +3011,19 @@ export default class StarterSelectUiHandler extends MessageUiHandler { currentFilteredContainer.checkIconId(female, formIndex, shiny, variant); } - this.canCycleShiny = isVariantCaught || isVariant2Caught || isVariant3Caught; + const isNonShinyCaught = !!(caughtAttr & DexAttr.NON_SHINY); + const isShinyCaught = !!(caughtAttr & DexAttr.SHINY); + const isVariant1Caught = isShinyCaught && !!(caughtAttr & DexAttr.DEFAULT_VARIANT); + const isVariant2Caught = isShinyCaught && !!(caughtAttr & DexAttr.VARIANT_2); + const isVariant3Caught = isShinyCaught && !!(caughtAttr & DexAttr.VARIANT_3); + + this.canCycleShiny = isNonShinyCaught && isShinyCaught; + this.canCycleVariant = !!shiny && [ isVariant1Caught, isVariant2Caught, isVariant3Caught].filter(v => v).length > 1; + + const isMaleCaught = !!(caughtAttr & DexAttr.MALE); + const isFemaleCaught = !!(caughtAttr & DexAttr.FEMALE); this.canCycleGender = isMaleCaught && isFemaleCaught; + const hasAbility1 = abilityAttr & AbilityAttr.ABILITY_1; let hasAbility2 = abilityAttr & AbilityAttr.ABILITY_2; const hasHiddenAbility = abilityAttr & AbilityAttr.ABILITY_HIDDEN; @@ -3061,10 +3038,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } this.canCycleAbility = [ hasAbility1, hasAbility2, hasHiddenAbility ].filter(a => a).length > 1; + this.canCycleForm = species.forms.filter(f => f.isStarterSelectable || !pokemonFormChanges[species.speciesId]?.find(fc => fc.formKey)) .map((_, f) => dexEntry.caughtAttr & this.scene.gameData.getFormAttr(f)).filter(f => f).length > 1; this.canCycleNature = this.scene.gameData.getNaturesForAttr(dexEntry.natureAttr).length > 1; - this.canCycleVariant = !!shiny && [ dexEntry.caughtAttr & DexAttr.DEFAULT_VARIANT, dexEntry.caughtAttr & DexAttr.VARIANT_2, dexEntry.caughtAttr & DexAttr.VARIANT_3].filter(v => v).length > 1; + } if (dexEntry.caughtAttr && species.malePercent !== null) { @@ -3442,39 +3420,55 @@ export default class StarterSelectUiHandler extends MessageUiHandler { return canStart; } - /* this creates a temporary dex attr props that we use to check whether a pokemon is valid for a challenge. - * when checking for certain challenges (i.e. mono type), we need to check for form changes AND evolutions - * However, since some pokemon can evolve based on their intial gender/form, we need a way to look for that - * This temporary dex attr will therefore ONLY look at gender and form, since there's no cases of shinies/variants - * having different evolutions to their non shiny/variant part, and so those can be ignored - * Since the current form and gender is stored in the starter preferences, this is where we get the values from - */ + /** + * Creates a temporary dex attr props that will be used to check whether a pokemon is valid for a challenge + * and to display the correct shiny, variant, and form based on the StarterPreferences + * + * @param speciesId the id of the species to get props for + * @returns the dex props + */ getCurrentDexProps(speciesId: number): bigint { let props = 0n; + const caughtAttr = this.scene.gameData.dexData[speciesId].caughtAttr; - if (this.starterPreferences[speciesId]?.female) { // this checks the gender of the pokemon + /* this checks the gender of the pokemon; this works by checking a) that the starter preferences for the species exist, and if so, is it female. If so, it'll add DexAttr.FEMALE to our temp props + * It then checks b) if the caughtAttr for the pokemon is female and NOT male - this means that the ONLY gender we've gotten is female, and we need to add DexAttr.FEMALE to our temp props + * If neither of these pass, we add DexAttr.MALE to our temp props + */ + if (this.starterPreferences[speciesId]?.female || ((caughtAttr & DexAttr.FEMALE) > 0n && (caughtAttr & DexAttr.MALE) === 0n)) { props += DexAttr.FEMALE; } else { props += DexAttr.MALE; } - if (this.starterPreferences[speciesId]?.shiny) { + /* This part is very similar to above, but instead of for gender, it checks for shiny within starter preferences. + * If they're not there, it checks the caughtAttr for shiny only (i.e. SHINY === true && NON_SHINY === false) + */ + if (this.starterPreferences[speciesId]?.shiny || ((caughtAttr & DexAttr.SHINY) > 0n && (caughtAttr & DexAttr.NON_SHINY) === 0n)) { props += DexAttr.SHINY; if (this.starterPreferences[speciesId]?.variant) { props += BigInt(Math.pow(2, this.starterPreferences[speciesId]?.variant)) * DexAttr.DEFAULT_VARIANT; } else { - props += DexAttr.DEFAULT_VARIANT; + /* This calculates the correct variant if there's no starter preferences for it. + * This gets the lowest tier variant that you've caught (in line with other mechanics) and adds it to the temp props + */ + if ((caughtAttr & DexAttr.DEFAULT_VARIANT) > 0) { + props += DexAttr.DEFAULT_VARIANT; + } + if ((caughtAttr & DexAttr.VARIANT_2) > 0) { + props += DexAttr.VARIANT_2; + } else if ((caughtAttr & DexAttr.VARIANT_3) > 0) { + props += DexAttr.VARIANT_3; + } } } else { props += DexAttr.NON_SHINY; - if (this.starterPreferences[speciesId]?.variant) { - delete this.starterPreferences[speciesId].variant; - } props += DexAttr.DEFAULT_VARIANT; // we add the default variant here because non shiny versions are listed as default variant } if (this.starterPreferences[speciesId]?.form) { // this checks for the form of the pokemon props += BigInt(Math.pow(2, this.starterPreferences[speciesId]?.form)) * DexAttr.DEFAULT_FORM; } else { - props += DexAttr.DEFAULT_FORM; + // Get the first unlocked form + props += this.scene.gameData.getFormAttr(this.scene.gameData.getFormIndex(caughtAttr)); } return props; From 8bf44a20472652ce1a828f4e940fb607d053dfca Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Thu, 29 Aug 2024 23:59:19 +0100 Subject: [PATCH 009/116] Fix error handling and revert mode in AdminUiHandler --- src/ui/admin-ui-handler.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ui/admin-ui-handler.ts b/src/ui/admin-ui-handler.ts index 371604c00a2..049e5b01cdf 100644 --- a/src/ui/admin-ui-handler.ts +++ b/src/ui/admin-ui-handler.ts @@ -64,12 +64,13 @@ export default class AdminUiHandler extends FormModalUiHandler { Utils.apiPost("admin/account/discord-link", `username=${encodeURIComponent(this.inputs[0].text)}&discordId=${encodeURIComponent(this.inputs[1].text)}`, "application/x-www-form-urlencoded", true) .then(response => { if (!response.ok) { - return response.text(); + console.error(response); } - return response.json(); + this.scene.ui.revertMode(); }) - .then(response => { - this.scene.ui.setMode(Mode.ADMIN, config); + .catch((err) => { + console.error(err); + this.scene.ui.revertMode(); }); return false; }; From 3b9b0c4091bf2e291f045255b650e8cccb9c8539 Mon Sep 17 00:00:00 2001 From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Thu, 29 Aug 2024 19:05:09 -0400 Subject: [PATCH 010/116] Blitzy's implementation of evil teams in trainer-config.ts (#3884) --- src/data/trainer-config.ts | 4074 ++++++++++++++++++------------------ 1 file changed, 2037 insertions(+), 2037 deletions(-) diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index d48e384d30e..a6cf4247f27 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -1,2037 +1,2037 @@ -import BattleScene, {startingWave} from "../battle-scene"; -import {ModifierTypeFunc, modifierTypes} from "../modifier/modifier-type"; -import {EnemyPokemon} from "../field/pokemon"; -import * as Utils from "../utils"; -import {PokeballType} from "./pokeball"; -import {pokemonEvolutions, pokemonPrevolutions} from "./pokemon-evolutions"; -import PokemonSpecies, {getPokemonSpecies, PokemonSpeciesFilter} from "./pokemon-species"; -import {tmSpecies} from "./tms"; -import {Type} from "./type"; -import {doubleBattleDialogue} from "./dialogue"; -import {PersistentModifier} from "../modifier/modifier"; -import {TrainerVariant} from "../field/trainer"; -import {getIsInitialized, initI18n} from "#app/plugins/i18n"; -import i18next from "i18next"; -import {Moves} from "#enums/moves"; -import {PartyMemberStrength} from "#enums/party-member-strength"; -import {Species} from "#enums/species"; -import {TrainerType} from "#enums/trainer-type"; -import {Gender} from "./gender"; - -export enum TrainerPoolTier { - COMMON, - UNCOMMON, - RARE, - SUPER_RARE, - ULTRA_RARE -} - -export interface TrainerTierPools { - [key: integer]: Species[] -} - -export enum TrainerSlot { - NONE, - TRAINER, - TRAINER_PARTNER -} - -export class TrainerPartyTemplate { - public size: integer; - public strength: PartyMemberStrength; - public sameSpecies: boolean; - public balanced: boolean; - - constructor(size: integer, strength: PartyMemberStrength, sameSpecies?: boolean, balanced?: boolean) { - this.size = size; - this.strength = strength; - this.sameSpecies = !!sameSpecies; - this.balanced = !!balanced; - } - - getStrength(index: integer): PartyMemberStrength { - return this.strength; - } - - isSameSpecies(index: integer): boolean { - return this.sameSpecies; - } - - isBalanced(index: integer): boolean { - return this.balanced; - } -} - -export class TrainerPartyCompoundTemplate extends TrainerPartyTemplate { - public templates: TrainerPartyTemplate[]; - - constructor(...templates: TrainerPartyTemplate[]) { - super(templates.reduce((total: integer, template: TrainerPartyTemplate) => { - total += template.size; - return total; - }, 0), PartyMemberStrength.AVERAGE); - this.templates = templates; - } - - getStrength(index: integer): PartyMemberStrength { - let t = 0; - for (const template of this.templates) { - if (t + template.size > index) { - return template.getStrength(index - t); - } - t += template.size; - } - - return super.getStrength(index); - } - - isSameSpecies(index: integer): boolean { - let t = 0; - for (const template of this.templates) { - if (t + template.size > index) { - return template.isSameSpecies(index - t); - } - t += template.size; - } - - return super.isSameSpecies(index); - } - - isBalanced(index: integer): boolean { - let t = 0; - for (const template of this.templates) { - if (t + template.size > index) { - return template.isBalanced(index - t); - } - t += template.size; - } - - return super.isBalanced(index); - } -} - -export const trainerPartyTemplates = { - ONE_WEAK_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.WEAK), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - ONE_AVG: new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), - ONE_AVG_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - ONE_STRONG: new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), - ONE_STRONGER: new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER), - TWO_WEAKER: new TrainerPartyTemplate(2, PartyMemberStrength.WEAKER), - TWO_WEAK: new TrainerPartyTemplate(2, PartyMemberStrength.WEAK), - TWO_WEAK_ONE_AVG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), - TWO_WEAK_SAME_ONE_AVG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK, true), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), - TWO_WEAK_SAME_TWO_WEAK_SAME: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK, true), new TrainerPartyTemplate(2, PartyMemberStrength.WEAK, true)), - TWO_WEAK_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - TWO_AVG: new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), - TWO_AVG_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - TWO_AVG_SAME_ONE_AVG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), - TWO_AVG_SAME_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - TWO_AVG_SAME_TWO_AVG_SAME: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true), new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true)), - TWO_STRONG: new TrainerPartyTemplate(2, PartyMemberStrength.STRONG), - THREE_WEAK: new TrainerPartyTemplate(3, PartyMemberStrength.WEAK), - THREE_WEAK_SAME: new TrainerPartyTemplate(3, PartyMemberStrength.WEAK, true), - THREE_AVG: new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), - THREE_AVG_SAME: new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE, true), - THREE_WEAK_BALANCED: new TrainerPartyTemplate(3, PartyMemberStrength.WEAK, false, true), - FOUR_WEAKER: new TrainerPartyTemplate(4, PartyMemberStrength.WEAKER), - FOUR_WEAKER_SAME: new TrainerPartyTemplate(4, PartyMemberStrength.WEAKER, true), - FOUR_WEAK: new TrainerPartyTemplate(4, PartyMemberStrength.WEAK), - FOUR_WEAK_SAME: new TrainerPartyTemplate(4, PartyMemberStrength.WEAK, true), - FOUR_WEAK_BALANCED: new TrainerPartyTemplate(4, PartyMemberStrength.WEAK, false, true), - FIVE_WEAKER: new TrainerPartyTemplate(5, PartyMemberStrength.WEAKER), - FIVE_WEAK: new TrainerPartyTemplate(5, PartyMemberStrength.WEAK), - FIVE_WEAK_BALANCED: new TrainerPartyTemplate(5, PartyMemberStrength.WEAK, false, true), - SIX_WEAKER: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER), - SIX_WEAKER_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER, true), - SIX_WEAK_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, true), - SIX_WEAK_BALANCED: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, false, true), - - GYM_LEADER_1: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - GYM_LEADER_2: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), - GYM_LEADER_3: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), - GYM_LEADER_4: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), - GYM_LEADER_5: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(2, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), - - ELITE_FOUR: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(3, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), - - CHAMPION: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER), new TrainerPartyTemplate(5, PartyMemberStrength.STRONG, false, true)), - - RIVAL: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), - RIVAL_2: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.WEAK, false, true)), - RIVAL_3: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.WEAK, false, true)), - RIVAL_4: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.WEAK, false, true)), - RIVAL_5: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), - RIVAL_6: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)) -}; - -type PartyTemplateFunc = (scene: BattleScene) => TrainerPartyTemplate; -type PartyMemberFunc = (scene: BattleScene, level: integer, strength: PartyMemberStrength) => EnemyPokemon; -type GenModifiersFunc = (party: EnemyPokemon[]) => PersistentModifier[]; - -export interface PartyMemberFuncs { - [key: integer]: PartyMemberFunc -} - -export class TrainerConfig { - public trainerType: TrainerType; - public trainerTypeDouble: TrainerType; - public name: string; - public nameFemale: string; - public nameDouble: string; - public title: string; - public titleDouble: string; - public hasGenders: boolean = false; - public hasDouble: boolean = false; - public hasCharSprite: boolean = false; - public doubleOnly: boolean = false; - public moneyMultiplier: number = 1; - public isBoss: boolean = false; - public hasStaticParty: boolean = false; - public useSameSeedForAllMembers: boolean = false; - public mixedBattleBgm: string; - public battleBgm: string; - public encounterBgm: string; - public femaleEncounterBgm: string; - public doubleEncounterBgm: string; - public victoryBgm: string; - public genModifiersFunc: GenModifiersFunc; - public modifierRewardFuncs: ModifierTypeFunc[] = []; - public partyTemplates: TrainerPartyTemplate[]; - public partyTemplateFunc: PartyTemplateFunc; - public partyMemberFuncs: PartyMemberFuncs = {}; - public speciesPools: TrainerTierPools; - public speciesFilter: PokemonSpeciesFilter; - public specialtyTypes: Type[] = []; - public hasVoucher: boolean = false; - - public encounterMessages: string[] = []; - public victoryMessages: string[] = []; - public defeatMessages: string[] = []; - - public femaleEncounterMessages: string[]; - public femaleVictoryMessages: string[]; - public femaleDefeatMessages: string[]; - - public doubleEncounterMessages: string[]; - public doubleVictoryMessages: string[]; - public doubleDefeatMessages: string[]; - - constructor(trainerType: TrainerType, allowLegendaries?: boolean) { - this.trainerType = trainerType; - this.name = Utils.toReadableString(TrainerType[this.getDerivedType()]); - this.battleBgm = "battle_trainer"; - this.mixedBattleBgm = "battle_trainer"; - this.victoryBgm = "victory_trainer"; - this.partyTemplates = [trainerPartyTemplates.TWO_AVG]; - this.speciesFilter = species => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden(); - } - - getKey(): string { - return TrainerType[this.getDerivedType()].toString().toLowerCase(); - } - - getSpriteKey(female?: boolean, isDouble: boolean = false): string { - let ret = this.getKey(); - if (this.hasGenders) { - ret += `_${female ? "f" : "m"}`; - } - // If a special double trainer class was set, set it as the sprite key - if (this.trainerTypeDouble && female && isDouble) { - // Get the derived type for the double trainer since the sprite key is based on the derived type - ret = TrainerType[this.getDerivedType(this.trainerTypeDouble)].toString().toLowerCase(); - } - return ret; - } - - setName(name: string): TrainerConfig { - if (name === "Finn") { - // Give the rival a localized name - // First check if i18n is initialized - if (!getIsInitialized()) { - initI18n(); - } - // This is only the male name, because the female name is handled in a different function (setHasGenders) - if (name === "Finn") { - name = i18next.t("trainerNames:rival"); - } - } - this.name = name; - return this; - } - - /** - * Sets if a boss trainer will have a voucher or not. - * @param hasVoucher - If the boss trainer will have a voucher. - */ - setHasVoucher(hasVoucher: boolean): void { - this.hasVoucher = hasVoucher; - } - - setTitle(title: string): TrainerConfig { - // First check if i18n is initialized - if (!getIsInitialized()) { - initI18n(); - } - - // Make the title lowercase and replace spaces with underscores - title = title.toLowerCase().replace(/\s/g, "_"); - - // Get the title from the i18n file - this.title = i18next.t(`titles:${title}`); - - - return this; - } - - - /** - * Returns the derived trainer type for a given trainer type. - * @param trainerTypeToDeriveFrom - The trainer type to derive from. (If null, the this.trainerType property will be used.) - * @returns {TrainerType} - The derived trainer type. - */ - getDerivedType(trainerTypeToDeriveFrom: TrainerType | null = null): TrainerType { - let trainerType = trainerTypeToDeriveFrom ? trainerTypeToDeriveFrom : this.trainerType; - switch (trainerType) { - case TrainerType.RIVAL_2: - case TrainerType.RIVAL_3: - case TrainerType.RIVAL_4: - case TrainerType.RIVAL_5: - case TrainerType.RIVAL_6: - trainerType = TrainerType.RIVAL; - break; - case TrainerType.LANCE_CHAMPION: - trainerType = TrainerType.LANCE; - break; - case TrainerType.LARRY_ELITE: - trainerType = TrainerType.LARRY; - break; - case TrainerType.ROCKET_BOSS_GIOVANNI_1: - case TrainerType.ROCKET_BOSS_GIOVANNI_2: - trainerType = TrainerType.GIOVANNI; - break; - case TrainerType.MAXIE_2: - trainerType = TrainerType.MAXIE; - break; - case TrainerType.ARCHIE_2: - trainerType = TrainerType.ARCHIE; - break; - case TrainerType.CYRUS_2: - trainerType = TrainerType.CYRUS; - break; - case TrainerType.GHETSIS_2: - trainerType = TrainerType.GHETSIS; - break; - case TrainerType.LYSANDRE_2: - trainerType = TrainerType.LYSANDRE; - break; - case TrainerType.LUSAMINE_2: - trainerType = TrainerType.LUSAMINE; - break; - case TrainerType.GUZMA_2: - trainerType = TrainerType.GUZMA; - break; - case TrainerType.ROSE_2: - trainerType = TrainerType.ROSE; - break; - case TrainerType.MARNIE_ELITE: - trainerType = TrainerType.MARNIE; - break; - case TrainerType.NESSA_ELITE: - trainerType = TrainerType.NESSA; - break; - case TrainerType.BEA_ELITE: - trainerType = TrainerType.BEA; - break; - case TrainerType.ALLISTER_ELITE: - trainerType = TrainerType.ALLISTER; - break; - case TrainerType.RAIHAN_ELITE: - trainerType = TrainerType.RAIHAN; - break; - } - - return trainerType; - } - - /** - * Sets the configuration for trainers with genders, including the female name and encounter background music (BGM). - * @param {string} [nameFemale] - The name of the female trainer. If 'Ivy', a localized name will be assigned. - * @param {TrainerType | string} [femaleEncounterBgm] - The encounter BGM for the female trainer, which can be a TrainerType or a string. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - **/ - setHasGenders(nameFemale?: string, femaleEncounterBgm?: TrainerType | string): TrainerConfig { - // If the female name is 'Ivy' (the rival), assign a localized name. - if (nameFemale === "Ivy") { - // Check if the internationalization (i18n) system is initialized. - if (!getIsInitialized()) { - // Initialize the i18n system if it is not already initialized. - initI18n(); - } - // Set the localized name for the female rival. - this.nameFemale = i18next.t("trainerNames:rival_female"); - } else { - // Otherwise, assign the provided female name. - this.nameFemale = nameFemale!; // TODO: is this bang correct? - } - - // Indicate that this trainer configuration includes genders. - this.hasGenders = true; - - // If a female encounter BGM is provided. - if (femaleEncounterBgm) { - // If the BGM is a TrainerType (number), convert it to a string, replace underscores with spaces, and convert to lowercase. - // Otherwise, assign the provided string as the BGM. - this.femaleEncounterBgm = typeof femaleEncounterBgm === "number" - ? TrainerType[femaleEncounterBgm].toString().replace(/_/g, " ").toLowerCase() - : femaleEncounterBgm; - } - - // Return the updated TrainerConfig instance. - return this; - } - - /** - * Sets the configuration for trainers with double battles, including the name of the double trainer and the encounter BGM. - * @param nameDouble - The name of the double trainer (e.g., "Ace Duo" for Trainer Class Doubles or "red_blue_double" for NAMED trainer doubles). - * @param doubleEncounterBgm - The encounter BGM for the double trainer, which can be a TrainerType or a string. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - */ - setHasDouble(nameDouble: string, doubleEncounterBgm?: TrainerType | string): TrainerConfig { - this.hasDouble = true; - this.nameDouble = nameDouble; - if (doubleEncounterBgm) { - this.doubleEncounterBgm = typeof doubleEncounterBgm === "number" ? TrainerType[doubleEncounterBgm].toString().replace(/\_/g, " ").toLowerCase() : doubleEncounterBgm; - } - return this; - } - - /** - * Sets the trainer type for double battles. - * @param trainerTypeDouble - The TrainerType of the partner in a double battle. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - */ - setDoubleTrainerType(trainerTypeDouble: TrainerType): TrainerConfig { - this.trainerTypeDouble = trainerTypeDouble; - this.setDoubleMessages(this.nameDouble); - return this; - } - - /** - * Sets the encounter and victory messages for double trainers. - * @param nameDouble - The name of the pair (e.g. "red_blue_double"). - */ - setDoubleMessages(nameDouble: string) { - // Check if there is double battle dialogue for this trainer - if (doubleBattleDialogue[nameDouble]) { - // Set encounter and victory messages for double trainers - this.doubleEncounterMessages = doubleBattleDialogue[nameDouble].encounter; - this.doubleVictoryMessages = doubleBattleDialogue[nameDouble].victory; - this.doubleDefeatMessages = doubleBattleDialogue[nameDouble].defeat; - } - } - - /** - * Sets the title for double trainers - * @param titleDouble - the key for the title in the i18n file. (e.g., "champion_double"). - * @returns {TrainerConfig} - The updated TrainerConfig instance. - */ - setDoubleTitle(titleDouble: string): TrainerConfig { - // First check if i18n is initialized - if (!getIsInitialized()) { - initI18n(); - } - - // Make the title lowercase and replace spaces with underscores - titleDouble = titleDouble.toLowerCase().replace(/\s/g, "_"); - - // Get the title from the i18n file - this.titleDouble = i18next.t(`titles:${titleDouble}`); - - return this; - } - - setHasCharSprite(): TrainerConfig { - this.hasCharSprite = true; - return this; - } - - setDoubleOnly(): TrainerConfig { - this.doubleOnly = true; - return this; - } - - setMoneyMultiplier(moneyMultiplier: number): TrainerConfig { - this.moneyMultiplier = moneyMultiplier; - return this; - } - - setBoss(): TrainerConfig { - this.isBoss = true; - return this; - } - - setStaticParty(): TrainerConfig { - this.hasStaticParty = true; - return this; - } - - setUseSameSeedForAllMembers(): TrainerConfig { - this.useSameSeedForAllMembers = true; - return this; - } - - setMixedBattleBgm(mixedBattleBgm: string): TrainerConfig { - this.mixedBattleBgm = mixedBattleBgm; - return this; - } - - setBattleBgm(battleBgm: string): TrainerConfig { - this.battleBgm = battleBgm; - return this; - } - - setEncounterBgm(encounterBgm: TrainerType | string): TrainerConfig { - this.encounterBgm = typeof encounterBgm === "number" ? TrainerType[encounterBgm].toString().toLowerCase() : encounterBgm; - return this; - } - - setVictoryBgm(victoryBgm: string): TrainerConfig { - this.victoryBgm = victoryBgm; - return this; - } - - setPartyTemplates(...partyTemplates: TrainerPartyTemplate[]): TrainerConfig { - this.partyTemplates = partyTemplates; - return this; - } - - setPartyTemplateFunc(partyTemplateFunc: PartyTemplateFunc): TrainerConfig { - this.partyTemplateFunc = partyTemplateFunc; - return this; - } - - setPartyMemberFunc(slotIndex: integer, partyMemberFunc: PartyMemberFunc): TrainerConfig { - this.partyMemberFuncs[slotIndex] = partyMemberFunc; - return this; - } - - setSpeciesPools(speciesPools: TrainerTierPools | Species[]): TrainerConfig { - this.speciesPools = (Array.isArray(speciesPools) ? {[TrainerPoolTier.COMMON]: speciesPools} : speciesPools) as unknown as TrainerTierPools; - return this; - } - - setSpeciesFilter(speciesFilter: PokemonSpeciesFilter, allowLegendaries?: boolean): TrainerConfig { - const baseFilter = this.speciesFilter; - this.speciesFilter = allowLegendaries ? speciesFilter : species => speciesFilter(species) && baseFilter(species); - return this; - } - - setSpecialtyTypes(...specialtyTypes: Type[]): TrainerConfig { - this.specialtyTypes = specialtyTypes; - return this; - } - - setGenModifiersFunc(genModifiersFunc: GenModifiersFunc): TrainerConfig { - this.genModifiersFunc = genModifiersFunc; - return this; - } - - setModifierRewardFuncs(...modifierTypeFuncs: (() => ModifierTypeFunc)[]): TrainerConfig { - this.modifierRewardFuncs = modifierTypeFuncs.map(func => () => { - const modifierTypeFunc = func(); - const modifierType = modifierTypeFunc(); - modifierType.withIdFromFunc(modifierTypeFunc); - return modifierType; - }); - return this; - } - - /** - * Returns the pool of species for an evil team admin - * @param team - The evil team the admin belongs to. - * @returns {TrainerTierPools} - */ - speciesPoolPerEvilTeamAdmin(team): TrainerTierPools { - team = team.toLowerCase(); - switch (team) { - case "rocket": { - return { - [TrainerPoolTier.COMMON]: [Species.RATTATA, Species.KOFFING, Species.EKANS, Species.GYARADOS, Species.TAUROS, Species.SCYTHER, Species.CUBONE, Species.GROWLITHE, Species.MURKROW, Species.GASTLY, Species.EXEGGCUTE, Species.VOLTORB], - [TrainerPoolTier.UNCOMMON]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE], - [TrainerPoolTier.RARE]: [Species.DRATINI, Species.LARVITAR] - }; - } - case "magma": { - return { - [TrainerPoolTier.COMMON]: [Species.NUMEL, Species.POOCHYENA, Species.SLUGMA, Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.ROLYCOLY, Species.GLIGAR], - [TrainerPoolTier.UNCOMMON]: [Species.TRAPINCH, Species.HEATMOR], - [TrainerPoolTier.RARE]: [Species.CAPSAKID, Species.CHARCADET] - }; - } - case "aqua": { - return { - [TrainerPoolTier.COMMON]: [Species.CARVANHA, Species.CORPHISH, Species.ZIGZAGOON, Species.CLAMPERL, Species.CHINCHOU, Species.WOOPER, Species.WINGULL, Species.TENTACOOL, Species.QWILFISH], - [TrainerPoolTier.UNCOMMON]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA], - [TrainerPoolTier.RARE]: [Species.DONDOZO] - }; - } - case "galactic": { - return { - [TrainerPoolTier.COMMON]: [Species.GLAMEOW, Species.STUNKY, Species.BRONZOR, Species.CARNIVINE, Species.GROWLITHE, Species.QWILFISH, Species.SNEASEL], - [TrainerPoolTier.UNCOMMON]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL], - [TrainerPoolTier.RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO] - }; - } - case "plasma": { - return { - [TrainerPoolTier.COMMON]: [Species.SCRAFTY, Species.LILLIPUP, Species.PURRLOIN, Species.FRILLISH, Species.VENIPEDE, Species.GOLETT, Species.TIMBURR, Species.DARUMAKA, Species.AMOONGUSS], - [TrainerPoolTier.UNCOMMON]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK], - [TrainerPoolTier.RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT] - }; - } - case "flare": { - return { - [TrainerPoolTier.COMMON]: [Species.FLETCHLING, Species.LITLEO, Species.INKAY, Species.HELIOPTILE, Species.ELECTRIKE, Species.SKRELP, Species.GULPIN, Species.PURRLOIN, Species.POOCHYENA, Species.SCATTERBUG], - [TrainerPoolTier.UNCOMMON]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD], - [TrainerPoolTier.RARE]: [Species.NOIVERN, Species.DRUDDIGON] - }; - } - case "aether": { - return { - [TrainerPoolTier.COMMON]: [ Species.BRUXISH, Species.SLOWPOKE, Species.BALTOY, Species.EXEGGCUTE, Species.ABRA, Species.ALOLA_RAICHU, Species.ELGYEM, Species.NATU], - [TrainerPoolTier.UNCOMMON]: [Species.GALAR_SLOWKING, Species.MEDITITE, Species.BELDUM, Species.ORANGURU, Species.HATTERENE, Species.INKAY, Species.RALTS], - [TrainerPoolTier.RARE]: [Species.ARMAROUGE, Species.GIRAFARIG, Species.PORYGON] - }; - } - case "skull": { - return { - [TrainerPoolTier.COMMON]: [ Species.MAREANIE, Species.ALOLA_GRIMER, Species.GASTLY, Species.ZUBAT, Species.LURANTIS, Species.VENIPEDE, Species.BUDEW, Species.KOFFING], - [TrainerPoolTier.UNCOMMON]: [Species.GALAR_SLOWBRO, Species.SKORUPI, Species.PALDEA_WOOPER, Species.NIDORAN_F, Species.CROAGUNK, Species.MANDIBUZZ], - [TrainerPoolTier.RARE]: [Species.DRAGALGE, Species.HISUI_SNEASEL] - }; - } - case "macro": { - return { - [TrainerPoolTier.COMMON]: [ Species.HATTERENE, Species.MILOTIC, Species.TSAREENA, Species.SALANDIT, Species.GALAR_PONYTA, Species.GOTHITA, Species.FROSLASS], - [TrainerPoolTier.UNCOMMON]: [Species.MANDIBUZZ, Species.MAREANIE, Species.ALOLA_VULPIX, Species.TOGEPI, Species.GALAR_CORSOLA, Species.SINISTEA, Species.APPLIN], - [TrainerPoolTier.RARE]: [Species.TINKATINK, Species.HISUI_LILLIGANT] - }; - } - } - - console.warn(`Evil team admin for ${team} not found. Returning empty species pools.`); - return []; - } - - /** - * Initializes the trainer configuration for an evil team admin. - * @param title - The title of the evil team admin. - * @param poolName - The evil team the admin belongs to. - * @param {Species | Species[]} signatureSpecies - The signature species for the evil team leader. - * @returns {TrainerConfig} - The updated TrainerConfig instance. - * **/ - initForEvilTeamAdmin(title: string, poolName: string, signatureSpecies: (Species | Species[])[],): TrainerConfig { - if (!getIsInitialized()) { - initI18n(); - } - this.setPartyTemplates(trainerPartyTemplates.RIVAL_5); - - // Set the species pools for the evil team admin. - this.speciesPools = this.speciesPoolPerEvilTeamAdmin(poolName); - - signatureSpecies.forEach((speciesPool, s) => { - if (!Array.isArray(speciesPool)) { - speciesPool = [speciesPool]; - } - this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); - }); - - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); - this.name = i18next.t(`trainerNames:${nameForCall}`); - this.setHasVoucher(false); - this.setTitle(title); - this.setMoneyMultiplier(1.5); - this.setBoss(); - this.setStaticParty(); - this.setBattleBgm("battle_plasma_boss"); - this.setVictoryBgm("victory_team_plasma"); - - return this; - } - - /** - * Initializes the trainer configuration for an evil team leader. Temporarily hardcoding evil leader teams though. - * @param {Species | Species[]} signatureSpecies - The signature species for the evil team leader. - * @param {Type[]} specialtyTypes - The specialty types for the evil team Leader. - * @param boolean whether or not this is the rematch fight - * @returns {TrainerConfig} - The updated TrainerConfig instance. - * **/ - initForEvilTeamLeader(title: string, signatureSpecies: (Species | Species[])[], rematch: boolean = false, ...specialtyTypes: Type[]): TrainerConfig { - if (!getIsInitialized()) { - initI18n(); - } - if (rematch) { - this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR); - } else { - this.setPartyTemplates(trainerPartyTemplates.RIVAL_5); - } - signatureSpecies.forEach((speciesPool, s) => { - if (!Array.isArray(speciesPool)) { - speciesPool = [speciesPool]; - } - this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); - }); - if (specialtyTypes.length) { - this.setSpeciesFilter(p => specialtyTypes.find(t => p.isOfType(t)) !== undefined); - this.setSpecialtyTypes(...specialtyTypes); - } - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); - this.name = i18next.t(`trainerNames:${nameForCall}`); - this.setTitle(title); - this.setMoneyMultiplier(2.5); - this.setBoss(); - this.setStaticParty(); - this.setHasVoucher(true); - this.setBattleBgm("battle_plasma_boss"); - this.setVictoryBgm("victory_team_plasma"); - - return this; - } - - /** - * Initializes the trainer configuration for a Gym Leader. - * @param {Species | Species[]} signatureSpecies - The signature species for the Gym Leader. - * @param {Type[]} specialtyTypes - The specialty types for the Gym Leader. - * @param isMale - Whether the Gym Leader is Male or Not (for localization of the title). - * @returns {TrainerConfig} - The updated TrainerConfig instance. - * **/ - initForGymLeader(signatureSpecies: (Species | Species[])[], isMale: boolean, ...specialtyTypes: Type[]): TrainerConfig { - // Check if the internationalization (i18n) system is initialized. - if (!getIsInitialized()) { - initI18n(); - } - - // Set the function to generate the Gym Leader's party template. - this.setPartyTemplateFunc(getGymLeaderPartyTemplate); - - // Set up party members with their corresponding species. - signatureSpecies.forEach((speciesPool, s) => { - // Ensure speciesPool is an array. - if (!Array.isArray(speciesPool)) { - speciesPool = [speciesPool]; - } - // Set a function to get a random party member from the species pool. - this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); - }); - - // If specialty types are provided, set species filter and specialty types. - if (specialtyTypes.length) { - this.setSpeciesFilter(p => specialtyTypes.find(t => p.isOfType(t)) !== undefined); - this.setSpecialtyTypes(...specialtyTypes); - } - - // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); - this.name = i18next.t(`trainerNames:${nameForCall}`); - - // Set the title to "gym_leader". (this is the key in the i18n file) - this.setTitle("gym_leader"); - if (!isMale) { - this.setTitle("gym_leader_female"); - } - - // Configure various properties for the Gym Leader. - this.setMoneyMultiplier(2.5); - this.setBoss(); - this.setStaticParty(); - this.setHasVoucher(true); - this.setBattleBgm("battle_unova_gym"); - this.setVictoryBgm("victory_gym"); - this.setGenModifiersFunc(party => { - const waveIndex = party[0].scene.currentBattle.waveIndex; - return getRandomTeraModifiers(party, waveIndex >= 100 ? 1 : 0, specialtyTypes.length ? specialtyTypes : undefined); - }); - - return this; - } - - /** - * Initializes the trainer configuration for an Elite Four member. - * @param {Species | Species[]} signatureSpecies - The signature species for the Elite Four member. - * @param {Type[]} specialtyTypes - The specialty types for the Elite Four member. - * @param isMale - Whether the Elite Four Member is Male or Female (for localization of the title). - * @returns {TrainerConfig} - The updated TrainerConfig instance. - **/ - initForEliteFour(signatureSpecies: (Species | Species[])[], isMale: boolean, ...specialtyTypes: Type[]): TrainerConfig { - // Check if the internationalization (i18n) system is initialized. - if (!getIsInitialized()) { - initI18n(); - } - - // Set the party templates for the Elite Four. - this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR); - - // Set up party members with their corresponding species. - signatureSpecies.forEach((speciesPool, s) => { - // Ensure speciesPool is an array. - if (!Array.isArray(speciesPool)) { - speciesPool = [speciesPool]; - } - // Set a function to get a random party member from the species pool. - this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); - }); - - // Set species filter and specialty types if provided, otherwise filter by base total. - if (specialtyTypes.length) { - this.setSpeciesFilter(p => specialtyTypes.some(t => p.isOfType(t)) && p.baseTotal >= 450); - this.setSpecialtyTypes(...specialtyTypes); - } else { - this.setSpeciesFilter(p => p.baseTotal >= 450); - } - - // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); - this.name = i18next.t(`trainerNames:${nameForCall}`); - - // Set the title to "elite_four". (this is the key in the i18n file) - this.setTitle("elite_four"); - if (!isMale) { - this.setTitle("elite_four_female"); - } - - // Configure various properties for the Elite Four member. - this.setMoneyMultiplier(3.25); - this.setBoss(); - this.setStaticParty(); - this.setHasVoucher(true); - this.setBattleBgm("battle_unova_elite"); - this.setVictoryBgm("victory_gym"); - this.setGenModifiersFunc(party => getRandomTeraModifiers(party, 2, specialtyTypes.length ? specialtyTypes : undefined)); - - return this; - } - - /** - * Initializes the trainer configuration for a Champion. - * @param {Species | Species[]} signatureSpecies - The signature species for the Champion. - * @param isMale - Whether the Champion is Male or Female (for localization of the title). - * @returns {TrainerConfig} - The updated TrainerConfig instance. - **/ - initForChampion(signatureSpecies: (Species | Species[])[], isMale: boolean): TrainerConfig { - // Check if the internationalization (i18n) system is initialized. - if (!getIsInitialized()) { - initI18n(); - } - - // Set the party templates for the Champion. - this.setPartyTemplates(trainerPartyTemplates.CHAMPION); - - // Set up party members with their corresponding species. - signatureSpecies.forEach((speciesPool, s) => { - // Ensure speciesPool is an array. - if (!Array.isArray(speciesPool)) { - speciesPool = [speciesPool]; - } - // Set a function to get a random party member from the species pool. - this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); - }); - - // Set species filter to only include species with a base total of 470 or higher. - this.setSpeciesFilter(p => p.baseTotal >= 470); - - // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); - this.name = i18next.t(`trainerNames:${nameForCall}`); - - // Set the title to "champion". (this is the key in the i18n file) - this.setTitle("champion"); - if (!isMale) { - this.setTitle("champion_female"); - } - - - // Configure various properties for the Champion. - this.setMoneyMultiplier(10); - this.setBoss(); - this.setStaticParty(); - this.setHasVoucher(true); - this.setBattleBgm("battle_champion_alder"); - this.setVictoryBgm("victory_champion"); - this.setGenModifiersFunc(party => getRandomTeraModifiers(party, 3)); - - return this; - } - - /** - * Retrieves the title for the trainer based on the provided trainer slot and variant. - * @param {TrainerSlot} trainerSlot - The slot to determine which title to use. Defaults to TrainerSlot.NONE. - * @param {TrainerVariant} variant - The variant of the trainer to determine the specific title. - * @returns {string} - The title of the trainer. - **/ - getTitle(trainerSlot: TrainerSlot = TrainerSlot.NONE, variant: TrainerVariant): string { - const ret = this.name; - - // Check if the variant is double and the name for double exists - if (!trainerSlot && variant === TrainerVariant.DOUBLE && this.nameDouble) { - return this.nameDouble; - } - - // Female variant - if (this.hasGenders) { - // If the name is already set - if (this.nameFemale) { - // Check if the variant is either female or this is for the partner in a double battle - if (variant === TrainerVariant.FEMALE || (variant === TrainerVariant.DOUBLE && trainerSlot === TrainerSlot.TRAINER_PARTNER)) { - return this.nameFemale; - } - } else - // Check if !variant is true, if so return the name, else return the name with _female appended - if (variant) { - if (!getIsInitialized()) { - initI18n(); - } - // Check if the female version exists in the i18n file - if (i18next.exists(`trainerClasses:${this.name.toLowerCase()}`)) { - // If it does, return - return ret + "_female"; - } else { - // If it doesn't, we do not do anything and go to the normal return - // This is to prevent the game from displaying an error if a female version of the trainer does not exist in the localization - } - } - } - - return ret; - } - - loadAssets(scene: BattleScene, variant: TrainerVariant): Promise { - return new Promise(resolve => { - const isDouble = variant === TrainerVariant.DOUBLE; - const trainerKey = this.getSpriteKey(variant === TrainerVariant.FEMALE, false); - const partnerTrainerKey = this.getSpriteKey(true, true); - scene.loadAtlas(trainerKey, "trainer"); - if (isDouble) { - scene.loadAtlas(partnerTrainerKey, "trainer"); - } - scene.load.once(Phaser.Loader.Events.COMPLETE, () => { - const originalWarn = console.warn; - // Ignore warnings for missing frames, because there will be a lot - console.warn = () => { - }; - const frameNames = scene.anims.generateFrameNames(trainerKey, { - zeroPad: 4, - suffix: ".png", - start: 1, - end: 128 - }); - const partnerFrameNames = isDouble - ? scene.anims.generateFrameNames(partnerTrainerKey, { - zeroPad: 4, - suffix: ".png", - start: 1, - end: 128 - }) - : ""; - console.warn = originalWarn; - if (!(scene.anims.exists(trainerKey))) { - scene.anims.create({ - key: trainerKey, - frames: frameNames, - frameRate: 24, - repeat: -1 - }); - } - if (isDouble && !(scene.anims.exists(partnerTrainerKey))) { - scene.anims.create({ - key: partnerTrainerKey, - frames: partnerFrameNames, - frameRate: 24, - repeat: -1 - }); - } - resolve(); - }); - if (!scene.load.isLoading()) { - scene.load.start(); - } - }); - } -} - -let t = 0; - -interface TrainerConfigs { - [key: integer]: TrainerConfig -} - -/** - * The function to get variable strength grunts - * @param scene the singleton scene being passed in - * @returns the correct TrainerPartyTemplate - */ -function getEvilGruntPartyTemplate(scene: BattleScene): TrainerPartyTemplate { - const waveIndex = scene.currentBattle?.waveIndex; - if (waveIndex < 40) { - return trainerPartyTemplates.TWO_AVG; - } else if (waveIndex < 63) { - return trainerPartyTemplates.THREE_AVG; - } else if (waveIndex < 65) { - return trainerPartyTemplates.TWO_AVG_ONE_STRONG; - } else if (waveIndex < 112) { - return trainerPartyTemplates.GYM_LEADER_4; // 3avg 1 strong 1 stronger - } else { - return trainerPartyTemplates.GYM_LEADER_5; // 3 avg 2 strong 1 stronger - } -} - -function getWavePartyTemplate(scene: BattleScene, ...templates: TrainerPartyTemplate[]) { - return templates[Math.min(Math.max(Math.ceil((scene.gameMode.getWaveForDifficulty(scene.currentBattle?.waveIndex || startingWave, true) - 20) / 30), 0), templates.length - 1)]; -} - -function getGymLeaderPartyTemplate(scene: BattleScene) { - return getWavePartyTemplate(scene, trainerPartyTemplates.GYM_LEADER_1, trainerPartyTemplates.GYM_LEADER_2, trainerPartyTemplates.GYM_LEADER_3, trainerPartyTemplates.GYM_LEADER_4, trainerPartyTemplates.GYM_LEADER_5); -} - -function getRandomPartyMemberFunc(speciesPool: Species[], trainerSlot: TrainerSlot = TrainerSlot.TRAINER, ignoreEvolution: boolean = false, postProcess?: (enemyPokemon: EnemyPokemon) => void): PartyMemberFunc { - return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { - let species = Utils.randSeedItem(speciesPool); - if (!ignoreEvolution) { - species = getPokemonSpecies(species).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex); - } - return scene.addEnemyPokemon(getPokemonSpecies(species), level, trainerSlot, undefined, undefined, postProcess); - }; -} - -function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilter, trainerSlot: TrainerSlot = TrainerSlot.TRAINER, allowLegendaries?: boolean, postProcess?: (EnemyPokemon: EnemyPokemon) => void): PartyMemberFunc { - const originalSpeciesFilter = speciesFilter; - speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species); - return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { - const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex)), level, trainerSlot, undefined, undefined, postProcess); - return ret; - }; -} - -function getRandomTeraModifiers(party: EnemyPokemon[], count: integer, types?: Type[]): PersistentModifier[] { - const ret: PersistentModifier[] = []; - const partyMemberIndexes = new Array(party.length).fill(null).map((_, i) => i); - for (let t = 0; t < Math.min(count, party.length); t++) { - const randomIndex = Utils.randSeedItem(partyMemberIndexes); - partyMemberIndexes.splice(partyMemberIndexes.indexOf(randomIndex), 1); - ret.push(modifierTypes.TERA_SHARD().generateType([], [Utils.randSeedItem(types ? types : party[randomIndex].getTypes())])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(party[randomIndex]) as PersistentModifier); // TODO: is the bang correct? - } - return ret; -} - -type SignatureSpecies = { - [key in string]: (Species | Species[])[]; -}; - -/* - * The signature species for each Gym Leader, Elite Four member, and Champion. - * The key is the trainer type, and the value is an array of Species or Species arrays. - * This is in a separate const so it can be accessed from other places and not just the trainerConfigs - */ -export const signatureSpecies: SignatureSpecies = { - BROCK: [Species.GEODUDE, Species.ONIX], - MISTY: [Species.STARYU, Species.PSYDUCK], - LT_SURGE: [Species.VOLTORB, Species.PIKACHU, Species.ELECTABUZZ], - ERIKA: [Species.ODDISH, Species.BELLSPROUT, Species.TANGELA, Species.HOPPIP], - JANINE: [Species.VENONAT, Species.SPINARAK, Species.ZUBAT], - SABRINA: [Species.ABRA, Species.MR_MIME, Species.ESPEON], - BLAINE: [Species.GROWLITHE, Species.PONYTA, Species.MAGMAR], - GIOVANNI: [Species.SANDILE, Species.MURKROW, Species.NIDORAN_M, Species.NIDORAN_F], - FALKNER: [Species.PIDGEY, Species.HOOTHOOT, Species.DODUO], - BUGSY: [Species.SCYTHER, Species.HERACROSS, Species.SHUCKLE, Species.PINSIR], - WHITNEY: [Species.GIRAFARIG, Species.MILTANK], - MORTY: [Species.GASTLY, Species.MISDREAVUS, Species.SABLEYE], - CHUCK: [Species.POLIWRATH, Species.MANKEY], - JASMINE: [Species.MAGNEMITE, Species.STEELIX], - PRYCE: [Species.SEEL, Species.SWINUB], - CLAIR: [Species.DRATINI, Species.HORSEA, Species.GYARADOS], - ROXANNE: [Species.GEODUDE, Species.NOSEPASS], - BRAWLY: [Species.MACHOP, Species.MAKUHITA], - WATTSON: [Species.MAGNEMITE, Species.VOLTORB, Species.ELECTRIKE], - FLANNERY: [Species.SLUGMA, Species.TORKOAL, Species.NUMEL], - NORMAN: [Species.SLAKOTH, Species.SPINDA, Species.CHANSEY, Species.KANGASKHAN], - WINONA: [Species.SWABLU, Species.WINGULL, Species.TROPIUS, Species.SKARMORY], - TATE: [Species.SOLROCK, Species.NATU, Species.CHIMECHO, Species.GALLADE], - LIZA: [Species.LUNATONE, Species.SPOINK, Species.BALTOY, Species.GARDEVOIR], - JUAN: [Species.HORSEA, Species.BARBOACH, Species.SPHEAL, Species.RELICANTH], - ROARK: [Species.CRANIDOS, Species.LARVITAR, Species.GEODUDE], - GARDENIA: [Species.ROSELIA, Species.TANGELA, Species.TURTWIG], - MAYLENE: [Species.LUCARIO, Species.MEDITITE, Species.CHIMCHAR], - CRASHER_WAKE: [Species.BUIZEL, Species.MAGIKARP, Species.PIPLUP], - FANTINA: [Species.MISDREAVUS, Species.DRIFLOON, Species.SPIRITOMB], - BYRON: [Species.SHIELDON, Species.BRONZOR, Species.AGGRON], - CANDICE: [Species.SNEASEL, Species.SNOVER, Species.SNORUNT], - VOLKNER: [Species.SHINX, Species.CHINCHOU, Species.ROTOM], - CILAN: [Species.PANSAGE, Species.COTTONEE, Species.PETILIL], - CHILI: [Species.PANSEAR, Species.DARUMAKA, Species.HEATMOR], - CRESS: [Species.PANPOUR, Species.BASCULIN, Species.TYMPOLE], - CHEREN: [Species.LILLIPUP, Species.MINCCINO, Species.PATRAT], - LENORA: [Species.KANGASKHAN, Species.DEERLING, Species.AUDINO], - ROXIE: [Species.VENIPEDE, Species.TRUBBISH, Species.SKORUPI], - BURGH: [Species.SEWADDLE, Species.SHELMET, Species.KARRABLAST], - ELESA: [Species.EMOLGA, Species.BLITZLE, Species.JOLTIK], - CLAY: [Species.DRILBUR, Species.SANDILE, Species.GOLETT], - SKYLA: [Species.DUCKLETT, Species.WOOBAT, Species.RUFFLET], - BRYCEN: [Species.CRYOGONAL, Species.VANILLITE, Species.CUBCHOO], - DRAYDEN: [Species.DRUDDIGON, Species.AXEW, Species.DEINO], - MARLON: [Species.WAILMER, Species.FRILLISH, Species.TIRTOUGA], - VIOLA: [Species.SURSKIT, Species.SCATTERBUG], - GRANT: [Species.AMAURA, Species.TYRUNT], - KORRINA: [Species.HAWLUCHA, Species.LUCARIO, Species.MIENFOO], - RAMOS: [Species.SKIDDO, Species.HOPPIP, Species.BELLSPROUT], - CLEMONT: [Species.HELIOPTILE, Species.MAGNEMITE, Species.EMOLGA], - VALERIE: [Species.SYLVEON, Species.MAWILE, Species.MR_MIME], - OLYMPIA: [Species.ESPURR, Species.SIGILYPH, Species.SLOWKING], - WULFRIC: [Species.BERGMITE, Species.SNOVER, Species.CRYOGONAL], - MILO: [Species.GOSSIFLEUR, Species.APPLIN, Species.BOUNSWEET], - NESSA: [Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD], - KABU: [Species.SIZZLIPEDE, Species.VULPIX, Species.TORKOAL], - BEA: [Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS], - ALLISTER: [Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY], - OPAL: [Species.MILCERY, Species.TOGETIC, Species.GALAR_WEEZING], - BEDE: [Species.HATENNA, Species.GALAR_PONYTA, Species.GARDEVOIR], - GORDIE: [Species.ROLYCOLY, Species.STONJOURNER, Species.BINACLE], - MELONY: [Species.SNOM, Species.GALAR_DARUMAKA, Species.GALAR_MR_MIME], - PIERS: [Species.GALAR_ZIGZAGOON, Species.SCRAGGY, Species.INKAY], - MARNIE: [Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO], - RAIHAN: [Species.DURALUDON, Species.TURTONATOR, Species.GOOMY], - KATY: [Species.NYMBLE, Species.TAROUNTULA, Species.HERACROSS], - BRASSIUS: [Species.SMOLIV, Species.SHROOMISH, Species.ODDISH], - IONO: [Species.TADBULB, Species.WATTREL, Species.VOLTORB], - KOFU: [Species.VELUZA, Species.WIGLETT, Species.WINGULL], - LARRY: [Species.STARLY, Species.DUNSPARCE, Species.KOMALA], - RYME: [Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU], - TULIP: [Species.GIRAFARIG, Species.FLITTLE, Species.RALTS], - GRUSHA: [Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO], - LORELEI: [Species.JYNX, [Species.SLOWBRO, Species.GALAR_SLOWBRO], Species.LAPRAS, [Species.ALOLA_SANDSLASH, Species.CLOYSTER]], - BRUNO: [Species.MACHAMP, Species.HITMONCHAN, Species.HITMONLEE, [Species.ALOLA_GOLEM, Species.GOLEM]], - AGATHA: [Species.GENGAR, [Species.ARBOK, Species.WEEZING], Species.CROBAT, Species.ALOLA_MAROWAK], - LANCE: [Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR], - WILL: [Species.XATU, Species.JYNX, [Species.SLOWBRO, Species.SLOWKING], Species.EXEGGUTOR], - KOGA: [[Species.WEEZING, Species.MUK], [Species.VENOMOTH, Species.ARIADOS], Species.CROBAT, Species.TENTACRUEL], - KAREN: [Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE], - SIDNEY: [[Species.SHIFTRY, Species.CACTURNE], [Species.SHARPEDO, Species.CRAWDAUNT], Species.ABSOL, Species.MIGHTYENA], - PHOEBE: [Species.SABLEYE, Species.DUSKNOIR, Species.BANETTE, [Species.MISMAGIUS, Species.DRIFBLIM]], - GLACIA: [Species.GLALIE, Species.WALREIN, Species.FROSLASS, Species.ABOMASNOW], - DRAKE: [Species.ALTARIA, Species.SALAMENCE, Species.FLYGON, Species.KINGDRA], - AARON: [[Species.SCIZOR, Species.KLEAVOR], Species.HERACROSS, [Species.VESPIQUEN, Species.YANMEGA], Species.DRAPION], - BERTHA: [Species.WHISCASH, Species.HIPPOWDON, Species.GLISCOR, Species.RHYPERIOR], - FLINT: [[Species.FLAREON, Species.RAPIDASH], Species.MAGMORTAR, [Species.STEELIX, Species.LOPUNNY], Species.INFERNAPE], - LUCIAN: [Species.MR_MIME, Species.GALLADE, Species.BRONZONG, [Species.ALAKAZAM, Species.ESPEON]], - SHAUNTAL: [Species.COFAGRIGUS, Species.CHANDELURE, Species.GOLURK, Species.JELLICENT], - MARSHAL: [Species.CONKELDURR, Species.MIENSHAO, Species.THROH, Species.SAWK], - GRIMSLEY: [Species.LIEPARD, Species.KINGAMBIT, Species.SCRAFTY, Species.KROOKODILE], - CAITLIN: [Species.MUSHARNA, Species.GOTHITELLE, Species.SIGILYPH, Species.REUNICLUS], - MALVA: [Species.PYROAR, Species.TORKOAL, Species.CHANDELURE, Species.TALONFLAME], - SIEBOLD: [Species.CLAWITZER, Species.GYARADOS, Species.BARBARACLE, Species.STARMIE], - WIKSTROM: [Species.KLEFKI, Species.PROBOPASS, Species.SCIZOR, Species.AEGISLASH], - DRASNA: [Species.DRAGALGE, Species.DRUDDIGON, Species.ALTARIA, Species.NOIVERN], - HALA: [Species.HARIYAMA, Species.BEWEAR, Species.CRABOMINABLE, [Species.POLIWRATH, Species.ANNIHILAPE]], - MOLAYNE: [Species.KLEFKI, Species.MAGNEZONE, Species.METAGROSS, Species.ALOLA_DUGTRIO], - OLIVIA: [Species.RELICANTH, Species.CARBINK, Species.ALOLA_GOLEM, Species.LYCANROC], - ACEROLA: [[Species.BANETTE, Species.DRIFBLIM], Species.MIMIKYU, Species.DHELMISE, Species.PALOSSAND], - KAHILI: [[Species.BRAVIARY, Species.MANDIBUZZ], Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON], - MARNIE_ELITE: [Species.MORPEKO, Species.LIEPARD, [Species.TOXICROAK, Species.SCRAFTY], Species.GRIMMSNARL], - NESSA_ELITE: [Species.GOLISOPOD, [Species.PELIPPER, Species.QUAGSIRE], Species.TOXAPEX, Species.DREDNAW], - BEA_ELITE: [Species.HAWLUCHA, [Species.GRAPPLOCT, Species.SIRFETCHD], Species.FALINKS, Species.MACHAMP], - ALLISTER_ELITE: [Species.DUSKNOIR, [Species.POLTEAGEIST, Species.RUNERIGUS], Species.CURSOLA, Species.GENGAR], - RAIHAN_ELITE: [Species.GOODRA, [Species.TORKOAL, Species.TURTONATOR], Species.FLYGON, Species.ARCHALUDON], - RIKA: [Species.WHISCASH, [Species.DONPHAN, Species.DUGTRIO], Species.CAMERUPT, Species.CLODSIRE], - POPPY: [Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON], - LARRY_ELITE: [Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS], - HASSEL: [Species.NOIVERN, [Species.FLAPPLE, Species.APPLETUN], Species.DRAGALGE, Species.BAXCALIBUR], - CRISPIN: [Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN], - AMARYS: [Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS], - LACEY: [Species.EXCADRILL, Species.PRIMARINA, [Species.ALCREMIE, Species.GRANBULL], Species.WHIMSICOTT], - DRAYTON: [Species.DRAGONITE, Species.ARCHALUDON, Species.HAXORUS, Species.SCEPTILE], - BLUE: [[Species.GYARADOS, Species.EXEGGUTOR, Species.ARCANINE], Species.HO_OH, [Species.RHYPERIOR, Species.MAGNEZONE]], // Alakazam lead, Mega Pidgeot - RED: [Species.LUGIA, Species.SNORLAX, [Species.ESPEON, Species.UMBREON, Species.SYLVEON]], // GMax Pikachu lead, Mega gen 1 starter - LANCE_CHAMPION: [Species.DRAGONITE, Species.KINGDRA, Species.ALOLA_EXEGGUTOR], // Aerodactyl lead, Mega Latias/Latios - STEVEN: [Species.AGGRON, [Species.ARMALDO, Species.CRADILY], Species.DIALGA], // Skarmory lead, Mega Metagross - WALLACE: [Species.MILOTIC, Species.PALKIA, Species.LUDICOLO], // Pelipper lead, Mega Swampert - CYNTHIA: [Species.GIRATINA, Species.LUCARIO, Species.TOGEKISS], // Spiritomb lead, Mega Garchomp - ALDER: [Species.VOLCARONA, Species.ZEKROM, [Species.ACCELGOR, Species.ESCAVALIER], Species.KELDEO], // Bouffalant/Braviary lead - IRIS: [Species.HAXORUS, Species.RESHIRAM, Species.ARCHEOPS], // Druddigon lead, Gmax Lapras - DIANTHA: [Species.HAWLUCHA, Species.XERNEAS, Species.GOODRA], // Gourgeist lead, Mega Gardevoir - HAU: [[Species.SOLGALEO, Species.LUNALA], Species.NOIVERN, [Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA], [Species.TAPU_BULU, Species.TAPU_FINI, Species.TAPU_KOKO, Species.TAPU_LELE]], // Alola Raichu lead - LEON: [Species.DRAGAPULT, [Species.ZACIAN, Species.ZAMAZENTA], Species.AEGISLASH], // Rillaboom/Cinderace/Inteleon lead, GMax Charizard - GEETA: [Species.MIRAIDON, [Species.ESPATHRA, Species.VELUZA], [Species.AVALUGG, Species.HISUI_AVALUGG], Species.KINGAMBIT], // Glimmora lead - NEMONA: [Species.KORAIDON, Species.PAWMOT, [Species.DUDUNSPARCE, Species.ORTHWORM], [Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL]], // Lycanroc lead - KIERAN: [[Species.GRIMMSNARL, Species.INCINEROAR, Species.PORYGON_Z], Species.OGERPON, Species.TERAPAGOS, Species.HYDRAPPLE], // Poliwrath/Politoed lead -}; - -export const trainerConfigs: TrainerConfigs = { - [TrainerType.UNKNOWN]: new TrainerConfig(0).setHasGenders(), - [TrainerType.ACE_TRAINER]: new TrainerConfig(++t).setHasGenders("Ace Trainer Female").setHasDouble("Ace Duo").setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.ACE_TRAINER) - .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.THREE_WEAK_BALANCED, trainerPartyTemplates.FOUR_WEAK_BALANCED, trainerPartyTemplates.FIVE_WEAK_BALANCED, trainerPartyTemplates.SIX_WEAK_BALANCED)), - [TrainerType.ARTIST]: new TrainerConfig(++t).setEncounterBgm(TrainerType.RICH).setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.THREE_AVG) - .setSpeciesPools([Species.SMEARGLE]), - [TrainerType.BACKERS]: new TrainerConfig(++t).setHasGenders("Backers").setDoubleOnly().setEncounterBgm(TrainerType.CYCLIST), - [TrainerType.BACKPACKER]: new TrainerConfig(++t).setHasGenders("Backpacker Female").setHasDouble("Backpackers").setSpeciesFilter(s => s.isOfType(Type.FLYING) || s.isOfType(Type.ROCK)).setEncounterBgm(TrainerType.BACKPACKER) - .setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.ONE_WEAK_ONE_STRONG, trainerPartyTemplates.ONE_AVG_ONE_STRONG) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, Species.WOOLOO], - [TrainerPoolTier.UNCOMMON]: [Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, Species.SKIDDO, Species.MUDBRAY], - [TrainerPoolTier.RARE]: [Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, Species.IMPIDIMP], - [TrainerPoolTier.SUPER_RARE]: [Species.GALAR_DARUMAKA, Species.TEDDIURSA] - }), - [TrainerType.BAKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.35).setSpeciesFilter(s => s.isOfType(Type.GRASS) || s.isOfType(Type.FIRE)), - [TrainerType.BEAUTY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY), - [TrainerType.BIKER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.POISON)), - [TrainerType.BLACK_BELT]: new TrainerConfig(++t).setHasGenders("Battle Girl", TrainerType.PSYCHIC).setHasDouble("Crush Kin").setEncounterBgm(TrainerType.ROUGHNECK).setSpecialtyTypes(Type.FIGHTING) - .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_STRONG, trainerPartyTemplates.THREE_AVG, trainerPartyTemplates.TWO_AVG_ONE_STRONG) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.NIDORAN_F, Species.NIDORAN_M, Species.MACHOP, Species.MAKUHITA, Species.MEDITITE, Species.CROAGUNK, Species.TIMBURR], - [TrainerPoolTier.UNCOMMON]: [Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, Species.STUFFUL, Species.CRABRAWLER], - [TrainerPoolTier.RARE]: [Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, Species.PASSIMIAN, Species.CLOBBOPUS], - [TrainerPoolTier.SUPER_RARE]: [Species.HITMONTOP, Species.INFERNAPE, Species.GALLADE, Species.HAWLUCHA, Species.HAKAMO_O], - [TrainerPoolTier.ULTRA_RARE]: [Species.KUBFU] - }), - [TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders("Breeder Female").setHasDouble("Breeders") - .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.FIVE_WEAKER, trainerPartyTemplates.SIX_WEAKER)) - .setSpeciesFilter(s => s.baseTotal < 450), - [TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders("Clerk Female").setHasDouble("Colleagues").setEncounterBgm(TrainerType.CLERK) - .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.MEOWTH, Species.PSYDUCK, Species.BUDEW, Species.PIDOVE, Species.CINCCINO, Species.LITLEO], - [TrainerPoolTier.UNCOMMON]: [Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, Species.SKIDDO], - [TrainerPoolTier.RARE]: [Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, Species.INDEEDEE] - }), - [TrainerType.CYCLIST]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setHasGenders("Cyclist Female").setHasDouble("Cyclists").setEncounterBgm(TrainerType.CYCLIST) - .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.PICHU, Species.STARLY, Species.TAILLOW, Species.BOLTUND], - [TrainerPoolTier.UNCOMMON]: [Species.DODUO, Species.ELECTRIKE, Species.BLITZLE, Species.WATTREL], - [TrainerPoolTier.RARE]: [Species.YANMA, Species.NINJASK, Species.WHIRLIPEDE, Species.EMOLGA], - [TrainerPoolTier.SUPER_RARE]: [Species.ACCELGOR, Species.DREEPY] - }), - [TrainerType.DANCER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CYCLIST) - .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.RALTS, Species.SPOINK, Species.LOTAD, Species.BUDEW], - [TrainerPoolTier.UNCOMMON]: [Species.SPINDA, Species.SWABLU, Species.MARACTUS,], - [TrainerPoolTier.RARE]: [Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO], - [TrainerPoolTier.SUPER_RARE]: [Species.POPPLIO] - }), - [TrainerType.DEPOT_AGENT]: new TrainerConfig(++t).setMoneyMultiplier(1.45).setEncounterBgm(TrainerType.CLERK), - [TrainerType.DOCTOR]: new TrainerConfig(++t).setHasGenders("Nurse", "lass").setHasDouble("Medical Team").setMoneyMultiplier(3).setEncounterBgm(TrainerType.CLERK) - .setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.HEAL_PULSE)), - [TrainerType.FIREBREATHER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK) - .setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.SMOG) || s.isOfType(Type.FIRE)), - [TrainerType.FISHERMAN]: new TrainerConfig(++t).setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.BACKPACKER).setSpecialtyTypes(Type.WATER) - .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.THREE_WEAK_SAME, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.SIX_WEAKER) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.TENTACOOL, Species.MAGIKARP, Species.GOLDEEN, Species.STARYU, Species.REMORAID, Species.SKRELP, Species.CLAUNCHER, Species.ARROKUDA], - [TrainerPoolTier.UNCOMMON]: [Species.POLIWAG, Species.SHELLDER, Species.KRABBY, Species.HORSEA, Species.CARVANHA, Species.BARBOACH, Species.CORPHISH, Species.FINNEON, Species.TYMPOLE, Species.BASCULIN, Species.FRILLISH, Species.INKAY], - [TrainerPoolTier.RARE]: [Species.CHINCHOU, Species.CORSOLA, Species.WAILMER, Species.BARBOACH, Species.CLAMPERL, Species.LUVDISC, Species.MANTYKE, Species.ALOMOMOLA, Species.TATSUGIRI, Species.VELUZA], - [TrainerPoolTier.SUPER_RARE]: [Species.LAPRAS, Species.FEEBAS, Species.RELICANTH, Species.DONDOZO] - }), - [TrainerType.GUITARIST]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.ROUGHNECK).setSpecialtyTypes(Type.ELECTRIC).setSpeciesFilter(s => s.isOfType(Type.ELECTRIC)), - [TrainerType.HARLEQUIN]: new TrainerConfig(++t).setEncounterBgm(TrainerType.PSYCHIC).setSpeciesFilter(s => tmSpecies[Moves.TRICK_ROOM].indexOf(s.speciesId) > -1), - [TrainerType.HIKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.BACKPACKER) - .setPartyTemplates(trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG, trainerPartyTemplates.TWO_AVG_SAME_ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.FOUR_WEAK, trainerPartyTemplates.ONE_STRONG) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.SANDSHREW, Species.DIGLETT, Species.GEODUDE, Species.MACHOP, Species.ARON, Species.ROGGENROLA, Species.DRILBUR, Species.NACLI], - [TrainerPoolTier.UNCOMMON]: [Species.ZUBAT, Species.RHYHORN, Species.ONIX, Species.CUBONE, Species.WOOBAT, Species.SWINUB, Species.NOSEPASS, Species.HIPPOPOTAS, Species.DWEBBLE, Species.KLAWF, Species.TOEDSCOOL], - [TrainerPoolTier.RARE]: [Species.TORKOAL, Species.TRAPINCH, Species.BARBOACH, Species.GOLETT, Species.ALOLA_DIGLETT, Species.ALOLA_GEODUDE, Species.GALAR_STUNFISK, Species.PALDEA_WOOPER], - [TrainerPoolTier.SUPER_RARE]: [Species.MAGBY, Species.LARVITAR] - }), - [TrainerType.HOOLIGANS]: new TrainerConfig(++t).setDoubleOnly().setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.POISON) || s.isOfType(Type.DARK)), - [TrainerType.HOOPSTER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), - [TrainerType.INFIELDER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), - [TrainerType.JANITOR]: new TrainerConfig(++t).setMoneyMultiplier(1.1).setEncounterBgm(TrainerType.CLERK), - [TrainerType.LINEBACKER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), - [TrainerType.MAID]: new TrainerConfig(++t).setMoneyMultiplier(1.6).setEncounterBgm(TrainerType.RICH), - [TrainerType.MUSICIAN]: new TrainerConfig(++t).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.SING)), - [TrainerType.HEX_MANIAC]: new TrainerConfig(++t).setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.PSYCHIC) - .setPartyTemplates(trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.ONE_AVG_ONE_STRONG, trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG, trainerPartyTemplates.THREE_AVG, trainerPartyTemplates.TWO_STRONG) - .setSpeciesFilter(s => s.isOfType(Type.GHOST)), - [TrainerType.NURSERY_AIDE]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm("lass"), - [TrainerType.OFFICER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CLERK) - .setPartyTemplates(trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.VULPIX, Species.GROWLITHE, Species.SNUBBULL, Species.POOCHYENA, Species.ELECTRIKE, Species.LILLIPUP, Species.YAMPER, Species.FIDOUGH], - [TrainerPoolTier.UNCOMMON]: [Species.HOUNDOUR, Species.ROCKRUFF, Species.MASCHIFF], - [TrainerPoolTier.RARE]: [Species.JOLTEON, Species.RIOLU], - [TrainerPoolTier.SUPER_RARE]: [], - [TrainerPoolTier.ULTRA_RARE]: [Species.ENTEI, Species.SUICUNE, Species.RAIKOU] - }), - [TrainerType.PARASOL_LADY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY).setSpeciesFilter(s => s.isOfType(Type.WATER)), - [TrainerType.PILOT]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => tmSpecies[Moves.FLY].indexOf(s.speciesId) > -1), - [TrainerType.POKEFAN]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName("PokéFan").setHasGenders("PokéFan Female").setHasDouble("PokéFan Family").setEncounterBgm(TrainerType.POKEFAN) - .setPartyTemplates(trainerPartyTemplates.SIX_WEAKER, trainerPartyTemplates.FOUR_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.FOUR_WEAK_SAME, trainerPartyTemplates.FIVE_WEAK, trainerPartyTemplates.SIX_WEAKER_SAME), - [TrainerType.PRESCHOOLER]: new TrainerConfig(++t).setMoneyMultiplier(0.2).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Preschooler Female", "lass").setHasDouble("Preschoolers") - .setPartyTemplates(trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.FIVE_WEAKER) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.CATERPIE, Species.PICHU, Species.SANDSHREW, Species.LEDYBA, Species.BUDEW, Species.BURMY, Species.WOOLOO, Species.PAWMI, Species.SMOLIV], - [TrainerPoolTier.UNCOMMON]: [Species.EEVEE, Species.CLEFFA, Species.IGGLYBUFF, Species.SWINUB, Species.WOOPER, Species.DRIFLOON, Species.DEDENNE, Species.STUFFUL], - [TrainerPoolTier.RARE]: [Species.RALTS, Species.RIOLU, Species.JOLTIK, Species.TANDEMAUS], - [TrainerPoolTier.SUPER_RARE]: [Species.DARUMAKA, Species.TINKATINK], - }), - [TrainerType.PSYCHIC]: new TrainerConfig(++t).setHasGenders("Psychic Female").setHasDouble("Psychics").setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.PSYCHIC) - .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME, trainerPartyTemplates.ONE_STRONGER) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, Species.BLIPBUG, Species.ESPURR, Species.HATENNA], - [TrainerPoolTier.UNCOMMON]: [Species.MIME_JR, Species.EXEGGCUTE, Species.MEDITITE, Species.NATU, Species.EXEGGCUTE, Species.WOOBAT, Species.INKAY, Species.ORANGURU], - [TrainerPoolTier.RARE]: [Species.ELGYEM, Species.SIGILYPH, Species.BALTOY, Species.GIRAFARIG, Species.MEOWSTIC], - [TrainerPoolTier.SUPER_RARE]: [Species.BELDUM, Species.ESPEON, Species.STANTLER], - }), - [TrainerType.RANGER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName("Pokémon Ranger").setEncounterBgm(TrainerType.BACKPACKER).setHasGenders("Pokémon Ranger Female").setHasDouble("Pokémon Rangers") - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.PICHU, Species.GROWLITHE, Species.PONYTA, Species.ZIGZAGOON, Species.SEEDOT, Species.BIDOOF, Species.RIOLU, Species.SEWADDLE, Species.SKIDDO, Species.SALANDIT, Species.YAMPER], - [TrainerPoolTier.UNCOMMON]: [Species.AZURILL, Species.TAUROS, Species.MAREEP, Species.FARFETCHD, Species.TEDDIURSA, Species.SHROOMISH, Species.ELECTRIKE, Species.BUDEW, Species.BUIZEL, Species.MUDBRAY, Species.STUFFUL], - [TrainerPoolTier.RARE]: [Species.EEVEE, Species.SCYTHER, Species.KANGASKHAN, Species.RALTS, Species.MUNCHLAX, Species.ZORUA, Species.PALDEA_TAUROS, Species.TINKATINK, Species.CYCLIZAR, Species.FLAMIGO], - [TrainerPoolTier.SUPER_RARE]: [Species.LARVESTA], - }), - [TrainerType.RICH]: new TrainerConfig(++t).setMoneyMultiplier(5).setName("Gentleman").setHasGenders("Madame").setHasDouble("Rich Couple"), - [TrainerType.RICH_KID]: new TrainerConfig(++t).setMoneyMultiplier(3.75).setName("Rich Boy").setHasGenders("Lady").setHasDouble("Rich Kids").setEncounterBgm(TrainerType.RICH), - [TrainerType.ROUGHNECK]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.DARK)), - [TrainerType.SAILOR]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.BACKPACKER).setSpeciesFilter(s => s.isOfType(Type.WATER) || s.isOfType(Type.FIGHTING)), - [TrainerType.SCIENTIST]: new TrainerConfig(++t).setHasGenders("Scientist Female").setHasDouble("Scientists").setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.SCIENTIST) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.MAGNEMITE, Species.GRIMER, Species.DROWZEE, Species.VOLTORB, Species.KOFFING], - [TrainerPoolTier.UNCOMMON]: [Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, Species.CHARJABUG, Species.BLIPBUG, Species.HELIOPTILE], - [TrainerPoolTier.RARE]: [Species.ABRA, Species.DITTO, Species.PORYGON, Species.ELEKID, Species.SOLOSIS, Species.GALAR_WEEZING], - [TrainerPoolTier.SUPER_RARE]: [Species.OMANYTE, Species.KABUTO, Species.AERODACTYL, Species.LILEEP, Species.ANORITH, Species.CRANIDOS, Species.SHIELDON, Species.TIRTOUGA, Species.ARCHEN, Species.ARCTOVISH, Species.ARCTOZOLT, Species.DRACOVISH, Species.DRACOZOLT], - [TrainerPoolTier.ULTRA_RARE]: [Species.ROTOM, Species.MELTAN] - }), - [TrainerType.SMASHER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), - [TrainerType.SNOW_WORKER]: new TrainerConfig(++t).setName("Worker").setHasGenders("Worker Female").setHasDouble("Workers").setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => s.isOfType(Type.ICE) || s.isOfType(Type.STEEL)), - [TrainerType.STRIKER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), - [TrainerType.SCHOOL_KID]: new TrainerConfig(++t).setMoneyMultiplier(0.75).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("School Kid Female", "lass").setHasDouble("School Kids") - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.ODDISH, Species.EXEGGCUTE, Species.TEDDIURSA, Species.WURMPLE, Species.RALTS, Species.SHROOMISH, Species.FLETCHLING], - [TrainerPoolTier.UNCOMMON]: [Species.VOLTORB, Species.WHISMUR, Species.MEDITITE, Species.MIME_JR, Species.NYMBLE], - [TrainerPoolTier.RARE]: [Species.TANGELA, Species.EEVEE, Species.YANMA], - [TrainerPoolTier.SUPER_RARE]: [Species.TADBULB] - }), - [TrainerType.SWIMMER]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm(TrainerType.PARASOL_LADY).setHasGenders("Swimmer Female").setHasDouble("Swimmers").setSpecialtyTypes(Type.WATER).setSpeciesFilter(s => s.isOfType(Type.WATER)), - [TrainerType.TWINS]: new TrainerConfig(++t).setDoubleOnly().setMoneyMultiplier(0.65).setUseSameSeedForAllMembers() - .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_STRONG)) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PLUSLE, Species.VOLBEAT, Species.PACHIRISU, Species.SILCOON, Species.METAPOD, Species.IGGLYBUFF, Species.PETILIL, Species.EEVEE])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.MINUN, Species.ILLUMISE, Species.EMOLGA, Species.CASCOON, Species.KAKUNA, Species.CLEFFA, Species.COTTONEE, Species.EEVEE], TrainerSlot.TRAINER_PARTNER)) - .setEncounterBgm(TrainerType.TWINS), - [TrainerType.VETERAN]: new TrainerConfig(++t).setHasGenders("Veteran Female").setHasDouble("Veteran Duo").setMoneyMultiplier(2.5).setEncounterBgm(TrainerType.ACE_TRAINER).setSpeciesFilter(s => s.isOfType(Type.DRAGON)), - [TrainerType.WAITER]: new TrainerConfig(++t).setHasGenders("Waitress").setHasDouble("Restaurant Staff").setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.CLERK) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.CLEFFA, Species.CHATOT, Species.PANSAGE, Species.PANSEAR, Species.PANPOUR, Species.MINCCINO], - [TrainerPoolTier.UNCOMMON]: [Species.TROPIUS, Species.PETILIL, Species.BOUNSWEET, Species.INDEEDEE], - [TrainerPoolTier.RARE]: [Species.APPLIN, Species.SINISTEA, Species.POLTCHAGEIST] - }), - [TrainerType.WORKER]: new TrainerConfig(++t).setHasGenders("Worker Female").setHasDouble("Workers").setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.7).setSpeciesFilter(s => s.isOfType(Type.ROCK) || s.isOfType(Type.STEEL)), - [TrainerType.YOUNGSTER]: new TrainerConfig(++t).setMoneyMultiplier(0.5).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Lass", "lass").setHasDouble("Beginners").setPartyTemplates(trainerPartyTemplates.TWO_WEAKER) - .setSpeciesPools( - [Species.CATERPIE, Species.WEEDLE, Species.RATTATA, Species.SENTRET, Species.POOCHYENA, Species.ZIGZAGOON, Species.WURMPLE, Species.BIDOOF, Species.PATRAT, Species.LILLIPUP] - ), - [TrainerType.ROCKET_GRUNT]: new TrainerConfig(++t).setHasGenders("Rocket Grunt Female").setHasDouble("Rocket Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.WEEDLE, Species.RATTATA, Species.EKANS, Species.SANDSHREW, Species.ZUBAT, Species.GEODUDE, Species.KOFFING, Species.GRIMER, Species.ODDISH], - [TrainerPoolTier.UNCOMMON]: [Species.GYARADOS, Species.TAUROS, Species.SCYTHER, Species.CUBONE, Species.GROWLITHE, Species.MURKROW, Species.GASTLY, Species.EXEGGCUTE, Species.VOLTORB], - [TrainerPoolTier.RARE]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE], - [TrainerPoolTier.SUPER_RARE]: [Species.DRATINI, Species.LARVITAR] - }), - [TrainerType.ARCHER]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin", "rocket", [Species.HOUNDOOM]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.ARIANA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin_female", "rocket", [Species.ARBOK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.PROTON]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin", "rocket", [Species.CROBAT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.PETREL]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin", "rocket", [Species.WEEZING]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.MAGMA_GRUNT]: new TrainerConfig(++t).setHasGenders("Magma Grunt Female").setHasDouble("Magma Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.SLUGMA, Species.POOCHYENA, Species.NUMEL, Species.ZIGZAGOON, Species.DIGLETT, Species.MAGBY, Species.TORKOAL, Species.BALTOY, Species.BARBOACH], - [TrainerPoolTier.UNCOMMON]: [Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.ROLYCOLY, Species.GLIGAR], - [TrainerPoolTier.RARE]: [Species.TRAPINCH, Species.HEATMOR], - [TrainerPoolTier.SUPER_RARE]: [Species.CAPSAKID, Species.CHARCADET] - }), - [TrainerType.TABITHA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("magma_admin", "magma", [Species.CAMERUPT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.COURTNEY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("magma_admin_female", "magma", [Species.CAMERUPT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.AQUA_GRUNT]: new TrainerConfig(++t).setHasGenders("Aqua Grunt Female").setHasDouble("Aqua Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.CARVANHA, Species.WAILMER, Species.ZIGZAGOON, Species.LOTAD, Species.CORPHISH, Species.SPHEAL], - [TrainerPoolTier.UNCOMMON]: [Species.CLAMPERL, Species.CHINCHOU, Species.WOOPER, Species.WINGULL, Species.TENTACOOL, Species.QWILFISH], - [TrainerPoolTier.RARE]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA], - [TrainerPoolTier.SUPER_RARE]: [Species.DONDOZO] - }), - [TrainerType.MATT]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aqua_admin", "aqua", [Species.SHARPEDO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.SHELLY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aqua_admin_female", "aqua", [Species.SHARPEDO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.GALACTIC_GRUNT]: new TrainerConfig(++t).setHasGenders("Galactic Grunt Female").setHasDouble("Galactic Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.GLAMEOW, Species.STUNKY, Species.CROAGUNK, Species.SHINX, Species.WURMPLE, Species.BRONZOR, Species.DRIFLOON, Species.BURMY], - [TrainerPoolTier.UNCOMMON]: [Species.CARNIVINE, Species.GROWLITHE, Species.QWILFISH, Species.SNEASEL], - [TrainerPoolTier.RARE]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL], - [TrainerPoolTier.SUPER_RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO] - }), - [TrainerType.JUPITER]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.SKUNTANK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.MARS]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.PURUGLY]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.SATURN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander", "galactic", [Species.TOXICROAK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.PLASMA_GRUNT]: new TrainerConfig(++t).setHasGenders("Plasma Grunt Female").setHasDouble("Plasma Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.PATRAT, Species.LILLIPUP, Species.PURRLOIN, Species.SCRAFTY, Species.WOOBAT, Species.VANILLITE, Species.SANDILE, Species.TRUBBISH], - [TrainerPoolTier.UNCOMMON]: [Species.FRILLISH, Species.VENIPEDE, Species.GOLETT, Species.TIMBURR, Species.DARUMAKA, Species.AMOONGUSS], - [TrainerPoolTier.RARE]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK], - [TrainerPoolTier.SUPER_RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT] - }), - [TrainerType.ZINZOLIN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("plasma_sage", "plasma", [Species.CRYOGONAL]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.ROOD]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("plasma_sage", "plasma", [Species.SWOOBAT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.FLARE_GRUNT]: new TrainerConfig(++t).setHasGenders("Flare Grunt Female").setHasDouble("Flare Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [Species.FLETCHLING, Species.LITLEO, Species.PONYTA, Species.INKAY, Species.HOUNDOUR, Species.SKORUPI, Species.SCRAFTY, Species.CROAGUNK], - [TrainerPoolTier.UNCOMMON]: [Species.HELIOPTILE, Species.ELECTRIKE, Species.SKRELP, Species.GULPIN, Species.PURRLOIN, Species.POOCHYENA, Species.SCATTERBUG], - [TrainerPoolTier.RARE]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD], - [TrainerPoolTier.SUPER_RARE]: [Species.NOIVERN, Species.DRUDDIGON] - }), - [TrainerType.BRYONY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("flare_admin_female", "flare", [Species.LIEPARD]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.XEROSIC]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("flare_admin", "flare", [Species.MALAMAR]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.AETHER_GRUNT]: new TrainerConfig(++t).setHasGenders("Aether Grunt Female").setHasDouble("Aether Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aether_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.PIKIPEK, Species.ROCKRUFF, Species.ALOLA_DIGLETT, Species.YUNGOOS, Species.CORSOLA, Species.ALOLA_GEODUDE, Species.BOUNSWEET, Species.LILLIPUP, Species.ALOLA_MAROWAK], - [TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.STUFFUL, Species.ALOLA_EXEGGUTOR, Species.CRABRAWLER, Species.CUTIEFLY, Species.ALOLA_RAICHU, Species.ORICORIO, Species.MUDBRAY], - [TrainerPoolTier.RARE]: [ Species.ORANGURU, Species.PASSIMIAN, Species.GALAR_CORSOLA, Species.ALOLA_SANDSHREW, Species.ALOLA_VULPIX, Species.TURTONATOR, Species.DRAMPA], - [TrainerPoolTier.SUPER_RARE]: [Species.JANGMO_O, Species.PORYGON] - }), - [TrainerType.FABA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aether_admin", "aether", [Species.HYPNO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aether_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.SKULL_GRUNT]: new TrainerConfig(++t).setHasGenders("Skull Grunt Female").setHasDouble("Skull Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.SALANDIT, Species.ALOLA_RATTATA, Species.ALOLA_MEOWTH, Species.SCRAGGY, Species.KOFFING, Species.ALOLA_GRIMER, Species.MAREANIE, Species.SPINARAK, Species.TRUBBISH], - [TrainerPoolTier.UNCOMMON]: [ Species.FOMANTIS, Species.SABLEYE, Species.SANDILE, Species.ALOLA_MAROWAK, Species.PANCHAM, Species.DROWZEE, Species.ZUBAT, Species.VENIPEDE, Species.VULLABY], - [TrainerPoolTier.RARE]: [Species.SANDYGAST, Species.PAWNIARD, Species.MIMIKYU, Species.DHELMISE, Species.GASTLY, Species.WISHIWASHI], - [TrainerPoolTier.SUPER_RARE]: [Species.GRUBBIN, Species.DEWPIDER] - }), - [TrainerType.PLUMERIA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("skull_admin", "skull", [Species.SALAZZLE]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - [TrainerType.MACRO_GRUNT]: new TrainerConfig(++t).setHasGenders("Macro Grunt Female").setHasDouble("Macro Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_macro_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) - .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.CUFANT, Species.GALAR_MEOWTH, Species.KLINK, Species.ROOKIDEE, Species.CRAMORANT, Species.GALAR_ZIGZAGOON, Species.SKWOVET, Species.STEELIX, Species.MAWILE, Species.FERROSEED], - [TrainerPoolTier.UNCOMMON]: [ Species.DRILBUR, Species.MAGNEMITE, Species.HATENNA, Species.ARROKUDA, Species.APPLIN, Species.GALAR_PONYTA, Species.GALAR_YAMASK, Species.SINISTEA, Species.RIOLU], - [TrainerPoolTier.RARE]: [Species.FALINKS, Species.BELDUM, Species.GALAR_FARFETCHD, Species.GALAR_MR_MIME, Species.HONEDGE, Species.SCIZOR, Species.GALAR_DARUMAKA], - [TrainerPoolTier.SUPER_RARE]: [Species.DURALUDON, Species.DREEPY] - }), - [TrainerType.OLEANA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("macro_admin", "macro", [Species.GARBODOR]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_oleana").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), - - [TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"], true, Type.ROCK).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MISTY"], false, Type.WATER).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"], true, Type.ELECTRIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ERIKA"], false, Type.GRASS).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JANINE"], false, Type.POISON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SABRINA"], false, Type.PSYCHIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BLAINE"], true, Type.FIRE).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GIOVANNI"], true, Type.DARK).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FALKNER"], true, Type.FLYING).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BUGSY"], true, Type.BUG).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WHITNEY"], false, Type.NORMAL).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MORTY"], true, Type.GHOST).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHUCK"], true, Type.FIGHTING).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JASMINE"], false, Type.STEEL).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PRYCE"], true, Type.ICE).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAIR"], false, Type.DRAGON).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXANNE"], false, Type.ROCK).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRAWLY"], true, Type.FIGHTING).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WATTSON"], true, Type.ELECTRIC).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FLANNERY"], false, Type.FIRE).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["NORMAN"], true, Type.NORMAL).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WINONA"], false, Type.FLYING).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TATE"], true, Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym").setHasDouble("tate_liza_double").setDoubleTrainerType(TrainerType.LIZA).setDoubleTitle("gym_leader_double"), - [TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LIZA"], false, Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym").setHasDouble("liza_tate_double").setDoubleTrainerType(TrainerType.TATE).setDoubleTitle("gym_leader_double"), - [TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JUAN"], true, Type.WATER).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), - [TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROARK"], true, Type.ROCK).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GARDENIA"], false, Type.GRASS).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MAYLENE"], false, Type.FIGHTING).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRASHER_WAKE"], true, Type.WATER).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FANTINA"], false, Type.GHOST).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BYRON"], true, Type.STEEL).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CANDICE"], false, Type.ICE).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VOLKNER"], true, Type.ELECTRIC).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CILAN"], true, Type.GRASS).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHILI"], true, Type.FIRE).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRESS"], true, Type.WATER).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHEREN"], true, Type.NORMAL).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LENORA"], false, Type.NORMAL).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXIE"], false, Type.POISON).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BURGH"], true, Type.BUG).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ELESA"], false, Type.ELECTRIC).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAY"], true, Type.GROUND).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SKYLA"], false, Type.FLYING).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRYCEN"], true, Type.ICE).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["DRAYDEN"], true, Type.DRAGON).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MARLON"], true, Type.WATER).setMixedBattleBgm("battle_unova_gym"), - [TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VIOLA"], false, Type.BUG).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRANT"], true, Type.ROCK).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KORRINA"], false, Type.FIGHTING).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RAMOS"], true, Type.GRASS).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLEMONT"], true, Type.ELECTRIC).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VALERIE"], false, Type.FAIRY).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OLYMPIA"], false, Type.PSYCHIC).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WULFRIC"], true, Type.ICE).setMixedBattleBgm("battle_kalos_gym"), - [TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MILO"], true, Type.GRASS).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader(signatureSpecies["NESSA"], false, Type.WATER).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KABU"], true, Type.FIRE).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader(signatureSpecies["BEA"], false, Type.FIGHTING).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader(signatureSpecies["ALLISTER"], true, Type.GHOST).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OPAL"], false, Type.FAIRY).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BEDE"], true, Type.FAIRY).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GORDIE"], true, Type.ROCK).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MELONY"], false, Type.ICE).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PIERS"], true, Type.DARK).setHasDouble("piers_marnie_double").setDoubleTrainerType(TrainerType.MARNIE).setDoubleTitle("gym_leader_double").setMixedBattleBgm("battle_galar_gym"), - [TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader(signatureSpecies["MARNIE"], false, Type.DARK).setHasDouble("marnie_piers_double").setDoubleTrainerType(TrainerType.PIERS).setDoubleTitle("gym_leader_double").setMixedBattleBgm("battle_galar_gym"), - [TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader(signatureSpecies["RAIHAN"], true, Type.DRAGON).setMixedBattleBgm("battle_galar_gym"), - [TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KATY"], false, Type.BUG).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRASSIUS"], true, Type.GRASS).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["IONO"], false, Type.ELECTRIC).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KOFU"], true, Type.WATER).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader(signatureSpecies["LARRY"], true, Type.NORMAL).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RYME"], false, Type.GHOST).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TULIP"], false, Type.PSYCHIC).setMixedBattleBgm("battle_paldea_gym"), - [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRUSHA"], true, Type.ICE).setMixedBattleBgm("battle_paldea_gym"), - - [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour(signatureSpecies["LORELEI"], false, Type.ICE).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BRUNO"], true, Type.FIGHTING).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AGATHA"], false, Type.GHOST).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour(signatureSpecies["LANCE"], true, Type.DRAGON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), - [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WILL"], true, Type.PSYCHIC).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA"], true, Type.POISON).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAREN"], false, Type.DARK).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIDNEY"], true, Type.DARK).setMixedBattleBgm("battle_hoenn_elite"), - [TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["PHOEBE"], false, Type.GHOST).setMixedBattleBgm("battle_hoenn_elite"), - [TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GLACIA"], false, Type.ICE).setMixedBattleBgm("battle_hoenn_elite"), - [TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAKE"], true, Type.DRAGON).setMixedBattleBgm("battle_hoenn_elite"), - [TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AARON"], true, Type.BUG).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BERTHA"], false, Type.GROUND).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["FLINT"], true, Type.FIRE).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LUCIAN"], true, Type.PSYCHIC).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), - [TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SHAUNTAL"], false, Type.GHOST).setMixedBattleBgm("battle_unova_elite"), - [TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MARSHAL"], true, Type.FIGHTING).setMixedBattleBgm("battle_unova_elite"), - [TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GRIMSLEY"], true, Type.DARK).setMixedBattleBgm("battle_unova_elite"), - [TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CAITLIN"], false, Type.PSYCHIC).setMixedBattleBgm("battle_unova_elite"), - [TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MALVA"], false, Type.FIRE).setMixedBattleBgm("battle_kalos_elite"), - [TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIEBOLD"], true, Type.WATER).setMixedBattleBgm("battle_kalos_elite"), - [TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WIKSTROM"], true, Type.STEEL).setMixedBattleBgm("battle_kalos_elite"), - [TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRASNA"], false, Type.DRAGON).setMixedBattleBgm("battle_kalos_elite"), - [TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HALA"], true, Type.FIGHTING).setMixedBattleBgm("battle_alola_elite"), - [TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MOLAYNE"], true, Type.STEEL).setMixedBattleBgm("battle_alola_elite"), - [TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["OLIVIA"], false, Type.ROCK).setMixedBattleBgm("battle_alola_elite"), - [TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["ACEROLA"], false, Type.GHOST).setMixedBattleBgm("battle_alola_elite"), - [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAHILI"], false, Type.FLYING).setMixedBattleBgm("battle_alola_elite"), - [TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour(signatureSpecies["MARNIE_ELITE"], false, Type.DARK).setMixedBattleBgm("battle_galar_elite"), - [TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour(signatureSpecies["NESSA_ELITE"], false, Type.WATER).setMixedBattleBgm("battle_galar_elite"), - [TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour(signatureSpecies["BEA_ELITE"], false, Type.FIGHTING).setMixedBattleBgm("battle_galar_elite"), - [TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour(signatureSpecies["ALLISTER_ELITE"], true, Type.GHOST).setMixedBattleBgm("battle_galar_elite"), - [TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour(signatureSpecies["RAIHAN_ELITE"], true, Type.DRAGON).setMixedBattleBgm("battle_galar_elite"), - [TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["RIKA"], false, Type.GROUND).setMixedBattleBgm("battle_paldea_elite"), - [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["POPPY"], false, Type.STEEL).setMixedBattleBgm("battle_paldea_elite"), - [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour(signatureSpecies["LARRY_ELITE"], true, Type.NORMAL, Type.FLYING).setMixedBattleBgm("battle_paldea_elite"), - [TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HASSEL"], true, Type.DRAGON).setMixedBattleBgm("battle_paldea_elite"), - [TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CRISPIN"], true, Type.FIRE).setMixedBattleBgm("battle_bb_elite"), - [TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AMARYS"], false, Type.STEEL).setMixedBattleBgm("battle_bb_elite"), - [TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LACEY"], false, Type.FAIRY).setMixedBattleBgm("battle_bb_elite"), - [TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAYTON"], true, Type.DRAGON).setMixedBattleBgm("battle_bb_elite"), - - [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion(signatureSpecies["BLUE"], true).setBattleBgm("battle_kanto_champion").setMixedBattleBgm("battle_kanto_champion").setHasDouble("blue_red_double").setDoubleTrainerType(TrainerType.RED).setDoubleTitle("champion_double") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ALAKAZAM], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.RED]: new TrainerConfig(++t).initForChampion(signatureSpecies["RED"], true).setBattleBgm("battle_johto_champion").setMixedBattleBgm("battle_johto_champion").setHasDouble("red_blue_double").setDoubleTrainerType(TrainerType.BLUE).setDoubleTitle("champion_double") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PIKACHU], TrainerSlot.TRAINER, true, p => { - p.formIndex = 8; - p.generateAndPopulateMoveset(); - p.generateName(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion(signatureSpecies["LANCE_CHAMPION"], true).setBattleBgm("battle_johto_champion").setMixedBattleBgm("battle_johto_champion") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.AERODACTYL], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.LATIAS, Species.LATIOS], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"], true).setBattleBgm("battle_hoenn_champion_g5").setMixedBattleBgm("battle_hoenn_champion_g6").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SKARMORY], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.METAGROSS], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"], true).setBattleBgm("battle_hoenn_champion_g5").setMixedBattleBgm("battle_hoenn_champion_g6").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PELIPPER], TrainerSlot.TRAINER, true, p => { - p.abilityIndex = 1; // Drizzle - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.SWAMPERT], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - })), - [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(signatureSpecies["CYNTHIA"], false).setBattleBgm("battle_sinnoh_champion").setMixedBattleBgm("battle_sinnoh_champion") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SPIRITOMB], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.GARCHOMP], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"], true).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_champion_alder").setMixedBattleBgm("battle_champion_alder") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BOUFFALANT, Species.BRAVIARY], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })), - [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(signatureSpecies["IRIS"], false).setBattleBgm("battle_champion_iris").setMixedBattleBgm("battle_champion_iris").setHasDouble("iris_alder_double").setDoubleTrainerType(TrainerType.ALDER).setDoubleTitle("champion_double") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.DRUDDIGON], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.LAPRAS], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion(signatureSpecies["DIANTHA"], false).setMixedBattleBgm("battle_kalos_champion") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GOURGEIST], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.GARDEVOIR], TrainerSlot.TRAINER, true, p => { - p.formIndex = 1; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.HAU]: new TrainerConfig(++t).initForChampion(signatureSpecies["HAU"], true).setMixedBattleBgm("battle_alola_champion") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ALOLA_RAICHU], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })), - [TrainerType.LEON]: new TrainerConfig(++t).initForChampion(signatureSpecies["LEON"], true).setMixedBattleBgm("battle_galar_champion") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.RILLABOOM, Species.CINDERACE, Species.INTELEON], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.CHARIZARD], TrainerSlot.TRAINER, true, p => { - p.formIndex = 3; - p.generateAndPopulateMoveset(); - p.generateName(); - })), - [TrainerType.GEETA]: new TrainerConfig(++t).initForChampion(signatureSpecies["GEETA"], false).setMixedBattleBgm("battle_champion_geeta") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GLIMMORA], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })), - [TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion(signatureSpecies["NEMONA"], false).setMixedBattleBgm("battle_champion_nemona") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.LYCANROC], TrainerSlot.TRAINER, true, p => { - p.formIndex = 0; // Midday form - p.generateAndPopulateMoveset(); - })), - [TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion(signatureSpecies["KIERAN"], true).setMixedBattleBgm("battle_champion_kieran") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.POLIWRATH, Species.POLITOED], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - })), - - [TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL) - .setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL], TrainerSlot.TRAINER, true)), - [TrainerType.RIVAL_2]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_2) - .setModifierRewardFuncs(() => modifierTypes.EXP_SHARE) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)), - [TrainerType.RIVAL_3]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_3) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) - .setSpeciesFilter(species => species.baseTotal >= 540), - [TrainerType.RIVAL_4]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(1.75).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival_2").setMixedBattleBgm("battle_rival_2").setPartyTemplates(trainerPartyTemplates.RIVAL_4) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) - .setSpeciesFilter(species => species.baseTotal >= 540) - .setGenModifiersFunc(party => { - const starter = party[0]; - return [modifierTypes.TERA_SHARD().generateType([], [starter.species.type1])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; // TODO: is the bang correct? - }), - [TrainerType.RIVAL_5]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival_3").setMixedBattleBgm("battle_rival_3").setPartyTemplates(trainerPartyTemplates.RIVAL_5) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true, - p => p.setBoss(true, 2))) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) - .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) - .setSpeciesFilter(species => species.baseTotal >= 540) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 3); - p.pokeball = PokeballType.MASTER_BALL; - p.shiny = true; - p.variant = 1; - })) - .setGenModifiersFunc(party => { - const starter = party[0]; - return [modifierTypes.TERA_SHARD().generateType([], [starter.species.type1])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; //TODO: is the bang correct? - }), - [TrainerType.RIVAL_6]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(3).setEncounterBgm("final").setBattleBgm("battle_rival_3").setMixedBattleBgm("battle_rival_3").setPartyTemplates(trainerPartyTemplates.RIVAL_6) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true, - p => { - p.setBoss(true, 3); - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true, - p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) - .setSpeciesFilter(species => species.baseTotal >= 540) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => { - p.setBoss(); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - p.shiny = true; - p.variant = 1; - p.formIndex = 1; - p.generateName(); - })) - .setGenModifiersFunc(party => { - const starter = party[0]; - return [modifierTypes.TERA_SHARD().generateType([], [starter.species.type1])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; // TODO: is the bang correct? - }), - - [TrainerType.ROCKET_BOSS_GIOVANNI_1]: new TrainerConfig(t = TrainerType.ROCKET_BOSS_GIOVANNI_1).setName("Giovanni").initForEvilTeamLeader("Rocket Boss", []).setMixedBattleBgm("battle_rocket_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PERSIAN, Species.ALOLA_PERSIAN])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.NIDOKING, Species.NIDOQUEEN])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.RHYPERIOR])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.DUGTRIO, Species.ALOLA_DUGTRIO])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MAROWAK, Species.ALOLA_MAROWAK])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KANGASKHAN], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })), - [TrainerType.ROCKET_BOSS_GIOVANNI_2]: new TrainerConfig(++t).setName("Giovanni").initForEvilTeamLeader("Rocket Boss", [], true).setMixedBattleBgm("battle_rocket_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.TYRANITAR, Species.IRON_THORNS], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.HIPPOWDON])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.EXCADRILL])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.KANGASKHAN], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.GASTRODON])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.MEWTWO], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.MAXIE]: new TrainerConfig(++t).setName("Maxie").initForEvilTeamLeader("Magma Boss", []).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MIGHTYENA])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.CROBAT, Species.GLISCOR])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.WEEZING, Species.GALAR_WEEZING])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.MAGMORTAR, Species.TORKOAL])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.FLYGON])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CAMERUPT], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })), - [TrainerType.MAXIE_2]: new TrainerConfig(++t).setName("Maxie").initForEvilTeamLeader("Magma Boss", [], true).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SOLROCK, Species.TYPHLOSION], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.TORKOAL, Species.NINETALES], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.abilityIndex = 2; // DROUGHT - })) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SHIFTRY, Species.SCOVILLAIN], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.abilityIndex = 0; // Chlorophyll - })) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GREAT_TUSK])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CAMERUPT], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GROUDON], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.ARCHIE]: new TrainerConfig(++t).setName("Archie").initForEvilTeamLeader("Aqua Boss", []).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.LINOONE])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.CROBAT, Species.PELIPPER])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.MUK, Species.ALOLA_MUK])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TENTACRUEL])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.RELICANTH, Species.WAILORD])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.SHARPEDO], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })), - [TrainerType.ARCHIE_2]: new TrainerConfig(++t).setName("Archie").initForEvilTeamLeader("Aqua Boss", [], true).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.EMPOLEON, Species.LUDICOLO], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.POLITOED, Species.PELIPPER], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.abilityIndex = 2; // Drizzle - })) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.BEARTIC, Species.ARMALDO], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.abilityIndex = 2; // Swift Swim - })) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.OVERQWIL ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.abilityIndex = 1; // Swift Swim - })) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SHARPEDO], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KYOGRE], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.CYRUS]: new TrainerConfig(++t).setName("Cyrus").initForEvilTeamLeader("Galactic Boss", []).setMixedBattleBgm("battle_galactic_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GYARADOS ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.HISUI_BRAVIARY ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.CROBAT, Species.GLISCOR ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.AZELF, Species.UXIE, Species.MESPRIT ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HOUNDOOM ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.WEAVILE], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })), - [TrainerType.CYRUS_2]: new TrainerConfig(++t).setName("Cyrus").initForEvilTeamLeader("Galactic Boss", [], true).setMixedBattleBgm("battle_galactic_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.AZELF, Species.UXIE, Species.MESPRIT], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.ELECTRODE, Species.HISUI_ELECTRODE])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SALAMENCE, Species.ROARING_MOON])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.HOUNDOOM], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.WEAVILE], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.DARKRAI], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.GHETSIS]: new TrainerConfig(++t).setName("Ghetsis").initForEvilTeamLeader("Plasma Boss", []).setMixedBattleBgm("battle_plasma_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.COFAGRIGUS, Species.RUNERIGUS])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.BOUFFALANT])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SEISMITOAD, Species.CARRACOSTA])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.EELEKTROSS, Species.GALVANTULA])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.VOLCARONA])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.HYDREIGON], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })), - [TrainerType.GHETSIS_2]: new TrainerConfig(++t).setName("Ghetsis").initForEvilTeamLeader("Plasma Boss", [], true).setMixedBattleBgm("battle_plasma_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GENESECT ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - p.formIndex = Utils.randSeedInt(5); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.BASCULEGION, Species.JELLICENT ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.gender = Gender.MALE; - p.formIndex = 1; - })) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.KINGAMBIT ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.VOLCARONA, Species.SLITHER_WING ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HYDREIGON, Species.IRON_JUGULIS ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KYUREM], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.LYSANDRE]: new TrainerConfig(++t).setName("Lysandre").initForEvilTeamLeader("Flare Boss", []).setMixedBattleBgm("battle_flare_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.MIENSHAO ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.TALONFLAME ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PYROAR ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.gender = Gender.MALE; - })) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.CLAWITZER, Species.DRAGALGE ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HELIOLISK, Species.MALAMAR ])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.GYARADOS ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })), - [TrainerType.LYSANDRE_2]: new TrainerConfig(++t).setName("Lysandre").initForEvilTeamLeader("Flare Boss", [], true).setMixedBattleBgm("battle_flare_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SCREAM_TAIL, Species.FLUTTER_MANE], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PYROAR ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.gender = Gender.MALE; - })) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.IRON_MOTH ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GOODRA, Species.HISUI_GOODRA ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.GYARADOS ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.ULTRA_BALL; - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.YVELTAL], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.LUSAMINE]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss", []).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLEFABLE ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.LILLIGANT, Species.HISUI_LILLIGANT ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.MILOTIC, Species.PRIMARINA ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.BEWEAR ])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.NIHILEGO ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - })), - [TrainerType.LUSAMINE_2]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss", [], true).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLEFABLE ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.MILOTIC, Species.PRIMARINA ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PHEROMOSA ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.STAKATAKA, Species.CELESTEELA, Species.GUZZLORD ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.NIHILEGO ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.NECROZMA ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.GUZMA]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss", []).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.LOKIX, Species.YANMEGA ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HERACROSS ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SCIZOR, Species.KLEAVOR ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GALVANTULA, Species.VIKAVOLT])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.PINSIR ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.GOLISOPOD ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - })), - [TrainerType.GUZMA_2]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss", [], true).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GOLISOPOD ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.abilityIndex = 2; //Anticipation - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HISUI_SAMUROTT, Species.CRAWDAUNT ], TrainerSlot.TRAINER, true, p => { - p.abilityIndex = 2; //Sharpness, Adaptability - })) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SCIZOR, Species.KLEAVOR ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.PINSIR ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.formIndex = 1; - p.generateName(); - })) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.BUZZWOLE ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.XURKITREE ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })), - [TrainerType.ROSE]: new TrainerConfig(++t).setName("Rose").initForEvilTeamLeader("Macro Boss", []).setMixedBattleBgm("battle_macro_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.ARCHALUDON ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.FERROTHORN, Species.ESCAVALIER ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SIRFETCHD, Species.MR_RIME ])) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.CORVIKNIGHT ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.PERRSERKER, Species.KLINKLANG ])) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.COPPERAJAH ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.formIndex = 1; - p.generateName(); - })), - [TrainerType.ROSE_2]: new TrainerConfig(++t).setName("Rose").initForEvilTeamLeader("Macro Boss", [], true).setMixedBattleBgm("battle_macro_boss").setVictoryBgm("victory_team_plasma") - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.ARCHALUDON ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - })) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.AEGISLASH, Species.GHOLDENGO ])) - .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.DRACOVISH, Species.DRACOZOLT ], TrainerSlot.TRAINER, true, p => { - p.generateAndPopulateMoveset(); - p.abilityIndex = 1; //Strong Jaw, Hustle - })) - .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.MELMETAL ])) - .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.GALAR_ARTICUNO, Species.GALAR_ZAPDOS, Species.GALAR_MOLTRES ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.COPPERAJAH ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.formIndex = 1; - p.generateName(); - })), -}; +import BattleScene, {startingWave} from "../battle-scene"; +import {ModifierTypeFunc, modifierTypes} from "../modifier/modifier-type"; +import {EnemyPokemon} from "../field/pokemon"; +import * as Utils from "../utils"; +import {PokeballType} from "./pokeball"; +import {pokemonEvolutions, pokemonPrevolutions} from "./pokemon-evolutions"; +import PokemonSpecies, {getPokemonSpecies, PokemonSpeciesFilter} from "./pokemon-species"; +import {tmSpecies} from "./tms"; +import {Type} from "./type"; +import {doubleBattleDialogue} from "./dialogue"; +import {PersistentModifier} from "../modifier/modifier"; +import {TrainerVariant} from "../field/trainer"; +import {getIsInitialized, initI18n} from "#app/plugins/i18n"; +import i18next from "i18next"; +import {Moves} from "#enums/moves"; +import {PartyMemberStrength} from "#enums/party-member-strength"; +import {Species} from "#enums/species"; +import {TrainerType} from "#enums/trainer-type"; +import {Gender} from "./gender"; + +export enum TrainerPoolTier { + COMMON, + UNCOMMON, + RARE, + SUPER_RARE, + ULTRA_RARE +} + +export interface TrainerTierPools { + [key: integer]: Species[] +} + +export enum TrainerSlot { + NONE, + TRAINER, + TRAINER_PARTNER +} + +export class TrainerPartyTemplate { + public size: integer; + public strength: PartyMemberStrength; + public sameSpecies: boolean; + public balanced: boolean; + + constructor(size: integer, strength: PartyMemberStrength, sameSpecies?: boolean, balanced?: boolean) { + this.size = size; + this.strength = strength; + this.sameSpecies = !!sameSpecies; + this.balanced = !!balanced; + } + + getStrength(index: integer): PartyMemberStrength { + return this.strength; + } + + isSameSpecies(index: integer): boolean { + return this.sameSpecies; + } + + isBalanced(index: integer): boolean { + return this.balanced; + } +} + +export class TrainerPartyCompoundTemplate extends TrainerPartyTemplate { + public templates: TrainerPartyTemplate[]; + + constructor(...templates: TrainerPartyTemplate[]) { + super(templates.reduce((total: integer, template: TrainerPartyTemplate) => { + total += template.size; + return total; + }, 0), PartyMemberStrength.AVERAGE); + this.templates = templates; + } + + getStrength(index: integer): PartyMemberStrength { + let t = 0; + for (const template of this.templates) { + if (t + template.size > index) { + return template.getStrength(index - t); + } + t += template.size; + } + + return super.getStrength(index); + } + + isSameSpecies(index: integer): boolean { + let t = 0; + for (const template of this.templates) { + if (t + template.size > index) { + return template.isSameSpecies(index - t); + } + t += template.size; + } + + return super.isSameSpecies(index); + } + + isBalanced(index: integer): boolean { + let t = 0; + for (const template of this.templates) { + if (t + template.size > index) { + return template.isBalanced(index - t); + } + t += template.size; + } + + return super.isBalanced(index); + } +} + +export const trainerPartyTemplates = { + ONE_WEAK_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.WEAK), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + ONE_AVG: new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), + ONE_AVG_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + ONE_STRONG: new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), + ONE_STRONGER: new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER), + TWO_WEAKER: new TrainerPartyTemplate(2, PartyMemberStrength.WEAKER), + TWO_WEAK: new TrainerPartyTemplate(2, PartyMemberStrength.WEAK), + TWO_WEAK_ONE_AVG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), + TWO_WEAK_SAME_ONE_AVG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK, true), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), + TWO_WEAK_SAME_TWO_WEAK_SAME: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK, true), new TrainerPartyTemplate(2, PartyMemberStrength.WEAK, true)), + TWO_WEAK_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.WEAK), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + TWO_AVG: new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), + TWO_AVG_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + TWO_AVG_SAME_ONE_AVG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), + TWO_AVG_SAME_ONE_STRONG: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + TWO_AVG_SAME_TWO_AVG_SAME: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true), new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, true)), + TWO_STRONG: new TrainerPartyTemplate(2, PartyMemberStrength.STRONG), + THREE_WEAK: new TrainerPartyTemplate(3, PartyMemberStrength.WEAK), + THREE_WEAK_SAME: new TrainerPartyTemplate(3, PartyMemberStrength.WEAK, true), + THREE_AVG: new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), + THREE_AVG_SAME: new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE, true), + THREE_WEAK_BALANCED: new TrainerPartyTemplate(3, PartyMemberStrength.WEAK, false, true), + FOUR_WEAKER: new TrainerPartyTemplate(4, PartyMemberStrength.WEAKER), + FOUR_WEAKER_SAME: new TrainerPartyTemplate(4, PartyMemberStrength.WEAKER, true), + FOUR_WEAK: new TrainerPartyTemplate(4, PartyMemberStrength.WEAK), + FOUR_WEAK_SAME: new TrainerPartyTemplate(4, PartyMemberStrength.WEAK, true), + FOUR_WEAK_BALANCED: new TrainerPartyTemplate(4, PartyMemberStrength.WEAK, false, true), + FIVE_WEAKER: new TrainerPartyTemplate(5, PartyMemberStrength.WEAKER), + FIVE_WEAK: new TrainerPartyTemplate(5, PartyMemberStrength.WEAK), + FIVE_WEAK_BALANCED: new TrainerPartyTemplate(5, PartyMemberStrength.WEAK, false, true), + SIX_WEAKER: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER), + SIX_WEAKER_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER, true), + SIX_WEAK_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, true), + SIX_WEAK_BALANCED: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, false, true), + + GYM_LEADER_1: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + GYM_LEADER_2: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), + GYM_LEADER_3: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), + GYM_LEADER_4: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), + GYM_LEADER_5: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(2, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), + + ELITE_FOUR: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(3, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)), + + CHAMPION: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER), new TrainerPartyTemplate(5, PartyMemberStrength.STRONG, false, true)), + + RIVAL: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE)), + RIVAL_2: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.WEAK, false, true)), + RIVAL_3: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.WEAK, false, true)), + RIVAL_4: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(2, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.WEAK, false, true)), + RIVAL_5: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)), + RIVAL_6: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.STRONG), new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE, false, true), new TrainerPartyTemplate(1, PartyMemberStrength.STRONGER)) +}; + +type PartyTemplateFunc = (scene: BattleScene) => TrainerPartyTemplate; +type PartyMemberFunc = (scene: BattleScene, level: integer, strength: PartyMemberStrength) => EnemyPokemon; +type GenModifiersFunc = (party: EnemyPokemon[]) => PersistentModifier[]; + +export interface PartyMemberFuncs { + [key: integer]: PartyMemberFunc +} + +export class TrainerConfig { + public trainerType: TrainerType; + public trainerTypeDouble: TrainerType; + public name: string; + public nameFemale: string; + public nameDouble: string; + public title: string; + public titleDouble: string; + public hasGenders: boolean = false; + public hasDouble: boolean = false; + public hasCharSprite: boolean = false; + public doubleOnly: boolean = false; + public moneyMultiplier: number = 1; + public isBoss: boolean = false; + public hasStaticParty: boolean = false; + public useSameSeedForAllMembers: boolean = false; + public mixedBattleBgm: string; + public battleBgm: string; + public encounterBgm: string; + public femaleEncounterBgm: string; + public doubleEncounterBgm: string; + public victoryBgm: string; + public genModifiersFunc: GenModifiersFunc; + public modifierRewardFuncs: ModifierTypeFunc[] = []; + public partyTemplates: TrainerPartyTemplate[]; + public partyTemplateFunc: PartyTemplateFunc; + public partyMemberFuncs: PartyMemberFuncs = {}; + public speciesPools: TrainerTierPools; + public speciesFilter: PokemonSpeciesFilter; + public specialtyTypes: Type[] = []; + public hasVoucher: boolean = false; + + public encounterMessages: string[] = []; + public victoryMessages: string[] = []; + public defeatMessages: string[] = []; + + public femaleEncounterMessages: string[]; + public femaleVictoryMessages: string[]; + public femaleDefeatMessages: string[]; + + public doubleEncounterMessages: string[]; + public doubleVictoryMessages: string[]; + public doubleDefeatMessages: string[]; + + constructor(trainerType: TrainerType, allowLegendaries?: boolean) { + this.trainerType = trainerType; + this.name = Utils.toReadableString(TrainerType[this.getDerivedType()]); + this.battleBgm = "battle_trainer"; + this.mixedBattleBgm = "battle_trainer"; + this.victoryBgm = "victory_trainer"; + this.partyTemplates = [trainerPartyTemplates.TWO_AVG]; + this.speciesFilter = species => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden(); + } + + getKey(): string { + return TrainerType[this.getDerivedType()].toString().toLowerCase(); + } + + getSpriteKey(female?: boolean, isDouble: boolean = false): string { + let ret = this.getKey(); + if (this.hasGenders) { + ret += `_${female ? "f" : "m"}`; + } + // If a special double trainer class was set, set it as the sprite key + if (this.trainerTypeDouble && female && isDouble) { + // Get the derived type for the double trainer since the sprite key is based on the derived type + ret = TrainerType[this.getDerivedType(this.trainerTypeDouble)].toString().toLowerCase(); + } + return ret; + } + + setName(name: string): TrainerConfig { + if (name === "Finn") { + // Give the rival a localized name + // First check if i18n is initialized + if (!getIsInitialized()) { + initI18n(); + } + // This is only the male name, because the female name is handled in a different function (setHasGenders) + if (name === "Finn") { + name = i18next.t("trainerNames:rival"); + } + } + this.name = name; + return this; + } + + /** + * Sets if a boss trainer will have a voucher or not. + * @param hasVoucher - If the boss trainer will have a voucher. + */ + setHasVoucher(hasVoucher: boolean): void { + this.hasVoucher = hasVoucher; + } + + setTitle(title: string): TrainerConfig { + // First check if i18n is initialized + if (!getIsInitialized()) { + initI18n(); + } + + // Make the title lowercase and replace spaces with underscores + title = title.toLowerCase().replace(/\s/g, "_"); + + // Get the title from the i18n file + this.title = i18next.t(`titles:${title}`); + + + return this; + } + + + /** + * Returns the derived trainer type for a given trainer type. + * @param trainerTypeToDeriveFrom - The trainer type to derive from. (If null, the this.trainerType property will be used.) + * @returns {TrainerType} - The derived trainer type. + */ + getDerivedType(trainerTypeToDeriveFrom: TrainerType | null = null): TrainerType { + let trainerType = trainerTypeToDeriveFrom ? trainerTypeToDeriveFrom : this.trainerType; + switch (trainerType) { + case TrainerType.RIVAL_2: + case TrainerType.RIVAL_3: + case TrainerType.RIVAL_4: + case TrainerType.RIVAL_5: + case TrainerType.RIVAL_6: + trainerType = TrainerType.RIVAL; + break; + case TrainerType.LANCE_CHAMPION: + trainerType = TrainerType.LANCE; + break; + case TrainerType.LARRY_ELITE: + trainerType = TrainerType.LARRY; + break; + case TrainerType.ROCKET_BOSS_GIOVANNI_1: + case TrainerType.ROCKET_BOSS_GIOVANNI_2: + trainerType = TrainerType.GIOVANNI; + break; + case TrainerType.MAXIE_2: + trainerType = TrainerType.MAXIE; + break; + case TrainerType.ARCHIE_2: + trainerType = TrainerType.ARCHIE; + break; + case TrainerType.CYRUS_2: + trainerType = TrainerType.CYRUS; + break; + case TrainerType.GHETSIS_2: + trainerType = TrainerType.GHETSIS; + break; + case TrainerType.LYSANDRE_2: + trainerType = TrainerType.LYSANDRE; + break; + case TrainerType.LUSAMINE_2: + trainerType = TrainerType.LUSAMINE; + break; + case TrainerType.GUZMA_2: + trainerType = TrainerType.GUZMA; + break; + case TrainerType.ROSE_2: + trainerType = TrainerType.ROSE; + break; + case TrainerType.MARNIE_ELITE: + trainerType = TrainerType.MARNIE; + break; + case TrainerType.NESSA_ELITE: + trainerType = TrainerType.NESSA; + break; + case TrainerType.BEA_ELITE: + trainerType = TrainerType.BEA; + break; + case TrainerType.ALLISTER_ELITE: + trainerType = TrainerType.ALLISTER; + break; + case TrainerType.RAIHAN_ELITE: + trainerType = TrainerType.RAIHAN; + break; + } + + return trainerType; + } + + /** + * Sets the configuration for trainers with genders, including the female name and encounter background music (BGM). + * @param {string} [nameFemale] - The name of the female trainer. If 'Ivy', a localized name will be assigned. + * @param {TrainerType | string} [femaleEncounterBgm] - The encounter BGM for the female trainer, which can be a TrainerType or a string. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + **/ + setHasGenders(nameFemale?: string, femaleEncounterBgm?: TrainerType | string): TrainerConfig { + // If the female name is 'Ivy' (the rival), assign a localized name. + if (nameFemale === "Ivy") { + // Check if the internationalization (i18n) system is initialized. + if (!getIsInitialized()) { + // Initialize the i18n system if it is not already initialized. + initI18n(); + } + // Set the localized name for the female rival. + this.nameFemale = i18next.t("trainerNames:rival_female"); + } else { + // Otherwise, assign the provided female name. + this.nameFemale = nameFemale!; // TODO: is this bang correct? + } + + // Indicate that this trainer configuration includes genders. + this.hasGenders = true; + + // If a female encounter BGM is provided. + if (femaleEncounterBgm) { + // If the BGM is a TrainerType (number), convert it to a string, replace underscores with spaces, and convert to lowercase. + // Otherwise, assign the provided string as the BGM. + this.femaleEncounterBgm = typeof femaleEncounterBgm === "number" + ? TrainerType[femaleEncounterBgm].toString().replace(/_/g, " ").toLowerCase() + : femaleEncounterBgm; + } + + // Return the updated TrainerConfig instance. + return this; + } + + /** + * Sets the configuration for trainers with double battles, including the name of the double trainer and the encounter BGM. + * @param nameDouble - The name of the double trainer (e.g., "Ace Duo" for Trainer Class Doubles or "red_blue_double" for NAMED trainer doubles). + * @param doubleEncounterBgm - The encounter BGM for the double trainer, which can be a TrainerType or a string. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + */ + setHasDouble(nameDouble: string, doubleEncounterBgm?: TrainerType | string): TrainerConfig { + this.hasDouble = true; + this.nameDouble = nameDouble; + if (doubleEncounterBgm) { + this.doubleEncounterBgm = typeof doubleEncounterBgm === "number" ? TrainerType[doubleEncounterBgm].toString().replace(/\_/g, " ").toLowerCase() : doubleEncounterBgm; + } + return this; + } + + /** + * Sets the trainer type for double battles. + * @param trainerTypeDouble - The TrainerType of the partner in a double battle. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + */ + setDoubleTrainerType(trainerTypeDouble: TrainerType): TrainerConfig { + this.trainerTypeDouble = trainerTypeDouble; + this.setDoubleMessages(this.nameDouble); + return this; + } + + /** + * Sets the encounter and victory messages for double trainers. + * @param nameDouble - The name of the pair (e.g. "red_blue_double"). + */ + setDoubleMessages(nameDouble: string) { + // Check if there is double battle dialogue for this trainer + if (doubleBattleDialogue[nameDouble]) { + // Set encounter and victory messages for double trainers + this.doubleEncounterMessages = doubleBattleDialogue[nameDouble].encounter; + this.doubleVictoryMessages = doubleBattleDialogue[nameDouble].victory; + this.doubleDefeatMessages = doubleBattleDialogue[nameDouble].defeat; + } + } + + /** + * Sets the title for double trainers + * @param titleDouble - the key for the title in the i18n file. (e.g., "champion_double"). + * @returns {TrainerConfig} - The updated TrainerConfig instance. + */ + setDoubleTitle(titleDouble: string): TrainerConfig { + // First check if i18n is initialized + if (!getIsInitialized()) { + initI18n(); + } + + // Make the title lowercase and replace spaces with underscores + titleDouble = titleDouble.toLowerCase().replace(/\s/g, "_"); + + // Get the title from the i18n file + this.titleDouble = i18next.t(`titles:${titleDouble}`); + + return this; + } + + setHasCharSprite(): TrainerConfig { + this.hasCharSprite = true; + return this; + } + + setDoubleOnly(): TrainerConfig { + this.doubleOnly = true; + return this; + } + + setMoneyMultiplier(moneyMultiplier: number): TrainerConfig { + this.moneyMultiplier = moneyMultiplier; + return this; + } + + setBoss(): TrainerConfig { + this.isBoss = true; + return this; + } + + setStaticParty(): TrainerConfig { + this.hasStaticParty = true; + return this; + } + + setUseSameSeedForAllMembers(): TrainerConfig { + this.useSameSeedForAllMembers = true; + return this; + } + + setMixedBattleBgm(mixedBattleBgm: string): TrainerConfig { + this.mixedBattleBgm = mixedBattleBgm; + return this; + } + + setBattleBgm(battleBgm: string): TrainerConfig { + this.battleBgm = battleBgm; + return this; + } + + setEncounterBgm(encounterBgm: TrainerType | string): TrainerConfig { + this.encounterBgm = typeof encounterBgm === "number" ? TrainerType[encounterBgm].toString().toLowerCase() : encounterBgm; + return this; + } + + setVictoryBgm(victoryBgm: string): TrainerConfig { + this.victoryBgm = victoryBgm; + return this; + } + + setPartyTemplates(...partyTemplates: TrainerPartyTemplate[]): TrainerConfig { + this.partyTemplates = partyTemplates; + return this; + } + + setPartyTemplateFunc(partyTemplateFunc: PartyTemplateFunc): TrainerConfig { + this.partyTemplateFunc = partyTemplateFunc; + return this; + } + + setPartyMemberFunc(slotIndex: integer, partyMemberFunc: PartyMemberFunc): TrainerConfig { + this.partyMemberFuncs[slotIndex] = partyMemberFunc; + return this; + } + + setSpeciesPools(speciesPools: TrainerTierPools | Species[]): TrainerConfig { + this.speciesPools = (Array.isArray(speciesPools) ? {[TrainerPoolTier.COMMON]: speciesPools} : speciesPools) as unknown as TrainerTierPools; + return this; + } + + setSpeciesFilter(speciesFilter: PokemonSpeciesFilter, allowLegendaries?: boolean): TrainerConfig { + const baseFilter = this.speciesFilter; + this.speciesFilter = allowLegendaries ? speciesFilter : species => speciesFilter(species) && baseFilter(species); + return this; + } + + setSpecialtyTypes(...specialtyTypes: Type[]): TrainerConfig { + this.specialtyTypes = specialtyTypes; + return this; + } + + setGenModifiersFunc(genModifiersFunc: GenModifiersFunc): TrainerConfig { + this.genModifiersFunc = genModifiersFunc; + return this; + } + + setModifierRewardFuncs(...modifierTypeFuncs: (() => ModifierTypeFunc)[]): TrainerConfig { + this.modifierRewardFuncs = modifierTypeFuncs.map(func => () => { + const modifierTypeFunc = func(); + const modifierType = modifierTypeFunc(); + modifierType.withIdFromFunc(modifierTypeFunc); + return modifierType; + }); + return this; + } + + /** + * Returns the pool of species for an evil team admin + * @param team - The evil team the admin belongs to. + * @returns {TrainerTierPools} + */ + speciesPoolPerEvilTeamAdmin(team): TrainerTierPools { + team = team.toLowerCase(); + switch (team) { + case "rocket": { + return { + [TrainerPoolTier.COMMON]: [Species.RATTATA, Species.KOFFING, Species.EKANS, Species.GYARADOS, Species.TAUROS, Species.SCYTHER, Species.CUBONE, Species.GROWLITHE, Species.MURKROW, Species.GASTLY, Species.EXEGGCUTE, Species.VOLTORB], + [TrainerPoolTier.UNCOMMON]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE], + [TrainerPoolTier.RARE]: [Species.DRATINI, Species.LARVITAR] + }; + } + case "magma": { + return { + [TrainerPoolTier.COMMON]: [Species.NUMEL, Species.POOCHYENA, Species.SLUGMA, Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.ROLYCOLY, Species.GLIGAR], + [TrainerPoolTier.UNCOMMON]: [Species.TRAPINCH, Species.HEATMOR], + [TrainerPoolTier.RARE]: [Species.CAPSAKID, Species.CHARCADET] + }; + } + case "aqua": { + return { + [TrainerPoolTier.COMMON]: [Species.CARVANHA, Species.CORPHISH, Species.ZIGZAGOON, Species.CLAMPERL, Species.CHINCHOU, Species.WOOPER, Species.WINGULL, Species.TENTACOOL, Species.QWILFISH], + [TrainerPoolTier.UNCOMMON]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA], + [TrainerPoolTier.RARE]: [Species.DONDOZO] + }; + } + case "galactic": { + return { + [TrainerPoolTier.COMMON]: [Species.GLAMEOW, Species.STUNKY, Species.BRONZOR, Species.CARNIVINE, Species.GROWLITHE, Species.QWILFISH, Species.SNEASEL], + [TrainerPoolTier.UNCOMMON]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL], + [TrainerPoolTier.RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO] + }; + } + case "plasma": { + return { + [TrainerPoolTier.COMMON]: [Species.SCRAFTY, Species.LILLIPUP, Species.PURRLOIN, Species.FRILLISH, Species.VENIPEDE, Species.GOLETT, Species.TIMBURR, Species.DARUMAKA, Species.AMOONGUSS], + [TrainerPoolTier.UNCOMMON]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK], + [TrainerPoolTier.RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT] + }; + } + case "flare": { + return { + [TrainerPoolTier.COMMON]: [Species.FLETCHLING, Species.LITLEO, Species.INKAY, Species.HELIOPTILE, Species.ELECTRIKE, Species.SKRELP, Species.GULPIN, Species.PURRLOIN, Species.POOCHYENA, Species.SCATTERBUG], + [TrainerPoolTier.UNCOMMON]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD], + [TrainerPoolTier.RARE]: [Species.NOIVERN, Species.DRUDDIGON] + }; + } + case "aether": { + return { + [TrainerPoolTier.COMMON]: [ Species.BRUXISH, Species.SLOWPOKE, Species.BALTOY, Species.EXEGGCUTE, Species.ABRA, Species.ALOLA_RAICHU, Species.ELGYEM, Species.NATU], + [TrainerPoolTier.UNCOMMON]: [Species.GALAR_SLOWKING, Species.MEDITITE, Species.BELDUM, Species.ORANGURU, Species.HATTERENE, Species.INKAY, Species.RALTS], + [TrainerPoolTier.RARE]: [Species.ARMAROUGE, Species.GIRAFARIG, Species.PORYGON] + }; + } + case "skull": { + return { + [TrainerPoolTier.COMMON]: [ Species.MAREANIE, Species.ALOLA_GRIMER, Species.GASTLY, Species.ZUBAT, Species.LURANTIS, Species.VENIPEDE, Species.BUDEW, Species.KOFFING], + [TrainerPoolTier.UNCOMMON]: [Species.GALAR_SLOWBRO, Species.SKORUPI, Species.PALDEA_WOOPER, Species.NIDORAN_F, Species.CROAGUNK, Species.MANDIBUZZ], + [TrainerPoolTier.RARE]: [Species.DRAGALGE, Species.HISUI_SNEASEL] + }; + } + case "macro": { + return { + [TrainerPoolTier.COMMON]: [ Species.HATTERENE, Species.MILOTIC, Species.TSAREENA, Species.SALANDIT, Species.GALAR_PONYTA, Species.GOTHITA, Species.FROSLASS], + [TrainerPoolTier.UNCOMMON]: [Species.MANDIBUZZ, Species.MAREANIE, Species.ALOLA_VULPIX, Species.TOGEPI, Species.GALAR_CORSOLA, Species.SINISTEA, Species.APPLIN], + [TrainerPoolTier.RARE]: [Species.TINKATINK, Species.HISUI_LILLIGANT] + }; + } + } + + console.warn(`Evil team admin for ${team} not found. Returning empty species pools.`); + return []; + } + + /** + * Initializes the trainer configuration for an evil team admin. + * @param title - The title of the evil team admin. + * @param poolName - The evil team the admin belongs to. + * @param {Species | Species[]} signatureSpecies - The signature species for the evil team leader. + * @returns {TrainerConfig} - The updated TrainerConfig instance. + * **/ + initForEvilTeamAdmin(title: string, poolName: string, signatureSpecies: (Species | Species[])[],): TrainerConfig { + if (!getIsInitialized()) { + initI18n(); + } + this.setPartyTemplates(trainerPartyTemplates.RIVAL_5); + + // Set the species pools for the evil team admin. + this.speciesPools = this.speciesPoolPerEvilTeamAdmin(poolName); + + signatureSpecies.forEach((speciesPool, s) => { + if (!Array.isArray(speciesPool)) { + speciesPool = [speciesPool]; + } + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + + const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + this.name = i18next.t(`trainerNames:${nameForCall}`); + this.setHasVoucher(false); + this.setTitle(title); + this.setMoneyMultiplier(1.5); + this.setBoss(); + this.setStaticParty(); + this.setBattleBgm("battle_plasma_boss"); + this.setVictoryBgm("victory_team_plasma"); + + return this; + } + + /** + * Initializes the trainer configuration for an evil team leader. Temporarily hardcoding evil leader teams though. + * @param {Species | Species[]} signatureSpecies - The signature species for the evil team leader. + * @param {Type[]} specialtyTypes - The specialty types for the evil team Leader. + * @param boolean whether or not this is the rematch fight + * @returns {TrainerConfig} - The updated TrainerConfig instance. + * **/ + initForEvilTeamLeader(title: string, signatureSpecies: (Species | Species[])[], rematch: boolean = false, ...specialtyTypes: Type[]): TrainerConfig { + if (!getIsInitialized()) { + initI18n(); + } + if (rematch) { + this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR); + } else { + this.setPartyTemplates(trainerPartyTemplates.RIVAL_5); + } + signatureSpecies.forEach((speciesPool, s) => { + if (!Array.isArray(speciesPool)) { + speciesPool = [speciesPool]; + } + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + if (specialtyTypes.length) { + this.setSpeciesFilter(p => specialtyTypes.find(t => p.isOfType(t)) !== undefined); + this.setSpecialtyTypes(...specialtyTypes); + } + const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + this.name = i18next.t(`trainerNames:${nameForCall}`); + this.setTitle(title); + this.setMoneyMultiplier(2.5); + this.setBoss(); + this.setStaticParty(); + this.setHasVoucher(true); + this.setBattleBgm("battle_plasma_boss"); + this.setVictoryBgm("victory_team_plasma"); + + return this; + } + + /** + * Initializes the trainer configuration for a Gym Leader. + * @param {Species | Species[]} signatureSpecies - The signature species for the Gym Leader. + * @param {Type[]} specialtyTypes - The specialty types for the Gym Leader. + * @param isMale - Whether the Gym Leader is Male or Not (for localization of the title). + * @returns {TrainerConfig} - The updated TrainerConfig instance. + * **/ + initForGymLeader(signatureSpecies: (Species | Species[])[], isMale: boolean, ...specialtyTypes: Type[]): TrainerConfig { + // Check if the internationalization (i18n) system is initialized. + if (!getIsInitialized()) { + initI18n(); + } + + // Set the function to generate the Gym Leader's party template. + this.setPartyTemplateFunc(getGymLeaderPartyTemplate); + + // Set up party members with their corresponding species. + signatureSpecies.forEach((speciesPool, s) => { + // Ensure speciesPool is an array. + if (!Array.isArray(speciesPool)) { + speciesPool = [speciesPool]; + } + // Set a function to get a random party member from the species pool. + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + + // If specialty types are provided, set species filter and specialty types. + if (specialtyTypes.length) { + this.setSpeciesFilter(p => specialtyTypes.find(t => p.isOfType(t)) !== undefined); + this.setSpecialtyTypes(...specialtyTypes); + } + + // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. + const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + this.name = i18next.t(`trainerNames:${nameForCall}`); + + // Set the title to "gym_leader". (this is the key in the i18n file) + this.setTitle("gym_leader"); + if (!isMale) { + this.setTitle("gym_leader_female"); + } + + // Configure various properties for the Gym Leader. + this.setMoneyMultiplier(2.5); + this.setBoss(); + this.setStaticParty(); + this.setHasVoucher(true); + this.setBattleBgm("battle_unova_gym"); + this.setVictoryBgm("victory_gym"); + this.setGenModifiersFunc(party => { + const waveIndex = party[0].scene.currentBattle.waveIndex; + return getRandomTeraModifiers(party, waveIndex >= 100 ? 1 : 0, specialtyTypes.length ? specialtyTypes : undefined); + }); + + return this; + } + + /** + * Initializes the trainer configuration for an Elite Four member. + * @param {Species | Species[]} signatureSpecies - The signature species for the Elite Four member. + * @param {Type[]} specialtyTypes - The specialty types for the Elite Four member. + * @param isMale - Whether the Elite Four Member is Male or Female (for localization of the title). + * @returns {TrainerConfig} - The updated TrainerConfig instance. + **/ + initForEliteFour(signatureSpecies: (Species | Species[])[], isMale: boolean, ...specialtyTypes: Type[]): TrainerConfig { + // Check if the internationalization (i18n) system is initialized. + if (!getIsInitialized()) { + initI18n(); + } + + // Set the party templates for the Elite Four. + this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR); + + // Set up party members with their corresponding species. + signatureSpecies.forEach((speciesPool, s) => { + // Ensure speciesPool is an array. + if (!Array.isArray(speciesPool)) { + speciesPool = [speciesPool]; + } + // Set a function to get a random party member from the species pool. + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + + // Set species filter and specialty types if provided, otherwise filter by base total. + if (specialtyTypes.length) { + this.setSpeciesFilter(p => specialtyTypes.some(t => p.isOfType(t)) && p.baseTotal >= 450); + this.setSpecialtyTypes(...specialtyTypes); + } else { + this.setSpeciesFilter(p => p.baseTotal >= 450); + } + + // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. + const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + this.name = i18next.t(`trainerNames:${nameForCall}`); + + // Set the title to "elite_four". (this is the key in the i18n file) + this.setTitle("elite_four"); + if (!isMale) { + this.setTitle("elite_four_female"); + } + + // Configure various properties for the Elite Four member. + this.setMoneyMultiplier(3.25); + this.setBoss(); + this.setStaticParty(); + this.setHasVoucher(true); + this.setBattleBgm("battle_unova_elite"); + this.setVictoryBgm("victory_gym"); + this.setGenModifiersFunc(party => getRandomTeraModifiers(party, 2, specialtyTypes.length ? specialtyTypes : undefined)); + + return this; + } + + /** + * Initializes the trainer configuration for a Champion. + * @param {Species | Species[]} signatureSpecies - The signature species for the Champion. + * @param isMale - Whether the Champion is Male or Female (for localization of the title). + * @returns {TrainerConfig} - The updated TrainerConfig instance. + **/ + initForChampion(signatureSpecies: (Species | Species[])[], isMale: boolean): TrainerConfig { + // Check if the internationalization (i18n) system is initialized. + if (!getIsInitialized()) { + initI18n(); + } + + // Set the party templates for the Champion. + this.setPartyTemplates(trainerPartyTemplates.CHAMPION); + + // Set up party members with their corresponding species. + signatureSpecies.forEach((speciesPool, s) => { + // Ensure speciesPool is an array. + if (!Array.isArray(speciesPool)) { + speciesPool = [speciesPool]; + } + // Set a function to get a random party member from the species pool. + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + + // Set species filter to only include species with a base total of 470 or higher. + this.setSpeciesFilter(p => p.baseTotal >= 470); + + // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. + const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + this.name = i18next.t(`trainerNames:${nameForCall}`); + + // Set the title to "champion". (this is the key in the i18n file) + this.setTitle("champion"); + if (!isMale) { + this.setTitle("champion_female"); + } + + + // Configure various properties for the Champion. + this.setMoneyMultiplier(10); + this.setBoss(); + this.setStaticParty(); + this.setHasVoucher(true); + this.setBattleBgm("battle_champion_alder"); + this.setVictoryBgm("victory_champion"); + this.setGenModifiersFunc(party => getRandomTeraModifiers(party, 3)); + + return this; + } + + /** + * Retrieves the title for the trainer based on the provided trainer slot and variant. + * @param {TrainerSlot} trainerSlot - The slot to determine which title to use. Defaults to TrainerSlot.NONE. + * @param {TrainerVariant} variant - The variant of the trainer to determine the specific title. + * @returns {string} - The title of the trainer. + **/ + getTitle(trainerSlot: TrainerSlot = TrainerSlot.NONE, variant: TrainerVariant): string { + const ret = this.name; + + // Check if the variant is double and the name for double exists + if (!trainerSlot && variant === TrainerVariant.DOUBLE && this.nameDouble) { + return this.nameDouble; + } + + // Female variant + if (this.hasGenders) { + // If the name is already set + if (this.nameFemale) { + // Check if the variant is either female or this is for the partner in a double battle + if (variant === TrainerVariant.FEMALE || (variant === TrainerVariant.DOUBLE && trainerSlot === TrainerSlot.TRAINER_PARTNER)) { + return this.nameFemale; + } + } else + // Check if !variant is true, if so return the name, else return the name with _female appended + if (variant) { + if (!getIsInitialized()) { + initI18n(); + } + // Check if the female version exists in the i18n file + if (i18next.exists(`trainerClasses:${this.name.toLowerCase()}`)) { + // If it does, return + return ret + "_female"; + } else { + // If it doesn't, we do not do anything and go to the normal return + // This is to prevent the game from displaying an error if a female version of the trainer does not exist in the localization + } + } + } + + return ret; + } + + loadAssets(scene: BattleScene, variant: TrainerVariant): Promise { + return new Promise(resolve => { + const isDouble = variant === TrainerVariant.DOUBLE; + const trainerKey = this.getSpriteKey(variant === TrainerVariant.FEMALE, false); + const partnerTrainerKey = this.getSpriteKey(true, true); + scene.loadAtlas(trainerKey, "trainer"); + if (isDouble) { + scene.loadAtlas(partnerTrainerKey, "trainer"); + } + scene.load.once(Phaser.Loader.Events.COMPLETE, () => { + const originalWarn = console.warn; + // Ignore warnings for missing frames, because there will be a lot + console.warn = () => { + }; + const frameNames = scene.anims.generateFrameNames(trainerKey, { + zeroPad: 4, + suffix: ".png", + start: 1, + end: 128 + }); + const partnerFrameNames = isDouble + ? scene.anims.generateFrameNames(partnerTrainerKey, { + zeroPad: 4, + suffix: ".png", + start: 1, + end: 128 + }) + : ""; + console.warn = originalWarn; + if (!(scene.anims.exists(trainerKey))) { + scene.anims.create({ + key: trainerKey, + frames: frameNames, + frameRate: 24, + repeat: -1 + }); + } + if (isDouble && !(scene.anims.exists(partnerTrainerKey))) { + scene.anims.create({ + key: partnerTrainerKey, + frames: partnerFrameNames, + frameRate: 24, + repeat: -1 + }); + } + resolve(); + }); + if (!scene.load.isLoading()) { + scene.load.start(); + } + }); + } +} + +let t = 0; + +interface TrainerConfigs { + [key: integer]: TrainerConfig +} + +/** + * The function to get variable strength grunts + * @param scene the singleton scene being passed in + * @returns the correct TrainerPartyTemplate + */ +function getEvilGruntPartyTemplate(scene: BattleScene): TrainerPartyTemplate { + const waveIndex = scene.currentBattle?.waveIndex; + if (waveIndex < 40) { + return trainerPartyTemplates.TWO_AVG; + } else if (waveIndex < 63) { + return trainerPartyTemplates.THREE_AVG; + } else if (waveIndex < 65) { + return trainerPartyTemplates.TWO_AVG_ONE_STRONG; + } else if (waveIndex < 112) { + return trainerPartyTemplates.GYM_LEADER_4; // 3avg 1 strong 1 stronger + } else { + return trainerPartyTemplates.GYM_LEADER_5; // 3 avg 2 strong 1 stronger + } +} + +function getWavePartyTemplate(scene: BattleScene, ...templates: TrainerPartyTemplate[]) { + return templates[Math.min(Math.max(Math.ceil((scene.gameMode.getWaveForDifficulty(scene.currentBattle?.waveIndex || startingWave, true) - 20) / 30), 0), templates.length - 1)]; +} + +function getGymLeaderPartyTemplate(scene: BattleScene) { + return getWavePartyTemplate(scene, trainerPartyTemplates.GYM_LEADER_1, trainerPartyTemplates.GYM_LEADER_2, trainerPartyTemplates.GYM_LEADER_3, trainerPartyTemplates.GYM_LEADER_4, trainerPartyTemplates.GYM_LEADER_5); +} + +function getRandomPartyMemberFunc(speciesPool: Species[], trainerSlot: TrainerSlot = TrainerSlot.TRAINER, ignoreEvolution: boolean = false, postProcess?: (enemyPokemon: EnemyPokemon) => void): PartyMemberFunc { + return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { + let species = Utils.randSeedItem(speciesPool); + if (!ignoreEvolution) { + species = getPokemonSpecies(species).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex); + } + return scene.addEnemyPokemon(getPokemonSpecies(species), level, trainerSlot, undefined, undefined, postProcess); + }; +} + +function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilter, trainerSlot: TrainerSlot = TrainerSlot.TRAINER, allowLegendaries?: boolean, postProcess?: (EnemyPokemon: EnemyPokemon) => void): PartyMemberFunc { + const originalSpeciesFilter = speciesFilter; + speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species); + return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => { + const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex)), level, trainerSlot, undefined, undefined, postProcess); + return ret; + }; +} + +function getRandomTeraModifiers(party: EnemyPokemon[], count: integer, types?: Type[]): PersistentModifier[] { + const ret: PersistentModifier[] = []; + const partyMemberIndexes = new Array(party.length).fill(null).map((_, i) => i); + for (let t = 0; t < Math.min(count, party.length); t++) { + const randomIndex = Utils.randSeedItem(partyMemberIndexes); + partyMemberIndexes.splice(partyMemberIndexes.indexOf(randomIndex), 1); + ret.push(modifierTypes.TERA_SHARD().generateType([], [Utils.randSeedItem(types ? types : party[randomIndex].getTypes())])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(party[randomIndex]) as PersistentModifier); // TODO: is the bang correct? + } + return ret; +} + +type SignatureSpecies = { + [key in string]: (Species | Species[])[]; +}; + +/* + * The signature species for each Gym Leader, Elite Four member, and Champion. + * The key is the trainer type, and the value is an array of Species or Species arrays. + * This is in a separate const so it can be accessed from other places and not just the trainerConfigs + */ +export const signatureSpecies: SignatureSpecies = { + BROCK: [Species.GEODUDE, Species.ONIX], + MISTY: [Species.STARYU, Species.PSYDUCK], + LT_SURGE: [Species.VOLTORB, Species.PIKACHU, Species.ELECTABUZZ], + ERIKA: [Species.ODDISH, Species.BELLSPROUT, Species.TANGELA, Species.HOPPIP], + JANINE: [Species.VENONAT, Species.SPINARAK, Species.ZUBAT], + SABRINA: [Species.ABRA, Species.MR_MIME, Species.ESPEON], + BLAINE: [Species.GROWLITHE, Species.PONYTA, Species.MAGMAR], + GIOVANNI: [Species.SANDILE, Species.MURKROW, Species.NIDORAN_M, Species.NIDORAN_F], + FALKNER: [Species.PIDGEY, Species.HOOTHOOT, Species.DODUO], + BUGSY: [Species.SCYTHER, Species.HERACROSS, Species.SHUCKLE, Species.PINSIR], + WHITNEY: [Species.GIRAFARIG, Species.MILTANK], + MORTY: [Species.GASTLY, Species.MISDREAVUS, Species.SABLEYE], + CHUCK: [Species.POLIWRATH, Species.MANKEY], + JASMINE: [Species.MAGNEMITE, Species.STEELIX], + PRYCE: [Species.SEEL, Species.SWINUB], + CLAIR: [Species.DRATINI, Species.HORSEA, Species.GYARADOS], + ROXANNE: [Species.GEODUDE, Species.NOSEPASS], + BRAWLY: [Species.MACHOP, Species.MAKUHITA], + WATTSON: [Species.MAGNEMITE, Species.VOLTORB, Species.ELECTRIKE], + FLANNERY: [Species.SLUGMA, Species.TORKOAL, Species.NUMEL], + NORMAN: [Species.SLAKOTH, Species.SPINDA, Species.CHANSEY, Species.KANGASKHAN], + WINONA: [Species.SWABLU, Species.WINGULL, Species.TROPIUS, Species.SKARMORY], + TATE: [Species.SOLROCK, Species.NATU, Species.CHIMECHO, Species.GALLADE], + LIZA: [Species.LUNATONE, Species.SPOINK, Species.BALTOY, Species.GARDEVOIR], + JUAN: [Species.HORSEA, Species.BARBOACH, Species.SPHEAL, Species.RELICANTH], + ROARK: [Species.CRANIDOS, Species.LARVITAR, Species.GEODUDE], + GARDENIA: [Species.ROSELIA, Species.TANGELA, Species.TURTWIG], + MAYLENE: [Species.LUCARIO, Species.MEDITITE, Species.CHIMCHAR], + CRASHER_WAKE: [Species.BUIZEL, Species.MAGIKARP, Species.PIPLUP], + FANTINA: [Species.MISDREAVUS, Species.DRIFLOON, Species.SPIRITOMB], + BYRON: [Species.SHIELDON, Species.BRONZOR, Species.AGGRON], + CANDICE: [Species.SNEASEL, Species.SNOVER, Species.SNORUNT], + VOLKNER: [Species.SHINX, Species.CHINCHOU, Species.ROTOM], + CILAN: [Species.PANSAGE, Species.COTTONEE, Species.PETILIL], + CHILI: [Species.PANSEAR, Species.DARUMAKA, Species.HEATMOR], + CRESS: [Species.PANPOUR, Species.BASCULIN, Species.TYMPOLE], + CHEREN: [Species.LILLIPUP, Species.MINCCINO, Species.PATRAT], + LENORA: [Species.KANGASKHAN, Species.DEERLING, Species.AUDINO], + ROXIE: [Species.VENIPEDE, Species.TRUBBISH, Species.SKORUPI], + BURGH: [Species.SEWADDLE, Species.SHELMET, Species.KARRABLAST], + ELESA: [Species.EMOLGA, Species.BLITZLE, Species.JOLTIK], + CLAY: [Species.DRILBUR, Species.SANDILE, Species.GOLETT], + SKYLA: [Species.DUCKLETT, Species.WOOBAT, Species.RUFFLET], + BRYCEN: [Species.CRYOGONAL, Species.VANILLITE, Species.CUBCHOO], + DRAYDEN: [Species.DRUDDIGON, Species.AXEW, Species.DEINO], + MARLON: [Species.WAILMER, Species.FRILLISH, Species.TIRTOUGA], + VIOLA: [Species.SURSKIT, Species.SCATTERBUG], + GRANT: [Species.AMAURA, Species.TYRUNT], + KORRINA: [Species.HAWLUCHA, Species.LUCARIO, Species.MIENFOO], + RAMOS: [Species.SKIDDO, Species.HOPPIP, Species.BELLSPROUT], + CLEMONT: [Species.HELIOPTILE, Species.MAGNEMITE, Species.EMOLGA], + VALERIE: [Species.SYLVEON, Species.MAWILE, Species.MR_MIME], + OLYMPIA: [Species.ESPURR, Species.SIGILYPH, Species.SLOWKING], + WULFRIC: [Species.BERGMITE, Species.SNOVER, Species.CRYOGONAL], + MILO: [Species.GOSSIFLEUR, Species.APPLIN, Species.BOUNSWEET], + NESSA: [Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD], + KABU: [Species.SIZZLIPEDE, Species.VULPIX, Species.TORKOAL], + BEA: [Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS], + ALLISTER: [Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY], + OPAL: [Species.MILCERY, Species.TOGETIC, Species.GALAR_WEEZING], + BEDE: [Species.HATENNA, Species.GALAR_PONYTA, Species.GARDEVOIR], + GORDIE: [Species.ROLYCOLY, Species.STONJOURNER, Species.BINACLE], + MELONY: [Species.SNOM, Species.GALAR_DARUMAKA, Species.GALAR_MR_MIME], + PIERS: [Species.GALAR_ZIGZAGOON, Species.SCRAGGY, Species.INKAY], + MARNIE: [Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO], + RAIHAN: [Species.DURALUDON, Species.TURTONATOR, Species.GOOMY], + KATY: [Species.NYMBLE, Species.TAROUNTULA, Species.HERACROSS], + BRASSIUS: [Species.SMOLIV, Species.SHROOMISH, Species.ODDISH], + IONO: [Species.TADBULB, Species.WATTREL, Species.VOLTORB], + KOFU: [Species.VELUZA, Species.WIGLETT, Species.WINGULL], + LARRY: [Species.STARLY, Species.DUNSPARCE, Species.KOMALA], + RYME: [Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU], + TULIP: [Species.GIRAFARIG, Species.FLITTLE, Species.RALTS], + GRUSHA: [Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO], + LORELEI: [Species.JYNX, [Species.SLOWBRO, Species.GALAR_SLOWBRO], Species.LAPRAS, [Species.ALOLA_SANDSLASH, Species.CLOYSTER]], + BRUNO: [Species.MACHAMP, Species.HITMONCHAN, Species.HITMONLEE, [Species.ALOLA_GOLEM, Species.GOLEM]], + AGATHA: [Species.GENGAR, [Species.ARBOK, Species.WEEZING], Species.CROBAT, Species.ALOLA_MAROWAK], + LANCE: [Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR], + WILL: [Species.XATU, Species.JYNX, [Species.SLOWBRO, Species.SLOWKING], Species.EXEGGUTOR], + KOGA: [[Species.WEEZING, Species.MUK], [Species.VENOMOTH, Species.ARIADOS], Species.CROBAT, Species.TENTACRUEL], + KAREN: [Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE], + SIDNEY: [[Species.SHIFTRY, Species.CACTURNE], [Species.SHARPEDO, Species.CRAWDAUNT], Species.ABSOL, Species.MIGHTYENA], + PHOEBE: [Species.SABLEYE, Species.DUSKNOIR, Species.BANETTE, [Species.MISMAGIUS, Species.DRIFBLIM]], + GLACIA: [Species.GLALIE, Species.WALREIN, Species.FROSLASS, Species.ABOMASNOW], + DRAKE: [Species.ALTARIA, Species.SALAMENCE, Species.FLYGON, Species.KINGDRA], + AARON: [[Species.SCIZOR, Species.KLEAVOR], Species.HERACROSS, [Species.VESPIQUEN, Species.YANMEGA], Species.DRAPION], + BERTHA: [Species.WHISCASH, Species.HIPPOWDON, Species.GLISCOR, Species.RHYPERIOR], + FLINT: [[Species.FLAREON, Species.RAPIDASH], Species.MAGMORTAR, [Species.STEELIX, Species.LOPUNNY], Species.INFERNAPE], + LUCIAN: [Species.MR_MIME, Species.GALLADE, Species.BRONZONG, [Species.ALAKAZAM, Species.ESPEON]], + SHAUNTAL: [Species.COFAGRIGUS, Species.CHANDELURE, Species.GOLURK, Species.JELLICENT], + MARSHAL: [Species.CONKELDURR, Species.MIENSHAO, Species.THROH, Species.SAWK], + GRIMSLEY: [Species.LIEPARD, Species.KINGAMBIT, Species.SCRAFTY, Species.KROOKODILE], + CAITLIN: [Species.MUSHARNA, Species.GOTHITELLE, Species.SIGILYPH, Species.REUNICLUS], + MALVA: [Species.PYROAR, Species.TORKOAL, Species.CHANDELURE, Species.TALONFLAME], + SIEBOLD: [Species.CLAWITZER, Species.GYARADOS, Species.BARBARACLE, Species.STARMIE], + WIKSTROM: [Species.KLEFKI, Species.PROBOPASS, Species.SCIZOR, Species.AEGISLASH], + DRASNA: [Species.DRAGALGE, Species.DRUDDIGON, Species.ALTARIA, Species.NOIVERN], + HALA: [Species.HARIYAMA, Species.BEWEAR, Species.CRABOMINABLE, [Species.POLIWRATH, Species.ANNIHILAPE]], + MOLAYNE: [Species.KLEFKI, Species.MAGNEZONE, Species.METAGROSS, Species.ALOLA_DUGTRIO], + OLIVIA: [Species.RELICANTH, Species.CARBINK, Species.ALOLA_GOLEM, Species.LYCANROC], + ACEROLA: [[Species.BANETTE, Species.DRIFBLIM], Species.MIMIKYU, Species.DHELMISE, Species.PALOSSAND], + KAHILI: [[Species.BRAVIARY, Species.MANDIBUZZ], Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON], + MARNIE_ELITE: [Species.MORPEKO, Species.LIEPARD, [Species.TOXICROAK, Species.SCRAFTY], Species.GRIMMSNARL], + NESSA_ELITE: [Species.GOLISOPOD, [Species.PELIPPER, Species.QUAGSIRE], Species.TOXAPEX, Species.DREDNAW], + BEA_ELITE: [Species.HAWLUCHA, [Species.GRAPPLOCT, Species.SIRFETCHD], Species.FALINKS, Species.MACHAMP], + ALLISTER_ELITE: [Species.DUSKNOIR, [Species.POLTEAGEIST, Species.RUNERIGUS], Species.CURSOLA, Species.GENGAR], + RAIHAN_ELITE: [Species.GOODRA, [Species.TORKOAL, Species.TURTONATOR], Species.FLYGON, Species.ARCHALUDON], + RIKA: [Species.WHISCASH, [Species.DONPHAN, Species.DUGTRIO], Species.CAMERUPT, Species.CLODSIRE], + POPPY: [Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON], + LARRY_ELITE: [Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS], + HASSEL: [Species.NOIVERN, [Species.FLAPPLE, Species.APPLETUN], Species.DRAGALGE, Species.BAXCALIBUR], + CRISPIN: [Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN], + AMARYS: [Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS], + LACEY: [Species.EXCADRILL, Species.PRIMARINA, [Species.ALCREMIE, Species.GRANBULL], Species.WHIMSICOTT], + DRAYTON: [Species.DRAGONITE, Species.ARCHALUDON, Species.HAXORUS, Species.SCEPTILE], + BLUE: [[Species.GYARADOS, Species.EXEGGUTOR, Species.ARCANINE], Species.HO_OH, [Species.RHYPERIOR, Species.MAGNEZONE]], // Alakazam lead, Mega Pidgeot + RED: [Species.LUGIA, Species.SNORLAX, [Species.ESPEON, Species.UMBREON, Species.SYLVEON]], // GMax Pikachu lead, Mega gen 1 starter + LANCE_CHAMPION: [Species.DRAGONITE, Species.KINGDRA, Species.ALOLA_EXEGGUTOR], // Aerodactyl lead, Mega Latias/Latios + STEVEN: [Species.AGGRON, [Species.ARMALDO, Species.CRADILY], Species.DIALGA], // Skarmory lead, Mega Metagross + WALLACE: [Species.MILOTIC, Species.PALKIA, Species.LUDICOLO], // Pelipper lead, Mega Swampert + CYNTHIA: [Species.GIRATINA, Species.LUCARIO, Species.TOGEKISS], // Spiritomb lead, Mega Garchomp + ALDER: [Species.VOLCARONA, Species.ZEKROM, [Species.ACCELGOR, Species.ESCAVALIER], Species.KELDEO], // Bouffalant/Braviary lead + IRIS: [Species.HAXORUS, Species.RESHIRAM, Species.ARCHEOPS], // Druddigon lead, Gmax Lapras + DIANTHA: [Species.HAWLUCHA, Species.XERNEAS, Species.GOODRA], // Gourgeist lead, Mega Gardevoir + HAU: [[Species.SOLGALEO, Species.LUNALA], Species.NOIVERN, [Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA], [Species.TAPU_BULU, Species.TAPU_FINI, Species.TAPU_KOKO, Species.TAPU_LELE]], // Alola Raichu lead + LEON: [Species.DRAGAPULT, [Species.ZACIAN, Species.ZAMAZENTA], Species.AEGISLASH], // Rillaboom/Cinderace/Inteleon lead, GMax Charizard + GEETA: [Species.MIRAIDON, [Species.ESPATHRA, Species.VELUZA], [Species.AVALUGG, Species.HISUI_AVALUGG], Species.KINGAMBIT], // Glimmora lead + NEMONA: [Species.KORAIDON, Species.PAWMOT, [Species.DUDUNSPARCE, Species.ORTHWORM], [Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL]], // Lycanroc lead + KIERAN: [[Species.GRIMMSNARL, Species.INCINEROAR, Species.PORYGON_Z], Species.OGERPON, Species.TERAPAGOS, Species.HYDRAPPLE], // Poliwrath/Politoed lead +}; + +export const trainerConfigs: TrainerConfigs = { + [TrainerType.UNKNOWN]: new TrainerConfig(0).setHasGenders(), + [TrainerType.ACE_TRAINER]: new TrainerConfig(++t).setHasGenders("Ace Trainer Female").setHasDouble("Ace Duo").setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.ACE_TRAINER) + .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.THREE_WEAK_BALANCED, trainerPartyTemplates.FOUR_WEAK_BALANCED, trainerPartyTemplates.FIVE_WEAK_BALANCED, trainerPartyTemplates.SIX_WEAK_BALANCED)), + [TrainerType.ARTIST]: new TrainerConfig(++t).setEncounterBgm(TrainerType.RICH).setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.THREE_AVG) + .setSpeciesPools([Species.SMEARGLE]), + [TrainerType.BACKERS]: new TrainerConfig(++t).setHasGenders("Backers").setDoubleOnly().setEncounterBgm(TrainerType.CYCLIST), + [TrainerType.BACKPACKER]: new TrainerConfig(++t).setHasGenders("Backpacker Female").setHasDouble("Backpackers").setSpeciesFilter(s => s.isOfType(Type.FLYING) || s.isOfType(Type.ROCK)).setEncounterBgm(TrainerType.BACKPACKER) + .setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.ONE_WEAK_ONE_STRONG, trainerPartyTemplates.ONE_AVG_ONE_STRONG) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, Species.WOOLOO], + [TrainerPoolTier.UNCOMMON]: [Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, Species.SKIDDO, Species.MUDBRAY], + [TrainerPoolTier.RARE]: [Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, Species.IMPIDIMP], + [TrainerPoolTier.SUPER_RARE]: [Species.GALAR_DARUMAKA, Species.TEDDIURSA] + }), + [TrainerType.BAKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.35).setSpeciesFilter(s => s.isOfType(Type.GRASS) || s.isOfType(Type.FIRE)), + [TrainerType.BEAUTY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY), + [TrainerType.BIKER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.POISON)), + [TrainerType.BLACK_BELT]: new TrainerConfig(++t).setHasGenders("Battle Girl", TrainerType.PSYCHIC).setHasDouble("Crush Kin").setEncounterBgm(TrainerType.ROUGHNECK).setSpecialtyTypes(Type.FIGHTING) + .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_STRONG, trainerPartyTemplates.THREE_AVG, trainerPartyTemplates.TWO_AVG_ONE_STRONG) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.NIDORAN_F, Species.NIDORAN_M, Species.MACHOP, Species.MAKUHITA, Species.MEDITITE, Species.CROAGUNK, Species.TIMBURR], + [TrainerPoolTier.UNCOMMON]: [Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, Species.STUFFUL, Species.CRABRAWLER], + [TrainerPoolTier.RARE]: [Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, Species.PASSIMIAN, Species.CLOBBOPUS], + [TrainerPoolTier.SUPER_RARE]: [Species.HITMONTOP, Species.INFERNAPE, Species.GALLADE, Species.HAWLUCHA, Species.HAKAMO_O], + [TrainerPoolTier.ULTRA_RARE]: [Species.KUBFU] + }), + [TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders("Breeder Female").setHasDouble("Breeders") + .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.FIVE_WEAKER, trainerPartyTemplates.SIX_WEAKER)) + .setSpeciesFilter(s => s.baseTotal < 450), + [TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders("Clerk Female").setHasDouble("Colleagues").setEncounterBgm(TrainerType.CLERK) + .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.MEOWTH, Species.PSYDUCK, Species.BUDEW, Species.PIDOVE, Species.CINCCINO, Species.LITLEO], + [TrainerPoolTier.UNCOMMON]: [Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, Species.SKIDDO], + [TrainerPoolTier.RARE]: [Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, Species.INDEEDEE] + }), + [TrainerType.CYCLIST]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setHasGenders("Cyclist Female").setHasDouble("Cyclists").setEncounterBgm(TrainerType.CYCLIST) + .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.PICHU, Species.STARLY, Species.TAILLOW, Species.BOLTUND], + [TrainerPoolTier.UNCOMMON]: [Species.DODUO, Species.ELECTRIKE, Species.BLITZLE, Species.WATTREL], + [TrainerPoolTier.RARE]: [Species.YANMA, Species.NINJASK, Species.WHIRLIPEDE, Species.EMOLGA], + [TrainerPoolTier.SUPER_RARE]: [Species.ACCELGOR, Species.DREEPY] + }), + [TrainerType.DANCER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CYCLIST) + .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.RALTS, Species.SPOINK, Species.LOTAD, Species.BUDEW], + [TrainerPoolTier.UNCOMMON]: [Species.SPINDA, Species.SWABLU, Species.MARACTUS,], + [TrainerPoolTier.RARE]: [Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO], + [TrainerPoolTier.SUPER_RARE]: [Species.POPPLIO] + }), + [TrainerType.DEPOT_AGENT]: new TrainerConfig(++t).setMoneyMultiplier(1.45).setEncounterBgm(TrainerType.CLERK), + [TrainerType.DOCTOR]: new TrainerConfig(++t).setHasGenders("Nurse", "lass").setHasDouble("Medical Team").setMoneyMultiplier(3).setEncounterBgm(TrainerType.CLERK) + .setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.HEAL_PULSE)), + [TrainerType.FIREBREATHER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK) + .setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.SMOG) || s.isOfType(Type.FIRE)), + [TrainerType.FISHERMAN]: new TrainerConfig(++t).setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.BACKPACKER).setSpecialtyTypes(Type.WATER) + .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.THREE_WEAK_SAME, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.SIX_WEAKER) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.TENTACOOL, Species.MAGIKARP, Species.GOLDEEN, Species.STARYU, Species.REMORAID, Species.SKRELP, Species.CLAUNCHER, Species.ARROKUDA], + [TrainerPoolTier.UNCOMMON]: [Species.POLIWAG, Species.SHELLDER, Species.KRABBY, Species.HORSEA, Species.CARVANHA, Species.BARBOACH, Species.CORPHISH, Species.FINNEON, Species.TYMPOLE, Species.BASCULIN, Species.FRILLISH, Species.INKAY], + [TrainerPoolTier.RARE]: [Species.CHINCHOU, Species.CORSOLA, Species.WAILMER, Species.BARBOACH, Species.CLAMPERL, Species.LUVDISC, Species.MANTYKE, Species.ALOMOMOLA, Species.TATSUGIRI, Species.VELUZA], + [TrainerPoolTier.SUPER_RARE]: [Species.LAPRAS, Species.FEEBAS, Species.RELICANTH, Species.DONDOZO] + }), + [TrainerType.GUITARIST]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.ROUGHNECK).setSpecialtyTypes(Type.ELECTRIC).setSpeciesFilter(s => s.isOfType(Type.ELECTRIC)), + [TrainerType.HARLEQUIN]: new TrainerConfig(++t).setEncounterBgm(TrainerType.PSYCHIC).setSpeciesFilter(s => tmSpecies[Moves.TRICK_ROOM].indexOf(s.speciesId) > -1), + [TrainerType.HIKER]: new TrainerConfig(++t).setEncounterBgm(TrainerType.BACKPACKER) + .setPartyTemplates(trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG, trainerPartyTemplates.TWO_AVG_SAME_ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.FOUR_WEAK, trainerPartyTemplates.ONE_STRONG) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.SANDSHREW, Species.DIGLETT, Species.GEODUDE, Species.MACHOP, Species.ARON, Species.ROGGENROLA, Species.DRILBUR, Species.NACLI], + [TrainerPoolTier.UNCOMMON]: [Species.ZUBAT, Species.RHYHORN, Species.ONIX, Species.CUBONE, Species.WOOBAT, Species.SWINUB, Species.NOSEPASS, Species.HIPPOPOTAS, Species.DWEBBLE, Species.KLAWF, Species.TOEDSCOOL], + [TrainerPoolTier.RARE]: [Species.TORKOAL, Species.TRAPINCH, Species.BARBOACH, Species.GOLETT, Species.ALOLA_DIGLETT, Species.ALOLA_GEODUDE, Species.GALAR_STUNFISK, Species.PALDEA_WOOPER], + [TrainerPoolTier.SUPER_RARE]: [Species.MAGBY, Species.LARVITAR] + }), + [TrainerType.HOOLIGANS]: new TrainerConfig(++t).setDoubleOnly().setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.POISON) || s.isOfType(Type.DARK)), + [TrainerType.HOOPSTER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), + [TrainerType.INFIELDER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), + [TrainerType.JANITOR]: new TrainerConfig(++t).setMoneyMultiplier(1.1).setEncounterBgm(TrainerType.CLERK), + [TrainerType.LINEBACKER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), + [TrainerType.MAID]: new TrainerConfig(++t).setMoneyMultiplier(1.6).setEncounterBgm(TrainerType.RICH), + [TrainerType.MUSICIAN]: new TrainerConfig(++t).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.SING)), + [TrainerType.HEX_MANIAC]: new TrainerConfig(++t).setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.PSYCHIC) + .setPartyTemplates(trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.ONE_AVG_ONE_STRONG, trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG, trainerPartyTemplates.THREE_AVG, trainerPartyTemplates.TWO_STRONG) + .setSpeciesFilter(s => s.isOfType(Type.GHOST)), + [TrainerType.NURSERY_AIDE]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm("lass"), + [TrainerType.OFFICER]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.CLERK) + .setPartyTemplates(trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.VULPIX, Species.GROWLITHE, Species.SNUBBULL, Species.POOCHYENA, Species.ELECTRIKE, Species.LILLIPUP, Species.YAMPER, Species.FIDOUGH], + [TrainerPoolTier.UNCOMMON]: [Species.HOUNDOUR, Species.ROCKRUFF, Species.MASCHIFF], + [TrainerPoolTier.RARE]: [Species.JOLTEON, Species.RIOLU], + [TrainerPoolTier.SUPER_RARE]: [], + [TrainerPoolTier.ULTRA_RARE]: [Species.ENTEI, Species.SUICUNE, Species.RAIKOU] + }), + [TrainerType.PARASOL_LADY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY).setSpeciesFilter(s => s.isOfType(Type.WATER)), + [TrainerType.PILOT]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => tmSpecies[Moves.FLY].indexOf(s.speciesId) > -1), + [TrainerType.POKEFAN]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName("PokéFan").setHasGenders("PokéFan Female").setHasDouble("PokéFan Family").setEncounterBgm(TrainerType.POKEFAN) + .setPartyTemplates(trainerPartyTemplates.SIX_WEAKER, trainerPartyTemplates.FOUR_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.FOUR_WEAK_SAME, trainerPartyTemplates.FIVE_WEAK, trainerPartyTemplates.SIX_WEAKER_SAME), + [TrainerType.PRESCHOOLER]: new TrainerConfig(++t).setMoneyMultiplier(0.2).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Preschooler Female", "lass").setHasDouble("Preschoolers") + .setPartyTemplates(trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.FIVE_WEAKER) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.CATERPIE, Species.PICHU, Species.SANDSHREW, Species.LEDYBA, Species.BUDEW, Species.BURMY, Species.WOOLOO, Species.PAWMI, Species.SMOLIV], + [TrainerPoolTier.UNCOMMON]: [Species.EEVEE, Species.CLEFFA, Species.IGGLYBUFF, Species.SWINUB, Species.WOOPER, Species.DRIFLOON, Species.DEDENNE, Species.STUFFUL], + [TrainerPoolTier.RARE]: [Species.RALTS, Species.RIOLU, Species.JOLTIK, Species.TANDEMAUS], + [TrainerPoolTier.SUPER_RARE]: [Species.DARUMAKA, Species.TINKATINK], + }), + [TrainerType.PSYCHIC]: new TrainerConfig(++t).setHasGenders("Psychic Female").setHasDouble("Psychics").setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.PSYCHIC) + .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME, trainerPartyTemplates.ONE_STRONGER) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, Species.BLIPBUG, Species.ESPURR, Species.HATENNA], + [TrainerPoolTier.UNCOMMON]: [Species.MIME_JR, Species.EXEGGCUTE, Species.MEDITITE, Species.NATU, Species.EXEGGCUTE, Species.WOOBAT, Species.INKAY, Species.ORANGURU], + [TrainerPoolTier.RARE]: [Species.ELGYEM, Species.SIGILYPH, Species.BALTOY, Species.GIRAFARIG, Species.MEOWSTIC], + [TrainerPoolTier.SUPER_RARE]: [Species.BELDUM, Species.ESPEON, Species.STANTLER], + }), + [TrainerType.RANGER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName("Pokémon Ranger").setEncounterBgm(TrainerType.BACKPACKER).setHasGenders("Pokémon Ranger Female").setHasDouble("Pokémon Rangers") + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.PICHU, Species.GROWLITHE, Species.PONYTA, Species.ZIGZAGOON, Species.SEEDOT, Species.BIDOOF, Species.RIOLU, Species.SEWADDLE, Species.SKIDDO, Species.SALANDIT, Species.YAMPER], + [TrainerPoolTier.UNCOMMON]: [Species.AZURILL, Species.TAUROS, Species.MAREEP, Species.FARFETCHD, Species.TEDDIURSA, Species.SHROOMISH, Species.ELECTRIKE, Species.BUDEW, Species.BUIZEL, Species.MUDBRAY, Species.STUFFUL], + [TrainerPoolTier.RARE]: [Species.EEVEE, Species.SCYTHER, Species.KANGASKHAN, Species.RALTS, Species.MUNCHLAX, Species.ZORUA, Species.PALDEA_TAUROS, Species.TINKATINK, Species.CYCLIZAR, Species.FLAMIGO], + [TrainerPoolTier.SUPER_RARE]: [Species.LARVESTA], + }), + [TrainerType.RICH]: new TrainerConfig(++t).setMoneyMultiplier(5).setName("Gentleman").setHasGenders("Madame").setHasDouble("Rich Couple"), + [TrainerType.RICH_KID]: new TrainerConfig(++t).setMoneyMultiplier(3.75).setName("Rich Boy").setHasGenders("Lady").setHasDouble("Rich Kids").setEncounterBgm(TrainerType.RICH), + [TrainerType.ROUGHNECK]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.DARK)), + [TrainerType.SAILOR]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.BACKPACKER).setSpeciesFilter(s => s.isOfType(Type.WATER) || s.isOfType(Type.FIGHTING)), + [TrainerType.SCIENTIST]: new TrainerConfig(++t).setHasGenders("Scientist Female").setHasDouble("Scientists").setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.SCIENTIST) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.MAGNEMITE, Species.GRIMER, Species.DROWZEE, Species.VOLTORB, Species.KOFFING], + [TrainerPoolTier.UNCOMMON]: [Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, Species.CHARJABUG, Species.BLIPBUG, Species.HELIOPTILE], + [TrainerPoolTier.RARE]: [Species.ABRA, Species.DITTO, Species.PORYGON, Species.ELEKID, Species.SOLOSIS, Species.GALAR_WEEZING], + [TrainerPoolTier.SUPER_RARE]: [Species.OMANYTE, Species.KABUTO, Species.AERODACTYL, Species.LILEEP, Species.ANORITH, Species.CRANIDOS, Species.SHIELDON, Species.TIRTOUGA, Species.ARCHEN, Species.ARCTOVISH, Species.ARCTOZOLT, Species.DRACOVISH, Species.DRACOZOLT], + [TrainerPoolTier.ULTRA_RARE]: [Species.ROTOM, Species.MELTAN] + }), + [TrainerType.SMASHER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), + [TrainerType.SNOW_WORKER]: new TrainerConfig(++t).setName("Worker").setHasGenders("Worker Female").setHasDouble("Workers").setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => s.isOfType(Type.ICE) || s.isOfType(Type.STEEL)), + [TrainerType.STRIKER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST), + [TrainerType.SCHOOL_KID]: new TrainerConfig(++t).setMoneyMultiplier(0.75).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("School Kid Female", "lass").setHasDouble("School Kids") + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.ODDISH, Species.EXEGGCUTE, Species.TEDDIURSA, Species.WURMPLE, Species.RALTS, Species.SHROOMISH, Species.FLETCHLING], + [TrainerPoolTier.UNCOMMON]: [Species.VOLTORB, Species.WHISMUR, Species.MEDITITE, Species.MIME_JR, Species.NYMBLE], + [TrainerPoolTier.RARE]: [Species.TANGELA, Species.EEVEE, Species.YANMA], + [TrainerPoolTier.SUPER_RARE]: [Species.TADBULB] + }), + [TrainerType.SWIMMER]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm(TrainerType.PARASOL_LADY).setHasGenders("Swimmer Female").setHasDouble("Swimmers").setSpecialtyTypes(Type.WATER).setSpeciesFilter(s => s.isOfType(Type.WATER)), + [TrainerType.TWINS]: new TrainerConfig(++t).setDoubleOnly().setMoneyMultiplier(0.65).setUseSameSeedForAllMembers() + .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_STRONG)) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PLUSLE, Species.VOLBEAT, Species.PACHIRISU, Species.SILCOON, Species.METAPOD, Species.IGGLYBUFF, Species.PETILIL, Species.EEVEE])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.MINUN, Species.ILLUMISE, Species.EMOLGA, Species.CASCOON, Species.KAKUNA, Species.CLEFFA, Species.COTTONEE, Species.EEVEE], TrainerSlot.TRAINER_PARTNER)) + .setEncounterBgm(TrainerType.TWINS), + [TrainerType.VETERAN]: new TrainerConfig(++t).setHasGenders("Veteran Female").setHasDouble("Veteran Duo").setMoneyMultiplier(2.5).setEncounterBgm(TrainerType.ACE_TRAINER).setSpeciesFilter(s => s.isOfType(Type.DRAGON)), + [TrainerType.WAITER]: new TrainerConfig(++t).setHasGenders("Waitress").setHasDouble("Restaurant Staff").setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.CLERK) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.CLEFFA, Species.CHATOT, Species.PANSAGE, Species.PANSEAR, Species.PANPOUR, Species.MINCCINO], + [TrainerPoolTier.UNCOMMON]: [Species.TROPIUS, Species.PETILIL, Species.BOUNSWEET, Species.INDEEDEE], + [TrainerPoolTier.RARE]: [Species.APPLIN, Species.SINISTEA, Species.POLTCHAGEIST] + }), + [TrainerType.WORKER]: new TrainerConfig(++t).setHasGenders("Worker Female").setHasDouble("Workers").setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.7).setSpeciesFilter(s => s.isOfType(Type.ROCK) || s.isOfType(Type.STEEL)), + [TrainerType.YOUNGSTER]: new TrainerConfig(++t).setMoneyMultiplier(0.5).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Lass", "lass").setHasDouble("Beginners").setPartyTemplates(trainerPartyTemplates.TWO_WEAKER) + .setSpeciesPools( + [Species.CATERPIE, Species.WEEDLE, Species.RATTATA, Species.SENTRET, Species.POOCHYENA, Species.ZIGZAGOON, Species.WURMPLE, Species.BIDOOF, Species.PATRAT, Species.LILLIPUP] + ), + [TrainerType.ROCKET_GRUNT]: new TrainerConfig(++t).setHasGenders("Rocket Grunt Female").setHasDouble("Rocket Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.WEEDLE, Species.RATTATA, Species.EKANS, Species.SANDSHREW, Species.ZUBAT, Species.GEODUDE, Species.KOFFING, Species.GRIMER, Species.ODDISH], + [TrainerPoolTier.UNCOMMON]: [Species.GYARADOS, Species.TAUROS, Species.SCYTHER, Species.CUBONE, Species.GROWLITHE, Species.MURKROW, Species.GASTLY, Species.EXEGGCUTE, Species.VOLTORB], + [TrainerPoolTier.RARE]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE], + [TrainerPoolTier.SUPER_RARE]: [Species.DRATINI, Species.LARVITAR] + }), + [TrainerType.ARCHER]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin", "rocket", [Species.HOUNDOOM]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.ARIANA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin_female", "rocket", [Species.ARBOK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.PROTON]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin", "rocket", [Species.CROBAT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.PETREL]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("rocket_admin", "rocket", [Species.WEEZING]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.MAGMA_GRUNT]: new TrainerConfig(++t).setHasGenders("Magma Grunt Female").setHasDouble("Magma Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.SLUGMA, Species.POOCHYENA, Species.NUMEL, Species.ZIGZAGOON, Species.DIGLETT, Species.MAGBY, Species.TORKOAL, Species.BALTOY, Species.BARBOACH], + [TrainerPoolTier.UNCOMMON]: [Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.ROLYCOLY, Species.GLIGAR], + [TrainerPoolTier.RARE]: [Species.TRAPINCH, Species.HEATMOR], + [TrainerPoolTier.SUPER_RARE]: [Species.CAPSAKID, Species.CHARCADET] + }), + [TrainerType.TABITHA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("magma_admin", "magma", [Species.CAMERUPT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.COURTNEY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("magma_admin_female", "magma", [Species.CAMERUPT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.AQUA_GRUNT]: new TrainerConfig(++t).setHasGenders("Aqua Grunt Female").setHasDouble("Aqua Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.CARVANHA, Species.WAILMER, Species.ZIGZAGOON, Species.LOTAD, Species.CORPHISH, Species.SPHEAL], + [TrainerPoolTier.UNCOMMON]: [Species.CLAMPERL, Species.CHINCHOU, Species.WOOPER, Species.WINGULL, Species.TENTACOOL, Species.QWILFISH], + [TrainerPoolTier.RARE]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA], + [TrainerPoolTier.SUPER_RARE]: [Species.DONDOZO] + }), + [TrainerType.MATT]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aqua_admin", "aqua", [Species.SHARPEDO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.SHELLY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aqua_admin_female", "aqua", [Species.SHARPEDO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.GALACTIC_GRUNT]: new TrainerConfig(++t).setHasGenders("Galactic Grunt Female").setHasDouble("Galactic Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.GLAMEOW, Species.STUNKY, Species.CROAGUNK, Species.SHINX, Species.WURMPLE, Species.BRONZOR, Species.DRIFLOON, Species.BURMY], + [TrainerPoolTier.UNCOMMON]: [Species.CARNIVINE, Species.GROWLITHE, Species.QWILFISH, Species.SNEASEL], + [TrainerPoolTier.RARE]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL], + [TrainerPoolTier.SUPER_RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO] + }), + [TrainerType.JUPITER]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.SKUNTANK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.MARS]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.PURUGLY]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.SATURN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander", "galactic", [Species.TOXICROAK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.PLASMA_GRUNT]: new TrainerConfig(++t).setHasGenders("Plasma Grunt Female").setHasDouble("Plasma Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.PATRAT, Species.LILLIPUP, Species.PURRLOIN, Species.SCRAFTY, Species.WOOBAT, Species.VANILLITE, Species.SANDILE, Species.TRUBBISH], + [TrainerPoolTier.UNCOMMON]: [Species.FRILLISH, Species.VENIPEDE, Species.GOLETT, Species.TIMBURR, Species.DARUMAKA, Species.AMOONGUSS], + [TrainerPoolTier.RARE]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK], + [TrainerPoolTier.SUPER_RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT] + }), + [TrainerType.ZINZOLIN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("plasma_sage", "plasma", [Species.CRYOGONAL]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.ROOD]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("plasma_sage", "plasma", [Species.SWOOBAT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.FLARE_GRUNT]: new TrainerConfig(++t).setHasGenders("Flare Grunt Female").setHasDouble("Flare Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [Species.FLETCHLING, Species.LITLEO, Species.PONYTA, Species.INKAY, Species.HOUNDOUR, Species.SKORUPI, Species.SCRAFTY, Species.CROAGUNK], + [TrainerPoolTier.UNCOMMON]: [Species.HELIOPTILE, Species.ELECTRIKE, Species.SKRELP, Species.GULPIN, Species.PURRLOIN, Species.POOCHYENA, Species.SCATTERBUG], + [TrainerPoolTier.RARE]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD], + [TrainerPoolTier.SUPER_RARE]: [Species.NOIVERN, Species.DRUDDIGON] + }), + [TrainerType.BRYONY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("flare_admin_female", "flare", [Species.LIEPARD]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.XEROSIC]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("flare_admin", "flare", [Species.MALAMAR]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.AETHER_GRUNT]: new TrainerConfig(++t).setHasGenders("Aether Grunt Female").setHasDouble("Aether Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aether_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [ Species.PIKIPEK, Species.ROCKRUFF, Species.ALOLA_DIGLETT, Species.YUNGOOS, Species.CORSOLA, Species.ALOLA_GEODUDE, Species.BOUNSWEET, Species.LILLIPUP, Species.ALOLA_MAROWAK], + [TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.STUFFUL, Species.ALOLA_EXEGGUTOR, Species.CRABRAWLER, Species.CUTIEFLY, Species.ALOLA_RAICHU, Species.ORICORIO, Species.MUDBRAY], + [TrainerPoolTier.RARE]: [ Species.ORANGURU, Species.PASSIMIAN, Species.GALAR_CORSOLA, Species.ALOLA_SANDSHREW, Species.ALOLA_VULPIX, Species.TURTONATOR, Species.DRAMPA], + [TrainerPoolTier.SUPER_RARE]: [Species.JANGMO_O, Species.PORYGON] + }), + [TrainerType.FABA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aether_admin", "aether", [Species.HYPNO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aether_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.SKULL_GRUNT]: new TrainerConfig(++t).setHasGenders("Skull Grunt Female").setHasDouble("Skull Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [ Species.SALANDIT, Species.ALOLA_RATTATA, Species.ALOLA_MEOWTH, Species.SCRAGGY, Species.KOFFING, Species.ALOLA_GRIMER, Species.MAREANIE, Species.SPINARAK, Species.TRUBBISH], + [TrainerPoolTier.UNCOMMON]: [ Species.FOMANTIS, Species.SABLEYE, Species.SANDILE, Species.ALOLA_MAROWAK, Species.PANCHAM, Species.DROWZEE, Species.ZUBAT, Species.VENIPEDE, Species.VULLABY], + [TrainerPoolTier.RARE]: [Species.SANDYGAST, Species.PAWNIARD, Species.MIMIKYU, Species.DHELMISE, Species.GASTLY, Species.WISHIWASHI], + [TrainerPoolTier.SUPER_RARE]: [Species.GRUBBIN, Species.DEWPIDER] + }), + [TrainerType.PLUMERIA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("skull_admin", "skull", [Species.SALAZZLE]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + [TrainerType.MACRO_GRUNT]: new TrainerConfig(++t).setHasGenders("Macro Grunt Female").setHasDouble("Macro Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_macro_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)) + .setSpeciesPools({ + [TrainerPoolTier.COMMON]: [ Species.CUFANT, Species.GALAR_MEOWTH, Species.KLINK, Species.ROOKIDEE, Species.CRAMORANT, Species.GALAR_ZIGZAGOON, Species.SKWOVET, Species.STEELIX, Species.MAWILE, Species.FERROSEED], + [TrainerPoolTier.UNCOMMON]: [ Species.DRILBUR, Species.MAGNEMITE, Species.HATENNA, Species.ARROKUDA, Species.APPLIN, Species.GALAR_PONYTA, Species.GALAR_YAMASK, Species.SINISTEA, Species.RIOLU], + [TrainerPoolTier.RARE]: [Species.FALINKS, Species.BELDUM, Species.GALAR_FARFETCHD, Species.GALAR_MR_MIME, Species.HONEDGE, Species.SCIZOR, Species.GALAR_DARUMAKA], + [TrainerPoolTier.SUPER_RARE]: [Species.DURALUDON, Species.DREEPY] + }), + [TrainerType.OLEANA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("macro_admin", "macro", [Species.GARBODOR]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_oleana").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)), + + [TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"], true, Type.ROCK).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MISTY"], false, Type.WATER).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"], true, Type.ELECTRIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ERIKA"], false, Type.GRASS).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JANINE"], false, Type.POISON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SABRINA"], false, Type.PSYCHIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BLAINE"], true, Type.FIRE).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GIOVANNI"], true, Type.DARK).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FALKNER"], true, Type.FLYING).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BUGSY"], true, Type.BUG).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WHITNEY"], false, Type.NORMAL).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MORTY"], true, Type.GHOST).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHUCK"], true, Type.FIGHTING).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JASMINE"], false, Type.STEEL).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PRYCE"], true, Type.ICE).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAIR"], false, Type.DRAGON).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXANNE"], false, Type.ROCK).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRAWLY"], true, Type.FIGHTING).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WATTSON"], true, Type.ELECTRIC).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FLANNERY"], false, Type.FIRE).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["NORMAN"], true, Type.NORMAL).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WINONA"], false, Type.FLYING).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TATE"], true, Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym").setHasDouble("tate_liza_double").setDoubleTrainerType(TrainerType.LIZA).setDoubleTitle("gym_leader_double"), + [TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LIZA"], false, Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym").setHasDouble("liza_tate_double").setDoubleTrainerType(TrainerType.TATE).setDoubleTitle("gym_leader_double"), + [TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JUAN"], true, Type.WATER).setBattleBgm("battle_hoenn_gym").setMixedBattleBgm("battle_hoenn_gym"), + [TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROARK"], true, Type.ROCK).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GARDENIA"], false, Type.GRASS).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MAYLENE"], false, Type.FIGHTING).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRASHER_WAKE"], true, Type.WATER).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FANTINA"], false, Type.GHOST).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BYRON"], true, Type.STEEL).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CANDICE"], false, Type.ICE).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VOLKNER"], true, Type.ELECTRIC).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CILAN"], true, Type.GRASS).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHILI"], true, Type.FIRE).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRESS"], true, Type.WATER).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHEREN"], true, Type.NORMAL).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LENORA"], false, Type.NORMAL).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXIE"], false, Type.POISON).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BURGH"], true, Type.BUG).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ELESA"], false, Type.ELECTRIC).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAY"], true, Type.GROUND).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SKYLA"], false, Type.FLYING).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRYCEN"], true, Type.ICE).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["DRAYDEN"], true, Type.DRAGON).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MARLON"], true, Type.WATER).setMixedBattleBgm("battle_unova_gym"), + [TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VIOLA"], false, Type.BUG).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRANT"], true, Type.ROCK).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KORRINA"], false, Type.FIGHTING).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RAMOS"], true, Type.GRASS).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLEMONT"], true, Type.ELECTRIC).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VALERIE"], false, Type.FAIRY).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OLYMPIA"], false, Type.PSYCHIC).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WULFRIC"], true, Type.ICE).setMixedBattleBgm("battle_kalos_gym"), + [TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MILO"], true, Type.GRASS).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader(signatureSpecies["NESSA"], false, Type.WATER).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KABU"], true, Type.FIRE).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader(signatureSpecies["BEA"], false, Type.FIGHTING).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader(signatureSpecies["ALLISTER"], true, Type.GHOST).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OPAL"], false, Type.FAIRY).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BEDE"], true, Type.FAIRY).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GORDIE"], true, Type.ROCK).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MELONY"], false, Type.ICE).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PIERS"], true, Type.DARK).setHasDouble("piers_marnie_double").setDoubleTrainerType(TrainerType.MARNIE).setDoubleTitle("gym_leader_double").setMixedBattleBgm("battle_galar_gym"), + [TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader(signatureSpecies["MARNIE"], false, Type.DARK).setHasDouble("marnie_piers_double").setDoubleTrainerType(TrainerType.PIERS).setDoubleTitle("gym_leader_double").setMixedBattleBgm("battle_galar_gym"), + [TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader(signatureSpecies["RAIHAN"], true, Type.DRAGON).setMixedBattleBgm("battle_galar_gym"), + [TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KATY"], false, Type.BUG).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRASSIUS"], true, Type.GRASS).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["IONO"], false, Type.ELECTRIC).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KOFU"], true, Type.WATER).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader(signatureSpecies["LARRY"], true, Type.NORMAL).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RYME"], false, Type.GHOST).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TULIP"], false, Type.PSYCHIC).setMixedBattleBgm("battle_paldea_gym"), + [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRUSHA"], true, Type.ICE).setMixedBattleBgm("battle_paldea_gym"), + + [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour(signatureSpecies["LORELEI"], false, Type.ICE).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BRUNO"], true, Type.FIGHTING).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AGATHA"], false, Type.GHOST).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour(signatureSpecies["LANCE"], true, Type.DRAGON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WILL"], true, Type.PSYCHIC).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA"], true, Type.POISON).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAREN"], false, Type.DARK).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIDNEY"], true, Type.DARK).setMixedBattleBgm("battle_hoenn_elite"), + [TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["PHOEBE"], false, Type.GHOST).setMixedBattleBgm("battle_hoenn_elite"), + [TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GLACIA"], false, Type.ICE).setMixedBattleBgm("battle_hoenn_elite"), + [TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAKE"], true, Type.DRAGON).setMixedBattleBgm("battle_hoenn_elite"), + [TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AARON"], true, Type.BUG).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BERTHA"], false, Type.GROUND).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["FLINT"], true, Type.FIRE).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LUCIAN"], true, Type.PSYCHIC).setBattleBgm("battle_sinnoh_gym").setMixedBattleBgm("battle_sinnoh_gym"), + [TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SHAUNTAL"], false, Type.GHOST).setMixedBattleBgm("battle_unova_elite"), + [TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MARSHAL"], true, Type.FIGHTING).setMixedBattleBgm("battle_unova_elite"), + [TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GRIMSLEY"], true, Type.DARK).setMixedBattleBgm("battle_unova_elite"), + [TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CAITLIN"], false, Type.PSYCHIC).setMixedBattleBgm("battle_unova_elite"), + [TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MALVA"], false, Type.FIRE).setMixedBattleBgm("battle_kalos_elite"), + [TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIEBOLD"], true, Type.WATER).setMixedBattleBgm("battle_kalos_elite"), + [TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WIKSTROM"], true, Type.STEEL).setMixedBattleBgm("battle_kalos_elite"), + [TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRASNA"], false, Type.DRAGON).setMixedBattleBgm("battle_kalos_elite"), + [TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HALA"], true, Type.FIGHTING).setMixedBattleBgm("battle_alola_elite"), + [TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MOLAYNE"], true, Type.STEEL).setMixedBattleBgm("battle_alola_elite"), + [TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["OLIVIA"], false, Type.ROCK).setMixedBattleBgm("battle_alola_elite"), + [TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["ACEROLA"], false, Type.GHOST).setMixedBattleBgm("battle_alola_elite"), + [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAHILI"], false, Type.FLYING).setMixedBattleBgm("battle_alola_elite"), + [TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour(signatureSpecies["MARNIE_ELITE"], false, Type.DARK).setMixedBattleBgm("battle_galar_elite"), + [TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour(signatureSpecies["NESSA_ELITE"], false, Type.WATER).setMixedBattleBgm("battle_galar_elite"), + [TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour(signatureSpecies["BEA_ELITE"], false, Type.FIGHTING).setMixedBattleBgm("battle_galar_elite"), + [TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour(signatureSpecies["ALLISTER_ELITE"], true, Type.GHOST).setMixedBattleBgm("battle_galar_elite"), + [TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour(signatureSpecies["RAIHAN_ELITE"], true, Type.DRAGON).setMixedBattleBgm("battle_galar_elite"), + [TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["RIKA"], false, Type.GROUND).setMixedBattleBgm("battle_paldea_elite"), + [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["POPPY"], false, Type.STEEL).setMixedBattleBgm("battle_paldea_elite"), + [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour(signatureSpecies["LARRY_ELITE"], true, Type.NORMAL, Type.FLYING).setMixedBattleBgm("battle_paldea_elite"), + [TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HASSEL"], true, Type.DRAGON).setMixedBattleBgm("battle_paldea_elite"), + [TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CRISPIN"], true, Type.FIRE).setMixedBattleBgm("battle_bb_elite"), + [TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AMARYS"], false, Type.STEEL).setMixedBattleBgm("battle_bb_elite"), + [TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LACEY"], false, Type.FAIRY).setMixedBattleBgm("battle_bb_elite"), + [TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAYTON"], true, Type.DRAGON).setMixedBattleBgm("battle_bb_elite"), + + [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion(signatureSpecies["BLUE"], true).setBattleBgm("battle_kanto_champion").setMixedBattleBgm("battle_kanto_champion").setHasDouble("blue_red_double").setDoubleTrainerType(TrainerType.RED).setDoubleTitle("champion_double") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ALAKAZAM], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.RED]: new TrainerConfig(++t).initForChampion(signatureSpecies["RED"], true).setBattleBgm("battle_johto_champion").setMixedBattleBgm("battle_johto_champion").setHasDouble("red_blue_double").setDoubleTrainerType(TrainerType.BLUE).setDoubleTitle("champion_double") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PIKACHU], TrainerSlot.TRAINER, true, p => { + p.formIndex = 8; + p.generateAndPopulateMoveset(); + p.generateName(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion(signatureSpecies["LANCE_CHAMPION"], true).setBattleBgm("battle_johto_champion").setMixedBattleBgm("battle_johto_champion") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.AERODACTYL], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.LATIAS, Species.LATIOS], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"], true).setBattleBgm("battle_hoenn_champion_g5").setMixedBattleBgm("battle_hoenn_champion_g6").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SKARMORY], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.METAGROSS], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"], true).setBattleBgm("battle_hoenn_champion_g5").setMixedBattleBgm("battle_hoenn_champion_g6").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PELIPPER], TrainerSlot.TRAINER, true, p => { + p.abilityIndex = 1; // Drizzle + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.SWAMPERT], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + })), + [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(signatureSpecies["CYNTHIA"], false).setBattleBgm("battle_sinnoh_champion").setMixedBattleBgm("battle_sinnoh_champion") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SPIRITOMB], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.GARCHOMP], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"], true).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_champion_alder").setMixedBattleBgm("battle_champion_alder") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BOUFFALANT, Species.BRAVIARY], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })), + [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(signatureSpecies["IRIS"], false).setBattleBgm("battle_champion_iris").setMixedBattleBgm("battle_champion_iris").setHasDouble("iris_alder_double").setDoubleTrainerType(TrainerType.ALDER).setDoubleTitle("champion_double") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.DRUDDIGON], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.LAPRAS], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion(signatureSpecies["DIANTHA"], false).setMixedBattleBgm("battle_kalos_champion") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GOURGEIST], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.GARDEVOIR], TrainerSlot.TRAINER, true, p => { + p.formIndex = 1; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.HAU]: new TrainerConfig(++t).initForChampion(signatureSpecies["HAU"], true).setMixedBattleBgm("battle_alola_champion") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ALOLA_RAICHU], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })), + [TrainerType.LEON]: new TrainerConfig(++t).initForChampion(signatureSpecies["LEON"], true).setMixedBattleBgm("battle_galar_champion") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.RILLABOOM, Species.CINDERACE, Species.INTELEON], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.CHARIZARD], TrainerSlot.TRAINER, true, p => { + p.formIndex = 3; + p.generateAndPopulateMoveset(); + p.generateName(); + })), + [TrainerType.GEETA]: new TrainerConfig(++t).initForChampion(signatureSpecies["GEETA"], false).setMixedBattleBgm("battle_champion_geeta") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GLIMMORA], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })), + [TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion(signatureSpecies["NEMONA"], false).setMixedBattleBgm("battle_champion_nemona") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.LYCANROC], TrainerSlot.TRAINER, true, p => { + p.formIndex = 0; // Midday form + p.generateAndPopulateMoveset(); + })), + [TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion(signatureSpecies["KIERAN"], true).setMixedBattleBgm("battle_champion_kieran") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.POLIWRATH, Species.POLITOED], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + })), + + [TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL) + .setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL], TrainerSlot.TRAINER, true)), + [TrainerType.RIVAL_2]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_2) + .setModifierRewardFuncs(() => modifierTypes.EXP_SHARE) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)), + [TrainerType.RIVAL_3]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_3) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) + .setSpeciesFilter(species => species.baseTotal >= 540), + [TrainerType.RIVAL_4]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(1.75).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival_2").setMixedBattleBgm("battle_rival_2").setPartyTemplates(trainerPartyTemplates.RIVAL_4) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) + .setSpeciesFilter(species => species.baseTotal >= 540) + .setGenModifiersFunc(party => { + const starter = party[0]; + return [modifierTypes.TERA_SHARD().generateType([], [starter.species.type1])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; // TODO: is the bang correct? + }), + [TrainerType.RIVAL_5]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival_3").setMixedBattleBgm("battle_rival_3").setPartyTemplates(trainerPartyTemplates.RIVAL_5) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true, + p => p.setBoss(true, 2))) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true)) + .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) + .setSpeciesFilter(species => species.baseTotal >= 540) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 3); + p.pokeball = PokeballType.MASTER_BALL; + p.shiny = true; + p.variant = 1; + })) + .setGenModifiersFunc(party => { + const starter = party[0]; + return [modifierTypes.TERA_SHARD().generateType([], [starter.species.type1])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; //TODO: is the bang correct? + }), + [TrainerType.RIVAL_6]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setBoss().setStaticParty().setMoneyMultiplier(3).setEncounterBgm("final").setBattleBgm("battle_rival_3").setMixedBattleBgm("battle_rival_3").setPartyTemplates(trainerPartyTemplates.RIVAL_6) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL], TrainerSlot.TRAINER, true, + p => { + p.setBoss(true, 3); + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL], TrainerSlot.TRAINER, true, + p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) + .setSpeciesFilter(species => species.baseTotal >= 540) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => { + p.setBoss(); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + p.shiny = true; + p.variant = 1; + p.formIndex = 1; + p.generateName(); + })) + .setGenModifiersFunc(party => { + const starter = party[0]; + return [modifierTypes.TERA_SHARD().generateType([], [starter.species.type1])!.withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(starter) as PersistentModifier]; // TODO: is the bang correct? + }), + + [TrainerType.ROCKET_BOSS_GIOVANNI_1]: new TrainerConfig(t = TrainerType.ROCKET_BOSS_GIOVANNI_1).setName("Giovanni").initForEvilTeamLeader("Rocket Boss", []).setMixedBattleBgm("battle_rocket_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PERSIAN, Species.ALOLA_PERSIAN])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.NIDOKING, Species.NIDOQUEEN])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.RHYPERIOR])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.DUGTRIO, Species.ALOLA_DUGTRIO])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MAROWAK, Species.ALOLA_MAROWAK])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KANGASKHAN], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })), + [TrainerType.ROCKET_BOSS_GIOVANNI_2]: new TrainerConfig(++t).setName("Giovanni").initForEvilTeamLeader("Rocket Boss", [], true).setMixedBattleBgm("battle_rocket_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.TYRANITAR, Species.IRON_THORNS], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.HIPPOWDON])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.EXCADRILL])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.KANGASKHAN], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.GASTRODON])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.MEWTWO], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.MAXIE]: new TrainerConfig(++t).setName("Maxie").initForEvilTeamLeader("Magma Boss", []).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MIGHTYENA])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.CROBAT, Species.GLISCOR])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.WEEZING, Species.GALAR_WEEZING])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.MAGMORTAR, Species.TORKOAL])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.FLYGON])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CAMERUPT], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })), + [TrainerType.MAXIE_2]: new TrainerConfig(++t).setName("Maxie").initForEvilTeamLeader("Magma Boss", [], true).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SOLROCK, Species.TYPHLOSION], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.TORKOAL, Species.NINETALES], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.abilityIndex = 2; // DROUGHT + })) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SHIFTRY, Species.SCOVILLAIN], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.abilityIndex = 0; // Chlorophyll + })) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GREAT_TUSK])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CAMERUPT], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GROUDON], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.ARCHIE]: new TrainerConfig(++t).setName("Archie").initForEvilTeamLeader("Aqua Boss", []).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.LINOONE])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.CROBAT, Species.PELIPPER])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.MUK, Species.ALOLA_MUK])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TENTACRUEL])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.RELICANTH, Species.WAILORD])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.SHARPEDO], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })), + [TrainerType.ARCHIE_2]: new TrainerConfig(++t).setName("Archie").initForEvilTeamLeader("Aqua Boss", [], true).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.EMPOLEON, Species.LUDICOLO], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.POLITOED, Species.PELIPPER], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.abilityIndex = 2; // Drizzle + })) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.BEARTIC, Species.ARMALDO], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.abilityIndex = 2; // Swift Swim + })) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.OVERQWIL ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.abilityIndex = 1; // Swift Swim + })) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SHARPEDO], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KYOGRE], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.CYRUS]: new TrainerConfig(++t).setName("Cyrus").initForEvilTeamLeader("Galactic Boss", []).setMixedBattleBgm("battle_galactic_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GYARADOS ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.HISUI_BRAVIARY ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.CROBAT, Species.GLISCOR ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.AZELF, Species.UXIE, Species.MESPRIT ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HOUNDOOM ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.WEAVILE], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })), + [TrainerType.CYRUS_2]: new TrainerConfig(++t).setName("Cyrus").initForEvilTeamLeader("Galactic Boss", [], true).setMixedBattleBgm("battle_galactic_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.AZELF, Species.UXIE, Species.MESPRIT], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.ELECTRODE, Species.HISUI_ELECTRODE])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SALAMENCE, Species.ROARING_MOON])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.HOUNDOOM], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.WEAVILE], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.DARKRAI], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.GHETSIS]: new TrainerConfig(++t).setName("Ghetsis").initForEvilTeamLeader("Plasma Boss", []).setMixedBattleBgm("battle_plasma_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.COFAGRIGUS, Species.RUNERIGUS])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.BOUFFALANT])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SEISMITOAD, Species.CARRACOSTA])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.EELEKTROSS, Species.GALVANTULA])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.VOLCARONA])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.HYDREIGON], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })), + [TrainerType.GHETSIS_2]: new TrainerConfig(++t).setName("Ghetsis").initForEvilTeamLeader("Plasma Boss", [], true).setMixedBattleBgm("battle_plasma_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GENESECT ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + p.formIndex = Utils.randSeedInt(5); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.BASCULEGION, Species.JELLICENT ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.gender = Gender.MALE; + p.formIndex = 1; + })) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.KINGAMBIT ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.VOLCARONA, Species.SLITHER_WING ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HYDREIGON, Species.IRON_JUGULIS ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KYUREM], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.LYSANDRE]: new TrainerConfig(++t).setName("Lysandre").initForEvilTeamLeader("Flare Boss", []).setMixedBattleBgm("battle_flare_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.MIENSHAO ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.TALONFLAME ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PYROAR ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.gender = Gender.MALE; + })) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.CLAWITZER, Species.DRAGALGE ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HELIOLISK, Species.MALAMAR ])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.GYARADOS ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })), + [TrainerType.LYSANDRE_2]: new TrainerConfig(++t).setName("Lysandre").initForEvilTeamLeader("Flare Boss", [], true).setMixedBattleBgm("battle_flare_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SCREAM_TAIL, Species.FLUTTER_MANE], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PYROAR ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.gender = Gender.MALE; + })) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.IRON_MOTH ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GOODRA, Species.HISUI_GOODRA ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.GYARADOS ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.ULTRA_BALL; + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.YVELTAL], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.LUSAMINE]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss", []).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLEFABLE ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.LILLIGANT, Species.HISUI_LILLIGANT ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.MILOTIC, Species.PRIMARINA ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.BEWEAR ])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.NIHILEGO ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })), + [TrainerType.LUSAMINE_2]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss", [], true).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLEFABLE ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.MILOTIC, Species.PRIMARINA ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PHEROMOSA ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.STAKATAKA, Species.CELESTEELA, Species.GUZZLORD ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.NIHILEGO ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.NECROZMA ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.GUZMA]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss", []).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.LOKIX, Species.YANMEGA ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HERACROSS ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SCIZOR, Species.KLEAVOR ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GALVANTULA, Species.VIKAVOLT])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.PINSIR ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.GOLISOPOD ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })), + [TrainerType.GUZMA_2]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss", [], true).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GOLISOPOD ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.abilityIndex = 2; //Anticipation + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HISUI_SAMUROTT, Species.CRAWDAUNT ], TrainerSlot.TRAINER, true, p => { + p.abilityIndex = 2; //Sharpness, Adaptability + })) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SCIZOR, Species.KLEAVOR ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.PINSIR ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.formIndex = 1; + p.generateName(); + })) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.BUZZWOLE ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.XURKITREE ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })), + [TrainerType.ROSE]: new TrainerConfig(++t).setName("Rose").initForEvilTeamLeader("Macro Boss", []).setMixedBattleBgm("battle_macro_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.ARCHALUDON ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.FERROTHORN, Species.ESCAVALIER ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SIRFETCHD, Species.MR_RIME ])) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.CORVIKNIGHT ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.PERRSERKER, Species.KLINKLANG ])) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.COPPERAJAH ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.formIndex = 1; + p.generateName(); + })), + [TrainerType.ROSE_2]: new TrainerConfig(++t).setName("Rose").initForEvilTeamLeader("Macro Boss", [], true).setMixedBattleBgm("battle_macro_boss").setVictoryBgm("victory_team_plasma") + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.ARCHALUDON ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.AEGISLASH, Species.GHOLDENGO ])) + .setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.DRACOVISH, Species.DRACOZOLT ], TrainerSlot.TRAINER, true, p => { + p.generateAndPopulateMoveset(); + p.abilityIndex = 1; //Strong Jaw, Hustle + })) + .setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.MELMETAL ])) + .setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.GALAR_ARTICUNO, Species.GALAR_ZAPDOS, Species.GALAR_MOLTRES ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.pokeball = PokeballType.MASTER_BALL; + })) + .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.COPPERAJAH ], TrainerSlot.TRAINER, true, p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + p.formIndex = 1; + p.generateName(); + })), +}; From f1111dc0d291b3861af770031bf0bcc377fa26da Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Fri, 30 Aug 2024 00:13:53 +0100 Subject: [PATCH 011/116] chore: Update AdminUiHandler to clear input fields and set mode to ADMIN --- src/ui/admin-ui-handler.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ui/admin-ui-handler.ts b/src/ui/admin-ui-handler.ts index 049e5b01cdf..0e5202fc1a8 100644 --- a/src/ui/admin-ui-handler.ts +++ b/src/ui/admin-ui-handler.ts @@ -66,11 +66,13 @@ export default class AdminUiHandler extends FormModalUiHandler { if (!response.ok) { console.error(response); } - this.scene.ui.revertMode(); + this.inputs[0].setText(""); + this.inputs[1].setText(""); + this.scene.ui.setMode(Mode.ADMIN); }) .catch((err) => { console.error(err); - this.scene.ui.revertMode(); + this.scene.ui.setMode(Mode.ADMIN); }); return false; }; From 7eb6ba4dfdf8b3c536685708f4b9f0618c33908f Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Fri, 30 Aug 2024 00:19:03 +0100 Subject: [PATCH 012/116] chore: Clear input fields and revert mode in AdminUiHandler --- src/ui/admin-ui-handler.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/admin-ui-handler.ts b/src/ui/admin-ui-handler.ts index 0e5202fc1a8..141a4893714 100644 --- a/src/ui/admin-ui-handler.ts +++ b/src/ui/admin-ui-handler.ts @@ -68,10 +68,12 @@ export default class AdminUiHandler extends FormModalUiHandler { } this.inputs[0].setText(""); this.inputs[1].setText(""); + this.scene.ui.revertMode(); this.scene.ui.setMode(Mode.ADMIN); }) .catch((err) => { console.error(err); + this.scene.ui.revertMode(); this.scene.ui.setMode(Mode.ADMIN); }); return false; From f7169868f3b015c8046c5f959e5a3df02f241068 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Fri, 30 Aug 2024 00:22:09 +0100 Subject: [PATCH 013/116] chore: Refactor AdminUiHandler to clear input fields and revert mode --- src/ui/admin-ui-handler.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ui/admin-ui-handler.ts b/src/ui/admin-ui-handler.ts index 141a4893714..5c91a36ab64 100644 --- a/src/ui/admin-ui-handler.ts +++ b/src/ui/admin-ui-handler.ts @@ -69,12 +69,10 @@ export default class AdminUiHandler extends FormModalUiHandler { this.inputs[0].setText(""); this.inputs[1].setText(""); this.scene.ui.revertMode(); - this.scene.ui.setMode(Mode.ADMIN); }) .catch((err) => { console.error(err); this.scene.ui.revertMode(); - this.scene.ui.setMode(Mode.ADMIN); }); return false; }; From d1132a57659b045b72381710457a093879fb41d1 Mon Sep 17 00:00:00 2001 From: Opaque02 <66582645+Opaque02@users.noreply.github.com> Date: Fri, 30 Aug 2024 11:38:46 +1000 Subject: [PATCH 014/116] [QoL] Test dialogue menu option (#3725) * Adding code to allow use of a testing dialogue translation menu * Updated to include autocomplete functionality * Added multiple inputs * Added locales for other languages as well as checks to make this only available on local/beta * Updated a few things to try get the dialogue to work for full length of the window * Fixed issue with message box not taking up full length of the screen (thanks Moka!) and some minor bugs * Whoops, forgot to stage a file * Updated locale files * Fixed broken tests and docs * Removed keys from json * Reordered and reorganised some things * Put admin enum at end to match handlers * Removed old unneeded line of code * Updated to include the ability to handle cases where i18 keys are null in the locales json --- src/locales/en/menu-ui-handler.json | 4 +- src/ui/abstact-option-select-ui-handler.ts | 29 +++- src/ui/autocomplete-ui-handler.ts | 45 +++++++ src/ui/battle-message-ui-handler.ts | 10 +- src/ui/menu-ui-handler.ts | 113 +++++++++++++--- src/ui/test-dialogue-ui-handler.ts | 147 +++++++++++++++++++++ src/ui/ui.ts | 8 ++ 7 files changed, 332 insertions(+), 24 deletions(-) create mode 100644 src/ui/autocomplete-ui-handler.ts create mode 100644 src/ui/test-dialogue-ui-handler.ts diff --git a/src/locales/en/menu-ui-handler.json b/src/locales/en/menu-ui-handler.json index 8230a675b39..fccf9cd3002 100644 --- a/src/locales/en/menu-ui-handler.json +++ b/src/locales/en/menu-ui-handler.json @@ -14,8 +14,8 @@ "importSlotSelect": "Select a slot to import to.", "exportSession": "Export Session", "exportSlotSelect": "Select a slot to export from.", - "importRunHistory":"Import Run History", - "exportRunHistory":"Export Run History", + "importRunHistory": "Import Run History", + "exportRunHistory": "Export Run History", "importData": "Import Data", "exportData": "Export Data", "consentPreferences": "Consent Preferences", diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index 5172075da52..c6abecda4c0 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -77,7 +77,21 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { } protected setupOptions() { - const options = this.config?.options || []; + const configOptions = this.config?.options ?? []; + + let options: OptionSelectItem[]; + + // for performance reasons, this limits how many options we can see at once. Without this, it would try to make text options for every single options + // which makes the performance take a hit. If there's not enough options to do this (set to 10 at the moment) and the ui mode !== Mode.AUTO_COMPLETE, + // this is ignored and the original code is untouched, with the options array being all the options from the config + if (configOptions.length >= 10 && this.scene.ui.getMode() === Mode.AUTO_COMPLETE) { + const optionsScrollTotal = configOptions.length; + const optionStartIndex = this.scrollCursor; + const optionEndIndex = Math.min(optionsScrollTotal, optionStartIndex + (!optionStartIndex || this.scrollCursor + (this.config?.maxOptions! - 1) >= optionsScrollTotal ? this.config?.maxOptions! - 1 : this.config?.maxOptions! - 2)); + options = configOptions.slice(optionStartIndex, optionEndIndex + 2); + } else { + options = configOptions; + } if (this.optionSelectText) { this.optionSelectText.destroy(); @@ -192,6 +206,19 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { } else { ui.playError(); } + } else if (button === Button.SUBMIT && ui.getMode() === Mode.AUTO_COMPLETE) { + // this is here to differentiate between a Button.SUBMIT vs Button.ACTION within the autocomplete handler + // this is here because Button.ACTION is picked up as z on the keyboard, meaning if you're typing and hit z, it'll select the option you've chosen + success = true; + const option = this.config?.options[this.cursor + (this.scrollCursor - (this.scrollCursor ? 1 : 0))]; + if (option?.handler()) { + if (!option.keepOpen) { + this.clear(); + } + playSound = !option.overrideSound; + } else { + ui.playError(); + } } else { switch (button) { case Button.UP: diff --git a/src/ui/autocomplete-ui-handler.ts b/src/ui/autocomplete-ui-handler.ts new file mode 100644 index 00000000000..480a3cf72d0 --- /dev/null +++ b/src/ui/autocomplete-ui-handler.ts @@ -0,0 +1,45 @@ +import { Button } from "#enums/buttons"; +import BattleScene from "../battle-scene"; +import AbstractOptionSelectUiHandler from "./abstact-option-select-ui-handler"; +import { Mode } from "./ui"; + +export default class AutoCompleteUiHandler extends AbstractOptionSelectUiHandler { + modalContainer: Phaser.GameObjects.Container; + constructor(scene: BattleScene, mode: Mode = Mode.OPTION_SELECT) { + super(scene, mode); + } + + getWindowWidth(): integer { + return 64; + } + + show(args: any[]): boolean { + if (args[0].modalContainer) { + const { modalContainer } = args[0]; + const show = super.show(args); + this.modalContainer = modalContainer; + this.setupOptions(); + + return show; + } + return false; + } + + protected setupOptions() { + super.setupOptions(); + if (this.modalContainer) { + this.optionSelectContainer.setSize(this.optionSelectContainer.height, Math.max(this.optionSelectText.displayWidth + 24, this.getWindowWidth())); + this.optionSelectContainer.setPositionRelative(this.modalContainer, this.optionSelectBg.width, this.optionSelectBg.height + 50); + } + } + + processInput(button: Button): boolean { + // the cancel and action button are here because if you're typing, x and z are used for cancel/action. This means you could be typing something and accidentally cancel/select when you don't mean to + // the submit button is therefore used to select a choice (the enter button), though this does not work on my local dev testing for phones, as for my phone/keyboard combo, the enter and z key are both + // bound to Button.ACTION, which makes this not work on mobile + if (button !== Button.CANCEL && button !== Button.ACTION) { + return super.processInput(button); + } + return false; + } +} diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index 189305ce4c1..86f8d9e01a8 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -21,6 +21,8 @@ export default class BattleMessageUiHandler extends MessageUiHandler { public movesWindowContainer: Phaser.GameObjects.Container; public nameBoxContainer: Phaser.GameObjects.Container; + public readonly wordWrapWidth: number = 1780; + constructor(scene: BattleScene) { super(scene, Mode.MESSAGE); } @@ -63,7 +65,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { const message = addTextObject(this.scene, 0, 0, "", TextStyle.MESSAGE, { maxLines: 2, wordWrap: { - width: 1780 + width: this.wordWrapWidth } }); messageContainer.add(message); @@ -129,7 +131,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { this.commandWindow.setVisible(false); this.movesWindowContainer.setVisible(false); - this.message.setWordWrapWidth(1780); + this.message.setWordWrapWidth(this.wordWrapWidth); return true; } @@ -161,7 +163,9 @@ export default class BattleMessageUiHandler extends MessageUiHandler { } showDialogue(text: string, name?: string, delay?: integer | null, callback?: Function, callbackDelay?: integer, prompt?: boolean, promptDelay?: integer) { - name && this.showNameText(name); + if (name) { + this.showNameText(name); + } super.showDialogue(text, name, delay, callback, callbackDelay, prompt, promptDelay); } diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 0bbfe21e4f9..9e96eda9cc5 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -2,7 +2,7 @@ import BattleScene, { bypassLogin } from "../battle-scene"; import { TextStyle, addTextObject, getTextStyleOptions } from "./text"; import { Mode } from "./ui"; import * as Utils from "../utils"; -import { addWindow } from "./ui-theme"; +import { addWindow, WindowVariant } from "./ui-theme"; import MessageUiHandler from "./message-ui-handler"; import { OptionSelectConfig, OptionSelectItem } from "./abstact-option-select-ui-handler"; import { Tutorial, handleTutorial } from "../tutorial"; @@ -11,6 +11,7 @@ import i18next from "i18next"; import { Button } from "#enums/buttons"; import { GameDataType } from "#enums/game-data-type"; import BgmBar from "#app/ui/bgm-bar"; +import AwaitableUiHandler from "./awaitable-ui-handler"; enum MenuOptions { GAME_SETTINGS, @@ -31,6 +32,10 @@ const githubUrl = "https://github.com/pagefaultgames/pokerogue"; const redditUrl = "https://www.reddit.com/r/pokerogue"; export default class MenuUiHandler extends MessageUiHandler { + private readonly textPadding = 8; + private readonly defaultMessageBoxWidth = 220; + private readonly defaultWordWrapWidth = 1224; + private menuContainer: Phaser.GameObjects.Container; private menuMessageBoxContainer: Phaser.GameObjects.Container; private menuOverlay: Phaser.GameObjects.Rectangle; @@ -46,17 +51,20 @@ export default class MenuUiHandler extends MessageUiHandler { protected manageDataConfig: OptionSelectConfig; protected communityConfig: OptionSelectConfig; + // Windows for the default message box and the message box for testing dialogue + private menuMessageBox: Phaser.GameObjects.NineSlice; + private dialogueMessageBox: Phaser.GameObjects.NineSlice; + protected scale: number = 0.1666666667; public bgmBar: BgmBar; - constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.excludedMenus = () => [ - { condition: [Mode.COMMAND, Mode.TITLE].includes(mode ?? Mode.TITLE), options: [ MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, - { condition: bypassLogin, options: [ MenuOptions.LOG_OUT ] } + { condition: [Mode.COMMAND, Mode.TITLE].includes(mode ?? Mode.TITLE), options: [MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, + { condition: bypassLogin, options: [MenuOptions.LOG_OUT] } ]; this.menuOptions = Utils.getEnumKeys(MenuOptions) @@ -98,8 +106,8 @@ export default class MenuUiHandler extends MessageUiHandler { render() { const ui = this.getUi(); this.excludedMenus = () => [ - { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain()[0]), options: [ MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, - { condition: bypassLogin, options: [ MenuOptions.LOG_OUT ] } + { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain()[0]), options: [MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, + { condition: bypassLogin, options: [MenuOptions.LOG_OUT] } ]; this.menuOptions = Utils.getEnumKeys(MenuOptions) @@ -115,12 +123,12 @@ export default class MenuUiHandler extends MessageUiHandler { this.menuBg = addWindow(this.scene, (this.scene.game.canvas.width / 6) - (this.optionSelectText.displayWidth + 25), 0, - this.optionSelectText.displayWidth + 19+24*this.scale, + this.optionSelectText.displayWidth + 19 + 24 * this.scale, (this.scene.game.canvas.height / 6) - 2 ); this.menuBg.setOrigin(0, 0); - this.optionSelectText.setPositionRelative(this.menuBg, 10+24*this.scale, 6); + this.optionSelectText.setPositionRelative(this.menuBg, 10 + 24 * this.scale, 6); this.menuContainer.add(this.menuBg); @@ -131,20 +139,27 @@ export default class MenuUiHandler extends MessageUiHandler { this.menuMessageBoxContainer = this.scene.add.container(0, 130); this.menuMessageBoxContainer.setName("menu-message-box"); this.menuMessageBoxContainer.setVisible(false); - this.menuContainer.add(this.menuMessageBoxContainer); - const menuMessageBox = addWindow(this.scene, 0, -0, 220, 48); - menuMessageBox.setOrigin(0, 0); - this.menuMessageBoxContainer.add(menuMessageBox); + // Window for general messages + this.menuMessageBox = addWindow(this.scene, 0, 0, this.defaultMessageBoxWidth, 48); + this.menuMessageBox.setOrigin(0, 0); + this.menuMessageBoxContainer.add(this.menuMessageBox); - const menuMessageText = addTextObject(this.scene, 8, 8, "", TextStyle.WINDOW, { maxLines: 2 }); + // Full-width window used for testing dialog messages in debug mode + this.dialogueMessageBox = addWindow(this.scene, -this.textPadding, 0, this.scene.game.canvas.width / 6 + this.textPadding * 2, 49, false, false, 0, 0, WindowVariant.THIN); + this.dialogueMessageBox.setOrigin(0, 0); + this.menuMessageBoxContainer.add(this.dialogueMessageBox); + + const menuMessageText = addTextObject(this.scene, this.textPadding, this.textPadding, "", TextStyle.WINDOW, { maxLines: 2 }); menuMessageText.setName("menu-message"); - menuMessageText.setWordWrapWidth(1224); menuMessageText.setOrigin(0, 0); this.menuMessageBoxContainer.add(menuMessageText); this.message = menuMessageText; + // By default we use the general purpose message window + this.setDialogTestMode(false); + this.menuContainer.add(this.menuMessageBoxContainer); const manageDataOptions: any[] = []; // TODO: proper type @@ -155,7 +170,7 @@ export default class MenuUiHandler extends MessageUiHandler { const config: OptionSelectConfig = { options: new Array(5).fill(null).map((_, i) => i).filter(slotFilter).map(i => { return { - label: i18next.t("menuUiHandler:slot", {slotNumber: i+1}), + label: i18next.t("menuUiHandler:slot", { slotNumber: i + 1 }), handler: () => { callback(i); ui.revertMode(); @@ -257,8 +272,55 @@ export default class MenuUiHandler extends MessageUiHandler { return true; }, keepOpen: true - }, - { + }); + if (Utils.isLocal || Utils.isBeta) { // this should make sure we don't have this option in live + manageDataOptions.push({ + label: "Test Dialogue", + handler: () => { + ui.playSelect(); + const prefilledText = ""; + const buttonAction: any = {}; + buttonAction["buttonActions"] = [ + (sanitizedName: string) => { + ui.revertMode(); + ui.playSelect(); + const dialogueTestName = sanitizedName; + const dialogueName = decodeURIComponent(escape(atob(dialogueTestName))); + const handler = ui.getHandler() as AwaitableUiHandler; + handler.tutorialActive = true; + const interpolatorOptions: any = {}; + const splitArr = dialogueName.split(" "); // this splits our inputted text into words to cycle through later + const translatedString = splitArr[0]; // this is our outputted i18 string + const regex = RegExp("\\{\\{(\\w*)\\}\\}", "g"); // this is a regex expression to find all the text between {{ }} in the i18 output + const matches = i18next.t(translatedString).match(regex) ?? []; + if (matches.length > 0) { + for (let match = 0; match < matches.length; match++) { + // we add 1 here because splitArr[0] is our first value for the translatedString, and after that is where the variables are + // the regex here in the replace (/\W/g) is to remove the {{ and }} and just give us all alphanumeric characters + if (typeof splitArr[match + 1] !== "undefined") { + interpolatorOptions[matches[match].replace(/\W/g, "")] = i18next.t(splitArr[match + 1]); + } + } + } + // Switch to the dialog test window + this.setDialogTestMode(true); + ui.showText(String(i18next.t(translatedString, interpolatorOptions)), null, () => this.scene.ui.showText("", 0, () => { + handler.tutorialActive = false; + // Go back to the default message window + this.setDialogTestMode(false); + }), null, true); + }, + () => { + ui.revertMode(); + } + ]; + ui.setMode(Mode.TEST_DIALOGUE, buttonAction, prefilledText); + return true; + }, + keepOpen: true + }); + } + manageDataOptions.push({ label: i18next.t("menuUiHandler:cancel"), handler: () => { this.scene.ui.revertMode(); @@ -421,7 +483,7 @@ export default class MenuUiHandler extends MessageUiHandler { break; case MenuOptions.MANAGE_DATA: if (!bypassLogin && !this.manageDataConfig.options.some(o => o.label === i18next.t("menuUiHandler:linkDiscord") || o.label === i18next.t("menuUiHandler:unlinkDiscord"))) { - this.manageDataConfig.options.splice(this.manageDataConfig.options.length-1, 0, + this.manageDataConfig.options.splice(this.manageDataConfig.options.length - 1, 0, { label: loggedInUser?.discordId === "" ? i18next.t("menuUiHandler:linkDiscord") : i18next.t("menuUiHandler:unlinkDiscord"), handler: () => { @@ -547,6 +609,21 @@ export default class MenuUiHandler extends MessageUiHandler { return success || error; } + /** + * Switch the message window style and size when we are replaying dialog for debug purposes + * In "dialog test mode", the window takes the whole width of the screen and the text + * is set up to wrap around the same way as the dialogue during the game + * @param isDialogMode whether to use the dialog test + */ + setDialogTestMode(isDialogMode: boolean) { + this.menuMessageBox.setVisible(!isDialogMode); + this.dialogueMessageBox.setVisible(isDialogMode); + // If we're testing dialog, we use the same word wrapping as the battle message handler + this.message.setWordWrapWidth(isDialogMode ? this.scene.ui.getMessageHandler().wordWrapWidth : this.defaultWordWrapWidth); + this.message.setX(isDialogMode ? this.textPadding + 1 : this.textPadding); + this.message.setY(isDialogMode ? this.textPadding + 0.4 : this.textPadding); + } + showText(text: string, delay?: number, callback?: Function, callbackDelay?: number, prompt?: boolean, promptDelay?: number): void { this.menuMessageBoxContainer.setVisible(!!text); diff --git a/src/ui/test-dialogue-ui-handler.ts b/src/ui/test-dialogue-ui-handler.ts new file mode 100644 index 00000000000..3f353bbc461 --- /dev/null +++ b/src/ui/test-dialogue-ui-handler.ts @@ -0,0 +1,147 @@ +import { FormModalUiHandler } from "./form-modal-ui-handler"; +import { ModalConfig } from "./modal-ui-handler"; +import i18next from "i18next"; +import { PlayerPokemon } from "#app/field/pokemon"; +import { OptionSelectItem } from "./abstact-option-select-ui-handler"; +import { isNullOrUndefined } from "#app/utils"; +import { Mode } from "./ui"; + +export default class TestDialogueUiHandler extends FormModalUiHandler { + + keys: string[]; + + constructor(scene, mode) { + super(scene, mode); + } + + setup() { + super.setup(); + + const flattenKeys = (object, topKey?: string, midleKey?: string[]): Array => { + return Object.keys(object).map((t, i) => { + const value = Object.values(object)[i]; + + if (typeof value === "object" && !isNullOrUndefined(value)) { // we check for not null or undefined here because if the language json file has a null key, the typeof will still be an object, but that object will be null, causing issues + // If the value is an object, execute the same process + // si el valor es un objeto ejecuta el mismo proceso + + return flattenKeys(value, topKey ?? t, topKey ? midleKey ? [...midleKey, t] : [t] : undefined).filter((t) => t.length > 0); + } else if (typeof value === "string" || isNullOrUndefined(value)) { // we check for null or undefined here as per above - the typeof is still an object but the value is null so we need to exit out of this and pass the null key + + // Return in the format expected by i18next + return midleKey ? `${topKey}:${midleKey.map((m) => m).join(".")}.${t}` : `${topKey}:${t}`; + } + }).filter((t) => t); + }; + + const keysInArrays = flattenKeys(i18next.getDataByLanguage(String(i18next.resolvedLanguage))).filter((t) => t.length > 0); // Array of arrays + const keys = keysInArrays.flat(Infinity).map(String); // One array of string + this.keys = keys; + } + + getModalTitle(config?: ModalConfig): string { + return "Test Dialogue"; + } + + getFields(config?: ModalConfig): string[] { + return [ "Dialogue" ]; + } + + getWidth(config?: ModalConfig): number { + return 300; + } + + getMargin(config?: ModalConfig): [number, number, number, number] { + return [ 0, 0, 48, 0 ]; + } + + getButtonLabels(config?: ModalConfig): string[] { + return [ "Check", "Cancel" ]; + } + + getReadableErrorMessage(error: string): string { + const colonIndex = error?.indexOf(":"); + if (colonIndex > 0) { + error = error.slice(0, colonIndex); + } + + return super.getReadableErrorMessage(error); + } + + show(args: any[]): boolean { + const ui = this.getUi(); + const input = this.inputs[0]; + input.setMaxLength(255); + + input.on("keydown", (inputObject, evt: KeyboardEvent) => { + if (["escape", "space"].some((v) => v === evt.key.toLowerCase() || v === evt.code.toLowerCase()) && ui.getMode() === Mode.AUTO_COMPLETE) { + // Delete autocomplete list and recovery focus. + inputObject.on("blur", () => inputObject.node.focus(), { once: true }); + ui.revertMode(); + } + }); + + input.on("textchange", (inputObject, evt: InputEvent) => { + // Delete autocomplete. + if (ui.getMode() === Mode.AUTO_COMPLETE) { + ui.revertMode(); + } + + let options: OptionSelectItem[] = []; + const splitArr = inputObject.text.split(" "); + const filteredKeys = this.keys.filter((command) => command.toLowerCase().includes(splitArr[splitArr.length - 1].toLowerCase())); + if (inputObject.text !== "" && filteredKeys.length > 0) { + // if performance is required, you could reduce the number of total results by changing the slice below to not have all ~8000 inputs going + options = filteredKeys.slice(0).map((value) => { + return { + label: value, + handler: () => { + // this is here to make sure that if you try to backspace then enter, the last known evt.data (backspace) is picked up + // this is because evt.data is null for backspace, so without this, the autocomplete windows just closes + if (!isNullOrUndefined(evt.data) || evt.inputType?.toLowerCase() === "deletecontentbackward") { + const separatedArray = inputObject.text.split(" "); + separatedArray[separatedArray.length - 1] = value; + inputObject.setText(separatedArray.join(" ")); + } + ui.revertMode(); + return true; + } + }; + }); + } + + if (options.length > 0) { + const modalOpts = { + options: options, + maxOptions: 5, + modalContainer: this.modalContainer + }; + ui.setOverlayMode(Mode.AUTO_COMPLETE, modalOpts); + } + + }); + + + if (super.show(args)) { + const config = args[0] as ModalConfig; + this.inputs[0].resize(1150, 116); + this.inputContainers[0].list[0].width = 200; + if (args[1] && typeof (args[1] as PlayerPokemon).getNameToRender === "function") { + this.inputs[0].text = (args[1] as PlayerPokemon).getNameToRender(); + } else { + this.inputs[0].text = args[1]; + } + this.submitAction = (_) => { + if (ui.getMode() === Mode.TEST_DIALOGUE) { + this.sanitizeInputs(); + const sanitizedName = btoa(unescape(encodeURIComponent(this.inputs[0].text))); + config.buttonActions[0](sanitizedName); + return true; + } + return false; + }; + return true; + } + return false; + } +} diff --git a/src/ui/ui.ts b/src/ui/ui.ts index dc12ac92be2..282bbb227f6 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -49,6 +49,8 @@ import RenameFormUiHandler from "./rename-form-ui-handler"; import AdminUiHandler from "./admin-ui-handler"; import RunHistoryUiHandler from "./run-history-ui-handler"; import RunInfoUiHandler from "./run-info-ui-handler"; +import TestDialogueUiHandler from "#app/ui/test-dialogue-ui-handler"; +import AutoCompleteUiHandler from "./autocomplete-ui-handler"; export enum Mode { MESSAGE, @@ -89,6 +91,8 @@ export enum Mode { RENAME_POKEMON, RUN_HISTORY, RUN_INFO, + TEST_DIALOGUE, + AUTO_COMPLETE, ADMIN, } @@ -127,6 +131,8 @@ const noTransitionModes = [ Mode.UNAVAILABLE, Mode.OUTDATED, Mode.RENAME_POKEMON, + Mode.TEST_DIALOGUE, + Mode.AUTO_COMPLETE, Mode.ADMIN, ]; @@ -191,6 +197,8 @@ export default class UI extends Phaser.GameObjects.Container { new RenameFormUiHandler(scene), new RunHistoryUiHandler(scene), new RunInfoUiHandler(scene), + new TestDialogueUiHandler(scene, Mode.TEST_DIALOGUE), + new AutoCompleteUiHandler(scene), new AdminUiHandler(scene), ]; } From aeecb67f32cb1a78b01ad5acd30e22a902143bbe Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Thu, 29 Aug 2024 20:56:05 -0500 Subject: [PATCH 015/116] Add inverse "item" sprite Pull #3525 forgot to add this graphic into the items folder, which would mean the sprite would be lost if the items atlas was overwritten at any point. This shouldn't affect any existing functionality. --- public/images/items/inverse.png | Bin 0 -> 413 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/items/inverse.png diff --git a/public/images/items/inverse.png b/public/images/items/inverse.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ad5d2c00ef54f1323d947921363faf1381aea3 GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^T3KmRl#X6Fc*eCO{UXElvc|L!;@BKeN zb(;_V7cW?lIcu9VU$9?z;=k7c zwzjKOs<(Em&~sovRka|c{rBq*&H}*${EIWc?fraQ+2Y}c%PAL+xn79od~v8+uz{Oz z|GDXFmDC(U%k?Ke+azsad5P&@h^*2K=C5bu;+&?gan65z^>veH&ojPj7EyZ}I$rRe zYt;_zVV-#E<=i*yUo_nxT72MKlfU;sYQ3jJ%#rQSpDjxAoAOIPT%=*E|G~X0rwIly zxh+^X@088&U-dDk8`;a}YfJC`e|ZToRQXaPJkxxA8MJ_G4j=}BOTm*tl&7no%Q~lo FCIDMrsfz#r literal 0 HcmV?d00001 From db4a63dbb9056a5e4e0f86e5a74601c5a05d539d Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Fri, 30 Aug 2024 03:15:35 -0400 Subject: [PATCH 016/116] [Sprite] Fix Courtney eye whites (#3907) --- public/images/trainer/courtney.png | Bin 1508 -> 888 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/trainer/courtney.png b/public/images/trainer/courtney.png index 991e7ac006f416414404789ac4e889141b058506..0efdb615fcd3e59dd53d370a6869be7b7d14a8e2 100644 GIT binary patch delta 876 zcmV-y1C#vZ3-|_*8Gi!+001!#Hzoi800DDSM?wIu&K&6g002c$OjJbx000mW5D*_C zH6k}i9t&X~A9pt%JU~QvNLXz~abIF(u}&<2bvL6uOSo`Y<7|7ruxFoaq}Zr{{OE}I z;JCz_#sB~Rsl@)80000NbW%=J0RR90|NsC0|NsC0|NsC0|9}7g|NsC0u#0ow0008M zNklvG~S3P7;cDIDgtY#1?5HS*HY=ZQF_hozDc*lu||187|)Elxj`qb4^6tHbo$pK2bS7 zCkBdCBO~Zzt?72VRZ>CG!CE^|Ze8n5MokR?%i{fO#haR{sP$HXoh$<+D#`plR%Rf) z5dMso!oj85!feG`yU^HSU5a8Bl$^I~k*WD%1287b&3|u_Kc!q5YTPr-90D-U8*4Vk zaxI!RW9E!ZSc+^Bm8Q!e5JeYaXp zjQJ@hc7KyiG=ak|;crZqcMio#FX$f_wpBCFOu#UQU(C_gYW4GIz0~UcmA>dhsGbT2rX6IxA~|50000P!Uj5;q zRS3%X&Y17;5I^OhYr%*@@{ne)Bhx%ZqqcS2DV;W%064x9j;04=!Xz4`F= zp?t(K05Xuje}BJr{D2}*#RsdamDX#ZTi;zBgTm=YJ6}{z7bD+YMIV~GZoqsyM&Ccywuafq?X>(dOAp3P= z3R#z%IoFb$=lz{?;^K~E`cLL<0P(j0vaMT*lOr7Ug z&nNY#tU&Yu1_xB~sxX?NfEggFOlNs02KDmu%f*YLgaMF54QTh%%@LGWY1*xCKhnDz~G-j_EF&jzI`%>t4Q$Uxq|@?r7jxqo*`!zpVs1Bht@zyOhVW(CO(WKL6? zDIjY2oTE_l!ejw5XUuU0B1u|1j>mFN6J@dh5n2X8xB;W#1ym}CtU#z^PBTKqpvXBX zVUhybsDy(+c_3z_xnLRtY2j#jgP|56h4j@x?|{fDBte{ysf02%0xD!`n7M(>8O`h- zhJS15OTcig{Q$iK(nMGlLO`i9sF@3DE*PH(HN(fQweZt|vo}BrRu7e7 zMeT)==_xL;!KuN-P*d|zb(UoMpfgF-@P8pTDMZLagxxGqJ}kLU<32PPgt0y{ZAA=> z7N^rfQH|^WaF50_*5{U%=9By>5d9~n67BSzNia!(=IW5c+cEw2qaco|;!HDuQD_bQ zBq291P;4gZ3sc?4!jYmk$)J!D$b)EMs;{PeC^jixlLN&Dju?wvdpGu~%3Yc1pkgMkgz;c)+6dCoq|)`l`x ztcFN(U08)SPOpbyMIE-j`mZ0cKY!fcPyets)M1K%Qp|&bQ)wX-GIjj+%KGWiv8t3} zB+L$U^`E73fAHXb`19y~8G3AX{Oa~@d7Lc#a)+Ev2XubKEY-i+;cubgySY|IIbGGR zdTF8)yxs%p?35S#EVE##-gUQL%f0c^@@RkX3`o~}CZrYVPW~tT5rjS+FL&s~cNveu&DHXx= ziz*$mRUvXu>J{;1FqTX7V^{q~)WZOjB9UeVs`{!o29u-zB<(}D9v+MxU;g=KxPEl> zzw78b$wxP~9DOKAiKE{qkXCo}OUJr(+Rj2wp>S6Fl7^YCO0d+~Yaps=6soGGxi%$C zav%>C`-s+G*LxtG^;UIF@@MA&>e4!Q-~{LdXu<7Yis85r0ur9m00000NkvXXu0mjf DcoNja From 60aa61e56e06ff263b2d7a718be31001efde607c Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Fri, 30 Aug 2024 02:16:15 -0700 Subject: [PATCH 017/116] [Bug] Skip Eternatus dialogue again (#3716) * The fix. * Ordinals.... * tsdocs.. * my forgetting * Fixed issues * Update src/phases/encounter-phase.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * The actual change * actual fixes --------- Co-authored-by: frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/locales/en/dialogue-final-boss.json | 6 ++- src/phases/encounter-phase.ts | 69 +++++++++++++------------ 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/locales/en/dialogue-final-boss.json b/src/locales/en/dialogue-final-boss.json index 48a5aa439f3..3abe4cd8831 100644 --- a/src/locales/en/dialogue-final-boss.json +++ b/src/locales/en/dialogue-final-boss.json @@ -2,5 +2,9 @@ "encounter": "It appears the time has finally come once again.\nYou know why you have come here, do you not?\n$You were drawn here, because you have been here before.\nCountless times.\n$Though, perhaps it can be counted.\nTo be precise, this is in fact your {{cycleCount}} cycle.\n$Each cycle your mind reverts to its former state.\nEven so, somehow, remnants of your former selves remain.\n$Until now you have yet to succeed, but I sense a different presence in you this time.\n\n$You are the only one here, though it is as if there is… another.\n$Will you finally prove a formidable challenge to me?\nThe challenge I have longed after for millennia?\n$We begin.", "encounter_female": null, "firstStageWin": "I see. The presence I felt was indeed real.\nIt appears I no longer need to hold back.\n$Do not disappoint me.", - "secondStageWin": "…Magnificent." + "secondStageWin": "…Magnificent.", + "key_ordinal_one": "st", + "key_ordinal_two": "nd", + "key_ordinal_few": "rd", + "key_ordinal_other": "th" } \ No newline at end of file diff --git a/src/phases/encounter-phase.ts b/src/phases/encounter-phase.ts index 9d74063627a..07bfd72a8bf 100644 --- a/src/phases/encounter-phase.ts +++ b/src/phases/encounter-phase.ts @@ -1,23 +1,23 @@ -import BattleScene from "#app/battle-scene.js"; -import { BattleType, BattlerIndex } from "#app/battle.js"; -import { applyAbAttrs, SyncEncounterNatureAbAttr } from "#app/data/ability.js"; -import { getCharVariantFromDialogue } from "#app/data/dialogue.js"; -import { TrainerSlot } from "#app/data/trainer-config.js"; -import { getRandomWeatherType } from "#app/data/weather.js"; -import { BattleSpec } from "#app/enums/battle-spec.js"; -import { PlayerGender } from "#app/enums/player-gender.js"; -import { Species } from "#app/enums/species.js"; -import { EncounterPhaseEvent } from "#app/events/battle-scene.js"; -import Pokemon, { FieldPosition } from "#app/field/pokemon.js"; -import { getPokemonNameWithAffix } from "#app/messages.js"; -import { regenerateModifierPoolThresholds, ModifierPoolType } from "#app/modifier/modifier-type.js"; -import { IvScannerModifier, TurnHeldItemTransferModifier } from "#app/modifier/modifier.js"; -import { achvs } from "#app/system/achv.js"; -import { handleTutorial, Tutorial } from "#app/tutorial.js"; -import { Mode } from "#app/ui/ui.js"; +import BattleScene from "#app/battle-scene"; +import { BattleType, BattlerIndex } from "#app/battle"; +import { applyAbAttrs, SyncEncounterNatureAbAttr } from "#app/data/ability"; +import { getCharVariantFromDialogue } from "#app/data/dialogue"; +import { TrainerSlot } from "#app/data/trainer-config"; +import { getRandomWeatherType } from "#app/data/weather"; +import { BattleSpec } from "#app/enums/battle-spec"; +import { PlayerGender } from "#app/enums/player-gender"; +import { Species } from "#app/enums/species"; +import { EncounterPhaseEvent } from "#app/events/battle-scene"; +import Pokemon, { FieldPosition } from "#app/field/pokemon"; +import { getPokemonNameWithAffix } from "#app/messages"; +import { regenerateModifierPoolThresholds, ModifierPoolType } from "#app/modifier/modifier-type"; +import { IvScannerModifier, TurnHeldItemTransferModifier } from "#app/modifier/modifier"; +import { achvs } from "#app/system/achv"; +import { handleTutorial, Tutorial } from "#app/tutorial"; +import { Mode } from "#app/ui/ui"; import i18next from "i18next"; import { BattlePhase } from "./battle-phase"; -import * as Utils from "#app/utils.js"; +import * as Utils from "#app/utils"; import { CheckSwitchPhase } from "./check-switch-phase"; import { GameOverPhase } from "./game-over-phase"; import { PostSummonPhase } from "./post-summon-phase"; @@ -358,24 +358,29 @@ export class EncounterPhase extends BattlePhase { case BattleSpec.FINAL_BOSS: const enemy = this.scene.getEnemyPokemon(); this.scene.ui.showText(this.getEncounterMessage(), null, () => { - const count = 5643853 + this.scene.gameData.gameStats.classicSessionsPlayed; - //The two lines below check if English ordinals (1st, 2nd, 3rd, Xth) are used and determine which one to use. - //Otherwise, it defaults to an empty string. - //As of 08-07-24: Spanish and Italian default to the English translations - const ordinalUse = ["en", "es", "it"]; - const currentLanguage = i18next.resolvedLanguage ?? "en"; - const ordinalIndex = (ordinalUse.includes(currentLanguage)) ? ["st", "nd", "rd"][((count + 90) % 100 - 10) % 10 - 1] ?? "th" : ""; - const cycleCount = count.toLocaleString() + ordinalIndex; - const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET; - const genderStr = PlayerGender[genderIndex].toLowerCase(); - const encounterDialogue = i18next.t("battleSpecDialogue:encounter", { context: genderStr, cycleCount: cycleCount }); - this.scene.ui.showDialogue(encounterDialogue, enemy?.species.name, null, () => { + const localizationKey = "battleSpecDialogue:encounter"; + if (this.scene.ui.shouldSkipDialogue(localizationKey)) { + // Logging mirrors logging found in dialogue-ui-handler + console.log(`Dialogue ${localizationKey} skipped`); this.doEncounterCommon(false); - }); + } else { + const count = 5643853 + this.scene.gameData.gameStats.classicSessionsPlayed; + // The line below checks if an English ordinal is necessary or not based on whether an entry for encounterLocalizationKey exists in the language or not. + const ordinalUsed = !i18next.exists(localizationKey, {fallbackLng: []}) || i18next.resolvedLanguage === "en" ? i18next.t("battleSpecDialogue:key", { count: count, ordinal: true }) : ""; + const cycleCount = count.toLocaleString() + ordinalUsed; + const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET; + const genderStr = PlayerGender[genderIndex].toLowerCase(); + const encounterDialogue = i18next.t(localizationKey, { context: genderStr, cycleCount: cycleCount }); + if (!this.scene.gameData.getSeenDialogues()[localizationKey]) { + this.scene.gameData.saveSeenDialogue(localizationKey); + } + this.scene.ui.showDialogue(encounterDialogue, enemy?.species.name, null, () => { + this.doEncounterCommon(false); + }); + } }, 1500, true); return true; } - return false; } } From e2db9cb8a4d3e41a1b6babdf98c5215ce46dda09 Mon Sep 17 00:00:00 2001 From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Fri, 30 Aug 2024 13:54:48 -0400 Subject: [PATCH 018/116] Even more TM fixes (#3889) --- src/data/tms.ts | 91 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/src/data/tms.ts b/src/data/tms.ts index 55f0602c84a..9dea6d74a86 100644 --- a/src/data/tms.ts +++ b/src/data/tms.ts @@ -42431,7 +42431,6 @@ export const tmSpecies: TmSpecies = { Species.TORTERRA, Species.BUDEW, Species.ROSERADE, - Species.WORMADAM, Species.CHERUBI, Species.CHERRIM, Species.CARNIVINE, @@ -42449,6 +42448,7 @@ export const tmSpecies: TmSpecies = { Species.PETILIL, Species.LILLIGANT, Species.MARACTUS, + Species.MINCCINO, Species.CINCCINO, Species.DEERLING, Species.SAWSBUCK, @@ -42511,6 +42511,10 @@ export const tmSpecies: TmSpecies = { Species.DIPPLIN, Species.OGERPON, Species.HYDRAPPLE, + [ + Species.WORMADAM, + "plant", + ], Species.ALOLA_EXEGGUTOR, Species.HISUI_VOLTORB, Species.HISUI_ELECTRODE, @@ -45984,6 +45988,7 @@ export const tmSpecies: TmSpecies = { Species.TEDDIURSA, Species.URSARING, Species.HITMONTOP, + Species.COMBUSKEN, Species.BLAZIKEN, Species.BRELOOM, Species.MAKUHITA, @@ -48612,6 +48617,7 @@ export const tmSpecies: TmSpecies = { Species.WOOBAT, Species.SWOOBAT, Species.SEWADDLE, + Species.SWADLOON, Species.LEAVANNY, Species.SIGILYPH, Species.ARCHEOPS, @@ -48641,6 +48647,9 @@ export const tmSpecies: TmSpecies = { Species.ROWLET, Species.DARTRIX, Species.DECIDUEYE, + Species.PIKIPEK, + Species.TRUMBEAK, + Species.TOUCANNON, Species.VIKAVOLT, Species.ORICORIO, Species.TYPE_NULL, @@ -49162,6 +49171,8 @@ export const tmSpecies: TmSpecies = { Species.AZELF, Species.REGIGIGAS, Species.DARKRAI, + Species.PIGNITE, + Species.EMBOAR, Species.AUDINO, Species.TIMBURR, Species.GURDURR, @@ -49792,10 +49803,13 @@ export const tmSpecies: TmSpecies = { ], [Moves.BRAVE_BIRD]: [ Species.PIDGEY, + Species.PIDGEOTTO, + Species.PIDGEOT, Species.ZUBAT, Species.GOLBAT, Species.FARFETCHD, Species.DODUO, + Species.DODRIO, Species.ARTICUNO, Species.ZAPDOS, Species.MOLTRES, @@ -49806,6 +49820,7 @@ export const tmSpecies: TmSpecies = { Species.MURKROW, Species.DELIBIRD, Species.SKARMORY, + Species.LUGIA, Species.HO_OH, Species.BLAZIKEN, Species.TAILLOW, @@ -49833,6 +49848,8 @@ export const tmSpecies: TmSpecies = { Species.DARTRIX, Species.DECIDUEYE, Species.PIKIPEK, + Species.TRUMBEAK, + Species.TOUCANNON, Species.TAPU_KOKO, Species.ROOKIDEE, Species.CORVISQUIRE, @@ -50008,6 +50025,7 @@ export const tmSpecies: TmSpecies = { Species.MUDSDALE, Species.SANDYGAST, Species.PALOSSAND, + Species.MINIOR, Species.NECROZMA, Species.RILLABOOM, Species.DREDNAW, @@ -51968,6 +51986,7 @@ export const tmSpecies: TmSpecies = { Species.BEHEEYEM, Species.CRYOGONAL, Species.DRUDDIGON, + Species.GOLETT, Species.GOLURK, Species.PAWNIARD, Species.BISHARP, @@ -52010,6 +52029,7 @@ export const tmSpecies: TmSpecies = { Species.MELTAN, Species.MELMETAL, Species.CORVIKNIGHT, + Species.PERRSERKER, Species.CUFANT, Species.COPPERAJAH, Species.DURALUDON, @@ -53199,6 +53219,8 @@ export const tmSpecies: TmSpecies = { Species.NUMEL, Species.CAMERUPT, Species.TORKOAL, + Species.TRAPINCH, + Species.VIBRAVA, Species.FLYGON, Species.LUNATONE, Species.SOLROCK, @@ -53442,6 +53464,9 @@ export const tmSpecies: TmSpecies = { Species.NUMEL, Species.CAMERUPT, Species.TORKOAL, + Species.TRAPINCH, + Species.VIBRAVA, + Species.FLYGON, Species.LUNATONE, Species.SOLROCK, Species.BARBOACH, @@ -53524,6 +53549,7 @@ export const tmSpecies: TmSpecies = { Species.HYDREIGON, Species.COBALION, Species.TERRAKION, + Species.ZEKROM, Species.LANDORUS, Species.BINACLE, Species.BARBARACLE, @@ -54570,6 +54596,7 @@ export const tmSpecies: TmSpecies = { Species.SLOWBRO, Species.DROWZEE, Species.HYPNO, + Species.EXEGGCUTE, Species.EXEGGUTOR, Species.STARMIE, Species.MR_MIME, @@ -54621,6 +54648,7 @@ export const tmSpecies: TmSpecies = { Species.MESPRIT, Species.AZELF, Species.CRESSELIA, + Species.DARKRAI, Species.ARCEUS, Species.VICTINI, Species.MUNNA, @@ -54644,6 +54672,7 @@ export const tmSpecies: TmSpecies = { Species.ESPURR, Species.MEOWSTIC, Species.AROMATISSE, + Species.INKAY, Species.MALAMAR, Species.SYLVEON, Species.KLEFKI, @@ -55061,6 +55090,7 @@ export const tmSpecies: TmSpecies = { Species.NIDOQUEEN, Species.NIDOKING, Species.VILEPLUME, + Species.VENOMOTH, Species.DUGTRIO, Species.BELLSPROUT, Species.WEEPINBELL, @@ -55165,6 +55195,7 @@ export const tmSpecies: TmSpecies = { Species.MAGNEMITE, Species.MAGNETON, Species.ONIX, + Species.RHYHORN, Species.RHYDON, Species.SNORLAX, Species.MEW, @@ -55197,6 +55228,7 @@ export const tmSpecies: TmSpecies = { Species.TURTWIG, Species.GROTLE, Species.TORTERRA, + Species.RAMPARDOS, Species.SHIELDON, Species.BASTIODON, Species.BRONZOR, @@ -55212,6 +55244,8 @@ export const tmSpecies: TmSpecies = { Species.REGIGIGAS, Species.ARCEUS, Species.TEPIG, + Species.PIGNITE, + Species.EMBOAR, Species.ROGGENROLA, Species.BOLDORE, Species.GIGALITH, @@ -55222,6 +55256,7 @@ export const tmSpecies: TmSpecies = { Species.BEARTIC, Species.GOLETT, Species.GOLURK, + Species.COBALION, Species.CARBINK, Species.AVALUGG, Species.VOLCANION, @@ -55303,6 +55338,7 @@ export const tmSpecies: TmSpecies = { Species.FLAAFFY, Species.AMPHAROS, Species.ELEKID, + Species.RAIKOU, Species.ELECTRIKE, Species.MANECTRIC, Species.PLUSLE, @@ -55314,6 +55350,8 @@ export const tmSpecies: TmSpecies = { Species.MAGNEZONE, Species.ELECTIVIRE, Species.ROTOM, + Species.BLITZLE, + Species.ZEBSTRIKA, Species.EMOLGA, Species.JOLTIK, Species.GALVANTULA, @@ -59685,6 +59723,7 @@ export const tmSpecies: TmSpecies = { Species.NIDORINO, Species.NIDOKING, Species.RAPIDASH, + Species.DODRIO, Species.SEEL, Species.DEWGONG, Species.CLOYSTER, @@ -59699,6 +59738,7 @@ export const tmSpecies: TmSpecies = { Species.FORRETRESS, Species.DUNSPARCE, Species.STEELIX, + Species.SKARMORY, Species.DELIBIRD, Species.HITMONTOP, Species.BALTOY, @@ -60552,6 +60592,7 @@ export const tmSpecies: TmSpecies = { Species.ARCANINE, Species.PONYTA, Species.RAPIDASH, + Species.DEWGONG, Species.MEW, Species.CYNDAQUIL, Species.QUILAVA, @@ -60582,6 +60623,8 @@ export const tmSpecies: TmSpecies = { Species.SKITTY, Species.DELCATTY, Species.MAWILE, + Species.PLUSLE, + Species.MINUN, Species.VOLBEAT, Species.ILLUMISE, Species.SWABLU, @@ -60603,6 +60646,7 @@ export const tmSpecies: TmSpecies = { Species.UXIE, Species.MESPRIT, Species.AZELF, + Species.SHAYMIN, Species.LILLIPUP, Species.HERDIER, Species.STOUTLAND, @@ -66276,8 +66320,13 @@ export const tmSpecies: TmSpecies = { Species.BLOODMOON_URSALUNA, ], [Moves.ICE_SPINNER]: [ + Species.SQUIRTLE, + Species.WARTORTLE, + Species.BLASTOISE, Species.JIGGLYPUFF, Species.WIGGLYTUFF, + Species.SEEL, + Species.DEWGONG, Species.SHELLDER, Species.CLOYSTER, Species.ARTICUNO, @@ -66290,9 +66339,12 @@ export const tmSpecies: TmSpecies = { Species.DUNSPARCE, Species.DELIBIRD, Species.DONPHAN, + Species.HITMONTOP, Species.LUDICOLO, Species.SNORUNT, Species.GLALIE, + Species.REGICE, + Species.REGISTEEL, Species.PIPLUP, Species.PRINPLUP, Species.EMPOLEON, @@ -66304,10 +66356,14 @@ export const tmSpecies: TmSpecies = { Species.ABOMASNOW, Species.WEAVILE, Species.FROSLASS, + Species.CINCCINO, Species.CRYOGONAL, Species.MIENSHAO, Species.BERGMITE, Species.AVALUGG, + Species.POPPLIO, + Species.BRIONNE, + Species.PRIMARINA, Species.CRABOMINABLE, Species.MAREANIE, Species.TOXAPEX, @@ -66845,6 +66901,9 @@ export const tmSpecies: TmSpecies = { Species.BLOODMOON_URSALUNA, ], [Moves.CHILLING_WATER]: [ + Species.SQUIRTLE, + Species.WARTORTLE, + Species.BLASTOISE, Species.CLEFAIRY, Species.CLEFABLE, Species.JIGGLYPUFF, @@ -66856,12 +66915,19 @@ export const tmSpecies: TmSpecies = { Species.POLIWAG, Species.POLIWHIRL, Species.POLIWRATH, + Species.TENTACOOL, + Species.TENTACRUEL, Species.SLOWPOKE, Species.SLOWBRO, + Species.SEEL, + Species.DEWGONG, Species.SHELLDER, Species.CLOYSTER, Species.CHANSEY, + Species.HORSEA, + Species.SEADRA, Species.GYARADOS, + Species.LAPRAS, Species.VAPOREON, Species.SNORLAX, Species.DRATINI, @@ -66869,8 +66935,13 @@ export const tmSpecies: TmSpecies = { Species.DRAGONITE, Species.MEWTWO, Species.MEW, + Species.TOTODILE, + Species.CROCONAW, + Species.FERALIGATR, Species.SENTRET, Species.FURRET, + Species.CHINCHOU, + Species.LANTURN, Species.CLEFFA, Species.MARILL, Species.AZUMARILL, @@ -66882,7 +66953,13 @@ export const tmSpecies: TmSpecies = { Species.DUNSPARCE, Species.QWILFISH, Species.DELIBIRD, + Species.KINGDRA, Species.BLISSEY, + Species.SUICUNE, + Species.LUGIA, + Species.MUDKIP, + Species.MARSHTOMP, + Species.SWAMPERT, Species.LOTAD, Species.LOMBRE, Species.LUDICOLO, @@ -66908,6 +66985,8 @@ export const tmSpecies: TmSpecies = { Species.MILOTIC, Species.SNORUNT, Species.GLALIE, + Species.LATIAS, + Species.LATIOS, Species.KYOGRE, Species.PIPLUP, Species.PRINPLUP, @@ -66933,6 +67012,8 @@ export const tmSpecies: TmSpecies = { "", "origin", ], + Species.PHIONE, + Species.MANAPHY, Species.ARCEUS, Species.OSHAWOTT, Species.DEWOTT, @@ -66943,6 +67024,8 @@ export const tmSpecies: TmSpecies = { "blue-striped", "white-striped", ], + Species.MINCCINO, + Species.CINCCINO, Species.DUCKLETT, Species.SWANNA, Species.ALOMOMOLA, @@ -66950,6 +67033,7 @@ export const tmSpecies: TmSpecies = { Species.BEARTIC, Species.CRYOGONAL, Species.TORNADUS, + Species.KELDEO, Species.FROAKIE, Species.FROGADIER, [ @@ -66970,12 +67054,17 @@ export const tmSpecies: TmSpecies = { Species.GOODRA, Species.BERGMITE, Species.AVALUGG, + Species.POPPLIO, + Species.BRIONNE, + Species.PRIMARINA, Species.YUNGOOS, Species.GUMSHOOS, Species.CRABRAWLER, Species.CRABOMINABLE, Species.MAREANIE, Species.TOXAPEX, + Species.DEWPIDER, + Species.ARAQUANID, Species.ORANGURU, Species.PASSIMIAN, Species.SANDYGAST, From 87d2300ee86e3655c7eca0ff1d5c8c3c43b7cd07 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Fri, 30 Aug 2024 10:59:39 -0700 Subject: [PATCH 019/116] [Bug] skip-seen-dialogue storing strings instead of i18n keys (#3900) * fix skipSeenDialogue storing seen dialogues were stores as actual string instead of their i18n-keys. This fixes it. Reported on discord: https://discord.com/channels/1125469663833370665/1176874654015684739/1278794542648131695 * fix falling back to english * Victory-Rival Dialgoue * Update src/phases/game-over-phase.ts Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com> * fix showDialogue for non i18n-key calls showDialogue can be called with either text or an i18n key. This wasn't taken into account and caused some console spamming. --------- Co-authored-by: frutescens Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com> --- src/phases/game-over-phase.ts | 14 +++++++++----- src/ui/ui.ts | 26 ++++++++++++++------------ 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/phases/game-over-phase.ts b/src/phases/game-over-phase.ts index 78dd73057a1..ebe58b20d3e 100644 --- a/src/phases/game-over-phase.ts +++ b/src/phases/game-over-phase.ts @@ -1,7 +1,7 @@ import { clientSessionId } from "#app/account"; import BattleScene from "#app/battle-scene"; import { BattleType } from "#app/battle"; -import { miscDialogue, getCharVariantFromDialogue } from "#app/data/dialogue"; +import { getCharVariantFromDialogue } from "#app/data/dialogue"; import { pokemonEvolutions } from "#app/data/pokemon-evolutions"; import PokemonSpecies, { getPokemonSpecies } from "#app/data/pokemon-species"; import { trainerConfigs } from "#app/data/trainer-config"; @@ -136,12 +136,16 @@ export class GameOverPhase extends BattlePhase { }; if (this.victory && this.scene.gameMode.isClassic) { - const message = miscDialogue.ending[this.scene.gameData.gender === PlayerGender.FEMALE ? 0 : 1]; + const dialogueKey = "miscDialogue:ending"; - if (!this.scene.ui.shouldSkipDialogue(message)) { + if (!this.scene.ui.shouldSkipDialogue(dialogueKey)) { this.scene.ui.fadeIn(500).then(() => { - this.scene.charSprite.showCharacter(`rival_${this.scene.gameData.gender === PlayerGender.FEMALE ? "m" : "f"}`, getCharVariantFromDialogue(miscDialogue.ending[this.scene.gameData.gender === PlayerGender.FEMALE ? 0 : 1])).then(() => { - this.scene.ui.showDialogue(message, this.scene.gameData.gender === PlayerGender.FEMALE ? trainerConfigs[TrainerType.RIVAL].name : trainerConfigs[TrainerType.RIVAL].nameFemale, null, () => { + const genderIndex = this.scene.gameData.gender ?? PlayerGender.UNSET; + const genderStr = PlayerGender[genderIndex].toLowerCase(); + // Dialogue has to be retrieved so that the rival's expressions can be loaded and shown via getCharVariantFromDialogue + const dialogue = i18next.t(dialogueKey, { context: genderStr }); + this.scene.charSprite.showCharacter(`rival_${this.scene.gameData.gender === PlayerGender.FEMALE ? "m" : "f"}`, getCharVariantFromDialogue(dialogue)).then(() => { + this.scene.ui.showDialogue(dialogueKey, this.scene.gameData.gender === PlayerGender.FEMALE ? trainerConfigs[TrainerType.RIVAL].name : trainerConfigs[TrainerType.RIVAL].nameFemale, null, () => { this.scene.ui.fadeOut(500).then(() => { this.scene.charSprite.hide().then(() => { const endCardPhase = new EndCardPhase(this.scene); diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 282bbb227f6..7108a8dd480 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -306,30 +306,32 @@ export default class UI extends Phaser.GameObjects.Container { } } - showDialogue(i18nKey: string, name: string | undefined, delay: integer | null = 0, callback: Function, callbackDelay?: integer, promptDelay?: integer): void { + showDialogue(keyOrText: string, name: string | undefined, delay: integer | null = 0, callback: Function, callbackDelay?: integer, promptDelay?: integer): void { const battleScene = this.scene as BattleScene; - // Get localized dialogue (if available) let hasi18n = false; - if (i18next.exists(i18nKey) ) { - const genderIndex = battleScene.gameData.gender ?? PlayerGender.UNSET; - const genderStr = PlayerGender[genderIndex].toLowerCase(); - i18nKey = i18next.t(i18nKey, { context: genderStr }); + let text = keyOrText; + const genderIndex = battleScene.gameData.gender ?? PlayerGender.UNSET; + const genderStr = PlayerGender[genderIndex].toLowerCase(); + + if (i18next.exists(keyOrText) ) { + const i18nKey = keyOrText; hasi18n = true; + text = i18next.t(i18nKey, { context: genderStr }); // override text with translation // Skip dialogue if the player has enabled the option and the dialogue has been already seen - if (battleScene.skipSeenDialogues &&battleScene.gameData.getSeenDialogues()[i18nKey] === true) { + if (battleScene.skipSeenDialogues && battleScene.gameData.getSeenDialogues()[i18nKey] === true) { console.log(`Dialogue ${i18nKey} skipped`); callback(); return; } } let showMessageAndCallback = () => { - hasi18n && battleScene.gameData.saveSeenDialogue(i18nKey); + hasi18n && battleScene.gameData.saveSeenDialogue(keyOrText); callback(); }; - if (i18nKey.indexOf("$") > -1) { - const messagePages = i18nKey.split(/\$/g).map(m => m.trim()); + if (text.indexOf("$") > -1) { + const messagePages = text.split(/\$/g).map(m => m.trim()); for (let p = messagePages.length - 1; p >= 0; p--) { const originalFunc = showMessageAndCallback; showMessageAndCallback = () => this.showDialogue(messagePages[p], name, null, originalFunc); @@ -338,9 +340,9 @@ export default class UI extends Phaser.GameObjects.Container { } else { const handler = this.getHandler(); if (handler instanceof MessageUiHandler) { - (handler as MessageUiHandler).showDialogue(i18nKey, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); + (handler as MessageUiHandler).showDialogue(text, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); } else { - this.getMessageHandler().showDialogue(i18nKey, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); + this.getMessageHandler().showDialogue(text, name, delay, showMessageAndCallback, callbackDelay, true, promptDelay); } } } From 87f55a8a1adddff38b95c383e2840a0fb3f3bfec Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Fri, 30 Aug 2024 11:06:18 -0700 Subject: [PATCH 020/116] [Bug][Beta] Double vouchers fix (#3906) * The fix. * Ordinals.... * tsdocs.. * my forgetting * Fixed issues * Update src/phases/encounter-phase.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * The actual change * actual fixes * This should fix it... maybe --------- Co-authored-by: frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/loading-scene.ts | 2 +- src/system/achv.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/loading-scene.ts b/src/loading-scene.ts index f4aa12c56c6..b086b0cb002 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -342,8 +342,8 @@ export class LoadingScene extends SceneBase { this.loadLoadingScreen(); - initVouchers(); initAchievements(); + initVouchers(); initStatsKeys(); initPokemonPrevolutions(); initBiomes(); diff --git a/src/system/achv.ts b/src/system/achv.ts index 5436cce24ab..de2862c2813 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -324,7 +324,7 @@ export const achvs = { HATCH_SHINY: new Achv("HATCH_SHINY", "", "HATCH_SHINY.description", "golden_egg", 100).setSecret(), HIDDEN_ABILITY: new Achv("HIDDEN_ABILITY", "", "HIDDEN_ABILITY.description", "ability_charm", 75), PERFECT_IVS: new Achv("PERFECT_IVS", "", "PERFECT_IVS.description", "blunder_policy", 100), - CLASSIC_VICTORY: new Achv("CLASSIC_VICTORY", "", "CLASSIC_VICTORY.description", "relic_crown", 150), + CLASSIC_VICTORY: new Achv("CLASSIC_VICTORY", "", "CLASSIC_VICTORY.description", "relic_crown", 150, c => c.gameData.gameStats.sessionsWon === 0), UNEVOLVED_CLASSIC_VICTORY: new Achv("UNEVOLVED_CLASSIC_VICTORY", "", "UNEVOLVED_CLASSIC_VICTORY.description", "eviolite", 175, c => c.getParty().some(p => p.getSpeciesForm(true).speciesId in pokemonEvolutions)), MONO_GEN_ONE_VICTORY: new ChallengeAchv("MONO_GEN_ONE", "", "MONO_GEN_ONE.description", "ribbon_gen1", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 1 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), MONO_GEN_TWO_VICTORY: new ChallengeAchv("MONO_GEN_TWO", "", "MONO_GEN_TWO.description", "ribbon_gen2", 100, (c, scene) => c instanceof SingleGenerationChallenge && c.value === 2 && !scene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0)), From 8ff566eacaeeb63d315f55e4a3c4ae89db996596 Mon Sep 17 00:00:00 2001 From: Blitzy <118096277+Blitz425@users.noreply.github.com> Date: Fri, 30 Aug 2024 17:21:19 -0500 Subject: [PATCH 021/116] [Enhancement] Certain Signature Move Animation Fixes (#3878) * Add Missing Move Animations * Change Zippy-Zap / Buzzy Buzz animations * Sappy Seed change * Change Mortal Spin --- public/battle-anims/baddy-bad.json | 2186 ++++ public/battle-anims/blazing-torque.json | 2109 ++++ public/battle-anims/bouncy-bubble.json | 3322 +++++ public/battle-anims/buzzy-buzz.json | 1419 +++ public/battle-anims/combat-torque.json | 3667 ++++++ public/battle-anims/floaty-fall.json | 1665 +++ public/battle-anims/freezy-frost.json | 3755 ++++++ public/battle-anims/glitzy-glow.json | 7757 ++++++++++++ public/battle-anims/ivy-cudgel.json | 1245 ++ public/battle-anims/magical-torque.json | 1260 ++ public/battle-anims/mortal-spin.json | 3846 ++++++ public/battle-anims/noxious-torque.json | 1129 ++ public/battle-anims/pika-papow.json | 6994 +++++++++++ public/battle-anims/psyblade.json | 1923 +++ public/battle-anims/sappy-seed.json | 4895 ++++++++ public/battle-anims/sizzly-slide.json | 2715 +++++ public/battle-anims/sparkly-swirl.json | 2236 ++++ public/battle-anims/splishy-splash.json | 2458 ++++ public/battle-anims/syrup-bomb.json | 1800 +++ public/battle-anims/veevee-volley.json | 886 ++ public/battle-anims/wicked-torque.json | 14194 ++++++++++++++++++++++ public/battle-anims/zippy-zap.json | 3133 +++++ 22 files changed, 74594 insertions(+) create mode 100644 public/battle-anims/baddy-bad.json create mode 100644 public/battle-anims/blazing-torque.json create mode 100644 public/battle-anims/bouncy-bubble.json create mode 100644 public/battle-anims/buzzy-buzz.json create mode 100644 public/battle-anims/combat-torque.json create mode 100644 public/battle-anims/floaty-fall.json create mode 100644 public/battle-anims/freezy-frost.json create mode 100644 public/battle-anims/glitzy-glow.json create mode 100644 public/battle-anims/ivy-cudgel.json create mode 100644 public/battle-anims/magical-torque.json create mode 100644 public/battle-anims/mortal-spin.json create mode 100644 public/battle-anims/noxious-torque.json create mode 100644 public/battle-anims/pika-papow.json create mode 100644 public/battle-anims/psyblade.json create mode 100644 public/battle-anims/sappy-seed.json create mode 100644 public/battle-anims/sizzly-slide.json create mode 100644 public/battle-anims/sparkly-swirl.json create mode 100644 public/battle-anims/splishy-splash.json create mode 100644 public/battle-anims/syrup-bomb.json create mode 100644 public/battle-anims/veevee-volley.json create mode 100644 public/battle-anims/wicked-torque.json create mode 100644 public/battle-anims/zippy-zap.json diff --git a/public/battle-anims/baddy-bad.json b/public/battle-anims/baddy-bad.json new file mode 100644 index 00000000000..0cf840ff8b9 --- /dev/null +++ b/public/battle-anims/baddy-bad.json @@ -0,0 +1,2186 @@ +{ + "id": 822, + "graphic": "GEN8- Fiery", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -18.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -18.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -18.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 181, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 3, + "y": -19, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 15, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 17, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 17, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 18, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 23, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 25, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 26, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 27, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 28, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 29, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 129, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 30, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 129.5, + "y": -65.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 30, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 31, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 32, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 33, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 34, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 35, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 36, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 37, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 38, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 39, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "GEN8- Fiery_bg", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRSFX- Dark Pulse1.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "21": [ + { + "frameIndex": 21, + "resourceName": "PRSFX- Fire Pledge.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "35": [ + { + "frameIndex": 35, + "resourceName": "PRSFX- Fire Pledge.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/blazing-torque.json b/public/battle-anims/blazing-torque.json new file mode 100644 index 00000000000..354aa5f1a8c --- /dev/null +++ b/public/battle-anims/blazing-torque.json @@ -0,0 +1,2109 @@ +{ + "id": 394, + "graphic": "PRAS- Fire", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 28, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 108, + "zoomY": 108, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 56, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 117, + "zoomY": 117, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 85, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 126, + "zoomY": 126, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -20, + "y": -6.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 140, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 9.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 140, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 113, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -48, + "y": 2, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -8, + "y": 24, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -16, + "y": 4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 140, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 141, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -64, + "y": 14, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -20, + "y": 38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -32, + "y": 11, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 8, + "y": 8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 140, + "priority": 1, + "focus": 3 + }, + { + "x": -16, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 140, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 170, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -84, + "y": 19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 145, + "priority": 1, + "focus": 3 + }, + { + "x": -28, + "y": 54, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 142, + "priority": 1, + "focus": 3 + }, + { + "x": -48, + "y": 23, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 4, + "y": 27, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -44, + "y": -9, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -12, + "y": 2.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 19, + "opacity": 140, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 198, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -64, + "y": 29.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 135, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 39, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -68, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -32, + "y": 10.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 20, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 226, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -16, + "y": 53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 145, + "priority": 1, + "focus": 3 + }, + { + "x": -84, + "y": 2.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 135, + "priority": 1, + "focus": 3 + }, + { + "x": -48, + "y": 22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 21, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -64, + "y": 27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 22, + "opacity": 145, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 24.5, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24.5, + "y": -12, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 49.5, + "y": -24, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 49.5, + "y": -24, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 74, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 74, + "y": -36, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 99, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -48, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 124, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -60, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 124, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 51, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -60, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 130, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 112, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 102, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 145, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -65.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 145, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -50, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -58.5, + "zoomX": 135, + "zoomY": 135, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 145, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 100, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 153, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -69.5, + "zoomX": 100, + "zoomY": 100, + "angle": 51, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 144.5, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "angle": 51, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 121, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "angle": 51, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -55, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 124, + "y": -61.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 148, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 88, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 144, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 204, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 152, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "angle": 102, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 157, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "angle": 102, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 126, + "y": -86.5, + "zoomX": 100, + "zoomY": 100, + "angle": 102, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 152, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 128, + "y": -71.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 156, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 76, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 152, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 164, + "y": -83, + "zoomX": 100, + "zoomY": 100, + "angle": 153, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 169.5, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "angle": 153, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 131, + "y": -97, + "zoomX": 100, + "zoomY": 100, + "angle": 153, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 164, + "y": -67.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 132, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 172, + "y": -34.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 60, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 160, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 176, + "y": -89.5, + "zoomX": 100, + "zoomY": 100, + "angle": 205, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 182, + "y": -47, + "zoomX": 100, + "zoomY": 100, + "angle": 205, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 136.5, + "y": -107.5, + "zoomX": 100, + "zoomY": 100, + "angle": 205, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 176, + "y": -73.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 136, + "y": -94, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 184, + "y": -31, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 48, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 152, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 188, + "y": -96.5, + "zoomX": 100, + "zoomY": 100, + "angle": 256, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 194.5, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "angle": 256, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 141.5, + "y": -118, + "zoomX": 100, + "zoomY": 100, + "angle": 256, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 188, + "y": -83, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 144, + "y": -103.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 196, + "y": -29.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 28, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 144, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 200, + "y": -103, + "zoomX": 100, + "zoomY": 100, + "angle": 307, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 207, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "angle": 307, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 146.5, + "y": -128.5, + "zoomX": 100, + "zoomY": 100, + "angle": 307, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 200, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 148, + "y": -113, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + }, + { + "x": 208, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 160, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 16, + "y": -40, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 212, + "y": -109.5, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 75, + "priority": 1, + "focus": 3 + }, + { + "x": 220, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 120, + "priority": 1, + "focus": 3 + }, + { + "x": 152, + "y": -138.5, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 66, + "opacity": 120, + "priority": 1, + "focus": 3 + }, + { + "x": 212, + "y": -94, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 78, + "priority": 3, + "focus": 3 + }, + { + "x": 152, + "y": -122.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 78, + "priority": 3, + "focus": 3 + }, + { + "x": 220, + "y": -30, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 24, + "opacity": 78, + "priority": 3, + "focus": 3 + } + ], + [ + { + "x": 8, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 191, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 191, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 127, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 127, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 63, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 63, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Flare Blitz1.wav", + "volume": 100, + "pitch": 75, + "eventType": "AnimTimedSoundEvent" + } + ], + "9": [ + { + "frameIndex": 9, + "resourceName": "PRAS- Outrage BG", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 9, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 5, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "13": [ + { + "frameIndex": 13, + "resourceName": "PRSFX- Flare Blitz3.wav", + "volume": 100, + "pitch": 80, + "eventType": "AnimTimedSoundEvent" + } + ], + "14": [ + { + "frameIndex": 14, + "resourceName": "PRSFX- Flare Blitz2.wav", + "volume": 100, + "pitch": 80, + "eventType": "AnimTimedSoundEvent" + } + ], + "16": [ + { + "frameIndex": 16, + "resourceName": "PRSFX- Flare Blitz3.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "19": [ + { + "frameIndex": 19, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedUpdateBgEvent" + }, + { + "frameIndex": 19, + "resourceName": "PRSFX- Flare Blitz3.wav", + "volume": 100, + "pitch": 120, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/bouncy-bubble.json b/public/battle-anims/bouncy-bubble.json new file mode 100644 index 00000000000..b1d931b62fa --- /dev/null +++ b/public/battle-anims/bouncy-bubble.json @@ -0,0 +1,3322 @@ +{ + "id": 61, + "graphic": "PRAS- Water", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 44.5, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 65.5, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 44, + "y": -21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 86, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 46, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 107, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 84, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 68.5, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 41.5, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 104, + "y": -59.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 91, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 59, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 45.5, + "y": -18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 22, + "y": -6, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 113.5, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 76.5, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 67, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 46.5, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 44.5, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 26, + "y": -10, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 94, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 88.5, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 70, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 65.5, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 42, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 112, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 110, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 93.5, + "y": -49, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 126, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 86, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 60.5, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 47, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 112, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116.5, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 79, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 70, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 43.5, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 26, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 122, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 97.5, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 93.5, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 63.5, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 44.5, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116.5, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 83, + "y": -49, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 65.5, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 44, + "y": -18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 44.5, + "y": -21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 86, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 103, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 122, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 65.5, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 46, + "y": -21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 26, + "y": -6, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 123, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 84, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 126, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 86, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 68.5, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 48, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 22, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 123, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 104, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 107, + "y": -59.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 91, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 72, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 46, + "y": -18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 123, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 123, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 96, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 68.5, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 44.5, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -6, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 113.5, + "y": -59.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 24, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 91, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 65.5, + "y": -26, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 41.5, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 130, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 40.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 113.5, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 86, + "y": -34.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 59, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 144, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 129, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 57.5, + "y": -32, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 42, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 144, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 76.5, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 127, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 74, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 60.5, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 44.5, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 26, + "y": -6, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 94, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 144, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 125, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 91, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 79, + "y": -49, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 65.5, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 46, + "y": -21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 112, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 123, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 108, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 86, + "y": -49, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 68.5, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 47, + "y": -19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 97.5, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 123, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 112, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 91, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 70, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 45.5, + "y": -18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 125, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 108, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 113.5, + "y": -59.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 93.5, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 67, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 127, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 116.5, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 88.5, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 127, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 110, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 28, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 29, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 30, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Bubblebeam.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/buzzy-buzz.json b/public/battle-anims/buzzy-buzz.json new file mode 100644 index 00000000000..b1cd7daa82d --- /dev/null +++ b/public/battle-anims/buzzy-buzz.json @@ -0,0 +1,1419 @@ +{ + "id": 570, + "graphic": "PRAS- Electric", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 105, + "zoomY": 90, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 110, + "zoomY": 80, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 53, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 105, + "zoomY": 90, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 12, + "y": -25.5, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 28.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 53, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 43, + "y": -7.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 48, + "y": 8, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 19, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "angle": 44, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 37, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 54, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 53, + "y": -14.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 59.5, + "y": 2, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 26.5, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "angle": 44, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 46, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 54, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 63.5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 71, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 34, + "y": -50.5, + "zoomX": 100, + "zoomY": 100, + "angle": 43, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 54.5, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 55, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 74, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 83, + "y": -10, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 41.5, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "angle": 43, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 63.5, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 55, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 84.5, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 94.5, + "y": -16, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 49, + "y": -67.5, + "zoomX": 100, + "zoomY": 100, + "angle": 42, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 72.5, + "y": -59.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 56, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 95, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 106.5, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 56, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "angle": 42, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 81, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 56, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 105.5, + "y": -49.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 118, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 63.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "angle": 41, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 90, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 53, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 116, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 130, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 71, + "y": -92.5, + "zoomX": 100, + "zoomY": 100, + "angle": 41, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -83, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 53, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 126.5, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 141.5, + "y": -40, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 78.5, + "y": -100.5, + "zoomX": 100, + "zoomY": 100, + "angle": 40, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 107.5, + "y": -90.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 54, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 137, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 153.5, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 86, + "y": -109, + "zoomX": 100, + "zoomY": 100, + "angle": 40, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 116.5, + "y": -98.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 54, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 147.5, + "y": -77.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 165, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 93.5, + "y": -117, + "zoomX": 100, + "zoomY": 100, + "angle": 40, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 125.5, + "y": -106, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 55, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 158, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 13, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 177, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 2, + "graphicFrame": 12, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 55, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 56, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 56, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 57, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "visible": true, + "target": 2, + "graphicFrame": 57, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "3": [ + { + "frameIndex": 3, + "resourceName": "PRSFX- Electro Ball2.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/combat-torque.json b/public/battle-anims/combat-torque.json new file mode 100644 index 00000000000..8390263edaa --- /dev/null +++ b/public/battle-anims/combat-torque.json @@ -0,0 +1,3667 @@ +[ + { + "id": 794, + "graphic": "PRAS- Me First", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + 64, + 64, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 1 + } + ], + [ + { + "x": -4, + "y": 4, + "zoomX": 100, + "zoomY": 100, + "angle": 350, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 96, + 96, + 96, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + } + ], + [ + { + "x": -8, + "y": 8, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 128, + 128, + 128, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + } + ], + [ + { + "x": -12, + "y": 12, + "zoomX": 100, + "zoomY": 100, + "angle": 330, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 160, + 160, + 160, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + } + ], + [ + { + "x": -16, + "y": 16, + "zoomX": 100, + "zoomY": 100, + "angle": 320, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 192, + 192, + 192, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 224, + 224, + 224, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": -20, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 1 + } + ], + [ + { + "x": 78.5, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 2, + "opacity": 160, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 1, + "opacity": 180, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 152, + "y": -83.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 176, + "y": -103, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 200, + "y": -122.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 170, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 310, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 224, + "y": -141.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 86, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 102, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "angle": 320, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 224, + "y": -141.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 76.5, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "angle": 330, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 224.5, + "y": -141.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 51, + "y": -26, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 224.5, + "y": -141.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 25.5, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "angle": 350, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 224.5, + "y": -141.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 224.5, + "y": -141.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 224, + 224, + 224, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 192, + 192, + 192, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 160, + 160, + 160, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 128, + 128, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 36, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 96, + 96, + 96, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 72, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + 64, + 64, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 109, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 32, + 32, + 32, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 145, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 182, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 218, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "GEN8- Meteor Assault BG", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 8, + "eventType": "AnimTimedUpdateBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRSFX- Giga Impact2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "15": [ + { + "frameIndex": 15, + "resourceName": "PRSFX- Giga Impact1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "24": [ + { + "frameIndex": 24, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 3, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 4, + "hue": 215 + }, + { + "id": 794, + "graphic": "PRAS- Me First", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 1, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + 64, + 64, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "angle": 10, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 96, + 96, + 96, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "angle": 20, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 128, + 128, + 128, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 140, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 160, + 160, + 160, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 144, + "y": -80, + "zoomX": 100, + "zoomY": 100, + "angle": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 192, + 192, + 192, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 224, + 224, + 224, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 20, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "locked": true, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 40, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 80, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 3, + "opacity": 140, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 2, + "opacity": 160, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 52, + "y": -32, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 2, + "opacity": 160, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 1, + "opacity": 180, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -24, + "y": 12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -48, + "y": 32, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -72, + "y": 52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 170, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 85, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 50, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 28, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "angle": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 52, + "y": -24, + "zoomX": 100, + "zoomY": 100, + "angle": 30, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 76, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "angle": 20, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 104, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "angle": 10, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 224, + 224, + 224, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -96, + "y": 72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 192, + 192, + 192, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 160, + 160, + 160, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 36, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 128, + 128, + 128, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 72, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 96, + 96, + 96, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 109, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + 64, + 64, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 146, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 32, + 32, + 32, + 0 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 182, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 218, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "GEN8- Meteor Assault BG Opp", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 8, + "eventType": "AnimTimedUpdateBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRSFX- Giga Impact2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "15": [ + { + "frameIndex": 15, + "resourceName": "PRSFX- Giga Impact1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "24": [ + { + "frameIndex": 24, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 3, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 4, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/floaty-fall.json b/public/battle-anims/floaty-fall.json new file mode 100644 index 00000000000..814ddda1bd9 --- /dev/null +++ b/public/battle-anims/floaty-fall.json @@ -0,0 +1,1665 @@ +[ + { + "id": 560, + "graphic": "PRAS- Strike", + "frames": [ + [ + { + "x": 4, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 12, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 24, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -156, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 40, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -200, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -200, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -128, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 140, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 102, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -54.5, + "zoomX": 100, + "zoomY": 52, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 127.5, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 145, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 76.5, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -57, + "zoomX": 100, + "zoomY": 64, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 51, + "y": -26, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -59.5, + "zoomX": 100, + "zoomY": 76, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 25.5, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -62, + "zoomX": 100, + "zoomY": 88, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Flying Press2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "16": [ + { + "frameIndex": 16, + "resourceName": "PRSFX- Flying Press3.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "17": [ + { + "frameIndex": 17, + "resourceName": "PRSFX- Flying Press1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 + }, + { + "id": 560, + "graphic": "PRAS- Strike", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -80, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 116, + "y": -104, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 104, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 77, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -144, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 70, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -94, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 140, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 40, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 3, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 145, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 85, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 32, + "y": -49, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 64, + "y": -54, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 95, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 96, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Flying Press2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "16": [ + { + "frameIndex": 16, + "resourceName": "PRSFX- Flying Press3.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "17": [ + { + "frameIndex": 17, + "resourceName": "PRSFX- Flying Press1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/freezy-frost.json b/public/battle-anims/freezy-frost.json new file mode 100644 index 00000000000..191706696c5 --- /dev/null +++ b/public/battle-anims/freezy-frost.json @@ -0,0 +1,3755 @@ +{ + "id": 329, + "graphic": "PRAS- Sheer Cold", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 95.5, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 10, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 30, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 20, + 60 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 30, + 90 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 90, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 40, + 120 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 120, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 50, + 150 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 150, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 60, + 180 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 180, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 240 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 50, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 80, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 60, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + }, + { + "x": 168, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 40, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + }, + { + "x": 176, + "y": -28.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 20, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 70, + 210 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 210, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 60, + 180 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 180, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 50, + 150 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 150, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 40, + 120 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 120, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 30, + 90 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 90, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 20, + 60 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 60, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 0, + 0, + 10, + 30 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 30, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRAS- Sheer Cold BG", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 8, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "4": [ + { + "frameIndex": 4, + "resourceName": "PRSFX- Sheer Cold.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "29": [ + { + "frameIndex": 29, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 8, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 1, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/glitzy-glow.json b/public/battle-anims/glitzy-glow.json new file mode 100644 index 00000000000..87ea70debe7 --- /dev/null +++ b/public/battle-anims/glitzy-glow.json @@ -0,0 +1,7757 @@ +[ + { + "id": 354, + "graphic": "PRAS- Psycho Boost", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 80, + "tone": [ + 0, + -113, + -30, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 120, + "tone": [ + 0, + -120, + -8, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + 0, + -128, + 15, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + 0, + -135, + 37, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + 0, + -143, + 60, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + 0, + -150, + 82, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + 0, + -157, + 105, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -4, + -164, + 111, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -7, + -170, + 118, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -10, + -176, + 124, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -13, + -182, + 131, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -16, + -189, + 137, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -19, + -195, + 144, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -22, + -201, + 150, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -25, + -207, + 157, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -29, + -213, + 163, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -32, + -219, + 169, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -35, + -225, + 175, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -38, + -231, + 182, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -41, + -237, + 188, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -44, + -243, + 194, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -47, + -249, + 200, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -16.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 33.5, + "y": -22.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 47, + "y": -28.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -34.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 74, + "y": -40.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 87.5, + "y": -46.5, + "zoomX": 170, + "zoomY": 170, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 101, + "y": -52.5, + "zoomX": 170, + "zoomY": 170, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 114.5, + "y": -58.5, + "zoomX": 170, + "zoomY": 170, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 170, + "zoomY": 170, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -15, + -10, + -15, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 127, + "tone": [ + -45, + -230, + 186, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 50, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -30, + -19, + -30, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 63, + "tone": [ + -40, + -204, + 165, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 140, + "zoomY": 140, + "angle": 60, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -45, + -28, + -45, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145, + "y": -50.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 120, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 150, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -60, + -38, + -60, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145, + "y": -50.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 180, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 200, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -75, + -47, + -75, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -64, + "zoomX": 180, + "zoomY": 180, + "angle": 240, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -90, + -56, + -90, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "tone": [ + -20, + -102, + 82, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 145, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 160, + "zoomY": 160, + "angle": 300, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -105, + -66, + -105, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -15, + -77, + 62, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 145, + "y": -51, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -64, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 136, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -75, + -120, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -82.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "tone": [ + -10, + -51, + 41, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 145, + "y": -51, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 136, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 60, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -135, + -84, + -135, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 145, + "y": -51, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 120, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 111, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -138, + -95, + -132, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 145, + "y": -51, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 80, + "zoomY": 80, + "angle": 180, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 111, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -140, + -106, + -128, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -64, + "zoomX": 60, + "zoomY": 60, + "angle": 240, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 111, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -142, + -117, + -125, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -64, + "zoomX": 40, + "zoomY": 40, + "angle": 300, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "priority": 1, + "focus": 3 + }, + { + "x": 98.5, + "y": -45.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 111, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -144, + -127, + -121, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -64, + "zoomX": 20, + "zoomY": 20, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 50, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 111, + "y": -81, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 124.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -146, + -138, + -118, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 145.5, + "y": -87, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 111, + "y": -81, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 124.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -148, + -149, + -114, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 111, + "y": -81, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 136, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -159, + -110, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 111, + "y": -81, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -165, + -116, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -171, + -122, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -177, + -128, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -183, + -133, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 148.5, + "y": -44.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -189, + -139, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -195, + -145, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 99, + "y": -38.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -200, + -150, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 136, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -135, + -180, + -135, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132.5, + "y": -92, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -160, + -120, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -105, + -140, + -105, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -90, + -120, + -90, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -75, + -100, + -75, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -60, + -80, + -60, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -45, + -60, + -45, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -30, + -40, + -30, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -15, + -20, + -15, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRAS- Psycho Boost BG", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 10, + "eventType": "AnimTimedUpdateBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRSFX- Psycho Boost1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "32": [ + { + "frameIndex": 32, + "resourceName": "PRSFX- Psycho Boost2.wav", + "volume": 100, + "pitch": 110, + "eventType": "AnimTimedSoundEvent" + } + ], + "62": [ + { + "frameIndex": 62, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 4, + "hue": 0 + }, + { + "id": 354, + "graphic": "PRAS- Psycho Boost", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 80, + "tone": [ + 0, + -113, + -30, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 120, + "tone": [ + 0, + -120, + -8, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + 0, + -128, + 15, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + 0, + -135, + 37, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + 0, + -143, + 60, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + 0, + -150, + 82, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + 0, + -157, + 105, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -4, + -164, + 111, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -7, + -170, + 118, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -10, + -176, + 124, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -13, + -182, + 131, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -16, + -189, + 137, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 130, + "zoomY": 130, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -19, + -195, + 144, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -22, + -201, + 150, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -25, + -207, + 157, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -29, + -213, + 163, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -32, + -219, + 169, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -35, + -225, + 175, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -38, + -231, + 182, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -41, + -237, + 188, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -44, + -243, + 194, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -48.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -47, + -249, + 200, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -43.5, + "zoomX": 152, + "zoomY": 152, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -38, + "zoomX": 154, + "zoomY": 154, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 72, + "y": -32.5, + "zoomX": 156, + "zoomY": 156, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 60, + "y": -27, + "zoomX": 158, + "zoomY": 158, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 48, + "y": -22, + "zoomX": 161, + "zoomY": 161, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 36, + "y": -16.5, + "zoomX": 163, + "zoomY": 163, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 24, + "y": -11, + "zoomX": 165, + "zoomY": 165, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 12, + "y": -5.5, + "zoomX": 167, + "zoomY": 167, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 200, + "tone": [ + -50, + -255, + 207, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -15, + -10, + -15, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 127, + "tone": [ + -45, + -230, + 186, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 50, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -30, + -19, + -30, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 63, + "tone": [ + -40, + -205, + 165, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "angle": 60, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -45, + -28, + -45, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "tone": [ + -35, + -179, + 144, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17, + "y": 13.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": -4, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 120, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 150, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -60, + -38, + -60, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "tone": [ + -30, + -154, + 123, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17, + "y": 13.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": -8, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 180, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 200, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -75, + -47, + -75, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "tone": [ + -25, + -128, + 103, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17, + "y": 13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -4, + "y": 0, + "zoomX": 180, + "zoomY": 180, + "angle": 240, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -8, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -90, + -56, + -90, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "tone": [ + -20, + -103, + 82, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17, + "y": 13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 160, + "zoomY": 160, + "angle": 300, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -105, + -66, + -105, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -15, + -77, + 61, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17, + "y": 13, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 4, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -75, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -18, + "y": -18.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "tone": [ + -10, + -52, + 40, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17, + "y": 13, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 8, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 60, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -135, + -84, + -135, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 17, + "y": 13, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 120, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -17, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 8, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -138, + -95, + -132, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 17, + "y": 13, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "tone": [ + -5, + -23, + 17, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 80, + "zoomY": 80, + "angle": 180, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 200, + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -17, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -140, + -106, + -128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -4, + "y": 0, + "zoomX": 60, + "zoomY": 60, + "angle": 240, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 150, + "tone": [ + -4, + -19, + 14, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -17, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -142, + -117, + -125, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -8, + "y": 0, + "zoomX": 40, + "zoomY": 40, + "angle": 300, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 100, + "tone": [ + -3, + -15, + 11, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -29.5, + "y": 18.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -17, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -144, + -127, + -121, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -4, + "y": 0, + "zoomX": 20, + "zoomY": 20, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 50, + "tone": [ + -3, + -12, + 8, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": -17, + "y": -17, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -3.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -146, + -138, + -118, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 17.5, + "y": -23, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "tone": [ + -2, + -8, + 5, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -17, + "y": -17, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -3.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -148, + -149, + -114, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -17, + "y": -17, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -1, + -4, + 2, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -4, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 20, + "y": 19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 8, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -150, + -159, + -110, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -17, + "y": -17, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -149, + -162, + -114, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -147, + -165, + -117, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": 0, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -145, + -167, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 60, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -8, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -143, + -170, + -123, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 20.5, + "y": 19.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 120, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -141, + -173, + -126, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 180, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -139, + -175, + -129, + 0 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -29, + "y": 25.5, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -137, + -178, + -132, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 180, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -135, + -180, + -135, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 4.5, + "y": -28, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 180, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -160, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 160, + "zoomY": 160, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 120, + "tone": [ + -5, + -26, + 20, + 0 + ], + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -105, + -140, + -105, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 180, + "zoomY": 180, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 60, + "locked": true, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -90, + -120, + -90, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -75, + -100, + -75, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -60, + -80, + -60, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -45, + -60, + -45, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -30, + -40, + -30, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -15, + -20, + -15, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRAS- Psycho Boost Opp BG", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 10, + "eventType": "AnimTimedUpdateBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRSFX- Psycho Boost1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "32": [ + { + "frameIndex": 32, + "resourceName": "PRSFX- Psycho Boost2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "62": [ + { + "frameIndex": 62, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 4, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/ivy-cudgel.json b/public/battle-anims/ivy-cudgel.json new file mode 100644 index 00000000000..ee46f86bebe --- /dev/null +++ b/public/battle-anims/ivy-cudgel.json @@ -0,0 +1,1245 @@ +{ + "id": 452, + "graphic": "PRAS- Wood Hammer", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 160, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 140, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -73, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -73, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -32, + "zoomX": 100, + "zoomY": 100, + "angle": 139, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 80, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 101.5, + "y": -82, + "zoomX": 100, + "zoomY": 100, + "angle": 46, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "angle": 143, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -54.5, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -20.5, + "zoomX": 100, + "zoomY": 100, + "angle": 170, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -55.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -49, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "angle": 20, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 91, + "y": -91, + "zoomX": 100, + "zoomY": 100, + "angle": 93, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 164, + "y": -84.5, + "zoomX": 100, + "zoomY": 100, + "angle": 197, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 114.5, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -9, + "zoomX": 100, + "zoomY": 100, + "angle": 201, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 138.5, + "y": -69.5, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 134, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 130, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "angle": 20, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 134, + "y": -39, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 80.5, + "y": -99.5, + "zoomX": 100, + "zoomY": 100, + "angle": 139, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 172, + "y": -90.5, + "zoomX": 100, + "zoomY": 100, + "angle": 251, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 113, + "y": -40, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 126.5, + "y": 3, + "zoomX": 100, + "zoomY": 100, + "angle": 233, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 141, + "y": -73, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -53.5, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "angle": 21, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -35, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 70, + "y": -108.5, + "zoomX": 100, + "zoomY": 100, + "angle": 186, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -96, + "zoomX": 100, + "zoomY": 100, + "angle": 305, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -32.5, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 124.5, + "y": 14.5, + "zoomX": 100, + "zoomY": 100, + "angle": 264, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 146, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -55.5, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 126, + "y": -80, + "zoomX": 100, + "zoomY": 100, + "angle": 22, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 138, + "y": -31, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 60, + "y": -117, + "zoomX": 100, + "zoomY": 100, + "angle": 233, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 70, + "priority": 1, + "focus": 1 + }, + { + "x": 188, + "y": -101.5, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 70, + "priority": 1, + "focus": 1 + }, + { + "x": 110.5, + "y": -25.5, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 123, + "y": 26.5, + "zoomX": 100, + "zoomY": 100, + "angle": 296, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 146.5, + "y": -79.5, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "angle": 23, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -27, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 109, + "y": -18, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 121, + "y": 38, + "zoomX": 100, + "zoomY": 100, + "angle": 327, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 1 + }, + { + "x": 149, + "y": -83, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 158, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 122, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "angle": 24, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 142, + "y": -23, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 60, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -10.5, + "zoomX": 100, + "zoomY": 100, + "angle": 125, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 119.5, + "y": 50, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 80, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -86, + "zoomX": 100, + "zoomY": 100, + "angle": 340, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 164, + "y": -31.5, + "zoomX": 100, + "zoomY": 100, + "angle": 225, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -62, + "zoomX": 100, + "zoomY": 100, + "angle": 45, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -92, + "zoomX": 100, + "zoomY": 100, + "angle": 25, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 140, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Wood Hammer.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/magical-torque.json b/public/battle-anims/magical-torque.json new file mode 100644 index 00000000000..7f006e1b98d --- /dev/null +++ b/public/battle-anims/magical-torque.json @@ -0,0 +1,1260 @@ +{ + "id": 789, + "graphic": "PRAS- Psystrike", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 32, + -32, + 64, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 64, + -64, + 128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 150, + "zoomY": 150, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -85.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 157, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "Darkness2.m4a", + "volume": 80, + "pitch": 60, + "eventType": "AnimTimedSoundEvent" + } + ], + "15": [ + { + "frameIndex": 15, + "resourceName": "Explosion6.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/mortal-spin.json b/public/battle-anims/mortal-spin.json new file mode 100644 index 00000000000..f795b3c5898 --- /dev/null +++ b/public/battle-anims/mortal-spin.json @@ -0,0 +1,3846 @@ +[ + { + "id": 342, + "graphic": "PRAS- Poison Tail", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 55, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 55, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -69.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 139, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 188, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -58.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 121, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -49.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -61.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -65.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -85, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -74, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -89, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -78, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -92.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -73, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -82, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -96.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -86, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -100.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -78.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -90, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -104, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -74, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -94, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -104, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -77.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -98, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -104, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -102, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -111, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -84.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -89.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -106, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -92.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 100, + "y": -110, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -91.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -95.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -98, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -98.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -101, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -102, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -104, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -105.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -106.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -109, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -109.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -112, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -112, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "4": [ + { + "frameIndex": 4, + "resourceName": "PRSFX- Poison Tail2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "5": [ + { + "frameIndex": 5, + "resourceName": "PRSFX- Poison Tail2.wav", + "volume": 100, + "pitch": 70, + "eventType": "AnimTimedSoundEvent" + } + ], + "10": [ + { + "frameIndex": 10, + "resourceName": "PRSFX- Poison Tail1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 + }, + { + "id": 342, + "graphic": "PRAS- Poison Tail", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 28, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 55, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 24, + "y": -31, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 155, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -26, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 16, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 12, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 8, + "y": -11.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 6.5, + "y": -8.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": -20, + "y": 9.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": -30.5, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": 5, + "y": 21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -2, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 6.5, + "y": -8.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + }, + { + "x": -20, + "y": 9.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + }, + { + "x": -30.5, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + }, + { + "x": 5, + "y": 21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -4, + "y": 3, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 6, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -20, + "y": 9.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -31, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": 21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -4, + "y": 3, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 155, + "priority": 1, + "focus": 1 + }, + { + "x": 7, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -20.5, + "y": 6.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -31, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 5.5, + "y": 18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -4, + "y": 3, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": 8, + "y": -16, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -21, + "y": 3.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -30.5, + "y": -21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 6.5, + "y": 16, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 9, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -21.5, + "y": 0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -30, + "y": -25, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 7.5, + "y": 13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 10, + "y": -24, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -22, + "y": -2, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -29.5, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 8, + "y": 10.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 11, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -22.5, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -29.5, + "y": -33, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 9, + "y": 7.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 12, + "y": -31.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -23, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -29, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 10, + "y": 5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 13, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -23.5, + "y": -10.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -28.5, + "y": -40.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 10.5, + "y": 2, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 14, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -24, + "y": -13.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -28, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 11.5, + "y": -0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 15, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -24.5, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -28, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -3.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 16, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -25, + "y": -19, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -27.5, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 13, + "y": -6, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 17, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -25.5, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -27, + "y": -56, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 14, + "y": -9, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 18, + "y": -55, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -26, + "y": -25, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -26.5, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 15, + "y": -11.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 19, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -26.5, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -26.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 15.5, + "y": -14.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -27, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -26, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 16.5, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 21, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -27.5, + "y": -33.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -25.5, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 17.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 22.5, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -27.5, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": -25, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 18.5, + "y": -22.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 22.5, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + }, + { + "x": -27.5, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 149, + "priority": 1, + "focus": 1 + }, + { + "x": -25, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + }, + { + "x": 18.5, + "y": -22.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 155, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 22.5, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": -27.5, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 44, + "priority": 1, + "focus": 1 + }, + { + "x": -25, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + }, + { + "x": 18.5, + "y": -22.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 55, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "5": [ + { + "frameIndex": 5, + "resourceName": "PRSFX- Poison Tail2.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "6": [ + { + "frameIndex": 6, + "resourceName": "PRSFX- Poison Tail2.wav", + "volume": 100, + "pitch": 70, + "eventType": "AnimTimedSoundEvent" + } + ], + "10": [ + { + "frameIndex": 10, + "resourceName": "PRSFX- Poison Tail1.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/noxious-torque.json b/public/battle-anims/noxious-torque.json new file mode 100644 index 00000000000..67c060cc8b9 --- /dev/null +++ b/public/battle-anims/noxious-torque.json @@ -0,0 +1,1129 @@ +{ + "id": 839, + "graphic": "PRAS- Poison Sting", + "frames": [ + [ + { + "x": 0, + "y": -4, + "zoomX": 110, + "zoomY": 110, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -6, + "zoomX": 115, + "zoomY": 115, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -8, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -20.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -32.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -107.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -95.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -83.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -71.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 84.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 96.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 171.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 159.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 147.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 135.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "angle": 90, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -10, + "zoomX": 125, + "zoomY": 125, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 96.5, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -8, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 96.5, + "y": -80, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -6, + "zoomX": 115, + "zoomY": 115, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 130, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 159.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96.5, + "y": -88, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -4, + "zoomX": 110, + "zoomY": 110, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 159.5, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": -2, + "zoomX": 105, + "zoomY": 105, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 126, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 159.5, + "y": -80, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 130, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Weather Ball3.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "7": [ + { + "frameIndex": 7, + "resourceName": "Twine.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "21": [ + { + "frameIndex": 21, + "resourceName": "PRSFX- Toxic2.wav", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/pika-papow.json b/public/battle-anims/pika-papow.json new file mode 100644 index 00000000000..3282acb1e81 --- /dev/null +++ b/public/battle-anims/pika-papow.json @@ -0,0 +1,6994 @@ +{ + "id": 892, + "graphic": "PRAS- Electric", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -10, + -10, + -10, + 14 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 36, + "zoomY": 36, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 102, + "color": [ + 0, + 0, + 15, + 12 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -19, + -19, + -19, + 28 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 42, + "zoomY": 42, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 153, + "color": [ + 0, + 0, + 31, + 25 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 30, + "zoomY": 30, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 51, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -29, + -29, + -29, + 42 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 48, + "zoomY": 48, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 204, + "color": [ + 0, + 0, + 47, + 37 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 36, + "zoomY": 36, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 102, + "color": [ + 0, + 0, + 15, + 12 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -38, + -38, + -38, + 56 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 54, + "zoomY": 54, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 63, + 50 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 42, + "zoomY": 42, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 153, + "color": [ + 0, + 0, + 31, + 25 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 30, + "zoomY": 30, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 51, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -48, + -48, + -48, + 70 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 60, + "zoomY": 60, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 79, + 62 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 48, + "zoomY": 48, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 204, + "color": [ + 0, + 0, + 47, + 37 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 36, + "zoomY": 36, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 102, + "color": [ + 0, + 0, + 15, + 12 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -57, + -57, + -57, + 85 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 66, + "zoomY": 66, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 95, + 75 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 54, + "zoomY": 54, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 63, + 50 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 42, + "zoomY": 42, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 153, + "color": [ + 0, + 0, + 31, + 25 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 30, + "zoomY": 30, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 51, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -67, + -67, + -67, + 99 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 72, + "zoomY": 72, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 111, + 87 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 60, + "zoomY": 60, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 79, + 62 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 48, + "zoomY": 48, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 204, + "color": [ + 0, + 0, + 47, + 37 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 36, + "zoomY": 36, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 102, + "color": [ + 0, + 0, + 15, + 12 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -76, + -76, + -76, + 113 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 78, + "zoomY": 78, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 127, + 100 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 66, + "zoomY": 66, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 95, + 75 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 54, + "zoomY": 54, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 63, + 50 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 42, + "zoomY": 42, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 153, + "color": [ + 0, + 0, + 31, + 25 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -85, + -85, + -85, + 127 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 84, + "zoomY": 84, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 143, + 112 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 72, + "zoomY": 72, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 111, + 87 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 60, + "zoomY": 60, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 79, + 62 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 48, + "zoomY": 48, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 204, + "color": [ + 0, + 0, + 47, + 37 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -95, + -95, + -95, + 141 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 159, + 125 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 78, + "zoomY": 78, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 127, + 100 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 66, + "zoomY": 66, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 95, + 75 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 54, + "zoomY": 54, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 63, + 50 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -104, + -104, + -104, + 155 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 96, + "zoomY": 96, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 175, + 137 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 84, + "zoomY": 84, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 143, + 112 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 72, + "zoomY": 72, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 111, + 87 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 60, + "zoomY": 60, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 79, + 62 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -114, + -114, + -114, + 170 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 102, + "zoomY": 102, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 191, + 150 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 159, + 125 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 78, + "zoomY": 78, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 127, + 100 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 66, + "zoomY": 66, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 95, + 75 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -123, + -123, + -123, + 184 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 108, + "zoomY": 108, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 207, + 162 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 96, + "zoomY": 96, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 175, + 137 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 84, + "zoomY": 84, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 143, + 112 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 72, + "zoomY": 72, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 111, + 87 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -133, + -133, + -133, + 198 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 114, + "zoomY": 114, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 223, + 175 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 102, + "zoomY": 102, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 191, + 150 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 159, + 125 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 78, + "zoomY": 78, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 127, + 100 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -142, + -142, + -142, + 212 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 239, + 187 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 108, + "zoomY": 108, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 207, + 162 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 96, + "zoomY": 96, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 175, + 137 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 84, + "zoomY": 84, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 143, + 112 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -152, + -152, + -152, + 226 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 114, + "zoomY": 114, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 223, + 175 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 102, + "zoomY": 102, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 191, + 150 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 159, + 125 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -161, + -161, + -161, + 240 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 239, + 187 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 108, + "zoomY": 108, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 207, + 162 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 96, + "zoomY": 96, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 175, + 137 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 114, + "zoomY": 114, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 223, + 175 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 102, + "zoomY": 102, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 191, + 150 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 239, + 187 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 108, + "zoomY": 108, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 207, + 162 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 114, + "zoomY": 114, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 223, + 175 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 239, + 187 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 0, + 0, + 255, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 27, + 27, + 250, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 27, + 27, + 250, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 27, + 27, + 250, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 27, + 27, + 250, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 55, + 55, + 246, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 55, + 55, + 246, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 55, + 55, + 246, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 55, + 55, + 246, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 82, + 82, + 241, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 82, + 82, + 241, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 82, + 82, + 241, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 82, + 82, + 241, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 110, + 110, + 237, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 110, + 110, + 237, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 110, + 110, + 237, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 110, + 110, + 237, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 137, + 137, + 233, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 137, + 137, + 233, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 137, + 137, + 233, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 137, + 137, + 233, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 165, + 165, + 228, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 165, + 165, + 228, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 165, + 165, + 228, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 165, + 165, + 228, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 192, + 192, + 224, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 192, + 192, + 224, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 192, + 192, + 224, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 192, + 192, + 224, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 32, + "y": -16, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -32, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -48, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 96, + "y": -48, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 96, + "y": -48, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 96, + "y": -48, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -36, + -36, + -36, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 204, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 204, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 204, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 204, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -72, + -72, + -72, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 153, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 153, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 153, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 153, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -108, + -108, + -108, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 102, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 315, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 102, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 102, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 102, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -34.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -144, + -144, + -144, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 51, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 270, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 51, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 180, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 51, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 120, + "zoomY": 120, + "angle": 90, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 51, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -42, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -31.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -30.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -55.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -74.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -26.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -54, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -71.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -34.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -79.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -36.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -87.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -94.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -60.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -74, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -60.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -54.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -30, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -76, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -86, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -68.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -62.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -38, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -72, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -76.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -38, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 6, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -68, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -84.5, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -78.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -54, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 7, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -86.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -62, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -54, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 139.5, + "y": -94.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -62, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -78, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -86, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -78, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -86, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 12, + "opacity": 170, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -180, + -180, + -180, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 143.5, + "y": -94, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 13, + "opacity": 85, + "color": [ + 220, + 220, + 220, + 200 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -160, + -160, + -160, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -140, + -140, + -140, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -100, + -100, + -100, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -80, + -80, + -80, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -60, + -60, + -60, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -40, + -40, + -40, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -20, + -20, + -20, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -170, + -170, + -170, + 255 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -142, + -142, + -142, + 212 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -114, + -114, + -114, + 170 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -85, + -85, + -85, + 127 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -57, + -57, + -57, + 85 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -29, + -29, + -29, + 42 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "Thunder9.m4a", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "29": [ + { + "frameIndex": 29, + "resourceName": "", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "38": [ + { + "frameIndex": 38, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "40": [ + { + "frameIndex": 40, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "42": [ + { + "frameIndex": 42, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "44": [ + { + "frameIndex": 44, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "46": [ + { + "frameIndex": 46, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "48": [ + { + "frameIndex": 48, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "50": [ + { + "frameIndex": 50, + "resourceName": "PRSFX- Burn Up1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 2, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/psyblade.json b/public/battle-anims/psyblade.json new file mode 100644 index 00000000000..1f4ce283302 --- /dev/null +++ b/public/battle-anims/psyblade.json @@ -0,0 +1,1923 @@ +[ + { + "id": 427, + "graphic": "PRAS- Psycho Cut", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "angle": 287, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "angle": 215, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "angle": 143, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "angle": 71, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 36.5, + "y": -12.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 49, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 36, + "y": -12.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 24, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 61.5, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 49, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 36, + "y": -12.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 74, + "y": -35, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 61, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 49, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 86.5, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 74, + "y": -34.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 61, + "y": -27.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 86, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 74, + "y": -34, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 111.5, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 86, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 112, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 99, + "y": -49.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 112, + "y": -57.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Psycho Cut.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 + }, + { + "id": 427, + "graphic": "PRAS- Psycho Cut", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 213, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 252, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 291, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 330, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 10, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 94, + "y": -50.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 120, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 81, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 94, + "y": -50.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 107, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 68, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 81, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 94, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 55, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 68, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 81, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 42, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 55, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 68, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 29, + "y": -14.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 42, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 55, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 16.5, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 29, + "y": -14.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "priority": 1, + "focus": 3 + }, + { + "x": 42, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 16.5, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 29, + "y": -14.5, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 16.5, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "angle": 60, + "mirror": true, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 150, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Psycho Cut.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/sappy-seed.json b/public/battle-anims/sappy-seed.json new file mode 100644 index 00000000000..d32c2bb2417 --- /dev/null +++ b/public/battle-anims/sappy-seed.json @@ -0,0 +1,4895 @@ +[ + { + "id": 73, + "graphic": "PRAS- Leech Seed", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -22.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 63, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 127, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 51, + "focus": 3 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 191, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 102, + "focus": 3 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 153, + "focus": 3 + }, + { + "x": 21.5, + "y": -32.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 51, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 204, + "focus": 3 + }, + { + "x": 26.5, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 102, + "focus": 3 + }, + { + "x": 5, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 36, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 153, + "focus": 3 + }, + { + "x": 22, + "y": -35, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 46, + "y": -58.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 204, + "focus": 3 + }, + { + "x": 29, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 62, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -21.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 36, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 78, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 18.5, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + }, + { + "x": 64.5, + "y": -65, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 101.5, + "y": -66.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 44, + "y": -57, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 87, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 125, + "y": -61.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -66, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 109.5, + "y": -74.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 137, + "y": -53.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -74.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 116, + "y": -62, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 92, + "y": -69.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -54.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 148, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 107, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 187, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 187, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 187, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 110, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 110, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 110, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 40, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 40, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 40, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 40, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 40, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 40, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 110, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 110, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 110, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 187, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 187, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 187, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 187, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 187, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 187, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 204, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 204, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 204, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 153, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 153, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 153, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 102, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 102, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 102, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 51, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 51, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 51, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "priority": 1, + "focus": 3 + }, + { + "x": 149, + "y": -46.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "4": [ + { + "frameIndex": 4, + "resourceName": "PRSFX- Leech Seed2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 + }, + { + "id": 73, + "graphic": "PRAS- Leech Seed", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 63, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 127, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 191, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 85, + "priority": 1, + "focus": 2 + }, + { + "x": 104, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 170, + "priority": 1, + "focus": 2 + }, + { + "x": 92, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 72, + "y": -58.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 85, + "priority": 1, + "focus": 2 + }, + { + "x": 104, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 53, + "y": -50, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 170, + "priority": 1, + "focus": 2 + }, + { + "x": 84, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 37.5, + "y": -37.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 70, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 22, + "y": -25, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 88, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 56, + "y": -46, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 6.5, + "y": -12.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 75.19999999999999, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 42, + "y": -31, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -9, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 62.400000000000006, + "y": -35, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 28, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -24, + "y": 13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 49.599999999999994, + "y": -19, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": 14, + "y": -2, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 36.8, + "y": -3, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": 0, + "y": 13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 24, + "y": 13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 183, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 183, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 183, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 111, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 111, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 111, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 40, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 40, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 40, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 40, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 40, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 40, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 93, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 93, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 93, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 147, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 147, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 147, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 201, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 201, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 201, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 204, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 204, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 204, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 153, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 153, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 153, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 102, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 102, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 102, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 51, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 51, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 51, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 20, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "focus": 2 + }, + { + "x": -4, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "focus": 2 + }, + { + "x": -28, + "y": 17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "focus": 2 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Leech Seed2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/sizzly-slide.json b/public/battle-anims/sizzly-slide.json new file mode 100644 index 00000000000..a045f425f9c --- /dev/null +++ b/public/battle-anims/sizzly-slide.json @@ -0,0 +1,2715 @@ +[ + { + "id": 488, + "graphic": "PRAS- Fire", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 155, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": -0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": -0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": -1, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": -0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": -0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": -0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -4, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 25, + "y": -12, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 21.5, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 50.5, + "y": -23.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 47, + "y": -25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 75.5, + "y": -35.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 72.5, + "y": -38, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 101, + "y": -47, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 98, + "y": -50.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 126.5, + "y": -58.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 123.5, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 144, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 145.5, + "y": -73.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 140.5, + "y": -69.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 162, + "y": -82.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 255, + 0, + 0, + 0 + ], + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 163.5, + "y": -83, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 157.5, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 180, + "y": -94.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 181.5, + "y": -92, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 174.5, + "y": -81.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 198, + "y": -106.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 168, + "y": -85, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 193, + "y": -96.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 168.5, + "y": -86, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 154.5, + "y": -78, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 162.5, + "y": -82, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 141, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 157, + "y": -77.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 157, + "y": -77.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -54.5, + "y": 38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -36.5, + "y": 25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -18.5, + "y": 12.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "1": [ + { + "frameIndex": 1, + "resourceName": "PRSFX- Flame Charge1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "15": [ + { + "frameIndex": 15, + "resourceName": "PRSFX- Flame Charge1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "20": [ + { + "frameIndex": 20, + "resourceName": "PRSFX- Flame Charge2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 + }, + { + "id": 488, + "graphic": "PRAS- Fire", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -54.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 155, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -54.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -54, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 117, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -53.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -53.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -53, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -51, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 102.5, + "y": -52, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 101, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 77, + "y": -40, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 74, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 51.5, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 47, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 26, + "y": -16, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 20, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": -2.5, + "y": 1.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0.5, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": -6.5, + "y": 7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": -18, + "y": 9.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -10, + "y": 0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -18, + "y": 12.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 9, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": -33, + "y": 18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -20.5, + "y": 5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": -29.5, + "y": 18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 10, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": -48, + "y": 26.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -30.5, + "y": 9.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": -41, + "y": 23.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": -48, + "y": 26.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -54.5, + "y": 38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": -63.5, + "y": 44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 11, + "opacity": 255, + "priority": 2, + "focus": 3 + } + ], + [ + { + "x": -48, + "y": 26.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": -54.5, + "y": 38.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "tone": [ + 255, + 0, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": -16, + "y": 8.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -31.5, + "y": 16, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "tone": [ + 255, + 0, + 0, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -20, + "y": 5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "tone": [ + 255, + 0, + 0, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": -20, + "y": 5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "tone": [ + 255, + 0, + 0, + 0 + ], + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 178.5, + "y": -86.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 165.5, + "y": -81, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 153, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 140.5, + "y": -70, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "1": [ + { + "frameIndex": 1, + "resourceName": "PRSFX- Flame Charge1.wav", + "volume": 100, + "pitch": 110, + "eventType": "AnimTimedSoundEvent" + } + ], + "15": [ + { + "frameIndex": 15, + "resourceName": "PRSFX- Flame Charge1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "20": [ + { + "frameIndex": 20, + "resourceName": "PRSFX- Flame Charge2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/sparkly-swirl.json b/public/battle-anims/sparkly-swirl.json new file mode 100644 index 00000000000..7972d6bec03 --- /dev/null +++ b/public/battle-anims/sparkly-swirl.json @@ -0,0 +1,2236 @@ +{ + "id": 617, + "graphic": "PRAS- Strike", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -40, + -40, + -40, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -80, + -80, + -80, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 110, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 154.5, + "y": -54, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 106, + "y": -80.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 141.5, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 141.5, + "y": -45.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 114, + "y": -77.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 146, + "y": -58.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108.5, + "y": -38, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 154.5, + "y": -78, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 107, + "y": -73.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 134.5, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 111.5, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 151.5, + "y": -40, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 125.5, + "y": -88.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 102.5, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 146, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 113.5, + "y": -57, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 140.5, + "y": -70.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 93.5, + "y": -75.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 99.5, + "y": -41.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 154, + "y": -40.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 155.5, + "y": -85, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 104.5, + "y": -41.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 134, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 154.5, + "y": -60, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 149, + "y": -86.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 147, + "y": -41, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 107, + "y": -53.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 160, + "y": -69, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 102.5, + "y": -45, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 113, + "y": -80, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -120, + -120, + -120, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 105, + "y": -39.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -80, + -80, + -80, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + -40, + -40, + -40, + 0 + ], + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRAS- Flash FG", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 5, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 255, + "duration": 4, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "1": [ + { + "frameIndex": 1, + "resourceName": "Saint7.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "6": [ + { + "frameIndex": 6, + "resourceName": "Saint8.m4a", + "volume": 80, + "pitch": 60, + "eventType": "AnimTimedSoundEvent" + } + ], + "11": [ + { + "frameIndex": 11, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "13": [ + { + "frameIndex": 13, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "15": [ + { + "frameIndex": 15, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "17": [ + { + "frameIndex": 17, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "19": [ + { + "frameIndex": 19, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "21": [ + { + "frameIndex": 21, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "23": [ + { + "frameIndex": 23, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "25": [ + { + "frameIndex": 25, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "27": [ + { + "frameIndex": 27, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "29": [ + { + "frameIndex": 29, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "31": [ + { + "frameIndex": 31, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "33": [ + { + "frameIndex": 33, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "35": [ + { + "frameIndex": 35, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "37": [ + { + "frameIndex": 37, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "39": [ + { + "frameIndex": 39, + "resourceName": "", + "bgX": 0, + "bgY": 0, + "opacity": 0, + "duration": 4, + "eventType": "AnimTimedUpdateBgEvent" + }, + { + "frameIndex": 39, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "41": [ + { + "frameIndex": 41, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "43": [ + { + "frameIndex": 43, + "resourceName": "Blow1.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 4, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/splishy-splash.json b/public/battle-anims/splishy-splash.json new file mode 100644 index 00000000000..99718798bb5 --- /dev/null +++ b/public/battle-anims/splishy-splash.json @@ -0,0 +1,2458 @@ +[ + { + "id": 57, + "graphic": "", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Surf.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRAS- Surf FG", + "bgX": -10, + "bgY": 365, + "opacity": 0, + "duration": 2, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": 400, + "bgY": 340, + "duration": 45, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "1": [ + { + "frameIndex": 1, + "resourceName": "", + "opacity": 200, + "duration": 6, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "30": [ + { + "frameIndex": 30, + "resourceName": "", + "opacity": 0, + "duration": 15, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 4, + "hue": 0 + }, + { + "id": 57, + "graphic": "", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Surf.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + }, + { + "frameIndex": 0, + "resourceName": "PRAS- Surf FG Opp - Copie", + "bgX": -50, + "bgY": 0, + "opacity": 0, + "duration": 2, + "eventType": "AnimTimedAddBgEvent" + }, + { + "frameIndex": 0, + "resourceName": "", + "bgX": -600, + "bgY": 200, + "duration": 45, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "1": [ + { + "frameIndex": 1, + "resourceName": "", + "opacity": 200, + "duration": 6, + "eventType": "AnimTimedUpdateBgEvent" + } + ], + "30": [ + { + "frameIndex": 30, + "resourceName": "", + "opacity": 0, + "duration": 15, + "eventType": "AnimTimedUpdateBgEvent" + } + ] + }, + "position": 4, + "hue": 0 + } +] diff --git a/public/battle-anims/syrup-bomb.json b/public/battle-anims/syrup-bomb.json new file mode 100644 index 00000000000..82b3a39253e --- /dev/null +++ b/public/battle-anims/syrup-bomb.json @@ -0,0 +1,1800 @@ +[ + { + "id": 787, + "graphic": "GEN8- Apple Acid", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 70, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 70, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 14, + "y": -14, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 32, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 52, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 70, + "y": -66.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 89.5, + "y": -78.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 115, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128.5, + "y": -66.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128.5, + "y": -66.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -53.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -42.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128.5, + "y": -29.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "Poison.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 + }, + { + "id": 787, + "graphic": "GEN8- Apple Acid", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 70, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 70, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 80, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 90, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 103, + "y": -77.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 80, + "y": -74, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 50.5, + "y": -54.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 33, + "y": -38, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 16.5, + "y": -13.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 4 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 14, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 4 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 4 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 4 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 35, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 4 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 42, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "Poison.m4a", + "volume": 80, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 + } +] \ No newline at end of file diff --git a/public/battle-anims/veevee-volley.json b/public/battle-anims/veevee-volley.json new file mode 100644 index 00000000000..7590707e65e --- /dev/null +++ b/public/battle-anims/veevee-volley.json @@ -0,0 +1,886 @@ +{ + "id": 216, + "graphic": "PRAS- Love", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": 0.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -6.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": 18.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 135, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -3, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -10, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": 14.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -7, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -13.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": 10.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -10.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -17, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": 6.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -14.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -21, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": 2.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -18, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -24.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": -1, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -22, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -28, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": -5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -25.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -31.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": -9, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -29, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -35, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": -0.5, + "y": -13, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -33, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 130, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -39, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 130, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -16.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 8, + "y": -2, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 27, + "y": -37, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 70, + "priority": 1, + "focus": 2 + }, + { + "x": -30, + "y": -43.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 70, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 130, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 16, + "y": -6, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": -24.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 70, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 24, + "y": -8, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 12, + "y": -4, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 3 + }, + { + "x": 124, + "y": -58, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 130, + "priority": 1, + "focus": 3 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Return1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "11": [ + { + "frameIndex": 11, + "resourceName": "PRSFX- Return2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 3, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/wicked-torque.json b/public/battle-anims/wicked-torque.json new file mode 100644 index 00000000000..c20bac6a4f1 --- /dev/null +++ b/public/battle-anims/wicked-torque.json @@ -0,0 +1,14194 @@ +{ + "id": 663, + "graphic": "PRAS- Coil", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 27, + 0, + 0, + 19 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 54, + 0, + 0, + 39 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 82, + 0, + 0, + 59 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 109, + 0, + 0, + 78 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 137, + 0, + 0, + 98 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 58, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 164, + 0, + 0, + 118 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -22.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -22.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -22.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 35.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 58, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -45, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": -45, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -45, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -45, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -45, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -45, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": -45, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -45, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -45, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 13, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 35.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 58, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -67.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -67.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -67.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -67.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": -67.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -67.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": -67.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -67.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": -8.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 13, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 35.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": -90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": -90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": -90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": -90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": -32, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -8.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 13, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -112, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": -112, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": -112, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": -112, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": -112, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": -112, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": -112, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": -54, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -32, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -8.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -80, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -54, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -32, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -80, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": -54, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": -107, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": -107, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": -107, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": -107, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -107, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": -107, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": -107, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + } + ], + [ + { + "x": -84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -83.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": -83.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": -83.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -83.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": -83.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": -83.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -83.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -83.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": -83.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + } + ], + [ + { + "x": -60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -59.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -59.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": -59.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -59.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -59.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": -59.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -59.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -59.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -59.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + } + ], + [ + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": -35.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -35.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": -11.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": -11.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -67.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 12.5, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 12.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 12.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -45, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -67.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 36.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 36.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 36.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": 36.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 36.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 36.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 36.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": -20, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -45, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -67.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 60, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 60.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 60.5, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": 60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 60.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": 60.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 60.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 60.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 60.5, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": 4, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -20, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -45, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 84, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 84, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": 84, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 84, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 84, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 84, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": 27.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": -20, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 108, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 108, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 108, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 108, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 108, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 108, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 51.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 27.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 4, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 132.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 132, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 132, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 132, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 132, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 132, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 132, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 76, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 51.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 27.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 155, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 156, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 156, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 156, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 156, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 156, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 156, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 1 + }, + { + "x": 156, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 156, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 156, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 99.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 76, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 51.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 178, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 180, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 180, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": 180, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 180, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 180, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": 180, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 1 + }, + { + "x": 180, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 180, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 1 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 99.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 76, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 180, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 204, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 204, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": 204, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 204, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 1 + }, + { + "x": 204, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 1 + }, + { + "x": 148, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 99.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 204, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + } + ], + [ + { + "x": 224, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 228, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": 228, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 228, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 228, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": 228, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + }, + { + "x": 228, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 1 + }, + { + "x": 228, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 1 + }, + { + "x": 170.5, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 228, + "y": -84, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 169, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 192, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + }, + { + "x": 169, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 192, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 241, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 241, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 241, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 241, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 241, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 241, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 241, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 241, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + } + ], + [ + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 210.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 210.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 210.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 210.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 210.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 210.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 210.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 210.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + } + ], + [ + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 180.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 180.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 180.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 180.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 180.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 180.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 180.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + } + ], + [ + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 150.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 150.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 150.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + } + ], + [ + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 120.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 178.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 120.5, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + } + ], + [ + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 90, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 90, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 148.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 178.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 90, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 60, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 60, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 60, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 60, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 60, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 60, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 120, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 148.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 178.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 30, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 30, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 30, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 30, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 30, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 30, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 30, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 30, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 88, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 148.5, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 192, + 0, + 0, + 138 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 88, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 120, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 168, + 0, + 0, + 120 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 88, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 144, + 0, + 0, + 103 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 150, + 0, + 0, + 150 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 4, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 60, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 12, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 120, + 0, + 0, + 86 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 120, + 0, + 0, + 120 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 3, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 96, + 0, + 0, + 69 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 90, + 0, + 0, + 90 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 0, + "opacity": 144, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "mirror": true, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 72, + 0, + 0, + 51 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 60, + 0, + 0, + 60 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 1, + "opacity": 144, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 48, + 0, + 0, + 34 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "color": [ + 30, + 0, + 0, + 30 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 2, + "opacity": 144, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "color": [ + 24, + 0, + 0, + 17 + ], + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": -20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 20, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "blendType": 2, + "target": 2, + "graphicFrame": 5, + "opacity": 144, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Brutal Swing1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "5": [ + { + "frameIndex": 5, + "resourceName": "PRSFX- Brutal Swing2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "14": [ + { + "frameIndex": 14, + "resourceName": "PRSFX- Brutal Swing2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "31": [ + { + "frameIndex": 31, + "resourceName": "PRSFX- Brutal Swing2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "40": [ + { + "frameIndex": 40, + "resourceName": "PRSFX- Brutal Swing1.wav", + "volume": 100, + "pitch": 120, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 2, + "hue": 0 +} \ No newline at end of file diff --git a/public/battle-anims/zippy-zap.json b/public/battle-anims/zippy-zap.json new file mode 100644 index 00000000000..ffc22e7b75a --- /dev/null +++ b/public/battle-anims/zippy-zap.json @@ -0,0 +1,3133 @@ +{ + "id": 716, + "graphic": "PRAS- Electric", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 126, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 306, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 195, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 101, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 25, + 25, + -26, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 251, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 155, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 38, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "angle": 91, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 51, + 51, + -51, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "angle": 139, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "angle": 252, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "angle": 291, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 140, + "zoomY": 140, + "angle": 145, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 76, + 76, + -77, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 205, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 45, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 228, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 121, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 102, + 102, + -102, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 190, + "zoomY": 190, + "angle": 210, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 190, + "zoomY": 190, + "angle": 124, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 190, + "zoomY": 190, + "angle": 10, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 190, + "zoomY": 190, + "angle": 242, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 127, + 127, + -128, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "angle": 253, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "angle": 53, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "angle": 225, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 200, + "zoomY": 200, + "angle": 324, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 153, + 153, + -153, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 205, + "zoomY": 205, + "angle": 58, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 205, + "zoomY": 205, + "angle": 152, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 205, + "zoomY": 205, + "angle": 269, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 205, + "zoomY": 205, + "angle": 205, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "tone": [ + 178, + 178, + -179, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 339, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 133, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 39, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 346, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 170, + "tone": [ + 204, + 204, + -204, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 43, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 192, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 154, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 355, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 85, + "tone": [ + 229, + 229, + -230, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 160, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 74, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 187, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 223, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "tone": [ + 255, + 255, + -255, + 0 + ], + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 111, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 304, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 346, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 199, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 232, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 268, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 83, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 158, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 134, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 331, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 252, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 191, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 192, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 46, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 308, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 241, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 312, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 196, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 18, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 149, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 11, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 135, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 325, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 248, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 2 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 167, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 117, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 224, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 341, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 112, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 26, + "opacity": 255, + "tone": [ + 0, + 75, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 27, + "opacity": 255, + "tone": [ + 75, + 150, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 28, + "opacity": 255, + "tone": [ + 0, + 75, + 0, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 1, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 64, + "y": -32, + "zoomX": 50, + "zoomY": 50, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 30, + "tone": [ + 255, + 255, + 255, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 2, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 10, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 111, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 192, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + }, + { + "x": 32, + "y": -16, + "zoomX": 130, + "zoomY": 130, + "angle": 252, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 60, + "tone": [ + 127, + 127, + 127, + 0 + ], + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 3, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 292, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 343, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 168, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 88, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 4, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 341, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 129, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 227, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 286, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 85, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 5, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 359, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 162, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 44, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 288, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 175, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 6, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 15, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 170, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 226, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 210, + "zoomY": 210, + "angle": 73, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 90, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 191, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 7, + "opacity": 214, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 85, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 72, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 145, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 72, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 18, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 72, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 170, + "zoomY": 170, + "angle": 344, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 72, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 207, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 8, + "opacity": 173, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 130, + "zoomY": 130, + "angle": 12, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 54, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 130, + "zoomY": 130, + "angle": 282, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 54, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 130, + "zoomY": 130, + "angle": 341, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 54, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 130, + "zoomY": 130, + "angle": 107, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 54, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 223, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 76, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 36, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 115, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 36, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 284, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 36, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 90, + "zoomY": 90, + "angle": 227, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 36, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 239, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 260, + "visible": true, + "target": 2, + "graphicFrame": 46, + "opacity": 18, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 4, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 18, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 320, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 18, + "priority": 1, + "focus": 3 + }, + { + "x": 0, + "y": 0, + "zoomX": 50, + "zoomY": 50, + "angle": 190, + "visible": true, + "blendType": 1, + "target": 2, + "graphicFrame": 46, + "opacity": 18, + "priority": 1, + "focus": 3 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Zing Zap1.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "9": [ + { + "frameIndex": 9, + "resourceName": "PRSFX- Zing Zap2.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "25": [ + { + "frameIndex": 25, + "resourceName": "PRSFX- Zing Zap3.wav", + "volume": 65, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ], + "28": [ + { + "frameIndex": 28, + "resourceName": "PRSFX- Zing Zap4.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 2, + "hue": 0 +} \ No newline at end of file From dd0e8208932bbacdec57afdb2cbcd619523da382 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:33:35 -0700 Subject: [PATCH 022/116] Fix turn order issue in Miracle Eye test (#3912) --- src/test/moves/miracle_eye.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/moves/miracle_eye.test.ts b/src/test/moves/miracle_eye.test.ts index f47e4ce0c16..d6b21a5dc2f 100644 --- a/src/test/moves/miracle_eye.test.ts +++ b/src/test/moves/miracle_eye.test.ts @@ -33,18 +33,18 @@ describe("Moves - Miracle Eye", () => { }); it("should allow Psychic moves to hit Dark types", async () => { - await game.startBattle(); + await game.classicMode.startBattle(); const enemy = game.scene.getEnemyPokemon()!; game.move.select(Moves.CONFUSION); - await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.toNextTurn(); expect(enemy.hp).toBe(enemy.getMaxHp()); game.move.select(Moves.MIRACLE_EYE); await game.toNextTurn(); game.move.select(Moves.CONFUSION); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.phaseInterceptor.to(MoveEffectPhase); expect(enemy.hp).toBeLessThan(enemy.getMaxHp()); From dd0b6464d21055bfa0e5e9119e7ca2bd23c5841a Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Fri, 30 Aug 2024 19:07:27 -0700 Subject: [PATCH 023/116] [Beta][Bug] Fixing Trapped ability messages (#3928) * always update your repo * enemy command phase changed too * typedocs * Typedocs part 2 * Added simulation boolean back * restored simulated * Remove `console.log()` statements --------- Co-authored-by: frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/data/ability.ts | 18 +++++++----------- src/phases/enemy-command-phase.ts | 2 +- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index d947bcddd99..8b7a7772efe 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -4498,7 +4498,7 @@ async function applyAbAttrsInternal( applyFunc: AbAttrApplyFunc, args: any[], showAbilityInstant: boolean = false, - quiet: boolean = false, + simulated: boolean = false, messages: string[] = [], ) { for (const passive of [false, true]) { @@ -4520,33 +4520,29 @@ async function applyAbAttrsInternal( if (result instanceof Promise) { result = await result; } - if (result) { if (pokemon.summonData && !pokemon.summonData.abilitiesApplied.includes(ability.id)) { pokemon.summonData.abilitiesApplied.push(ability.id); } - if (pokemon.battleData && !quiet && !pokemon.battleData.abilitiesApplied.includes(ability.id)) { + if (pokemon.battleData && !simulated && !pokemon.battleData.abilitiesApplied.includes(ability.id)) { pokemon.battleData.abilitiesApplied.push(ability.id); } - - if (attr.showAbility && !quiet) { + if (attr.showAbility && !simulated) { if (showAbilityInstant) { pokemon.scene.abilityBar.showAbility(pokemon, passive); } else { queueShowAbility(pokemon, passive); } } - - if (!quiet) { - const message = attr.getTriggerMessage(pokemon, ability.name, args); - if (message) { + const message = attr.getTriggerMessage(pokemon, ability.name, args); + if (message) { + if (!simulated) { pokemon.scene.queueMessage(message); - messages.push(message); } } + messages.push(message!); } } - pokemon.scene.clearPhaseQueueSplice(); } } diff --git a/src/phases/enemy-command-phase.ts b/src/phases/enemy-command-phase.ts index 0b62fcbe813..5277b2666c7 100644 --- a/src/phases/enemy-command-phase.ts +++ b/src/phases/enemy-command-phase.ts @@ -47,7 +47,7 @@ export class EnemyCommandPhase extends FieldPhase { const trapTag = enemyPokemon.findTag(t => t instanceof TrappedTag) as TrappedTag; const trapped = new Utils.BooleanHolder(false); - opponents.forEach(playerPokemon => applyCheckTrappedAbAttrs(CheckTrappedAbAttr, playerPokemon, trapped, enemyPokemon, [], true)); + opponents.forEach(playerPokemon => applyCheckTrappedAbAttrs(CheckTrappedAbAttr, playerPokemon, trapped, enemyPokemon, [""], true)); if (!trapTag && !trapped.value) { const partyMemberScores = trainer.getPartyMemberMatchupScores(enemyPokemon.trainerSlot, true); From 5e2c05afe9743bf983e2299db8226c03257a5df9 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Sat, 31 Aug 2024 03:33:07 +0100 Subject: [PATCH 024/116] refactor: Update excludedMenus condition to look at the end of the modeChain --- src/ui/menu-ui-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 9e96eda9cc5..e8f2038aa2c 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -106,7 +106,7 @@ export default class MenuUiHandler extends MessageUiHandler { render() { const ui = this.getUi(); this.excludedMenus = () => [ - { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain()[0]), options: [MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, + { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain().at(-1)!), options: [MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, { condition: bypassLogin, options: [MenuOptions.LOG_OUT] } ]; From 3d5957a99849ca4e1aed87ac9a804a37f7327781 Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Fri, 30 Aug 2024 23:06:36 -0400 Subject: [PATCH 025/116] [Sprite] Beta2 Variant Patch icon chores (#3748) * [Sprite] Add Gen1 icons * [Sprite] Add Gen3 icons * [Sprite] Add Gen4 icons * [Sprite] Add Gen4 icons * [Sprite] Add Gen5 icons * [Sprite] Add Gen6 icons * [Sprite] Add Gen9 icons * [Sprite] Add Gen1 variant icons * [Sprite] Add Gen2 variant icons * [Sprite] Add Gen3 variant icons * [Sprite] Add Gen4 variant icons * [Sprite] Add Gen5 variant icons * [Sprite] Add Gen7 variant icons * [Sprite] Add more Gen1 variant icons * [Sprite] Add Beta2 Gen2 variant icons * [Sprite] Add Beta2 Gen1 variant icons * [Sprite] Add Beta2 Gen3 variant icons * [Sprite] Add Beta2 Gen4 variant icons * [Sprite] Add Beta2 Gen5 variant icons * [Sprite] Add Beta2 Gen6 variant icons * [Sprite] Add Beta2 Gen7 variant icons * [Sprite] Add Beta2 Gen8 variant icons * [Sprite] Add Beta2 Gen9 variant icons --- public/images/pokemon/icons/1/84-f.png | Bin 0 -> 509 bytes public/images/pokemon/icons/1/84s-f.png | Bin 0 -> 700 bytes public/images/pokemon/icons/1/85-f.png | Bin 0 -> 741 bytes public/images/pokemon/icons/1/85s-f.png | Bin 0 -> 987 bytes public/images/pokemon/icons/3/354-mega.png | Bin 405 -> 833 bytes public/images/pokemon/icons/3/354s-mega.png | Bin 455 -> 917 bytes public/images/pokemon/icons/3/378s.png | Bin 410 -> 601 bytes public/images/pokemon/icons/4/429.png | Bin 365 -> 647 bytes public/images/pokemon/icons/5/546.png | Bin 283 -> 496 bytes public/images/pokemon/icons/5/546s.png | Bin 327 -> 574 bytes public/images/pokemon/icons/5/571.png | Bin 366 -> 666 bytes public/images/pokemon/icons/5/571s.png | Bin 414 -> 707 bytes public/images/pokemon/icons/5/592s-f.png | Bin 334 -> 533 bytes public/images/pokemon/icons/6/664s.png | Bin 362 -> 425 bytes public/images/pokemon/icons/6/692.png | Bin 319 -> 598 bytes public/images/pokemon/icons/6/692s.png | Bin 380 -> 686 bytes public/images/pokemon/icons/6/693.png | Bin 418 -> 782 bytes public/images/pokemon/icons/9/945.png | Bin 495 -> 874 bytes public/images/pokemon/icons/9/945s.png | Bin 501 -> 905 bytes public/images/pokemon/icons/variant/1/116_2.png | Bin 0 -> 554 bytes public/images/pokemon/icons/variant/1/116_3.png | Bin 0 -> 560 bytes public/images/pokemon/icons/variant/1/117_2.png | Bin 0 -> 658 bytes public/images/pokemon/icons/variant/1/117_3.png | Bin 0 -> 658 bytes public/images/pokemon/icons/variant/1/120_2.png | Bin 0 -> 495 bytes public/images/pokemon/icons/variant/1/120_3.png | Bin 0 -> 485 bytes public/images/pokemon/icons/variant/1/121_2.png | Bin 0 -> 600 bytes public/images/pokemon/icons/variant/1/121_3.png | Bin 0 -> 583 bytes public/images/pokemon/icons/variant/1/126_2.png | Bin 0 -> 709 bytes public/images/pokemon/icons/variant/1/126_3.png | Bin 0 -> 702 bytes public/images/pokemon/icons/variant/1/137_2.png | Bin 0 -> 625 bytes public/images/pokemon/icons/variant/1/137_3.png | Bin 0 -> 625 bytes public/images/pokemon/icons/variant/1/23_2.png | Bin 0 -> 643 bytes public/images/pokemon/icons/variant/1/23_3.png | Bin 0 -> 641 bytes public/images/pokemon/icons/variant/1/24_2.png | Bin 0 -> 662 bytes public/images/pokemon/icons/variant/1/24_3.png | Bin 0 -> 655 bytes public/images/pokemon/icons/variant/1/38_3.png | Bin 725 -> 738 bytes public/images/pokemon/icons/variant/1/43_2.png | Bin 0 -> 567 bytes public/images/pokemon/icons/variant/1/43_3.png | Bin 0 -> 573 bytes public/images/pokemon/icons/variant/1/44_2.png | Bin 0 -> 726 bytes public/images/pokemon/icons/variant/1/44_3.png | Bin 0 -> 704 bytes public/images/pokemon/icons/variant/1/45_2.png | Bin 0 -> 742 bytes public/images/pokemon/icons/variant/1/45_3.png | Bin 0 -> 746 bytes public/images/pokemon/icons/variant/1/46_1.png | Bin 717 -> 716 bytes public/images/pokemon/icons/variant/1/46_2.png | Bin 658 -> 725 bytes public/images/pokemon/icons/variant/1/46_3.png | Bin 669 -> 707 bytes public/images/pokemon/icons/variant/1/47_1.png | Bin 572 -> 591 bytes public/images/pokemon/icons/variant/1/47_2.png | Bin 576 -> 592 bytes public/images/pokemon/icons/variant/1/47_3.png | Bin 582 -> 601 bytes public/images/pokemon/icons/variant/1/79_2.png | Bin 0 -> 2206 bytes public/images/pokemon/icons/variant/1/79_3.png | Bin 0 -> 2424 bytes .../pokemon/icons/variant/1/80-mega_2.png | Bin 0 -> 2765 bytes .../pokemon/icons/variant/1/80-mega_3.png | Bin 0 -> 2756 bytes public/images/pokemon/icons/variant/1/80_2.png | Bin 0 -> 1080 bytes public/images/pokemon/icons/variant/1/80_3.png | Bin 0 -> 1090 bytes .../images/pokemon/icons/variant/1/84-f_1.png | Bin 0 -> 579 bytes .../images/pokemon/icons/variant/1/84-f_2.png | Bin 0 -> 539 bytes .../images/pokemon/icons/variant/1/84-f_3.png | Bin 0 -> 593 bytes public/images/pokemon/icons/variant/1/84_1.png | Bin 546 -> 579 bytes public/images/pokemon/icons/variant/1/84_2.png | Bin 519 -> 534 bytes public/images/pokemon/icons/variant/1/84_3.png | Bin 548 -> 588 bytes .../images/pokemon/icons/variant/1/85-f_1.png | Bin 0 -> 849 bytes .../images/pokemon/icons/variant/1/85-f_2.png | Bin 0 -> 855 bytes .../images/pokemon/icons/variant/1/85-f_3.png | Bin 0 -> 860 bytes public/images/pokemon/icons/variant/1/85_1.png | Bin 785 -> 849 bytes public/images/pokemon/icons/variant/1/85_2.png | Bin 790 -> 849 bytes public/images/pokemon/icons/variant/1/85_3.png | Bin 809 -> 842 bytes public/images/pokemon/icons/variant/1/98_2.png | Bin 0 -> 642 bytes public/images/pokemon/icons/variant/1/98_3.png | Bin 0 -> 642 bytes .../pokemon/icons/variant/1/99-gigantamax_2.png | Bin 0 -> 852 bytes .../pokemon/icons/variant/1/99-gigantamax_3.png | Bin 0 -> 852 bytes public/images/pokemon/icons/variant/1/99_2.png | Bin 0 -> 666 bytes public/images/pokemon/icons/variant/1/99_3.png | Bin 0 -> 669 bytes public/images/pokemon/icons/variant/2/173_2.png | Bin 0 -> 442 bytes public/images/pokemon/icons/variant/2/182_2.png | Bin 0 -> 720 bytes public/images/pokemon/icons/variant/2/182_3.png | Bin 0 -> 748 bytes public/images/pokemon/icons/variant/2/185_2.png | Bin 0 -> 609 bytes public/images/pokemon/icons/variant/2/185_3.png | Bin 0 -> 609 bytes public/images/pokemon/icons/variant/2/190_2.png | Bin 0 -> 739 bytes public/images/pokemon/icons/variant/2/190_3.png | Bin 0 -> 736 bytes public/images/pokemon/icons/variant/2/193_2.png | Bin 0 -> 687 bytes public/images/pokemon/icons/variant/2/193_3.png | Bin 0 -> 688 bytes public/images/pokemon/icons/variant/2/199_2.png | Bin 0 -> 2244 bytes public/images/pokemon/icons/variant/2/199_3.png | Bin 0 -> 2606 bytes public/images/pokemon/icons/variant/2/203_2.png | Bin 0 -> 708 bytes public/images/pokemon/icons/variant/2/203_3.png | Bin 0 -> 720 bytes public/images/pokemon/icons/variant/2/213_2.png | Bin 0 -> 682 bytes public/images/pokemon/icons/variant/2/213_3.png | Bin 0 -> 645 bytes public/images/pokemon/icons/variant/2/216_1.png | Bin 0 -> 663 bytes public/images/pokemon/icons/variant/2/230_2.png | Bin 0 -> 677 bytes public/images/pokemon/icons/variant/2/230_3.png | Bin 0 -> 688 bytes public/images/pokemon/icons/variant/2/233_2.png | Bin 0 -> 563 bytes public/images/pokemon/icons/variant/2/233_3.png | Bin 0 -> 559 bytes public/images/pokemon/icons/variant/2/240_2.png | Bin 0 -> 560 bytes public/images/pokemon/icons/variant/2/240_3.png | Bin 0 -> 613 bytes .../images/pokemon/icons/variant/3/255-f_2.png | Bin 0 -> 534 bytes .../images/pokemon/icons/variant/3/255-f_3.png | Bin 0 -> 545 bytes public/images/pokemon/icons/variant/3/255_2.png | Bin 0 -> 534 bytes public/images/pokemon/icons/variant/3/255_3.png | Bin 0 -> 540 bytes .../images/pokemon/icons/variant/3/256-f_2.png | Bin 0 -> 751 bytes .../images/pokemon/icons/variant/3/256-f_3.png | Bin 0 -> 731 bytes public/images/pokemon/icons/variant/3/256_2.png | Bin 0 -> 751 bytes public/images/pokemon/icons/variant/3/256_3.png | Bin 0 -> 750 bytes .../images/pokemon/icons/variant/3/257-f_2.png | Bin 0 -> 992 bytes .../images/pokemon/icons/variant/3/257-f_3.png | Bin 0 -> 1004 bytes .../pokemon/icons/variant/3/257-mega_2.png | Bin 0 -> 951 bytes .../pokemon/icons/variant/3/257-mega_3.png | Bin 0 -> 949 bytes public/images/pokemon/icons/variant/3/257_2.png | Bin 0 -> 990 bytes public/images/pokemon/icons/variant/3/257_3.png | Bin 0 -> 990 bytes public/images/pokemon/icons/variant/3/261_2.png | Bin 0 -> 575 bytes public/images/pokemon/icons/variant/3/261_3.png | Bin 0 -> 594 bytes public/images/pokemon/icons/variant/3/262_2.png | Bin 0 -> 678 bytes public/images/pokemon/icons/variant/3/262_3.png | Bin 0 -> 705 bytes public/images/pokemon/icons/variant/3/327_2.png | Bin 0 -> 588 bytes public/images/pokemon/icons/variant/3/327_3.png | Bin 0 -> 589 bytes public/images/pokemon/icons/variant/3/337_2.png | Bin 0 -> 474 bytes public/images/pokemon/icons/variant/3/337_3.png | Bin 0 -> 478 bytes public/images/pokemon/icons/variant/3/352_1.png | Bin 577 -> 578 bytes public/images/pokemon/icons/variant/3/352_2.png | Bin 576 -> 569 bytes public/images/pokemon/icons/variant/3/352_3.png | Bin 580 -> 608 bytes public/images/pokemon/icons/variant/3/370_2.png | Bin 0 -> 413 bytes public/images/pokemon/icons/variant/3/370_3.png | Bin 0 -> 405 bytes .../pokemon/icons/variant/3/382-primal_2.png | Bin 852 -> 902 bytes public/images/pokemon/icons/variant/3/382_2.png | Bin 769 -> 798 bytes public/images/pokemon/icons/variant/3/427_2.png | Bin 0 -> 575 bytes public/images/pokemon/icons/variant/3/427_3.png | Bin 0 -> 579 bytes .../pokemon/icons/variant/3/428-mega_2.png | Bin 0 -> 728 bytes public/images/pokemon/icons/variant/3/428_2.png | Bin 0 -> 576 bytes public/images/pokemon/icons/variant/3/429_1.png | Bin 0 -> 684 bytes public/images/pokemon/icons/variant/3/429_2.png | Bin 0 -> 698 bytes public/images/pokemon/icons/variant/3/429_3.png | Bin 0 -> 680 bytes public/images/pokemon/icons/variant/4/393_2.png | Bin 0 -> 3273 bytes public/images/pokemon/icons/variant/4/393_3.png | Bin 0 -> 3261 bytes public/images/pokemon/icons/variant/4/394_2.png | Bin 0 -> 3331 bytes public/images/pokemon/icons/variant/4/394_3.png | Bin 0 -> 3329 bytes public/images/pokemon/icons/variant/4/395_2.png | Bin 0 -> 412 bytes public/images/pokemon/icons/variant/4/395_3.png | Bin 0 -> 3449 bytes public/images/pokemon/icons/variant/4/418_2.png | Bin 0 -> 2486 bytes public/images/pokemon/icons/variant/4/418_3.png | Bin 0 -> 2502 bytes public/images/pokemon/icons/variant/4/419_2.png | Bin 0 -> 2630 bytes public/images/pokemon/icons/variant/4/419_3.png | Bin 0 -> 2662 bytes public/images/pokemon/icons/variant/4/424_2.png | Bin 0 -> 884 bytes public/images/pokemon/icons/variant/4/424_3.png | Bin 0 -> 895 bytes public/images/pokemon/icons/variant/4/438_2.png | Bin 0 -> 486 bytes public/images/pokemon/icons/variant/4/438_3.png | Bin 0 -> 483 bytes public/images/pokemon/icons/variant/4/441_2.png | Bin 0 -> 593 bytes public/images/pokemon/icons/variant/4/441_3.png | Bin 0 -> 654 bytes public/images/pokemon/icons/variant/4/456_2.png | Bin 0 -> 645 bytes public/images/pokemon/icons/variant/4/456_3.png | Bin 0 -> 628 bytes public/images/pokemon/icons/variant/4/457_2.png | Bin 0 -> 685 bytes public/images/pokemon/icons/variant/4/457_3.png | Bin 0 -> 675 bytes public/images/pokemon/icons/variant/4/467_2.png | Bin 0 -> 800 bytes public/images/pokemon/icons/variant/4/467_3.png | Bin 0 -> 770 bytes public/images/pokemon/icons/variant/4/469_2.png | Bin 0 -> 826 bytes public/images/pokemon/icons/variant/4/469_3.png | Bin 0 -> 857 bytes public/images/pokemon/icons/variant/4/474_2.png | Bin 0 -> 594 bytes public/images/pokemon/icons/variant/4/474_3.png | Bin 0 -> 577 bytes .../pokemon/icons/variant/4/479-fan_2.png | Bin 0 -> 633 bytes .../pokemon/icons/variant/4/479-fan_3.png | Bin 0 -> 627 bytes .../pokemon/icons/variant/4/479-frost_2.png | Bin 0 -> 657 bytes .../pokemon/icons/variant/4/479-frost_3.png | Bin 0 -> 675 bytes .../pokemon/icons/variant/4/479-heat_2.png | Bin 0 -> 669 bytes .../pokemon/icons/variant/4/479-heat_3.png | Bin 0 -> 666 bytes .../pokemon/icons/variant/4/479-mow_2.png | Bin 0 -> 711 bytes .../pokemon/icons/variant/4/479-mow_3.png | Bin 0 -> 708 bytes .../pokemon/icons/variant/4/479-wash_2.png | Bin 0 -> 639 bytes .../pokemon/icons/variant/4/479-wash_3.png | Bin 0 -> 642 bytes public/images/pokemon/icons/variant/4/479_2.png | Bin 0 -> 579 bytes public/images/pokemon/icons/variant/4/479_3.png | Bin 0 -> 588 bytes public/images/pokemon/icons/variant/5/524_2.png | Bin 0 -> 3133 bytes public/images/pokemon/icons/variant/5/524_3.png | Bin 0 -> 3140 bytes public/images/pokemon/icons/variant/5/525_2.png | Bin 0 -> 645 bytes public/images/pokemon/icons/variant/5/525_3.png | Bin 0 -> 3379 bytes public/images/pokemon/icons/variant/5/526_2.png | Bin 0 -> 783 bytes public/images/pokemon/icons/variant/5/526_3.png | Bin 0 -> 3544 bytes public/images/pokemon/icons/variant/5/546_2.png | Bin 473 -> 526 bytes public/images/pokemon/icons/variant/5/546_3.png | Bin 468 -> 521 bytes public/images/pokemon/icons/variant/5/556_2.png | Bin 0 -> 770 bytes public/images/pokemon/icons/variant/5/556_3.png | Bin 0 -> 857 bytes public/images/pokemon/icons/variant/5/571_2.png | Bin 702 -> 729 bytes public/images/pokemon/icons/variant/5/571_3.png | Bin 690 -> 742 bytes public/images/pokemon/icons/variant/5/594_2.png | Bin 0 -> 1876 bytes public/images/pokemon/icons/variant/5/594_3.png | Bin 0 -> 2075 bytes public/images/pokemon/icons/variant/5/618_2.png | Bin 0 -> 540 bytes public/images/pokemon/icons/variant/5/618_3.png | Bin 0 -> 577 bytes public/images/pokemon/icons/variant/5/631_2.png | Bin 0 -> 908 bytes public/images/pokemon/icons/variant/5/631_3.png | Bin 0 -> 6204 bytes public/images/pokemon/icons/variant/5/636_2.png | Bin 0 -> 625 bytes public/images/pokemon/icons/variant/5/636_3.png | Bin 0 -> 661 bytes public/images/pokemon/icons/variant/5/637_2.png | Bin 0 -> 849 bytes public/images/pokemon/icons/variant/5/637_3.png | Bin 0 -> 818 bytes .../images/pokemon/icons/variant/6/2670_2.png | Bin 0 -> 325 bytes .../images/pokemon/icons/variant/6/2670_3.png | Bin 0 -> 325 bytes .../pokemon/icons/variant/6/669-blue_2.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-blue_3.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-orange_2.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-orange_3.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-red_2.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-red_3.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-white_2.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-white_3.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-yellow_2.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/669-yellow_3.png | Bin 0 -> 296 bytes .../pokemon/icons/variant/6/670-blue_2.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-blue_3.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-orange_2.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-orange_3.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-red_2.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-red_3.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-white_2.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-white_3.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-yellow_2.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/670-yellow_3.png | Bin 0 -> 334 bytes .../pokemon/icons/variant/6/671-blue_2.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-blue_3.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-orange_2.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-orange_3.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-red_2.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-red_3.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-white_2.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-white_3.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-yellow_2.png | Bin 0 -> 425 bytes .../pokemon/icons/variant/6/671-yellow_3.png | Bin 0 -> 425 bytes public/images/pokemon/icons/variant/6/677_2.png | Bin 0 -> 958 bytes public/images/pokemon/icons/variant/6/677_3.png | Bin 0 -> 937 bytes .../pokemon/icons/variant/6/678-female_2.png | Bin 0 -> 1121 bytes .../pokemon/icons/variant/6/678-female_3.png | Bin 0 -> 1154 bytes public/images/pokemon/icons/variant/6/678_2.png | Bin 0 -> 1170 bytes public/images/pokemon/icons/variant/6/678_3.png | Bin 0 -> 1161 bytes public/images/pokemon/icons/variant/6/698_2.png | Bin 0 -> 3358 bytes public/images/pokemon/icons/variant/6/698_3.png | Bin 0 -> 3361 bytes public/images/pokemon/icons/variant/6/699_2.png | Bin 0 -> 3567 bytes public/images/pokemon/icons/variant/6/699_3.png | Bin 0 -> 3570 bytes public/images/pokemon/icons/variant/6/702_2.png | Bin 0 -> 637 bytes public/images/pokemon/icons/variant/6/702_3.png | Bin 0 -> 634 bytes public/images/pokemon/icons/variant/6/703_2.png | Bin 0 -> 457 bytes public/images/pokemon/icons/variant/6/703_3.png | Bin 0 -> 459 bytes .../images/pokemon/icons/variant/7/2027_2.png | Bin 0 -> 3328 bytes .../images/pokemon/icons/variant/7/2027_3.png | Bin 0 -> 3349 bytes .../images/pokemon/icons/variant/7/2028_2.png | Bin 0 -> 3484 bytes .../images/pokemon/icons/variant/7/2028_3.png | Bin 0 -> 3487 bytes public/images/pokemon/icons/variant/7/803_2.png | Bin 0 -> 707 bytes public/images/pokemon/icons/variant/7/803_3.png | Bin 0 -> 703 bytes public/images/pokemon/icons/variant/7/804_2.png | Bin 0 -> 1050 bytes public/images/pokemon/icons/variant/7/804_3.png | Bin 0 -> 1052 bytes .../images/pokemon/icons/variant/8/1003_2.png | Bin 0 -> 3686 bytes .../images/pokemon/icons/variant/8/1003_3.png | Bin 0 -> 3679 bytes .../images/pokemon/icons/variant/8/1006_2.png | Bin 0 -> 380 bytes .../images/pokemon/icons/variant/8/1006_3.png | Bin 0 -> 374 bytes .../images/pokemon/icons/variant/8/1010_2.png | Bin 0 -> 715 bytes .../images/pokemon/icons/variant/8/1010_3.png | Bin 0 -> 761 bytes .../images/pokemon/icons/variant/8/4079_2.png | Bin 0 -> 712 bytes .../images/pokemon/icons/variant/8/4079_3.png | Bin 0 -> 743 bytes .../images/pokemon/icons/variant/8/4080_2.png | Bin 0 -> 2720 bytes .../images/pokemon/icons/variant/8/4080_3.png | Bin 0 -> 2501 bytes .../images/pokemon/icons/variant/8/4199_2.png | Bin 0 -> 2794 bytes .../images/pokemon/icons/variant/8/4199_3.png | Bin 0 -> 2382 bytes .../images/pokemon/icons/variant/8/4562_2.png | Bin 0 -> 492 bytes .../images/pokemon/icons/variant/8/4562_3.png | Bin 0 -> 479 bytes public/images/pokemon/icons/variant/8/867_2.png | Bin 0 -> 884 bytes public/images/pokemon/icons/variant/8/867_3.png | Bin 0 -> 869 bytes public/images/pokemon/icons/variant/8/880_2.png | Bin 0 -> 806 bytes public/images/pokemon/icons/variant/8/880_3.png | Bin 0 -> 823 bytes public/images/pokemon/icons/variant/8/881_2.png | Bin 0 -> 743 bytes public/images/pokemon/icons/variant/8/881_3.png | Bin 0 -> 725 bytes public/images/pokemon/icons/variant/8/882_2.png | Bin 0 -> 932 bytes public/images/pokemon/icons/variant/8/882_3.png | Bin 0 -> 947 bytes public/images/pokemon/icons/variant/8/883_2.png | Bin 0 -> 815 bytes public/images/pokemon/icons/variant/8/883_3.png | Bin 0 -> 3455 bytes .../pokemon/icons/variant/8/888-crowned_2.png | Bin 0 -> 1177 bytes .../pokemon/icons/variant/8/888-crowned_3.png | Bin 0 -> 1186 bytes public/images/pokemon/icons/variant/8/888_2.png | Bin 0 -> 857 bytes public/images/pokemon/icons/variant/8/888_3.png | Bin 0 -> 876 bytes .../pokemon/icons/variant/8/889-crowned_2.png | Bin 0 -> 1137 bytes .../pokemon/icons/variant/8/889-crowned_3.png | Bin 0 -> 1140 bytes public/images/pokemon/icons/variant/8/889_2.png | Bin 0 -> 968 bytes public/images/pokemon/icons/variant/8/889_3.png | Bin 0 -> 968 bytes public/images/pokemon/icons/variant/8/909_2.png | Bin 0 -> 543 bytes public/images/pokemon/icons/variant/8/909_3.png | Bin 0 -> 560 bytes public/images/pokemon/icons/variant/8/912_2.png | Bin 0 -> 576 bytes public/images/pokemon/icons/variant/8/912_3.png | Bin 0 -> 570 bytes public/images/pokemon/icons/variant/8/913_2.png | Bin 0 -> 699 bytes public/images/pokemon/icons/variant/8/913_3.png | Bin 0 -> 702 bytes public/images/pokemon/icons/variant/8/914_2.png | Bin 0 -> 834 bytes public/images/pokemon/icons/variant/8/914_3.png | Bin 0 -> 846 bytes public/images/pokemon/icons/variant/8/940_2.png | Bin 0 -> 466 bytes public/images/pokemon/icons/variant/8/940_3.png | Bin 0 -> 468 bytes public/images/pokemon/icons/variant/8/941_2.png | Bin 0 -> 608 bytes public/images/pokemon/icons/variant/8/941_3.png | Bin 0 -> 657 bytes public/images/pokemon/icons/variant/8/953_2.png | Bin 0 -> 700 bytes public/images/pokemon/icons/variant/8/953_3.png | Bin 0 -> 704 bytes public/images/pokemon/icons/variant/8/954_2.png | Bin 0 -> 1006 bytes public/images/pokemon/icons/variant/8/954_3.png | Bin 0 -> 1014 bytes public/images/pokemon/icons/variant/8/981_2.png | Bin 0 -> 768 bytes public/images/pokemon/icons/variant/8/981_3.png | Bin 0 -> 768 bytes 294 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/pokemon/icons/1/84-f.png create mode 100644 public/images/pokemon/icons/1/84s-f.png create mode 100644 public/images/pokemon/icons/1/85-f.png create mode 100644 public/images/pokemon/icons/1/85s-f.png create mode 100644 public/images/pokemon/icons/variant/1/116_2.png create mode 100644 public/images/pokemon/icons/variant/1/116_3.png create mode 100644 public/images/pokemon/icons/variant/1/117_2.png create mode 100644 public/images/pokemon/icons/variant/1/117_3.png create mode 100644 public/images/pokemon/icons/variant/1/120_2.png create mode 100644 public/images/pokemon/icons/variant/1/120_3.png create mode 100644 public/images/pokemon/icons/variant/1/121_2.png create mode 100644 public/images/pokemon/icons/variant/1/121_3.png create mode 100644 public/images/pokemon/icons/variant/1/126_2.png create mode 100644 public/images/pokemon/icons/variant/1/126_3.png create mode 100644 public/images/pokemon/icons/variant/1/137_2.png create mode 100644 public/images/pokemon/icons/variant/1/137_3.png create mode 100644 public/images/pokemon/icons/variant/1/23_2.png create mode 100644 public/images/pokemon/icons/variant/1/23_3.png create mode 100644 public/images/pokemon/icons/variant/1/24_2.png create mode 100644 public/images/pokemon/icons/variant/1/24_3.png create mode 100644 public/images/pokemon/icons/variant/1/43_2.png create mode 100644 public/images/pokemon/icons/variant/1/43_3.png create mode 100644 public/images/pokemon/icons/variant/1/44_2.png create mode 100644 public/images/pokemon/icons/variant/1/44_3.png create mode 100644 public/images/pokemon/icons/variant/1/45_2.png create mode 100644 public/images/pokemon/icons/variant/1/45_3.png create mode 100644 public/images/pokemon/icons/variant/1/79_2.png create mode 100644 public/images/pokemon/icons/variant/1/79_3.png create mode 100644 public/images/pokemon/icons/variant/1/80-mega_2.png create mode 100644 public/images/pokemon/icons/variant/1/80-mega_3.png create mode 100644 public/images/pokemon/icons/variant/1/80_2.png create mode 100644 public/images/pokemon/icons/variant/1/80_3.png create mode 100644 public/images/pokemon/icons/variant/1/84-f_1.png create mode 100644 public/images/pokemon/icons/variant/1/84-f_2.png create mode 100644 public/images/pokemon/icons/variant/1/84-f_3.png create mode 100644 public/images/pokemon/icons/variant/1/85-f_1.png create mode 100644 public/images/pokemon/icons/variant/1/85-f_2.png create mode 100644 public/images/pokemon/icons/variant/1/85-f_3.png create mode 100644 public/images/pokemon/icons/variant/1/98_2.png create mode 100644 public/images/pokemon/icons/variant/1/98_3.png create mode 100644 public/images/pokemon/icons/variant/1/99-gigantamax_2.png create mode 100644 public/images/pokemon/icons/variant/1/99-gigantamax_3.png create mode 100644 public/images/pokemon/icons/variant/1/99_2.png create mode 100644 public/images/pokemon/icons/variant/1/99_3.png create mode 100644 public/images/pokemon/icons/variant/2/173_2.png create mode 100644 public/images/pokemon/icons/variant/2/182_2.png create mode 100644 public/images/pokemon/icons/variant/2/182_3.png create mode 100644 public/images/pokemon/icons/variant/2/185_2.png create mode 100644 public/images/pokemon/icons/variant/2/185_3.png create mode 100644 public/images/pokemon/icons/variant/2/190_2.png create mode 100644 public/images/pokemon/icons/variant/2/190_3.png create mode 100644 public/images/pokemon/icons/variant/2/193_2.png create mode 100644 public/images/pokemon/icons/variant/2/193_3.png create mode 100644 public/images/pokemon/icons/variant/2/199_2.png create mode 100644 public/images/pokemon/icons/variant/2/199_3.png create mode 100644 public/images/pokemon/icons/variant/2/203_2.png create mode 100644 public/images/pokemon/icons/variant/2/203_3.png create mode 100644 public/images/pokemon/icons/variant/2/213_2.png create mode 100644 public/images/pokemon/icons/variant/2/213_3.png create mode 100644 public/images/pokemon/icons/variant/2/216_1.png create mode 100644 public/images/pokemon/icons/variant/2/230_2.png create mode 100644 public/images/pokemon/icons/variant/2/230_3.png create mode 100644 public/images/pokemon/icons/variant/2/233_2.png create mode 100644 public/images/pokemon/icons/variant/2/233_3.png create mode 100644 public/images/pokemon/icons/variant/2/240_2.png create mode 100644 public/images/pokemon/icons/variant/2/240_3.png create mode 100644 public/images/pokemon/icons/variant/3/255-f_2.png create mode 100644 public/images/pokemon/icons/variant/3/255-f_3.png create mode 100644 public/images/pokemon/icons/variant/3/255_2.png create mode 100644 public/images/pokemon/icons/variant/3/255_3.png create mode 100644 public/images/pokemon/icons/variant/3/256-f_2.png create mode 100644 public/images/pokemon/icons/variant/3/256-f_3.png create mode 100644 public/images/pokemon/icons/variant/3/256_2.png create mode 100644 public/images/pokemon/icons/variant/3/256_3.png create mode 100644 public/images/pokemon/icons/variant/3/257-f_2.png create mode 100644 public/images/pokemon/icons/variant/3/257-f_3.png create mode 100644 public/images/pokemon/icons/variant/3/257-mega_2.png create mode 100644 public/images/pokemon/icons/variant/3/257-mega_3.png create mode 100644 public/images/pokemon/icons/variant/3/257_2.png create mode 100644 public/images/pokemon/icons/variant/3/257_3.png create mode 100644 public/images/pokemon/icons/variant/3/261_2.png create mode 100644 public/images/pokemon/icons/variant/3/261_3.png create mode 100644 public/images/pokemon/icons/variant/3/262_2.png create mode 100644 public/images/pokemon/icons/variant/3/262_3.png create mode 100644 public/images/pokemon/icons/variant/3/327_2.png create mode 100644 public/images/pokemon/icons/variant/3/327_3.png create mode 100644 public/images/pokemon/icons/variant/3/337_2.png create mode 100644 public/images/pokemon/icons/variant/3/337_3.png create mode 100644 public/images/pokemon/icons/variant/3/370_2.png create mode 100644 public/images/pokemon/icons/variant/3/370_3.png create mode 100644 public/images/pokemon/icons/variant/3/427_2.png create mode 100644 public/images/pokemon/icons/variant/3/427_3.png create mode 100644 public/images/pokemon/icons/variant/3/428-mega_2.png create mode 100644 public/images/pokemon/icons/variant/3/428_2.png create mode 100644 public/images/pokemon/icons/variant/3/429_1.png create mode 100644 public/images/pokemon/icons/variant/3/429_2.png create mode 100644 public/images/pokemon/icons/variant/3/429_3.png create mode 100644 public/images/pokemon/icons/variant/4/393_2.png create mode 100644 public/images/pokemon/icons/variant/4/393_3.png create mode 100644 public/images/pokemon/icons/variant/4/394_2.png create mode 100644 public/images/pokemon/icons/variant/4/394_3.png create mode 100644 public/images/pokemon/icons/variant/4/395_2.png create mode 100644 public/images/pokemon/icons/variant/4/395_3.png create mode 100644 public/images/pokemon/icons/variant/4/418_2.png create mode 100644 public/images/pokemon/icons/variant/4/418_3.png create mode 100644 public/images/pokemon/icons/variant/4/419_2.png create mode 100644 public/images/pokemon/icons/variant/4/419_3.png create mode 100644 public/images/pokemon/icons/variant/4/424_2.png create mode 100644 public/images/pokemon/icons/variant/4/424_3.png create mode 100644 public/images/pokemon/icons/variant/4/438_2.png create mode 100644 public/images/pokemon/icons/variant/4/438_3.png create mode 100644 public/images/pokemon/icons/variant/4/441_2.png create mode 100644 public/images/pokemon/icons/variant/4/441_3.png create mode 100644 public/images/pokemon/icons/variant/4/456_2.png create mode 100644 public/images/pokemon/icons/variant/4/456_3.png create mode 100644 public/images/pokemon/icons/variant/4/457_2.png create mode 100644 public/images/pokemon/icons/variant/4/457_3.png create mode 100644 public/images/pokemon/icons/variant/4/467_2.png create mode 100644 public/images/pokemon/icons/variant/4/467_3.png create mode 100644 public/images/pokemon/icons/variant/4/469_2.png create mode 100644 public/images/pokemon/icons/variant/4/469_3.png create mode 100644 public/images/pokemon/icons/variant/4/474_2.png create mode 100644 public/images/pokemon/icons/variant/4/474_3.png create mode 100644 public/images/pokemon/icons/variant/4/479-fan_2.png create mode 100644 public/images/pokemon/icons/variant/4/479-fan_3.png create mode 100644 public/images/pokemon/icons/variant/4/479-frost_2.png create mode 100644 public/images/pokemon/icons/variant/4/479-frost_3.png create mode 100644 public/images/pokemon/icons/variant/4/479-heat_2.png create mode 100644 public/images/pokemon/icons/variant/4/479-heat_3.png create mode 100644 public/images/pokemon/icons/variant/4/479-mow_2.png create mode 100644 public/images/pokemon/icons/variant/4/479-mow_3.png create mode 100644 public/images/pokemon/icons/variant/4/479-wash_2.png create mode 100644 public/images/pokemon/icons/variant/4/479-wash_3.png create mode 100644 public/images/pokemon/icons/variant/4/479_2.png create mode 100644 public/images/pokemon/icons/variant/4/479_3.png create mode 100644 public/images/pokemon/icons/variant/5/524_2.png create mode 100644 public/images/pokemon/icons/variant/5/524_3.png create mode 100644 public/images/pokemon/icons/variant/5/525_2.png create mode 100644 public/images/pokemon/icons/variant/5/525_3.png create mode 100644 public/images/pokemon/icons/variant/5/526_2.png create mode 100644 public/images/pokemon/icons/variant/5/526_3.png create mode 100644 public/images/pokemon/icons/variant/5/556_2.png create mode 100644 public/images/pokemon/icons/variant/5/556_3.png create mode 100644 public/images/pokemon/icons/variant/5/594_2.png create mode 100644 public/images/pokemon/icons/variant/5/594_3.png create mode 100644 public/images/pokemon/icons/variant/5/618_2.png create mode 100644 public/images/pokemon/icons/variant/5/618_3.png create mode 100644 public/images/pokemon/icons/variant/5/631_2.png create mode 100644 public/images/pokemon/icons/variant/5/631_3.png create mode 100644 public/images/pokemon/icons/variant/5/636_2.png create mode 100644 public/images/pokemon/icons/variant/5/636_3.png create mode 100644 public/images/pokemon/icons/variant/5/637_2.png create mode 100644 public/images/pokemon/icons/variant/5/637_3.png create mode 100644 public/images/pokemon/icons/variant/6/2670_2.png create mode 100644 public/images/pokemon/icons/variant/6/2670_3.png create mode 100644 public/images/pokemon/icons/variant/6/669-blue_2.png create mode 100644 public/images/pokemon/icons/variant/6/669-blue_3.png create mode 100644 public/images/pokemon/icons/variant/6/669-orange_2.png create mode 100644 public/images/pokemon/icons/variant/6/669-orange_3.png create mode 100644 public/images/pokemon/icons/variant/6/669-red_2.png create mode 100644 public/images/pokemon/icons/variant/6/669-red_3.png create mode 100644 public/images/pokemon/icons/variant/6/669-white_2.png create mode 100644 public/images/pokemon/icons/variant/6/669-white_3.png create mode 100644 public/images/pokemon/icons/variant/6/669-yellow_2.png create mode 100644 public/images/pokemon/icons/variant/6/669-yellow_3.png create mode 100644 public/images/pokemon/icons/variant/6/670-blue_2.png create mode 100644 public/images/pokemon/icons/variant/6/670-blue_3.png create mode 100644 public/images/pokemon/icons/variant/6/670-orange_2.png create mode 100644 public/images/pokemon/icons/variant/6/670-orange_3.png create mode 100644 public/images/pokemon/icons/variant/6/670-red_2.png create mode 100644 public/images/pokemon/icons/variant/6/670-red_3.png create mode 100644 public/images/pokemon/icons/variant/6/670-white_2.png create mode 100644 public/images/pokemon/icons/variant/6/670-white_3.png create mode 100644 public/images/pokemon/icons/variant/6/670-yellow_2.png create mode 100644 public/images/pokemon/icons/variant/6/670-yellow_3.png create mode 100644 public/images/pokemon/icons/variant/6/671-blue_2.png create mode 100644 public/images/pokemon/icons/variant/6/671-blue_3.png create mode 100644 public/images/pokemon/icons/variant/6/671-orange_2.png create mode 100644 public/images/pokemon/icons/variant/6/671-orange_3.png create mode 100644 public/images/pokemon/icons/variant/6/671-red_2.png create mode 100644 public/images/pokemon/icons/variant/6/671-red_3.png create mode 100644 public/images/pokemon/icons/variant/6/671-white_2.png create mode 100644 public/images/pokemon/icons/variant/6/671-white_3.png create mode 100644 public/images/pokemon/icons/variant/6/671-yellow_2.png create mode 100644 public/images/pokemon/icons/variant/6/671-yellow_3.png create mode 100644 public/images/pokemon/icons/variant/6/677_2.png create mode 100644 public/images/pokemon/icons/variant/6/677_3.png create mode 100644 public/images/pokemon/icons/variant/6/678-female_2.png create mode 100644 public/images/pokemon/icons/variant/6/678-female_3.png create mode 100644 public/images/pokemon/icons/variant/6/678_2.png create mode 100644 public/images/pokemon/icons/variant/6/678_3.png create mode 100644 public/images/pokemon/icons/variant/6/698_2.png create mode 100644 public/images/pokemon/icons/variant/6/698_3.png create mode 100644 public/images/pokemon/icons/variant/6/699_2.png create mode 100644 public/images/pokemon/icons/variant/6/699_3.png create mode 100644 public/images/pokemon/icons/variant/6/702_2.png create mode 100644 public/images/pokemon/icons/variant/6/702_3.png create mode 100644 public/images/pokemon/icons/variant/6/703_2.png create mode 100644 public/images/pokemon/icons/variant/6/703_3.png create mode 100644 public/images/pokemon/icons/variant/7/2027_2.png create mode 100644 public/images/pokemon/icons/variant/7/2027_3.png create mode 100644 public/images/pokemon/icons/variant/7/2028_2.png create mode 100644 public/images/pokemon/icons/variant/7/2028_3.png create mode 100644 public/images/pokemon/icons/variant/7/803_2.png create mode 100644 public/images/pokemon/icons/variant/7/803_3.png create mode 100644 public/images/pokemon/icons/variant/7/804_2.png create mode 100644 public/images/pokemon/icons/variant/7/804_3.png create mode 100644 public/images/pokemon/icons/variant/8/1003_2.png create mode 100644 public/images/pokemon/icons/variant/8/1003_3.png create mode 100644 public/images/pokemon/icons/variant/8/1006_2.png create mode 100644 public/images/pokemon/icons/variant/8/1006_3.png create mode 100644 public/images/pokemon/icons/variant/8/1010_2.png create mode 100644 public/images/pokemon/icons/variant/8/1010_3.png create mode 100644 public/images/pokemon/icons/variant/8/4079_2.png create mode 100644 public/images/pokemon/icons/variant/8/4079_3.png create mode 100644 public/images/pokemon/icons/variant/8/4080_2.png create mode 100644 public/images/pokemon/icons/variant/8/4080_3.png create mode 100644 public/images/pokemon/icons/variant/8/4199_2.png create mode 100644 public/images/pokemon/icons/variant/8/4199_3.png create mode 100644 public/images/pokemon/icons/variant/8/4562_2.png create mode 100644 public/images/pokemon/icons/variant/8/4562_3.png create mode 100644 public/images/pokemon/icons/variant/8/867_2.png create mode 100644 public/images/pokemon/icons/variant/8/867_3.png create mode 100644 public/images/pokemon/icons/variant/8/880_2.png create mode 100644 public/images/pokemon/icons/variant/8/880_3.png create mode 100644 public/images/pokemon/icons/variant/8/881_2.png create mode 100644 public/images/pokemon/icons/variant/8/881_3.png create mode 100644 public/images/pokemon/icons/variant/8/882_2.png create mode 100644 public/images/pokemon/icons/variant/8/882_3.png create mode 100644 public/images/pokemon/icons/variant/8/883_2.png create mode 100644 public/images/pokemon/icons/variant/8/883_3.png create mode 100644 public/images/pokemon/icons/variant/8/888-crowned_2.png create mode 100644 public/images/pokemon/icons/variant/8/888-crowned_3.png create mode 100644 public/images/pokemon/icons/variant/8/888_2.png create mode 100644 public/images/pokemon/icons/variant/8/888_3.png create mode 100644 public/images/pokemon/icons/variant/8/889-crowned_2.png create mode 100644 public/images/pokemon/icons/variant/8/889-crowned_3.png create mode 100644 public/images/pokemon/icons/variant/8/889_2.png create mode 100644 public/images/pokemon/icons/variant/8/889_3.png create mode 100644 public/images/pokemon/icons/variant/8/909_2.png create mode 100644 public/images/pokemon/icons/variant/8/909_3.png create mode 100644 public/images/pokemon/icons/variant/8/912_2.png create mode 100644 public/images/pokemon/icons/variant/8/912_3.png create mode 100644 public/images/pokemon/icons/variant/8/913_2.png create mode 100644 public/images/pokemon/icons/variant/8/913_3.png create mode 100644 public/images/pokemon/icons/variant/8/914_2.png create mode 100644 public/images/pokemon/icons/variant/8/914_3.png create mode 100644 public/images/pokemon/icons/variant/8/940_2.png create mode 100644 public/images/pokemon/icons/variant/8/940_3.png create mode 100644 public/images/pokemon/icons/variant/8/941_2.png create mode 100644 public/images/pokemon/icons/variant/8/941_3.png create mode 100644 public/images/pokemon/icons/variant/8/953_2.png create mode 100644 public/images/pokemon/icons/variant/8/953_3.png create mode 100644 public/images/pokemon/icons/variant/8/954_2.png create mode 100644 public/images/pokemon/icons/variant/8/954_3.png create mode 100644 public/images/pokemon/icons/variant/8/981_2.png create mode 100644 public/images/pokemon/icons/variant/8/981_3.png diff --git a/public/images/pokemon/icons/1/84-f.png b/public/images/pokemon/icons/1/84-f.png new file mode 100644 index 0000000000000000000000000000000000000000..885313081319959327fa6eb13766e97513e740d8 GIT binary patch literal 509 zcmVX00001b5ch_0Itp) z=>Px$w@E}nR9J=WmLZp$KomxAdMYBf|KK610~tvjbz>um!^U;x%2-^Gv2n#Ua^>I_ z*YGbIH!HF;ov__g;B1--uH!Ml<(oGQFflPPF)?v7M8w?M;Y~!u{QUmSh={qS=!Y>E ziHJEAO8|=1f+&5IE(_|ENauVW8OpZFC4OE=w376Q1Q^~M-p z&fOG$PxfoSp0-#0^BIjV_g_l-X_YP)X00001b5ch_0Itp) z=>Px%c1c7*R9J=Wmp^OUKp2Og3xzgcARg*chfXbMksB}>J+(1~Borg)WUvQk=;9)> zWO6CS;58W%=u`+H#D-#fb5|EP>Y$-pqk1Ld`8~wlqu;&n zy|R!}a+kGo+W?ca1e{k(z?|v2Bgy zQFD!A1_@9-T@|`>Wm7-2Uu32&R&W4&l>tZ1HEe4n$Df&H?r~{57+!dpgOtI-R#T)7L7%C>{? zVrGcvdD^)sbUyio5F`=_dGYZz0K2*KAmMFmBs=xINbj7;%Z?9Uc=sj9M}Y3x%baY&?V|bpYwJvDppyzpF(ixUa*Kiz%t?dnpnIWlcJ8)3ts*0!4Ob2yX)zejx zOxJ>rQOpdbX_|D;piu5p%*3dkt_s_VNz?SJ__}{DE(diW!*QY9=NdNhjBPnmwMboQ zSMk5}^ZWZqoZdMJChgSoLXBN^N+i>@sd8{34vtGfDTU##@7i0u5C$-g!-*} i4r*I{Te|cAN&Wzk22}1yoOB2P0000X00001b5ch_0Itp) z=>Px%pGibPR9J=Wm#=@~Fc`+4-RA^ye?lUITP2cn$jx13=PHLpGS|7QE3$Gp>V`xH zM`ZXD=B|ztOfuv{+h7-K6l&Hw=XG4Y<4%jMm%@y>D(0F+YLH^3n`-#TskY{prT znitT0;o21Lsbl(gsD6Awd}Vv7SLKFj#@im zC6T*A)OCx9d*As>y0=|0AVC@P31dD107*W>G?NxmJa9}i2{)BUDZS8Zt&zq8QW^Bx zB4pTbKmbTT7D)1m2dC$Cc*^k{z$WwrM6MB>o*N4Z03v@s=w2|Oc;M*&YNLGh)5l0v z=q3e{d}3h%Y$mV>>`oUhetEQ;2BeXYRY55QV+_hyiIJ*oic0cXP>mdd8*5S4L?w?OTf>cR|nh&)ieY#8JyScnVw)V2E6}>3E7HpJDqL zBsJZFnsoMc%Y~!$CwfEckWvb9mqRIa=@6F#{$1odH|EKo7q85%bBZpy50XT0Xm8J1 z{|Nw)r0=$@DcoNw*QIUe&UFvCl7l4Lx#XNK2ato(OELeA>{=ZDzR1Cw>sJ4lzZI%~ X@>j?wRRG%!00000NkvXXu0mjfS`bJ5 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/1/85s-f.png b/public/images/pokemon/icons/1/85s-f.png new file mode 100644 index 0000000000000000000000000000000000000000..73bb083f2d993f2ea45a3da50b881f0b63564f86 GIT binary patch literal 987 zcmV<110?*3P)X00001b5ch_0Itp) z=>Px&l}SWFR9J=0m``XFR~*MbQ%Z?~S97ScGeigz*~^f_vWFgeY7~VkSpsv21tTO? zS}24?C`RmI@lR=uiO^MyhXsuq#KA0h@K{o8hr((f9%QzthxD35HXbrPOx|;5GqXFJ zteEd*-@G?(=JUS4-}^JG`M%Fi)+Zkupq+L+;HPnwnx?hwsO!29P_Nguxa&@plxkaY zP}gY&cuFc_lxf z%HG0EDmOcJFbPHofh<=ll?eRtpKkKN{&IuN1H)k9@(f`&fmk;?a!`i1**zfyrfF`1 z3lE?nJSvSIj#r-2SbUoLov8q2C?-nF08EsYH|3&)yLe}pHos(U3bpNeY7mS62o4RH z0jTF~4^V<_c9_ziROM zRRe(8VlUSp?^Tf5Y?kYf_cA%M>H|!UtopWXM?x=zVC=#hY}ez^fSKmC=>Y+pa)zsC z*CTMXS`C23htGf@^b%6S2_Y0*tyWWz0OpMcZ5Q@LK!0rte{BkYlYIv`GWIW*?(UA< zvot@%_~HM!dUjpG0%`yfOe&kr0)gvk-~hC^Ek@Hc{Iw~J{yE>hw@1~Vd-5EooQXhu zHSmW5Uz#6^0EJclai3~ieE1BfoQVJ?ZFPz3U>MFCUfHP4@aOMG062f^8vFZtsMU5S zJmI|pclW95{e3-c`$)xxSl4ymy|)Kzcm->CMa@nL_xI1!ocrdqnlunhoUmkG%HJq# zdL=q&4X@yNo(5nTh98DId0&V74v*Vl}fT|94HrGSK+E%v59 z^(5!uM!kd^%sZ;RdA*Y}7Xp`M_#wzkh_0V;fJr%+3NQ|;S(78H%4I+e$g(VQg(^$) zL*xooW{bUCyt7Ly-k;zCOLTY41;+G@8yYLQuWXIzkdH2-~IAV!Txsb^F;Sr zXPx%`$&OAu2L zUK9lfJ#teKIvo^BaW$GIbjaFC5S7}k!4|w1iIGJ_DpHcd0KdysdYOM8$Q4}-i65R1p*J4{b10Csa*Ib-W^ zoVs-pw0nOUbbn{1ZWxX|oy@RxIL_ALIExcUf#JXhpb)~=Gz}qyJw2&3Gw6|Csj^xa z3I)*j6i-hoyq~`$Us(hiD2W*dPPXr?NG{JUl*CM1_UhJ!0~eNj0V;_ZmY$uFuRNjA zXgKy*^l^({7*%{LK)KI#f`jJthOJv?@cFk#sM%7RU4O4sDMT00E7edzZ@qwp5O!^L zgO6&%$)H}Ta(t>|7zV#z?voom0q(F!a-%0L)2k$ANGCHba7)k5f^a$VH9GH^>(=7L z5wUn2HCqbhCeyV8Zxza*(k_dpZWzSkakdV}L%n9**oizX0ER}R02GVGmf&t5ub+2N zeF2o;6o0Qi{OTB7(=?}jd2TsAa!;&V7lB~^>ny8P>N@+S1yaf#e0ox0XJwG(y#X%I zEr7O@MPA2x1?_2y3(*A!5@306z=3nGNlnw(OkKD5$Yaqhxh?eq*>#&){qq!nd2646 z?K$d(L9tkDgG(nfY^JWM6I!wD}RIC!uAfR4v#QZTI2Xs2jIoKI;Lqx zyl`H5Atl((${@9z%BQi{J)P5CuUk{4H78S3tl6EWMFy|sRMg=S0Lnjq0L`kF&j+^W zn78&R4398x?RN{^9ncHY3GScGRonxxB20(3ggK`cw-;`0aI&~w)SWifOl>A_q p?Ii2e=Z^o~_Im;Awz+?M(O+B~iJ^TEe1rf1002ovPDHLkV1jh;e*pjh delta 379 zcmV->0fhd+29*PlBYy#0NklI6U!R93n64lRsX(S_T0F#hH_vkopsR&~0(9l{zJCNz4sk3fR}eVuWu<@u zKqXhsLCeAmgw%7u2wMi2!L@8x$iLuXp_BlAAC3!o7~y`7r$>R5g;@>-;((7HcwhRj ziyX|%;Y#Q6Z;)y|yTbXk-JSZKPe6d}8d`cDQz4rSekPvV{CmWQf6F=Vm@e$Sd2a$s zwPF!6gJm`Y+jQ!StAXOwApwZtM$LF8gQP93)|lygda4+*f}vP+Ugk>1Th3}#PM85= z-)cDy2qb`j`I(m?Go@N-fMe1js;E7qkmv5bGO7(EH}5jQO!1f!{yR&Rl5v>jYb#Y+ Z>ju9d@1ZqY#Y+GH002ovPDHLkV1gbwt-$~Q diff --git a/public/images/pokemon/icons/3/354s-mega.png b/public/images/pokemon/icons/3/354s-mega.png index 3c54955fc260113c4b0d9b261f6dd19a7ee937f0..9dc66f686c6d5d5a3cfd1b9f90536b3cdab622e3 100644 GIT binary patch delta 895 zcmV-_1AzR;1CPx&Pf0{UR9J<@m)}cTVHn51#xB->pr!2? zM0nSZh|SHLiNzS@jTa*+5E&xD7{LNLU7TRj#h{CkL<|Wg)h>2ZBSuKOsktPw?nD-8 zTG>t4?qc}v;_N-VN8Qd*PxQU<^?9Fj-jDC|<9#*Y7R7NKp?~9Iv1n-L9bNk2G*>p^ z>gf4f2kcb$T7BTz8s0DwcW5w2C~ z3YdxuM9R5k@S$|aaDWaun2HO8h7l|n(bJH(_MV)6HE$8bO! zfT_4Z%)uF?;sU98{L&8ADYLhUXFne60@!vH*F1iFee@lRBmv+CPPb2nqvJbkGo?}q zPPY#x%N4+sK;`^chSN)J<)G8;!-{1Yi)0S@iyPT)dVlax;ipFxw*>feXO%d_WK%dm z3a{R3c?VyA%zzK28|<0AP2{U~WcD_71#Jm%U^Hk5oGl^eT4;dl+Wn0CYcG(m+V8$d zrbf&F6JDp=2e^Is75F600a&ptgYSgwuUZaq{c*->YQzlj_pAh`(`7;R1?;t*0s_iA z--=}!m48A3CaV?Uazr(>t=tFy3&?RCsd@YWfWE#y0KmoSqGEA+qENAZ^*^c|K-C;P znYaP~46RFx(_@a#n}aj5Z>dz0$Mn)#IX_nTw;J|;I&&OH*lMkYzF=s*N8TYScBg6{ zKTamDFup%5!`7cHG=H`J%hMF%eAO;P0>JqGuzw84=A=0|gRLhA3LknbvZ8HC3#4j@ zHws3;2n==~A)gq-+0*y9Sd|(z3rCA37n7RHmT(|LvS5IeHvF#I${GQAV=rv!sML>K zc07MuX($q!Z>(}L9$UfzhSqyzIGWG77>~7n9sw*7wOv#Nw56jc7K;XNcpkQ$C>a`6L5}?LB)J+`65emz39H~xhH2u!n?@TN#YhypP=nrd_ Vo01`o%x`2(lS3p8aSWA9Q0WF*>^&Ub&0eqbfE0`^iyMF*azrOuiE~EmPrYU)d zwKn_r0d%!cP=KzS*1G^|LpBzaD+rwCvaWyvKqXhsL7OIt0|FuS95BLm1I)pdtZ9gE z!No-B0(d@rB+g-k`+oUc5~N!l)P@3az@-MxL+>8q4Cc(?uJz+x0dwsv7U-sz1;4iY zrhexW5Mb9rTYnvpnnzd2bq4o|e(|Gr0i^ktHfN3Q!rY5@gslQdwqg-72TN}Twp17W zKT4GlJ0t)x+^89Sa*&jzDu61?)IB|w47r3MS>!KsB^?Zvs{slMAm%Yiy!HVIB!Gaq z&tGxB50EdltJdJ=XAiYyQAN#Zg*@*D+&ZGd%z@1s41K9+SBYyw^b5ch_0Itp)=>Px%6G=otR9J=Wm#wm!Kp2LfZ5weU%w(n} zGn+VMEVy3A$sH8#q&liTH&9s(M?@eZn2AVmF&Wkz5w{hmOBW8O0kRX7*D%a7%ftKq z><2vb&_nl=lu}D6waYy}x!OodsgoqZ_kG%s27C;>6F>u(=YKgs15!$3Fd z0S%l{5Cjd#D2m9k4A1lK4=AP7zV8Fn?%5JT)NoZ*QI_Rk8^`(H0ccAp1%T&yD5cO^ zQ?Urv(g57S%Q~m+fFxOs7-M=QEefg*c7@m`oKdu10<{U>oiu8Mr*p z@jQ<#%NpxlZaV=42EnymY-@;%R{=lT$Odl1nXtNW@qbI7hfM!6n$PDPk4M5Vq$r9; z^7k!-D2f2|wTix4?#4lL*lYb}sD1dGYPBKl4{ASSJ|YML(lq^V+v(kp45&G>gb;Pp zZNmUp*Q%srYG**8A7<3}bNoBpf P00000NkvXXu0mjfS=0(* delta 384 zcmV-`0e}A41eyboBYy#5Nkl-{)D;trPw&?1TRDjN<&LL_GOED*4^ZGVfnuK;ZT#;O6R)9tOr z5THI3T0N~GgGl1Tfk=R)*W>)26i2{#R2TxIG~HE!tOOH#6(o}1(KYI=#cDvECRW44 zVcS_DfW;dK;m*h#i41JfEM`?kbTPnnaIQ0C%LbR z9|N^zAZDxWD|xZksBI6lKwcxVN(J$wY_j~!$hDZPx%K}keGR9J=Wm#vqZKorFt1$DElT z_wn8U@L&Ikh=_|Qj!o#DiAjiv$3ZNkNf`kY5^!V7g((-c0e`!$#rZwHe!9_}R?1R^ zVvJb=Zd>j#cP8@wYPSMoOlj_}20Pe%-vD4+?$H;U<8{)llwx~iV{Ey&nq9Z93%IM< zwFJ{G8YRHTJb!h}*m7Z_q6YyI5g%LbtK-sqgDAX%J+g88^i4Xd0(kL@OhjCyG|e|~ z90CALM*bO`?|&_N&yy?~Ts-fG4DQqZn9Ad_WUYH$SQQO=nx>0D8xE)eUjkBbZ!jQm z+H<=V{F0I^0s!T{sN76N!Sp$n<{KP%p#>(Swbey8HB1vM%{Tb<@W%)opy41;yEt=w zSsVvmU>i&^-~BeW)oD*6Ac0dA``$viD7w;0F%j`?Fn>i^vKHKrWQFfj*T~1KQXdqH zjx85)8RB-bLAd*g$KWHL0OX$o0ClB5w;~Do=8d{9rD#CaMY90x`g(V#0lCDJ7}l`$QZMdEJEmc0D!DWdm{iu;T@7JQvMCl`kJYZ6%M=*3-eYa@X+&69V_`z zDr+dGm@#IpcB|HT7o<8?i1T~ZB>-qTc!?`nks90fjLXE&`(ME3GFUa1cOU=&002ov JPDHLkV1mKZBp?6) delta 339 zcmV-Z0j&Oq1?>WmBYy!jNklSM9SZJwn`SwO1Z1R?;y`M+OS<~2 zD9;;U?x*1c(jATv2*5E2D*??-gT==4xSTTyr-NYTic+;TKz}?p-*PNOuo@tqL1n4* z?vV1lVNtjhk%KGU?+RH0l!4zRkcKr?5s?F|na1oKYS3TY?2->lim}wWC+uS3=W7sY62K5@X&T%j)iKvPz){B>NGfqBVXioE$Ze|Nc5ZWfQJZA$&Sfec*|_(}%EY~wPbJOYwS^QxWyng(HSF5tfW`yx2fYAo{SwAl1ve`WV505XOC)*LL!z+YP z!5{!2^y);-K7aGXqxoxX#BGy5Y8D)mxb*OQISLERqHB7P29f+|HAq<6#u zUdN%Bs~-YMk;Blgru5YJE7$y3C?Ij{x_5D#`@Y-^aghSerFfYE5g>%k3AqOpeOkuC zTm+J!FuJ$9$*Tm;Ca7*6RX7va%%?NZ?%?p-MFj;S7@Ke6UiLe4Q$GxUuP4PM5XW{1U9kWF002ovPDHLk FV1k2pbi)7u diff --git a/public/images/pokemon/icons/5/546s.png b/public/images/pokemon/icons/5/546s.png index 2c10d91c9e869b165b1c8fb7bd14c7c011ba11aa..7a8d1ba4be3f99b49437f637f3528209f2f4c1ed 100644 GIT binary patch delta 550 zcmV+>0@?k?0=@*0BYyw^b5ch_0Itp)=>Px$_(?=TR9J=Wl|N_`Q5?rVR~({K1*d}W z%plE$LNjzxaHyL&$Za;IMGGzs7_cZLI{60*9TN%;LTfJLYlk?tgK#bduOhj2k^?6} zuu!m>d=B9*_d>*8dJ%;Cz=QX@`|<93zxTes2Pr8jDJdx_DS!VnMp6q2AyhQ>eLs=4 zhg#%k=RE-Ce=E?OTu}X@29eJ#;vH@p!wMWbZK4oD z^>1Uq{_ftuIe=X+X_X$CKmd2eKnS6t)ss>(Jv$TTOwZ0BrPN}8<8^(EL|`ED?%ee- z_S)aI_b;Bm#(%ObpjS=1USeu>aP|Mjxj4z5o53t}c=fVDr8*Cw%>m5(rBGbUaRK;p z^mQ0*KunVeA(Vadd^fO`xOVFi_qWG*bLW?qH%R>LZyzb{oM?GTwW5&Y^`2SY+7Fdd zN>x8yR8j728A>UooOf&CGiNEMe$=jL<4=a`C-xcq{C}kT*Oq0`XqKs5-KNnj(`c3f zn8=O;&~jWV)p?HUS?Ly51wsQcL0nv} o0i5Y3Ngu>T(E~qhrBX)4Z>QSwrNjvH+W-In07*qoM6N<$f=40;g#Z8m delta 301 zcmV+|0n+}y1jho9BYy!7NklJr2S!428oHxIym4#0i)S=RiFGV&)8VMGTyT z0r9g1J*ro^ZmM=jA_iM}iW9ZX7rSxdLJ01k`+vnCrHA8Y5H&r9=O49m zQrQ5ZYP;$tm%i>Znv7z0z@};eVE}=o4>5XxLLV*0vIDY|020E)u=S}0mKKA@JGvAl z2gJ(xaYO~SyDfWg1m*%@jJ#AfKtjsRfK~%DavH1%U<{Hz|2?^B2!xiYE>frgGgSj+ z9n{BQv7?S4geH-Gv6E!(MIjccB9{fb502;ysHMtu@E-5o00000NkvXXu0mjf9w&q3 diff --git a/public/images/pokemon/icons/5/571.png b/public/images/pokemon/icons/5/571.png index 698b916a6759a86a8577935c99f09a5b072409d8..094f9d441262123a8ccf08993fcee57adc6d6ba7 100644 GIT binary patch delta 642 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 delta 336 zcmV-W0k8h41L^{hBYy!gNklQwDKy zDaFC!1Bkfw5&8f=z?DDrAeE+c>IIsE;{qA{xOk}zh$wJ50}u2-5Bx`#x}B3<7h#ejR94e10hO;h(eXd*uiif9MTbbn@wfk~2trfJgCTh}!y zrQGNs5P&VqLSZn0QQP4P!WCoC3*U3#W0|CL&GOF+UmrjZT z0bn5N{d&+KRNfN@wry(#4#OaOQRCr!ye86#Au+ER;4sCEbn2SP^PI9Q(>ODqdjZnC zyhS<)Bqy+_j7dZynx^5kOb6F>)oWBnV$C?j&w=~jU`8>F>+N!qJL3I&hHe35!nkwd ipIhI2)%bsP68QjwGA|#O3^VKi0000S;i0@ehOBYyw^b5ch_0Itp)=>Px%5J^NqR9J=WmcMHnVH}4arDQ8^rQ=)3 z7#!aJKwj$9r3qw^Qj(HCAZD>cM~6ruhLSN@htNS#p;K{ju=9b^DG1(F#K9MJ%aFH& zeP8Zui>JAk4)-i~@BMgr_H2xd1 zTOoun=IaY5v^st$TP66Xglv+}UVX#&{nW$t;L)aH0J+WpfNnl(MmKvLT5u{O6l%5&+h2;r)19SNGW4mhmiz@5az>R1i*c%3c&2` zQAi5lQeOdZRDW-xlp@y|uqwH!c;p1z&OOoY#5z z^fB%6f?j{hOb^K%?uMSXDP~Gl)JUPVMr)1dc>s}idVk~+ck@}i>wQku*j=+_ztmSw zt~M$BHbnsBJ3P-DG0-TZSY*mBB~7T)!~dnamwTM5FlS$FeUceKcp7Itz-4x@$KAvo*Q#~JO6)v8Z1^YF1gs_4odx#awe?d2P2metIb(F)&Kwi M07*qoM6N<$f=>hy+W-In delta 293 zcmV+=0owl71iu21BYyz~Nkl-3`Ma41{^?7@3I`Sf#5lMpx(vU4>$oLnn)e zK0raLPqG5}Az#i85Q59)a=BctZ**N(kvJBv`1kge$=>4f}y|;aYg@0TE&S^ye5OCeS2HD*v zNFAr11LPFYAzXzJK=c91*BMayGLAlj5^11Q0RaX$q+Q%&=SD7~ET-2d05Pb-kb4#g zZdw-=usONpC*ig_VI0H!$AEfIODEi025B7yfOQY)w&?`e^67^sYny(6a0zT#pY2jN rau`3*aXTEl6doSCFFbZ{_;-2(T^{q>?DOPv00000NkvXXu0mjfm=1v$ diff --git a/public/images/pokemon/icons/6/692s.png b/public/images/pokemon/icons/6/692s.png index 5a63ced809b76caa17677ae9718d5e533ea748f5..8d9d998e1c3f70dfde3463b6ad4ca602630260d5 100644 GIT binary patch delta 663 zcmV;I0%-mG0Px%Xh}ptR9J=Wma$9YP#l22oafS^ZVsIi zTml-frNg-umy@IaK(S&o2?sZ6HwTB?u7cp?a5klt{sSGZOUNK(>9vI_WRYeP&PhZ% zoXERDUaqa@nc9x|mNYNTd*A!L_xrs-L_|bHL_|awR8a5E!LZ!N+Jz$TXT_TYoB0(Xqcq+wWoHpRfKZ)? zg8~4WV{EJw%*O+zR_&2mI{|1$s&dpQ8MuayxgfRp|a0H>cm z;CUXsY?5(F&2lEn_RtZW>$<^jDGBiN*D1wZ4coR!$KtdGcg%HN9`7A{~nZP|Vf- z8ASl9UolM+-}jZUW$0Bw-}e=x(V<_+DE&f4`ThM1z%zkju7=U*jI_!B%$Mr8t_xfH zl-HM-B!5Xl9d+Y1t&$M527d+8u{h~^9?mX<Q_iWkG*jT^lJ)|2tV`DmXsa xO9Rh!UF0O*GKOR(2l_C>2{5Y}){XX!_$!vZ2~pm3y9Y(wD7o$aIvAvFISO$An91y*1MR$y7+yGPr$LD396vIFP) z%R>mZI9wx;{=3-Xz!Z-D&wymegNEX=0mEt*1H^ebjRC0Zx_=n7HO@7uC;|l5_k9et zElTIndUqe^X1)T{ADy9%K=N72Gen;0ZMSx}n0s}|cl|7reR2G>Qc7A3lF+hG)7@Iv0BAY&oI+MvF zi^NWH0e!~U|643jK{?5uM`qmz?REpeXOD9Gasn%|ic{MJWw+%AVyA#z!L*A#Nj#Ev zD#I+G)Mi~A_$>UR@GDP}AxCPS6@6K#ulz6K24ahzsl(Jk6aWAK07*qoM6N<$f@RB{ AO8@`> diff --git a/public/images/pokemon/icons/6/693.png b/public/images/pokemon/icons/6/693.png index 73a39c76dbc6ca71683736bb44fdeac509a6656b..bc57f981079e05e73d63d569ba41c67a2722a8f5 100644 GIT binary patch delta 759 zcmVPx%$Vo&&R9J=Wmp^DzK^(`wZ9=ygZgDc@ zrBIL{70x9Ph=oc9aS)rKNQXFxQwD`-kdh&Es08YeNeZ@uNQQKC5<_hznCU^G1SHS| zv*~a=vWfLM#NYMa-@LSSQ1XR9-tXSs`@HY{es}kPi6)w8qJRHOnx>hWrkO$SpZ=RL zstByU78|SI)I~j<{`Y!4$CxTucD?UM ze}M}Jw1bftW3pX^&aUfYgPj>r(=;KAo=co_43?^{(15ptUhQKQ$tbw5ybQ(| zO|=DjzR<*cp??W`1yk{K-&}JYGq8i2rkR(sRYX1D>>@~^#AfvpBAf$&ge0)|>XECv zf%1ZK%INBd#<`3eT^#^qjG%U({IK+2-kh;qtL^dCBLLo0AJ{=RxM-Zi=;{tIKOnVT z*GCu6NC)NADsXnazy8SbV8$4P5Ev{~9r;M@q(-CR3xDYg=(U`vZW>)3SB|$Wl{>4K zAjB~Hq8mFnXtj|}CSVkE7RXU>zJQc>$C18k)l&WeaJU<3;wWN_vQvMbSf!yDk2QV4wamDI0mI`H!2!eFfO9S(Pf9DY z4;{T|OUoR-3JfeJw#)Nd^Gdq5?+%%%VU002ovPDHLkV1nKPb>{#8 delta 393 zcmV;40e1e52BHIyBYy#DNklis9AF nJoDpv4fVL{|0S!$O>Gx#VT8fLHBdMJ0000uT@=#b7fng@}MIV9`5kwZ*21Z+#q9`eXB&j^4lwH(X z3M#U?cyKo%NMukP+zkXhY_);B9hMn))7qIW62kv!9-e3B`G3vx@$$l)<}|1OSV9OX zgpjkzFfUbr+g12W(0>7+5-_amxLt+QK!p&p>uD>A_N)LJkYQb?>uDGjriGMOYGzfsEX(@Bt0tD#jyw3Z#As*a+Mp)MYaH=YM_iZ*IcWgV3Q&ngD zmQdx6>S;={Xz0qt~UKOOWJX~5%_!7n14VsRWTL}@$E^Qm6WDZE{UdT zil%9bF*^VQ{e9%GECS$0C3p%%9O~6BAYLtF^9_4qO*sHrjTc#R;kM;t$<`J(`>!O~ z2HftJWS=54$<51VLFKL_I7iXc;#h^W)M7)&)K#p@ug0mWRMhOpQy^&eU!hr_@;A{# zSl5Y7j(>5}=Y?`F01bg&CK}HI@sR;*n`~)N4GAHn+f_(d*Kw*U9qrfXJ}p?-5&)n{ z|3J8`jo9QEnx-j22zm3)UGx3(;qSH<1Z-9iFyR0O`h!q>kFN(Bl(DeuD{duYzX4u<1xR@{5`R?VtB@^qHB>X?QcYTA^J%iG2hbP_t|Nme6 zf5)~x`xy@YpY-(q8p+^S{8m7dnwIQm0aD^6L4Lvi>w&5;0mCzgXK_F^oCO|{#S9F5 zhd`K7RKu$Q=t==k7sn6_|GSd{iw-OBxU_OeBs=%a{_)TKZP$*z6`7OXzdOLwalA=j zOYMq!&P%&x*)!x`%>TogfYEMKx_XSRmuPwD}U(M*a zdDPNm#w5YYw<{gCoimW0P_X)efsH3`6<;#Pn>iDCb(cGQGV}@NDE?#UbBEcmC&}XY zjNbOe{wu3Z+9V&ythelrek!u^V5@J3<@2KkQ-g#ydqp>DES_+BQlYtGsh)0!&N4%{ zlZ`={-j{o9tL^(9xof@@jr8!Dx);>tRazeb@_GI{0w=?9DF|EaT7I^D#?XjAxB z*6`qV$s5yOYafp_`Ecvc>~^b!U3br4eNgVk_4WtbYMJk52hRT3cj78A$QV3b L{an^LB{Ts5qy*eE diff --git a/public/images/pokemon/icons/9/945s.png b/public/images/pokemon/icons/9/945s.png index cd29ac73e36fe3dba1be4e71b5d344946ad5d9cc..20c24c77a85a07dffa374f44a5eeddf04ef5dd5b 100644 GIT binary patch delta 893 zcmV-@1A_eZ1BnNa8Gi-<003UyT-^Ww00DDSM?wIu&K&6g00TowL_t(oh3%J1XcIvg z$A9$|5sla?T8!4|OIsT?7EuvNL=>7JD5CXHqDU*Kh#q`meAEYsRS-lyDD{DY5%pF* zcu542A|+~?D8{%nMuM+OQ$>1^^$>SVtdiZfK9K$|yR-8R^M9NF_s#4s^s8U}`i~`q zP=yfc-((n&Ex_%z{}S|1z-I*vg`&9K_HLj;2({_2LNAHjd@&!(&nrmOM%oeWS-9?$k}v6|bJl@^(So+#^Tv`G#e zIwB#!fZ6_j+~$P*ysYSge_*raQcd zJSG-v2H^g^#{g)K{YvEyC*=;O?wZx@Ai&#qCh~I4oI7)jTURgQT(ug2+Vxv;xfTIP zV6ASaPAvjb?hO}{0SNnU>2^@pCTVGjGqIqEs|9l~9e-U*r1cRc6*FZ2*2G}M-B)bv z3}dyLGr-c7c&;#M%uqd3N@Y#4q9{3vqU30`0}yF_NJ+(X0G=-0g(xinpt|}5ka8;& zib@xK{y3dqh5*ntGT%^&4ejE)&UG1W4Q||pgBg7eyM?#!OuTqKA_FeJSjZT?kh)T= zsiJ5CwSViE%QTA8k`&mrm$E+`hF~yBtS!o^vyF1Br@jGGM*@IAAOPsw$%YP1A%yC7 z+X)7fSgmF@Z`e!M_D0$_9R#2?`Vy~q3xPlYMNx8u5NbN)sVmnFZ4fZ%ARyrYBCU^z z%pAzVlY0R0c7`RK7VoKV;LyHpY^+;rbSj_+4u4K8C?YS{%=`8v0Cmge0dUhF%y151 zl%))S5Ai34UvY*3g%Ii}OBwrz-2h<9s-e_fTqI!~_S9K<>5^a8-nr8!yE$r9hEkkg zEcjep%!0)qS+Q*vdAVk+Rx>_-QpVV9HaztWK<}K>WayYlJXi3x%x3n=Tw-leYBy{m z6n2U-W^@-me>@|$FW{gDH3;922d!OMY2ovTX_z_^yl+pk!?T;Jg$@b}3wsUO>lJFC z@7h>ODMOee+;spZ>@6+3M1v{t4Im^-W&^P>OI< Tw!}i600000NkvXXu0mjf_~f9G delta 486 zcmeBV|H?c;vYwfNfgzK5&3holSRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv_Oaz$e62 zQBiT`#EP=apldgd1_cF`lsC+sJKf&F#eB)mcQ5ZPnOOfkzUJiK^~Ws34NALj%zOX; z|NmdR|8Lu~f0O(7Tl4>~Y?Xd>njdJ`&$A~)fs{l^P`zI;P!Tr3a8_9F6;Kgpfk$L9 z0|Vb75M~tB@M-|MRLIlCF~q|E?xoj7%?bjn4`OdNbT}PR+xLI=H-|YXomNybt~Z6}UGj>x;xcT>9tDS|G1iC7we&jNZP>8QVU@N_ z@z!~=P7jVo#c-(VJuO+*)VxvW&;*aw1v2qL&gyla;?|_fB}gw<*!kf3&EKjg1SOWT zU*u6O;8fh`yr_HQZj)J@1)SHXctw?ZW$oblJs~J6QscRd>y>SyM-0VwuH$?kw&b2S z_r~r@u7z(Jlk)nPWm*@;=gsnxJGvr0V3l{_?R^P_WtOk?gS`)bEGs|MP;{!=`-q+~ zAIFC$x5{1E_n+0!i?8>#>2kX{>;JPrS&97bpEKB#zMf0q|MuE>$NT%oHisV6@x8JZ P7-$Thu6{1-oD!MX0005;NklW6R{>W6R{>W6Ckhyb zQNrWISH-7Q#krm@Lyc`t{Y-}w0@5^1Pd$Itv4$1_oDC*LwjSRpca$PP@(<_&Yb%Jr z-HUz+tJ3ujb&{3#l0j7YfwHnXkS&#E)q4Pe_4a!yzOYYFj%|FYkDxBbZo>(oCeNv~ z4FPhXv)lmPQIf7VPOBhq;?HFzKZP5on!j<{Dy3KsBG=x>@+yV)Vw9X7sfr5~g>kEq zX2*bBbDUP05ZUUYSTLikqT>`Jh>63u-a&js_6-s_ z^wIWC5$?hO_HPUd7YZxl=?P4hCe{O`j$wak_i9f28dOs7Hzfe~)!s%24_Vs{^@$rL z7R)QBmKRZ~LH?+=m1`3lBpn~5`Do6*?rQy2-kWkzb3ndH0LQzV=XBeqD2U*)ig?#O sR`9KCO#{TDfaJx+j^`J*{X+%50Y#|CmtE!!UH||907*qoM6N<$g7(bvPyhe` literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/116_3.png b/public/images/pokemon/icons/variant/1/116_3.png new file mode 100644 index 0000000000000000000000000000000000000000..55020e28a8e6035cb5bb0071803301fb69eb699a GIT binary patch literal 560 zcmV-00?+-4P)X0005^NklUP0oS(Qo4 z009m)SGiU_ryR3eVLHs{hTrR85i-5^Wb2xhY7ohXmtJ%vV&t0Z41Q50eoyqgD%SuC zepm;K%w%Pwf}+%Bz#?BQ_dDb=zUFc5Q>H(UwiD|x^acHtPi!l*X!(kf1oeYDVjVL? z^t?(72`nyC>?0+t;$;f~FejqKV53A}IDD`x-Db}=$Q$xY7VWZ!KuQeO0|;A_KhW`Ihsm^am$`Bkr!lBVsb*1mf7 yrq!U4MI?0cdou!V8bAaENDht{&$>JRCj;MXk-GY;RhmKo0000X00076NklfYRd0QEng_d%0z7CiOT41+f^tPM*AcmB2J2Iq#t z_~F)p>$%(Kdhc}mvG21lT%*y*b%uggHq!sCcyE76hA9)=3mEQT@#P5 zz*yA;LW_c!YBP_bxfHZY$@e6!ue0OdKE*#)KLs$xYHyFU#J91kX1*k(NXpm~Nh?s) zAO6U~13%3eaP(0UFg^?Kr`^usGaDk+&y`}OjEI7**X#a($#?6i2U!)jc8C3%r-K`z zPE$9v2BTA~lvp@|0(R@(BOhOID5$zj16$ku=GXH@-0Ln*l!64|&C~M{qNg|(i0Qtm z0l$hgOF6r(or=*40!KYzsxOqnbWsE+DCX?tSbWuVFP~K0!O1W8;d9OXT=~*A#Zd}! z5GvaAs`e@a_n8i6;lkiQXJ+iwgVBwFV_h^Li&cmC)D3-ZB8p%`{kPrve$_uUJmk&O zKYko&;F7lb@O5ztCWEWrJwA0oZOzT>Ysi-X>BdNL^Jp*3S?9XTp>>%Q)TU$$q^(Po zQ>ssvH`}U|jA#3qA8NZ9pEL^&)p%ZHox%|(`WEZZv{vt)>JIhri?BjcjEek$kb1z` se>0tc76J%>z2Wp@E&%IF``-#&0*00(8DJ}74*&oF07*qoM6N<$g4`!HX00076NklqB%5wsBto7je6AwjT-m6eSlRUTCyh(!zu z3Y#KWh=`C%!Ny`21Y5J;tp9MlT->>LZ@PP6ch0=deEXj>!#Y=5sX(bfsX(bfVG2|# zl}kQ_1#AYo)k!c5gkN8O)=9Y3y}1DaI-Z&IL6dM6JoVHJgIyWchNXf#_}g&R>Ao;t zdwc5c4^-Tpk#0ZMGyB0c8jW0MDCliDSz8MS7$#Wy6FWNrjvu7>S%EYEIu6?$9lZu) zRTBs;3Sz3wJc{O0&?+V0lQh51cQ1U37he7dV2mw(`>iFuja4=CB_Typ#-2!8fujEK zSC=38X~uw~kCK4#ncw>8-W}I$h*UpUij^`V3btOaw+{F;mwJ#@aqQ0*zvg*=HPmV9 zrsiODij@)zM^L~PhK5@4ui#Knb(sdXzV^AbzWGhun=Ve2f&}5s)AJFcr#Kdf>7~aH z{3_Bc5!n6sDT;o@uebLo|<9iF)T?LGHvWw~vNqZH&I zRJ7?;?alP|G9Apqg~2OlWop`k(T#y)T{IwzRfqW04SjARieS}ycirUH8~@bskiS1V z^5Z}Qm$bF-+E%4fzrv-54p}I6Dh-*173&Xk8`+wJF&GY3mZ@ zlS0Y|GNDQp5`82|tP07*qoM6N<$f)A@NZvX%Q literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/120_2.png b/public/images/pokemon/icons/variant/1/120_2.png new file mode 100644 index 0000000000000000000000000000000000000000..87ba9303cee4d94c8bf3d9c79aa6fb96a0fb1d61 GIT binary patch literal 495 zcmVX00001b5ch_0Itp) z=>Px$sYygZR9J=WmN7`fKoo|*sAJL5YBD(l9fZ)?S%qeDP!}B(SCIoj&`A)4KtSnM z=-^aDw+LG3mbnB36$iJ9lc>1LIkY{hgP6;SOFlTb%O&@I{=4@skdu>>larH^0@-cG z7%;e&EGJb){ADmG(xkvY!IVI03!w(xz7ZFPbOrVGEdXzIig>R{!5z=8st+9pWjU#0 z3-RN5>vQpYONFH)&=vx3bxJ)*PHve$jR3e@^Z{sxA>ZEvxbQYo#nstjs~v_CI>C#6 zz&sG_Y<6Z3j{$f}s$V{e_nI1^^v@vg_m33)h+t=vmsSgamsU#&-Sz{XqHQIt;EvM{ zLrA%6x&p1&s4j6_01g^4G-3dPQb`H!PZ}L@S&`3`id=VG>5LWSdG$~_V@0{{xbnGD zQFFEsnQj*&b?|6^i-n~Xyy;03%Y8xDa%l^pGWY7^4R3mqX00001b5ch_0Itp) z=>Px$pGibPR9J=WmOV?uP!xurh=ZebvKG2@5(?earI{S;V1?F#T{`L3!NEZUk@^b? zb+eO;gI1_Z99odLh_m3NgAhLuRB&)S4mOvzh?v`}E_vXRdy{a^%X@MTfsl}pkdTm& z07z#UW5{4Esf&=Tw7{T9lLCJQQv$_yJay>ojkq|hE2wL40hHz@sBX6zo0=S4RTnxA zN?ioo@xJ}ux?JpEfv|K0+KxwQZbIGIJGowSzB68?H^jt+mvbmbnMI>2iNwU%s z+wuOa#7bl~SEJb|E7#!D$;R0ud({JOQj@A_+)QlHe8C0!PNh>DvbO&&>C}dD)qkez zoR5(?IK95f{L%>VnWBksJ?L64w&SVJeYw6TK2zlOe4j`nN@=yAN(^whHLIO#UX00001b5ch_0Itp) z=>Px%5=lfsR9J=WmN94(Q5eU65upcGtb&M;pl#r6L4=ep(ryNYq*EsY9YT|>rJJCb zu_Z#lLC(#TB0{!I)uA+7irW=LPz&j`L@1)ffE2Plhul5y+9JMpK^^W72X~M6@%`TS zeecgfq)3q>MT+!4Nx09zbS7lHA4rJp4fYlmV1STe07WG;M9m|qne|U(21Byc2da^Yg?`Uz+kER&Y~|MZ z_VOOXQyCiBr(~T2+3sekL9f+j{>N9wZ{6&JzNstaRc`TV)-gPl0l-Whof_o90m`1J zT0sd|a=ysL*Q3`kQ%CIXoFnTTU?datT5SM6+`hr;W-|b(Qbny619U8ltIulz7~q86 z_`Ooc3v~d&^+JG4OG|h&>48Deu)DUcb%VnI!ml}s0ph~!eF?ZSdc|ua{)7B&z~hqh md2Gh~2l?k3_z!EOu=)w2RL|k@XEZGU0000X00001b5ch_0Itp) z=>Px%0ZBwbR9J=Wmc45eaTv!xCl0PjhJ-70iqu4x!nFvly49uJ4L1o+27;4YuW*w7 z1tFq?95`i&xOkgcTSQ!YB_vaZm<(-4$H(E)Uvo{s+)KsbzHo4FKc3G$FW=umu3Wit z<;wLxN#;jpx|4GKB9Mp($EN}rLZ$%}&lf!ZuRy7?nl^&~*v^n(Dx3sRC_yk)(CdCg z=73^5L%w|1(+wdvb}Rt;eh+}dW|dZFw6qq`;slHJ z@>P&vDv^wB>{ygHw*Z)p2lV}(f;((hBkyXOmNf4AfVMM~U@9Uaq8p~@hAAz7A}xQS zu5ar2G(3pei*b8U<~G9Rd6>C|+g928;=QBcwrRL+Rq~SnH9Suq#?M}&A!*uGtQVHL zo{a~*cV9Cb4-_bbA5bWTa4Y)p)+D-N%J%+&D(RbFzvZKdJbK%YlzV&sKyQ^mUq4XZ+*0N4 zed^Kajv|mR_tx*lL^cEAZt--_iogI%cC+Y}-J|=l<0kbZnQv#*D;m0CM!?|OupylI zBohqDw>qs}(WqC#pp&1UBM*<<9t+PYloCcETSr&@d85a!2I5wCk9C##4{NTp`U4cc V2si4yOltrD002ovPDHLkV1oU}532wG literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/126_2.png b/public/images/pokemon/icons/variant/1/126_2.png new file mode 100644 index 0000000000000000000000000000000000000000..629efc9c10b66d3f0a8d32d9ad173bb9618aed73 GIT binary patch literal 709 zcmV;$0y_PPP)X00001b5ch_0Itp) z=>Px%e@R3^R9J=WmrqL@K^Vq=k(OXXs20UTLEapK%GyiOUhJ{$NoYZ+S0P`(o1ej( zr`{HNtspeuso*gn3Zj@rA%`6V52DzV5Q7L#4{R2hj^x5-eIysxH_Qhr+GN>oJl9F)Th^QK$hy@>_ll*U=N0h00**6>=M`FP z07*vfC6i4qjN2n8iBc*dLZITYze^^QA;|~;n{Q58xdq3WyIYahhEP2elA-pAoce;@x1!0VSU_;{FnRK-XN+T;MT*&6!?hxbS| zlWQJ7{c}Ya6}yf>JDz_0`~|@N!65+EtDRt;=M`GWDWwuiC&K_NoeYPH!LD3v*FVoI zAerZZP5C!1^NYFKgY6H(*T&Ea8gd((YeD8J|0cK^$xz2odK7?CE)~?gDD5w_f+C`Q z-)CWdnLV#j+s4vUlq=^HbG4v2LtWva^eE-ZIY7{5-mi~yRypcDK|>O_=Q5ihz_eS> zXj@TJ6PsP$bArueP0ce(nftN7%VcIYDBwfsQO+ty*oO;?NS#DPwClP6d~;VRSI)WS zg0spI*IY1}ndR8uZEX00001b5ch_0Itp) z=>Px%cu7P-R9J=WmcMHgVHn3h5kY4iGWy0kI7z(x0}*PVC_+O0fj?-LG`LAEtxFcO zL`kJM2(?SKTEr$;g& zhGkg+zwhu3s39~6z|h!41Kd%_*Ow`!B=X`L0JpBg)hh$!Q%S~W=UT4sC5k z@u6w``0QLmG5F~)9Rq5(LORTi(eGT0TxzIXZzTt#gFJck*nt7?)Bd{hU?Cl5cxD4@ z`5D%7eQaoK0=vAz^Sc8~k#W}AW|n!tF0Wu1hSO!{KY!}xmEETpXh@j`)ByQZvc7R_ zA67@!oAM(E^unr}(_E;1Bp4mUF0VM(VzJm@gJ5)!pKo5{{X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005} zNkl*2x;hP=W-6=u6IVIcgMwo_onZA-}fEA`@i?SdzZ3p zn~Q9z1TXE03EQ;yN2t#aaa8-q;uxHFA^G1L~LXEG1=t@ z6Kj8h6cO7f6;a2*yWj=shR=v5-S_QF*zy|O@I@itpeo^tcc475fR|){6 zR~C5x?f`)G=g)j_bBD)ce||QQdVv9dh3j=qKJ>q_`e^Me)O{0WCWqSG1Yp0ggx1pC z^^eytPY2L}Gfs}ESE}wFWhOUq&gz?JEj=(?q#Ojee`^uIrw~9x+n4|>ciN!}dFWdV zFn4%Ny;4QV4C!@Ewz{8ufL7lGpxkMP{=!5m)cb`cl+4iQujzXLq zSwTlVt);V`p9Nq(Kh8hv`&A$K_RhFwHk8xph1e+_^-7g;r;Rgrd|tpPDn<&iw}bJ{ zy`^Y-$G|u_nr?{Cqi&;m$5k&ZTx<=iHwB`=#oAE^?fa5{lDOX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005} zNkl@4Ah*=yQ z1cMX;S-Mo{kmEpc3|w?*g0R% zl;b#@_4B7x-}?J+e?_`;j{8MI14YESefB%& z&YT__`x8<`9J{3>%U9zCiiqP)%`Kn4d{y=O!ITdnB2K4vhnWl4{ta;X)=gF4e6sOd zpxx48Xd##H#Rv2z(YSjt{LhxOLMbh^UPkKYAGKW7ikXy6tzbHzJvgpx;X~4(wR^PdFWp; zz_zwPxn^Lr+c31~zS!~s&0Ze>E1e1bhKY1gXO9j?I8W&|Dl~Nyv)9LHx9K)2q4r+n z1l{zir98Qn!f0SR3qXEx(FY&wHUYR;dOo=&c8`v7&A>`$aNBO57Z@eQNK5R!!T8#q zqiC?(WPhhK*(E+sy1CT{D!s6{*ey0|-y)XGs5?A>FfHQ8?{5a-|00000 LNkvXXu0mjf2Sysb literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/23_2.png b/public/images/pokemon/icons/variant/1/23_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1152d493c8fac5ffa7bfc527fa275f045f36676a GIT binary patch literal 643 zcmV-}0(||6P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006G zNklAc9mK&729iaLOu6TpbjUNl_v@GU-t!U97{g7D zHvu|k0(8v;=$goYN-29It+f})O^E;~us25~TiaVI0MS65fJ!OjhXu2@RB%Ry1}deD zSz9HMj*-nIZN1*^0@#`>G8E9?xyt^zttZkkw*LI)>GDfvYc;Z&zfu6C=G4G-BL(gjbG+Lu+XwoQ0NJT0k##Q=u+^*r*e*&P;Cg<6%JX|{+`2s; zpkQ{3Ie>vqwwhJW4iD_P{^KJBN*8BqHLeOfKyM{^|6rQ4!vj{nUjQ(5ay*`CCSJ(Udr3=%ny>} z)@P`f3MnQiird$@&70BXKXv_ dQRT)1{{m!Xb=2?EylMad002ovPDHLkV1itA9;g5S literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/23_3.png b/public/images/pokemon/icons/variant/1/23_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6088043415b9632dee02976ac98ef9dd5491d332 GIT binary patch literal 641 zcmV-{0)G98P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006E zNklpPx^7@a!qCZUtm>*IiuRDknyc3{*;mzVBxQDG{u6RB&SjDy2eQtY8k`BFGQV zUjy*{vIoGz`pVFCV+GE5OI!t?>;t1nfUDboQ|n$Lpe|MbY!{^tu$iBy@%t{V@{`E` z1vBF<0St9g7b{$xo!fJx$HxkkE>;V(EN_*8{z~$){)LOPb4qtE0eIK@HkoOrQ?Jo& zwwZf4$K%x(1IHWNI|GA7enb+e(@GMb3*)$7Ka3qP-DW#cH=R2e2gX+xNw?W%VSQ!f zLE{9J2gi|tF?d?rby;vQ`lwC}l#PM_pud_3u(7=ZF!0LXy#M(Bfr9MRYxX;ff+VHA zT>@k5IZ5V3=l$UR#@f&*j_0&>FmmTo0YZNj>C|fj`$D*W)h<&^DnLo}KS?wb+fk1z bHy-#8h;wq(BtL^v00000NkvXXu0mjf)Z7~O literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/24_2.png b/public/images/pokemon/icons/variant/1/24_2.png new file mode 100644 index 0000000000000000000000000000000000000000..015a5c9788461786dd38716fe88abfe122f6999a GIT binary patch literal 662 zcmV;H0%`q;P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006Z zNkl7!)dJg)$xw{1Q-uH5L=x@2)z2x}Z^WOXLUcz-< zPID4xK+Bu~ZDS2oO8IW!I8MUqhJhFZ1y<_3*4LWtE+@;2Ky*+epi;{9!n|p=y8xUl zFGhk44g3=h`amF(YDNNVw!6&DrhPbXY^rGutY@y{I1cH(R{$JsHS}1rT+nb+WGG+| zclG@{Zmm9JZ+)K1=N~>?5c&H-;sf4a-)4L!qsM}kyZhh{0L8Hs)mGiOibhl1%jPvs zVB6n5QXETZ+~m_5Z*N!FSlMK5HVt4@MdLOjzjtyerfUtJU%SD^%BIEv{|^|%?&MMc zEKM!&=*<(RYYh%61(v230OETGy(sASH>H&ONxY;=mK($o|%&Hd}D6n2O z55R?&yF-x@TU;ohEDnJ0hab53>2Ls7ZPi)Jl{8Fny=;EqKO+TtkpO}VMsR>$^m?f&Z!6f1R!^&)UK!;fdBvi07*qoM6N<$f{yGWBLDyZ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/24_3.png b/public/images/pokemon/icons/variant/1/24_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c9cf33f3412532ab2aef82f5538bc601896bf25c GIT binary patch literal 655 zcmV;A0&x9_P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006S zNkl>W?Su5`X=|PQvN+~}G3&tA{0az>V zrh<$O{1Xl?fj}zNOa z&Ti6s@tD$+Hmf&|L%1mN;*Vqp?7ewMzPPN%qLr(*egaUSPs3>%SJ7yR9lNe^0vk}I zKwsnTJge~aX&1*@VsT}CGS{Gr#%)HvZ|t<$+~4Ny!`C?0lEwl54;aO6?6d(m+*)Ao z<1aS%xB2w^J%?Kh0NFi*K@?o}H>H$cyL%siAGgZ@+&Vb|py4zpbF$hb0FGS;pxS&j z6DdiGiv^U;0Wj!|=p28Z!Zn;G2UT0c1n1cGsX22629W@Qo0@Zh1N5$s+iGGjaS$oc zS-69$O`((z;Usa8Mtu;_%O;4@qX!`zpvNR8RZMgql%@5?Lq`2`U{cYVHR*%W#N~R_ zKPO*Y&ITyRSw}B9)pS~2YF0&m!knMMe?dlZ61mPCD9C6J4B`Yh*EaLF$maQW^m1w} p$;mqP*Uso$9%Ovv&pKBg_!|NinbgqLygvW{002ovPDHLkV1h#mC+YwI literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/38_3.png b/public/images/pokemon/icons/variant/1/38_3.png index 0834d588d5ae38da5e3fc8351553487bcdfbb629..28d2d97ab23e7f8b417954b09d614f81ae38fd47 100644 GIT binary patch delta 714 zcmV;*0yX{B1>yyeB!2;OQb$4nuFf3k0007l7C-&ljoyA0A`w|e{c2k zenLs_^1Ni4re7>~QK{+pJ^S*id*m*V-{DMv)FHVR2PZ>$UK90pOWe-`sT^Vor|Xsy zpYgmV?yY_Z4giYfu9y~C05dtbm`q`Hdg7W@yTTcQtG8QNOr~e=0YJUo7XwjsQ^`To zG=0}C2}gFz4S!hGz=L0N~sf*C)7^sC!-$s!l40n4H@!HvoY3dxNdvwLpyN1&<9-OfU4d^` zB7D>l=QbE?h>*ugZd**IA*U|}B-Pt3u&RMyKR@H!^M6+XN|13-cMp%Ee)sSwz>fQ& zQf^dUB$WFqH672b_xR5L065J#3K>Dkr3@O4K$=oVU>L^Pb|xbO$V|D~SO>ZUfT zGu8mB8X@=6_F^SK*DZw{pm56JBgqcMfoj?z6xxdcecz8w2gPzX5spNVa+=EGpz%9aa{X?|p(6j>pp!cF<@HPl-6z(c%<~2Y7 wpd3j#P8OXLTA@Z*OeDr{R1600Ll1L_t(oh3(fdYui8+!12Ec1nfm%u(6leXDIR1 zAqa{)b!kafLqC9L@A(E@N;`HIln$M;I#Z!bvbY_KL%>Qyz<q z$+Al*d5a}kpr78odw0r3QN&}8+!HWkJOQ&tW}s3k0`Pr5w-Qk-mIex}=63nr|Ma+k zN~y^AeO|r&un;FN0n2AN70}EYkccx;)9DV+UbgPNccnn3R8(`j^m`ueUMKOPN~uUt zr$@&c2QVIvxPP7;0O_)s3TS5J^ynC;Qs;VdfbaXcI1ZS**E~;?O)H>MDhh&v&fIu7 z0^t1QkW%RifFLNawY^KZQKjGW^znVz&CQ=yNNb?for!bzI`n%Uj?*Lz2W)Nc>i?3C z!^<;`?e{!NrK<;#*1&wRt&6lDCG zIjfU!5`X68fZG*irHwiXoG-R1H>!+>BmFDcjn`Yey@35{l4-kDbGy3LnDw`)AIgOK zC%_;m=)yO%E7C(ED2%4V?*5^h^d5>9~oMTf7Y*7|GE1WuX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005P zNkl7{~FiZMD0}`|>~pf`fxKG&KYf5fQk!1yOTbM1)90v^6I|n~M+; z5m7@^gElk>LIj5|ZLZbS?jF-G|oT~(MqX^h-hE-sHuI-J-}A(+KxTWF7}Lc0*Z*9Th4QT zxq&Zx0Mu($8qFeGxoe&tUjewk+yDmLK@rggQM$Sz>c^?qs%&Q00eE_RC7Fu-s%xPG zlc^Xdxl?AA7D%RIwgzyLJEhSq+Ia(8Vgo!sdth~K)&f-}V0CTQ;-Y@s&N1)jK!650 zx12{+0_wFYQ9q6(JOD~pH(ldRCwoEm1!!=a*>(G&0Cw4Xc`rlRW(-mip1pRW3=9U` z!GrliTkUrI&33T$f+PnB!E?&wsn#JJ(;o~UP3cYwK1B8Nu zkUCg+-UeV|EFCJ&2?*T>)K2tJJNQ*TJ5{^nfBlp6BkvJtQ`CVS7i|Cl002ovPDHLk FV1f>l@-YAa literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/43_3.png b/public/images/pokemon/icons/variant/1/43_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3d3d47875a0ff339eb584dbda6f3fc836e1a118b GIT binary patch literal 573 zcmV-D0>b@?P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005V zNklfs5;&@mmLYdS#J zbbzk$6(}MaKq(cduhrMT8)u-1Xr)v@MD*HNneD4S%ss%_PQ;F#T+KI)bOMTq-d*Zu zW&fGAu`&QE=aH^NINOPkIWGdRvj6<{td$)U5p57Bhc`$xgvxnrY>fkuIWH1Vgn!gE z-+}Q&n9cP|W)?<>C&IP{u(^Ioy7E5FEt_HkJV;%$m>jjh>_vgaL*$!4Oj%H!bK!b}PFO!+wYj~b~EIDm2PCyaS^A91WhP!I&)!5V9 z7mj*8XQUGlU~0IF)c4!Bav>00000 LNkvXXu0mjfaX9o0 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/44_2.png b/public/images/pokemon/icons/variant/1/44_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6a6aa082e49f6fc42b71263bd081ed76467fa4 GIT binary patch literal 726 zcmV;{0xA88P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007E zNkl`)gMshCM@HzN%$ zojMe!7GfoKkgRT@DME~)W@s8TLoo%jG{Ioy9FF(xT`QX2HCiyw_T2k&_qpf&aql@a zP2(bmV*s=n1EAd)0PV)P0)-H#ZdR|?9d_<%8)!szoO29~4g+v|zRt&t;IO)A3uy}| zgwQ(9Iqto@Mrmz?ty~Gu`~d*%j2{5^(F$O_l9quI7m0`1%9VcEClU|oxDQ_}SJDzt z4(ruhPiXG$Gc-DkxN}`$n!Ec%;vqtJ_b9E6*g~EOC}FKcl*_LJ04AIS8IckP^cN_E z&{~P8$^(_KsvcmfAfVdhV(B|jB0(S8_H>zc#(xSS!-%(vJ2Oxs9jUm=B@&Lemgeq0 z-B?3S1AuO}md^DD=-tROJC$a&kOE+KDsAeQZFLmL7j*Hp_DvyuK^H(zI7>j#heZgXEhX1g z+fL&%tA!Nu+CsTXd%CRJJ)098Ru@&?>wL7eQU8cM2H^S4F?Ic6b_Rf@HyX^Xj?#uH0E+;gI-n8 zk6QoyzX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006@ zNklwt_WE2QT>*so`eAKsl|u<13oF!Di4y zJRUYNP2C`)Mu@+7g0^$y3b_za!V0Rvhc{OMHk<@mkrD?i7bt`<3hH$1pguCw18fNb zW}n8`&5An3rUkccP!6x#kn<*Xqre{JBCj_?E7}Q7fy&F`}{~l1T$8>MVT_r~T_%Wr_E3;p26qy`2`(SW< z7h8AkWv@j|@!NKDXnYPhKcHO!CDPiKI~yjc!sJuypMS7kFKfC^*4*`48c-Vy`5gFu m`+zY2Jv&eRU;pZsQ9l5bjF8lT`#UTE0000X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007U zNkl8dTHW#ImCTwg=Rfdtfu8#HUi5XaBhQ*1;I8g$sTQE|3_0x8NyY^9{)ZmG1r@<61M z1AF90oxpzkdI5mNnHX5mjS|L*nBHuZy5N6%wNGbqokpw_Yk zJW0L&$BkPi@Wg?}btuoR0HD^g^wxcDei;kW{w6t`?f#hF(=mfW0PD>vOz%x@4T>4m zG|eT_JSf!aI&v_kmq$f9-XsA}lB>QedYvh?%_;$3P`|F$vbK?qURVR3q<*w4&csY@ z>IbWR|C`7Ridp*;hQnD$Yj0#A^uO}=B8)fj&(6W$h1l%@U+{DS!Mxj@^z(mw7yr%p Y35Q{%)Ml_@~07*qoM6N<$g1{A1_y7O^ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/45_3.png b/public/images/pokemon/icons/variant/1/45_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1afbf809c8d6133b95cc446806983ce5fca79e96 GIT binary patch literal 746 zcmVX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007Y zNklW2R+2SzNzkQq zHQ0g}!Bw=-Nl+-ALL+DrXhYlOLV^&Q5Sl`85NfCQIQ4ArJevlZ-}HRk$*0dpxpPo;#7O6LAr)%BfOaTQ_l(pDWzDznmR*-+yuUGpmrUu+ou6os#R#M`~2f)PmrcJ$<)aZ0NaDd5~CLaxOrA(d+_+;)}Y9s zs;V|I&3chKJR~qOBFo((EpL)=eUdxZugN;?)NYr1tYX{4nW)^L4N9xa~X z@uoKMzMZ!JT}TE+*8YT>T`Eh}}Lr;JBPXXx{Bs`uRV; ci~nZ)0`D58)WRS^?EnA(07*qoM6N<$f`MO8n*aa+ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/46_1.png b/public/images/pokemon/icons/variant/1/46_1.png index 6f29d16ed7d5bc4733b7cb8249889dc655b205fb..eb9e15001f6846ed7e11814a34d00813ddeabd64 100644 GIT binary patch delta 693 zcmV;m0!sbO1YAX9X8WNB|8RBvx=!KdMT00074Nkla;9LMpmjY1IwHDrrnKDKA}C_sV#nyR9o8CAGP(p(F?Q5I5`Su41|2g!h$f>A$pj%9 z#(H;<=bgG$@2jt4F#pH*eR%x5zvurv@2f>sRSt4lI=~jI18lWAz*g&U0fi9SWZ7)i zV#b`N0fi81bYTvF-u^z$ogXm;X$nvXp}u|fj1wmn);@jKt_SYiYZ+-8@ImkzgBJ$@ zIC9*|``2+EE`Pl_IKW_~jDPHgb}bcIWa*d#sP<#C{b_0s1}kMImm@sCI>zPU)7rh8 zAJ>U4%+cH5$G5K;E{)#OjcgfMn@spZ4*;o50RX?^A(lup5q_bKH;QZ;C}C6GUHBCb z0I@_GKua%`DUi#Tm|Ttk@aOv`04wiSboXadK#5Dn$A4M8{!#ou?0Z(OO}x0*2cN)Htt6!0GJ+{-_?gQMI%T< z2{tZKZBNc*iaZ%UMY*`ikDtHlaIllO!)@JpK(m3f8(Vu$T6-4Cq~+$3K#BU-JWT^7 zLeHc^2(|IRt_8`5*|#^z-+*#c_`FU-iR}weE-rI3$4X6Hi3R`oPqOH(b4Srzgr3e3lAW{%f zBv1+MrHBaaO{Gdd4wl|}Dk6klfZ`-zgjelLWgb*^bzA7{8tMcS9 zC!Mg>$d|7aLdcEeJlAftvA?sc-}j9_tU8nRRnt}U{>`R_t8X;edbj0E+<-4pfLuE9 zn`Z+dgtTqD?yvh(2q7nXn`Cx-Lr(TK$<5ns`cnQpIn2rI_J${aR{bT;#p2zU0I)g- z0WkMgNEP$kdw(#m$G6<-=F8_#^hQTrW%9x$R$$XZ!Wua8yu}I z0$_HTXXfV82_k`@hP!|H8(zBD^+xU7=Vq6eNM;Qleb^^e%#$kSIc_cSvM-L6v9K~0 zQv=OJ0)IgwfuQc{P&meMYsnL&>k_N1C9{Suk=bQRFo<>(c=7gt_{;>)Z?o}Z~={+IJv#qqt1y((4A>o1MjnZ1k1cR<^=>y+Qld-k7^5W=^A c)HPMBAG&)sD33^9i~s-t07*qoM6N<$f)T1&MgRZ+ diff --git a/public/images/pokemon/icons/variant/1/46_2.png b/public/images/pokemon/icons/variant/1/46_2.png index 45bd33c623038035b5989ea1da5c2e4dd4ae69fe..bc21946d322aedca9351f4d1941adbb94a5c5b16 100644 GIT binary patch delta 702 zcmV;v0zv(f1=R(RBYyx1a7bBm000XT000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8E zY;$>YAX9X8WNB|8RBvx=!KdMT0007DNklG5g{rnR2>W*(xDjyA)QkSiC70o0uhAbppZbJNHUnA=zm}os)K^qAb}`CEJ8wP zkru%Uf~cjQLwT=B>Yqz;DTU@4?_S>f-0z1t^5jUOt-Sh~o?^YDhos`jl-NX&NxTuZw|$ zM*&!$ImbKCU4O>bKJOf0;HwpT*SdaeYR@;`|M(7U^kbv_X=)GJJ35)3o#4vwEpEoH z>E|v5t}|~{>CVRZSa`;XixI=frh%2oJe&#xkWM54@cMlOLs4c94Cv$QMK%nSuu(@p zUcV23U?>WprH=2cWaWxwJZ_ca7tR9k zD)W@LhktL7xpxXc2f{{A%Kr4YRbq3`%}r2lAu_d8VF7?rp~U%P4t<=*t@88aZ2&T1 z*Ooq%Db|CmE5X`FRN0e{^93e{hv@6=;lYb+6%IBNUtC(=yg{>pslvh^C#~EIWzur- zNT5XhYo3OI5@BRgA%s@DVON6W&1~D7e$gFE2Gn)kh~lQL4b`1uh<()0dQ29Wc}BVP~wK-6A@9}T~pZA zvVNC}#5wrA2%Pxw-2EvcYN&rk?QZ7PQ2&ftfA>~Du0PeWqjop*ftJ4InbaqHpM4HM zWj+f)G&6^3m4Enf?Lhy34YYkio~1x(~p9I2)e|&yQX;b)aK^1 zJ05bC`7GNDD*(KCk;1N)iDu?BNx-vl{N(gaP()O&qkjj$qlhyx0D!Ujo$ZAc9zVQ} z(P!XnImAY0v8!eMe-Pzd`0`*qIY1{%jvsRC-dzAb*S;BjhG%Rl5~q+(U|O~Qs<2BK7dxqMRNR*Qx(PwB+e*5~G<-uWcPfT)a zogQ*7oO6i*?A0>K;=bRs!OBdde{@?GmAkavYn?Tv6aS30izj8tGd3*vt^OjSPmrbF zm|E(Mc}@-y33QV9Rxs#{O{)YA_3t!sLc7h>!?a4C4Rs+euZ>H4p%Bz(ZJZ_k0+B~P Unr$OU$p8QV07*qoM6N<$g4>liHvj+t diff --git a/public/images/pokemon/icons/variant/1/46_3.png b/public/images/pokemon/icons/variant/1/46_3.png index c2a0e958745f8ad9318c280615e4ace0b864783a..b3da371304ea26d537f4adac85882304bdb8362e 100644 GIT binary patch delta 684 zcmV;d0#p5+1;Yi9BYyx1a7bBm000XT000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8E zY;$>YAX9X8WNB|8RBvx=!KdMT0006`NklH+rJEh3goBo%OF#sJgMVZRh!G*JRTClRrV5Ja z)}$`y5Z=q5R=rCurO-U%<>k#MzkA*%cMe_GInL!60DG(fu-6&@d##fN6hauAX`1G+ zV^7RDnKb8PFO2n8kzE5NEUwJp^9TUcOd7yQ zuTs^>7jq=l6#&*Z`~cM6|1{m7T>&Ldo1J5Rt8M^gsehUD0pwx*X**ED+)gjg0~c66 zb*>FpscIzZy8v7(eI^=;;qwRs3A7y?Gv8?%D1^}C$_xPcVvcAi20(3p4*=KDFp2su zBTrWm0f9CrT^G;k4sozh2=`Y$5eSpWkFjh>YK z84gCsZhvjso1h#aGPO)$t$`?MC}UTRb>U!yRi!bk6*YUH4`qs0kd_kcyhW`&S=fHX z{Ov_*`+L0m^rj65&BR?p!_6OPH!xFJJ9N|5Styg1herY>>R1vgE{0@E@DK=m+9FbwP90Qe3|WdH zCX>O0b~d<%Qb>eD#}bn{4K!;@2zW9Hm@WmoP!F9#)uJp#f>H-cmXaaau7iB4-5-!_ z4T1QbPAA>nqxarVI+$ppi6*+B&BBFFV2!d4S9$O-!iht!xRV-hsuRkx>Q{OKKSsC_xG1EYCF-r?SoD3Jv^bl4c_Myo~*6Lh8!Dk&>5$+1wgBl z10cWD#;;ci%75RZ=aWK?oIwp{&2`BywE^(!)ex-jUaOPCB+Mkh>o;K$U3`k4&ygI| zaK7hLSU!yawfuTD+TvCxhuO9Mna?;5CIZx8#o(On`X+^=(hyv$ljCsZ005`9g=f3u zm)a2|FjP2k){MQyBBHFhZg>$`6pl&&xZW24zWu0#aDPvqVVDN~#Tia!mKJX0poUCR z#WxefLA2O>b{ETB#4;C|&+YwZU*3rlFAOFq0Q&6qZk^l%6xyd^H58 zHJ{zZvwmINV>|A$$v!iGR-SG*L{y`{wPrW`qZqXR8q4uM)?8(1Y$|}^WcGizWU#*> zqMUwZYxmrqJ@Aa3=#&%N!K9}Wzg~@UH_kk%OGMNLGit@|sSRdQI~S%Z5m764?`pz9 f2zX`TuAP1XbYAX9X8WNB|8RBvx=!KdMT0005nNklBfeJFWaY&~7PEhXgp--UWz-j14ra)-1l~0UZRI zRkN!lZIyNJw11+3agdRLN~xfFQVPY`(DZ1A+Wjp6XQiXg0SoyoGxKwGn9pKXPZ9+g z2`F<{$Y(!38waCRTvTMsK&4brOm#6h*2hHgQ6mLv|Gb3Z28R0R?H>SOdUnA*u$)VB zb6f);cku>L2L%|J8rRn{cP8xl;f}lOn%fG7;Vw&Ao`0%UCKu23_XNAVwG)b$IG@2V z;NjXZn;S>$Uv)QN%ef>#!zc*c`6-t96P)k+3G<1?#0n1J=D4Ou0br@;6@b;3Zub=| zrn)rFz9-iv&IFo=D=IS5A^B=U83QvD#YbIj8|fU_EH+T8CkV3((E1!Y1xl4{oDKZe zzq)3~axgBbTN`%2V~<;(0pnEZt9;8li7OoZ)z?m!c?W(=pwx=2`Gf!f002ovPDHLk FV1lai|I`2g delta 548 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 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/80-mega_2.png b/public/images/pokemon/icons/variant/1/80-mega_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cc5a0b87d24e53f46398dd56743c80715bcf3c61 GIT binary patch literal 2765 zcmb_e2~-o;8V=ZsfZ)RX)*hH-CYg|AFp35c&8k*GBbC+`~Bbl z|KHp@tK+6l^79$&!{hP%qNBp&;du-^hV|+R|C3$sx!}p$8kNNIc)oAA4-ej^ErWQx zo*RvtL@rT1g`gO-kfa$c5IW3Oi01Lej(1o|Dg|(SEzlb+O2LD|V*~jOw~{sDU^a1j337z>mVS38E_=uVK!Mci?ZIhE1WdpTEF255 zSU1*cU^s>~Ft4EQe*CKdu(oP-cZ`>6F`K(Xuv|nMOrx_PFGaJObSn_W1C~j(Q6M4> z$_#X8VotEQ0N(&qdtE7@+)W0wpmW&xl6w51$er`;1^`Kaqxl`t zSw_d%NgJ4;hqe1%bBSIho+Zf+;Yq45eriC=^|( zzaYKKjN*_kGyWOron@g6q(u+l$|(~3`DFf>FFRDeBAH*_tiLW9k$b)DaG2;t^R+*F zZf%8)Y#)LPw)?VstAID%n+>qQI@#b>f}L&1=J9&CqQfU>5|@{J8f$nnVaVC>fg9qT zef_r0!MA$9oxQ`)^|4op_S|qm^XGFSVsa*KcaHk7*}3DL5zb*I*}wXOgjK#^a=)Nc zOO={^K_^YhL+Z-7oqHOm;2CR^B0MMe9nz;^{{1h`(`oCkE+FUBwpJZ!scD)2pkX=#nF*1T~Wfk(Mx z?^v-bt@Do9x9S-YR>yAUCU+ z7Wy;eKFi!(G9Wh!I39lA@5y8Tn8HKV|FIujwr6H_j^2BvW`)*ReKserZZHP!4( zx~$KcWc{75k^VuCXQ~#tnD3_(XJOVUk4OHq)zjv(<~2;1F~hZL8(=G20S!-^}FTNF@`vbeOe(2T#t(h0jT*f~-wK_&S{$Vk|)y4aQugdbM z#-!}qmvYmg*x-u~o44y%nZKEdt67hUNa0-5iMW9WMO)XEYOni5c}SJg=m%|?jrQC3 zda=5yl&=S;XT-hfJMiN^{Y&4vlUsO5Q+wuGzsk~-lRpf9cC+b|7T$)ZHwwoee^j9A zefsK+{QoHy&(4gi46bor2(x>gh|8%v&YKiFdgPEJ7guLZ1_L%;EaEl9NMO6;zbG-~ z*9T4Uy$HNV-;8gu1qbIuM?P6Ns&Pfu@=DXRs=V3~g`{-SgT-NE6Pyj#xfq-3=NYa{ zw^M2hmmS@x+aKXS{E@Rb?7{($+-HwcY6DI`h^%ya?Y@4CHuVgvEts3<&((bw`s1z< zVKt|-jq4Zq1|DBFnv$%E_yp6}j!L|6pkc3J@K2wO(X7-O*X_RHbvSh7mR|D$zpGf` zTXFBJLA_JYr+|M%&PW*cp8DGIW#`sTyjGPp=&&HZBD#qo zzEm6?kfx==(t^T?v;;yzvR8YtJdGFtP*HlEWmF}qb(m4gp1{Sx*gVZ;vnE3H2~xJV znUEDF4`KN-T8bs%ATWU-JeEkpArKT1D9}|b6hZl11mz+U7;(o?cZ?@sO?}vaPD?7W zP}y5kWZ+85j??Qk7?+!plEO*ha~N$bmnV@(%or#Ng9uocs@CI1SgmuOMvzfDLQ8A( zG^1vj5pe}$&`a4s>SPWo%?zwsH&rK4F|HBUaCscWoYO=gNzBA)4BEsAa+2UuiIj>` z>vbTOHxsLgWAuzJj`;=XncF`j0JW9NXEK^jv9d1(~?=JfFoqNMAB-KNzu7Jw}6u2dP>R$T@%2F z2u4NWJP9U{U_9|k1jP_!GE~lxv@-RDP;od9!B8=V3Vs#}JVWAo{5OM10#hc9dR$FVfifu@~y^J9Y=FXbePr96B2!QcFR=$`7?xQ5ILO>{Cgf9@n z5+%il1vnxWQG`$_RG`yn!CD$TXn5lDsAg3pKokljI3WT!JQ1IQQ6<0;ixC_aD-7SWvs)G#B@m#Ov_nUzg4&Nq3yb6TR1ZwoLu%FPv-aea#H0>lX?Eh`u`=v zHSd>`4&%OPzKMI!?X94Z6H{QrHVB+aB{;LDxXn znAhmo)`5|(z;ac7cF8;AqB=V5@}(k|tdqNnirv~m+z#B7W9{@J{j9{!AhhY>(6h`z zqe<~s_Ez;PqfkrE)y&;7bX9g=^r|8#I50?7KVX`$E|lr@*)?s$g^4X`Z`OXkFJjWNSM9<<%QEaS&=WwGKYK zTpMuvP}aF}agw4oCb&}8>1q{(h0XGFYkTM~G~7+f-74K_qH|4`)SRzM*DOzKJ<|3l z+0Lb|eyiyQR7J6;N@hI_{^AB>8lceIS&Tr-q zw^etCjEolb+I@55gOdy1zfAR7Rqo4*DEr68)cX4T>K~ipYpNFw-Ftrsx2l=&Y zJ;U(9T?4sK?kD(E;7z6WP-X27I&bg3y{_vcIvg&3o}X>0sqAhzy4bK~hsBZdh5f32 z9iuyZ;&9BTKi+{a)?0vYd40?m{5NVg`&8`ttj(u5=SC;1CX=;>Mfj=BheNvE0$EX0Sd3NAKY5vx~}cQ=5>0u z4_O}zy>w-p|8~%3P_44`jGrv6%31~ETfOTqtP8%`RXSguUj})^^J}6)2HRJaXghfE zK35*Ct8ma}^u!w;OaJCoNjm}%;>xufv*3wBC|nax$@Pb{tMg9^{&f7f|v zUP*Ih(a!M4lC8njSlf;W*%hnyA&0(Q2GXc_=j%zGj%Z3YaZiZLg?4yx$ z7pFhTOFv*3Uw^l_S$vOrlyh)^zw*?B<2lRGilOTr9z!*WhJU@i1bL>b%RXW|-raP* Y*xRyk^zDC_nEz)6`UT0#d^W%PU)um9Z~y=R literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/80_2.png b/public/images/pokemon/icons/variant/1/80_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dab6fc6f06eb6bb48128792c8acdb867136d0462 GIT binary patch literal 1080 zcmV-81jqY{P)X00009a7bBm000XU z000XU0RWnu7ytkR>PbXFR9J=WmtSZcRTPK6DZ;R!u|fiYlx1gBw)w-hiEf*PX3cg% zgivT+^I&ZVp{Dz?l13>aA{0bYOP&f=Y9xV*_>w{h6d`P}g-x@XrD1C=>dvs(rv_{* z9p-6#Sntiu&aRzJgyz8?%){J!&z^72x#!%wisLx!X6IT1BPxV1(8W<(81NYl2Y2lqI@jbDCl8hBeN z7I2j(Pl>1@OxtqA6H!A<#-nn)p1nH*|2bep4JkJtZW7bl7>7H#aWNYhvS~omww%d$)HnYAch^0U-7q#iHqH9kHXuO%%bI)yoUZFE ztQCOj7P$FvlZYBpOxtpbi&;$Da{5MQo#JA)DPMt$1geq9UHYi*T)A8Z@I=n7OtOQC zsZqZC{2Ks@i&^?cW}Qs3Lz!M!b*J1@Sb-yG+Lp6)Zk+qMRXKJ)w@NfMK(StI20EK*sx#=`xGb;_@ngWcdA?1_nH=J_0%-8Rpst&rM z+4+jUYK8ib9t7~DIG*SQs;LJUn^~#b^qWfYV0#SKnNz;4qugU{YfdFvr2U1-<AYK27fj%B{u-i6gL3g`Q=`1pm-YGDQ6F?);g5fM#s6i-zuR8>_H;AufNeHv;n4kV+Lj}VBzNyFx~}`y yY)64p{4CXOfpWR51hK1CEl(i8=c!%)$Ng^+OuaXqVS`El0000X00009a7bBm000XU z000XU0RWnu7ytkR^hrcPR9J=Wm(NQhXBfvnQ`%jkWl6Ftg+iw@(r$=Rwz!Bn^oJNE zCIxRo1I3f2RJXX$9QqIJZ4N72(;n=l7YkmtWicCqQrOE#(L-Za!nRJ#!4_myN_T_x zFngGt*O^SRPL#49`h`H|ecy-YoA38|o_QmgrpbB6D=(YCN%)`OS#j3z|H`^wB zDvND$`PCZPcmPeWoAxIg53n|$66?+4oerD?$^~txMN!O-XryW0wiH|{ZgW+> zEJzNIgaMG{3)~yK#_yGX82jQ~&kyT}Mu_z)LOp=}+Ag7Jgr}R8mgL$ZXw?&DuJQ*{ zfuOZmJl=mN@_NfywO0XfSsaqP0L%Ig;OSOBzFk~PyMQMVj`FHj2f^8H9%%^ zNbJSZqry&S4cf5xTEVx1hG8(5>2W1@!hVZ1uH7mHTqMd%_fb`q*m%-ob2A0os=?G> z`&^YTd+cmQE;BhKNWzQNI+MkUqL|rufb!jahDX9KdjVeSzeqTdW9#-P!M<)!{LaQ2 zbD17)m3EsFwVQ-$)f3xx4c2P^x*7!F!Q&^)WqO!ic*tC)2SBKo8kEJF-7t1zfYl@y zUy#pt4QAt(P35~gq(|QNoZ0R?62##6m6uHYX00001b5ch_0Itp) z=>Px${YgYYR9J=WmcMV)KorM6shAnU)J%7wB9%NKq^g74AxlA&OsHFiusB1NsS|$yk0HFnHfgclhA#d}mVEC{zK`Gg-Vex? zD_5>uxn?dAnfe%GnybP>eB>1vIJVvH)9arQP2Hpw?;8?(bo(mH3z} z-;V2E7Pwlc<=WMX2TVZ2P}&ZHpzvP-!%*>9x76j`$!mJU0o95}weLlsv%qF5v1(&} zlkMg{0Nc%d8tsOI1?UY2)H*GGl;)fb(w06G;QOOf09M}Cxj+6%Z#am6sj3w(5>wx% zQK}MKYo+w^37?<8;_1;FyyXSF<%OwZH|95au=3DlH4OPXi#PISMB%OF^5R@BFV5Ze zvURrO-u;6$Df(qO9v_N-u;%)=&URc}x1^*>^cNz6wN}1;{RF_$YTX%LS8BNb(RwqI zx$f?t#RKr=#YaY?QKGpMl~^ZVTCD@o)i@1KVY<6r02=LvgG;N#9t>w~8oa_SK6?yI zvKIFrOtKdQL7`B%JquoYWT`LJhw3x+oqAN;X+3yj!1$%X7$Zf$EJeTUz{7EkC7nCd zNfKAQ^xr?6065R;nAFbh6!1Eq-bsm*NOysml{wcH`UOQ-7T#2Q RS~~y$002ovPDHLkV1mrD5`O>y literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/84-f_2.png b/public/images/pokemon/icons/variant/1/84-f_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b34a5d810e06240dfa7be5097da943c0a7770f GIT binary patch literal 539 zcmV+$0_6RPP)X00001b5ch_0Itp) z=>Px$)k#D_R9J=Wma%KwKoo~RhpeU$hk7yiH4x)^P-c^aLcvSHp_tOmbLI@CgJ(~f zJ2Ydnl_UfNUOJUHbjzS2HtvuM7)pi?{tGUHdB<4E=^EG?EAtCj?PaAhaUib&yHZ5# zL2<_(6nE^eo1gBzr**%UgiK$OIPr8pe?J3oJ?rMI;O{39`o)MRn>M|b;miG(l75=Y d{(sDg^9XoQ@RaZDE~Wqg002ovPDHLkV1foi^pOAn literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/84-f_3.png b/public/images/pokemon/icons/variant/1/84-f_3.png new file mode 100644 index 0000000000000000000000000000000000000000..b3aeb8a21fc89e4762dd424b045828f856b93a4b GIT binary patch literal 593 zcmV-X0X00001b5ch_0Itp) z=>Px%3rR#lR9J=WmN97CKoo{Qm1fNlvUIzHUC-+hb&n;TnGCdl5y*kW79=H2yst>_vwHCp@UMT zN|h>AYUwh@Oudv+=5NntT}ua4N}1D}TceaR^MEcDP~c8)Zq3J^zbt4GcU|?cD6H1n zgsrw+`?U%HVXKYS+IE(8nxQXviTqk6S8H5e z74B7N#9C|Pzx~GM*#$AM@$?ZJnLK8-yS_&4#XIY27IN&O)3^&exOsK~K==Cx;)6W^ z;)6Zzt`p+pb31Zz7a)l0wjOP770RO1i^dqV*5=KVmjE>T9os~9YW8{T{mwa;G*0a1 zkq;UUhfcknMl8*n{SJ`djnm)+CTW}iBL@YpsGKvHb!{5Fz&+l128>*r%pZ*0OViZz zJhv%3WiU-sZ&q%a{ZZz^*E>YpTLe+vIw)C{brCsd@L$UQF|^iZwHg2rnicE3)TOr2 z49?P|yP;VDu$h&2wAO}k92TmgClxv2WDg8VDf8v|dt3XjfYX2lPVTO~7m~qQlK-zA fGdO3k)P3~_>o@xLA+MV=00000NkvXXu0mjfnNks; literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/84_1.png b/public/images/pokemon/icons/variant/1/84_1.png index cc0efb19cb2d81d4494acdc846075f1f26125bea..a0ca4a89b2e06f24f3e0b787e0574ac14a207585 100644 GIT binary patch delta 554 zcmV+_0@eMZ1j7W7B!2;OQb$4nuFf3k0005~NklI&nybP>eB> z1vIJVvH)9arQP2Hpw?;8?(bo(mH3z}-;V2E7Pwlc<=WMX2TVZ2P}&ZHpzvP-!%*>9 zx76j`$!mJU0o95}weLlsv%qF5v1(&}lkMg{0Nc%d8tsOI1?UY2)H*GGl;)fb(w06G z;QOOf09M}CxqmjkE zd9d=(Wi<@>JBv5+W<=qwTA@Z*OeDr{R1600FH@L_t(oh3(eAYQj(y$MLUyfG(Ztc4?^vha!{? zwu6ha&}fH(6h{%CAP_{z6G-Xk(9u|Mc5x`33Z;WkCpRCU4}Z{fI+r90nncqgIaB@+ z{P?@)TyDm7UH)@rQeezVfpIGZ#;p_>xAq&Tlyc|ud1i~ArHTwxO1bu12ea4#U{}yc zK*0e_W>ZSJJZ7=uLvAbG&_Jb>Tkh8=Fvqy>;ZspDCBwALD~9o zYt^KC@sjYL0RPx$&`Cr=R9J=Wma%IhK@^8SLr9UvUXZ*( z2sS~BBZtJlAVmVEkz+fBlm`};CS{6igOF6Qu`-6cO92UVkDYcAKJ!1XT{8BXv|X zyk-M_@dZW1cBJl(3;8Ut64f+y%_bywlbobd;abj=xT$_+HeXW6XX)iH3FtaWV@xJ) zuf#J5aPrWmJsbhh9*$^A(a8eL=1V$KCr62-^O{I-FrEVN{qP$LCd}r`H8G`-&#u*U zZnq{VBKB;r!hh9mjlp4LzE00000NkvXXu0mjftON8m delta 494 zcmVS6oPEJlv&Obv$Y}Rw^q`gr@?5KT)h}bMeQwgdZz(BgFXn%Cf7W|S6iijOZ*Iif2 zMPMzeY3i75NbaV&Nu{E-lBsjmZZco2sFaJ0%4Y-&ouo0QkaVupJqU1g*QXyo0niVh z=tc!Xt z{iDU7L`1AHrXV8r`Su!sZ>J;Ij{rC3#cdvap}3Ng)(J+J zIxew~ncpoG=J4`TM9F{bdRhkiZ%!Do^wokooy9MY4jOHg}Num3v! zt`rg5l4IMFV;csS?%dP5UyDPkFG-YWx>xNcfa_T|MzGM_#+0AK|0esj*TBjE7=|C!oefz6U7Wjy z(k0NrZb+R;R7>$#=n}k$ERB~efiBI^E`cmvj2Gi2T|Ige%~VHFd-E77(LYe|k||sV z_YPU8wNBWX^uP`G>CnA;zxPg1Qc_Ytq5k!3)qmKyKp}+ce!Epd2vtOA zULF+@ETvRug8%@x)8}juAf;64HAUW?=5Y~mZl`bNjk*99LX)EOJc=UcK?Np7rE5X8 z$%ikWm`r0DbwMNLY!R`ATC6#7ceyw{2jJrL9Ix#gu>g~4jN9pRUu~Kg*tWiqz+vwO zfY7gVVXu=EY);wZLn&wlu|u?`I+szkYNvY_Mfn`-_Klo;_gy=ab#Rg ziu~(hu6A2HxP2D_@bkwTy!7`oBE~iS!FTTLZuW^N_DW; z0wA1?%qIGzCZB)*^?S*=;A&tFkN%)Ij&tputHpZraDO%emQQ1rI4vf)8UPCiwK!XH zXE5nnmUu1h+4DER!nJh%VBuaAMULa->vFCPMp5Lf%1t;MQJIf<`~DS|zK7TLje|O? zdTvAR4E~SgA45v1?yF4z4r^P+d0p4FwPtV?X?G86TL31rdd=c`X<5B{Ee@v1`n@F& znoS1R;w)gAw4+IJ2YW56i+Uphvq)y~q4q2R_yd6MYeQRNiFE(~002ovPDHLkV1h5f B4k7>m delta 523 zcmV+m0`&dN1f&FzB!3BTNLh0L01FZT01FZU(%pXi0000RbVXQnQ*UN;cVTj607GSL zb9r+hQ*?D?X>TA@Z*OeDr{R1600FN_L_t(oh3(eAO9EjW$MLtcx3`p!5iLQ38rde? z5{-`Ga=4g_OK?jL=OVbcNQ<~QH%5!#)DK9vmIzY%2ZHvvrho6l-FcvQrxxLNx*r_A z{5;?9!;^3vhre8jH85tafpKdMj9Y79-1^@@rIa%sj}r^@OjTr{Qp&mP_Gy|10Ly|# z0tyabIGT`2Cuy372f3(pLj#pkPQKD1lTLb`4@VOQ?UKIFS2_&ZrP#?v0!n)RYE)}j zEnBAw=oWxzZGR98c#+>_`|upAWz(qEFp8!p+2LpcK)=_;YT1$cH4-qDty3uHxVe7h z{rQS~rK1r+CCLI)y}D4KAGdR~rQi91lCDuSr{0A@h6c*=%5upt0Hm^Y-d^vpTDB)$ z_a9hVf_|L*h-@cHDd+g$41oKOPmH3ezZIPHWSHrm3x7CkQ}*Ko)9-ZwJlLfHgJ40p zz5P=P<(!^se}&x}V;>d-`1EoMfFv!GZ4^xg?UKIV_}AP{N6kP@C=1K4?8Fe zKW+t0x*IPE{~Ayra_z=RE3ABpXO$Zl7P&GYpnFlS=lS-3ANf~NKOV7l)Q@FuBLDyZ N07*qoLX00001b5ch_0Itp) z=>Px&3rR#lR9J=WR!wLVK@|Q{ya^R@Ggz3-L3${ZKoQyY;?+ZAL$Rn7K^jWXUJCV4 z(f%r=LP4Y~rJ)o`m4bw>hg^EHtyW7h1U%%HL(87LD4z2?)Hlvbcf293<^NW0qBQM)Mx0ie^V`nt28n$?RpWP4<8M@!An3I>r`F05nnPdk^( zxyY}rrjQ=byT-mc#4FC1#G zsYQ@o5z8b10I^J>CKl_F1Ay|$OSy^DZ%4S&b4`nALl-lV?qn|j$TtAIe)kL$!}I7) z_9AEHd}C5oce${R?yf1E{y38Vw`XplQmI6O(u`INs-ytGv5I*9X;zX10E{N($z=7s z|pa5M?vOm*i= zR;%jNEp>)r(AtZPw9lM;hGP|7B<^0mFNv4!l8caviQ#$qZ)MYlV-;NlL&u;>E#M5} zqUNTel2a9BaE^4WB4U{Y%65qpI{KGVDBC5O4ZQ9Jf?eG3y2a%B2L2up@8oJdJwC`| zaBD&SE88Ui?o`!wf_|jDP*nyXH^fPv74#$55wX?whR3ruOlBg3!`^kkL1glDB6ycd{+W z-AyBmf__SRm20G4%e7b+d~#X2X00001b5ch_0Itp) z=>Px&5lKWrR9J=WmQP4jK^(`wo6lMTJuK)0A(#qLafb1xn$$Lokzm# zMZQ?Xr>`5n{|JHC#nF+di4FTcvsloL55ihpx0LCxr$}D z)cnLDWOf+*HgJa*@D6d{R>$Gu$pKO4{}0XLoOkQ%^(17z=$7LfDVB0waVlUM7UFH&ZW_I=PMR@>10&YMtWA0dabk zb0@F!3U|$_#zCEvZs&sBJ9Y=T_{!zZ<+97TbnV`e(@@>2#X+5;gb? hVe_b0nmJLu`Ujm_oVd=x*I57n002ovPDHLkV1lCtioO5< literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/85-f_3.png b/public/images/pokemon/icons/variant/1/85-f_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6c166af1f787810139b6a064642c9c2cc78786f5 GIT binary patch literal 860 zcmV-i1Ec(jP)X00001b5ch_0Itp) z=>Px&7D+@wR9J=WmrqEOVI0T58$}|~F%Me(gk+=#5AC3k&_q4#Vg!NUrRgD@brT}T zh!|SZZcU|Nu8So_kpxQf&jJq$?XtsyF=?-qgdHVhU3@y&@9BN#`)<$sHlc&x%e(h| zpJ%_%@B2Kz-<|=-I+nSJNDz^*y04bpP9_nN=-jV0+}}OdSav+a+fC%eQNS^PrfDuB z5*q_!0D!ickm0kYX|77~961O8tL{CR1t{mH&wW{b-WV8Da#O6*?x_c#jJ8nB|u&Ze>edE@P`u;Rxc|!0O(&Imq{$|k1FrE@bB!m!xh(s)t z7qLuU1mmegS6yX_=?fvG_sh{&)77;eF$B`E{yCo|k! zE@}Fn$FPHao*wMtZ)%;cAQR#yUwkl(n){Qs+*1Nnk=Yi| zAIbExIt5wD@o`HJ$JIWUOUk{w>fXa{ZKFK(IMqJ`0>H%!^_a^g4MoLWfML&Gx?yObl1rJNcQWX@J9@->U3E;Bd7w9PdrN!**1aC1#nyJ^Jtrn_JtCzq4u%mWtbx mx2EOL9{sO$RR5QcrK;a(%;;1zD6Vz@0000bcf293<^NW0qBQM)Mx0ie^V`nt28 zn$?RpWP4<8M@!An3I>r`F05nnPdk^(xyY}rrjQ=byT-mk?v$K0LV80yngo#6T|c9PWB>a<$PmORd>0tj_$50oc=hH|F>sup;DoCpqGp_;X57^;YR1VNv3Sn9g+VI@=en*VmPw$0Ddn=4 z?Gm1tv-tQpkCjbZ+F4yzjqz|a3E)h1=SxeMZDhGEd!i;T3-oP36368{AwtTMTyXU=LJv!@}3aOfEfb zAw6x$oie%N-Y(wXd+Hj)%6dt8$%Q5BtE&*A=BA>OQx#=!j&!UdVwnWWc8L=@`j=8D z+a;L|yzT{pUEJ`x#pL=1{vHtTwX?whR3ruOlBg3!`^kkL1glDB6ycd{+W-AyBmf__SRm20G4%e7b+d~#X2Djl>h($ delta 761 zcmVTA@Z*OeDr{R1600NvzL_t(oh3(kSYZE~f!0~T#mfj8aFc--|Cv02UYoJ$myEfQ`j*^!8bheFKBp z6QF=KR#0D7K7aD~)l1vf#^N~Ak-q{I48ZEvI0vRb^&|sm0$O{ zcHlCXCoemA=kJ^e0_$NacV=S&zad`1`%=hV*>j1vT4^XTw*y{v&8t%-% z<((x;6{piVmIb$@YmiKMg2237sK1{^aU2i)%WK zV-N|Alz(<20X1%JAAW&Z31*A*DV?rqn&d3VAd3pOqtf=&tO%r>0{fNvg+ z9T5##tlt2d&p#{O(sp*gx46WEfEP*tYCjp0M z=-cE8f`LMZEa&jN^WMw7`WLg;4hfVYcf6}P)`5CFd6 zi!_|=+`N2YoR>Fq2TE@GcF+sPs8_+t@9L`#_$QeZ;KkYpfY*9QjqvxRsJM!kyBK(HmOOw3&d$3o5Y z{dl`=YEpAhfC7L*vyAoVEC66BItBokLWr+S=AIaOqkmq-QgjT<#T+IkGb-Hz@G%Dq z%`#RFHym*JO3iU+p=UtMH3pZj)UXhb;d3zu0C>IoxMN~h0=zeV5y?OV^CQ!acC%sO z!KYVPIo#lo0QdkH7}L~^5CD5>sK5aowmL!xeVa(|_RZ}dC^X9sh?{Soad5L?VIdxq zcC@_no_{~fS86CU%ML)VtHp zOv7wgJR7*f3wVdP<8h0@g;Rf0gZt;=erl}ccz^f-dtL(0RCVfrGAOr1mjUnrg-(V* z1_rrV!Z delta 766 zcmVTA@Z*OeDr{R1600N;&L_t(oh3(isXcJK!!0~UE4xPH$rQi!#7YQi= zg<=07D~G)F}P-r#mQ2zP_*Kd4r#EMNT)&|1%GLYn?p}N7h0K&B~$Dl6@mjwP0bBW;?!%Xkx}x^GLc4@vFNl0`r)9J zT|n>qH7wx8FY3 zIHz7a1Amb)k#e4afF^F?a8s|BNjI~)d*+ySz+9zjZ5tRUIDvVe2$|JgG8^+2Ql=df zA$4iu%~BZ%C@@(zadMl@kddBmmi2sT)~C#$z2Mpcz1ZWeb^Y8l;ob{^RtcDyb?UX& zKE^y6IM5H}x1VGgem4R#$(v80UV6qrI%>ZXkaw2M8}b}KH=s=9nT>g?eNsxf?`CIt zytijzF9awxYBsBaGiQKqo7BL8U}p`maFIrsH}BUj253Uf(eBso_wzy(C{VtexW$LB w`Wn4~1HEB3xiWw*6;NW(_vL^0pM~>^pG?e%Px&1W80eR9J=Wmp@1wQ5?s=)=pW3qNz*d zhlO-dicm}|mCCj1phLiBE!5(cL6Bt0AmZS15^=~Dio2~fLmc!B!7rVIMth_JBmo#p{o5EzTS=8y$Lu5&~?3qh(vaN0st^HyJmXUb-kt5dJQ=U0K31w!ES+SZYp;k z%jfL;gex~22DHM&)7zLdiI zT>0!Azq21rW7t_MlohUCSVsqqU_>O0a20R>g|zI?IWig?fD%qZQ)9>^N;oO!azIbAK1cFOypR7!H8k5GQ#}jbS*tP?vkI z0Nuzg1gt-UtX5B{F2HMj%`hC__Ix2NW4F~)g1_63R!`|#^Isbf06N;+kT0Z7mx{9h z!#)f2*Xi_bs-0Ck@<=aHEI7Ax&0000|iKDX~@x1xi)by z!y(Pu!Qz%d8oUmnYh6wv4%tHg0Sl7h9P~=iRt&l*#DYWXL7_@UDRC-qhx)wUd%276 z#RwhzE|+`X_ulvOexK+45#UaD3KnCGGsbw>`=B)3&qs_g{(q;FklyF@LeKUDA9W)4 zZUc@0T-P09jPXn=e_3Nozg^cIx^BF_90Y)ocpE_j^m0=lek^`xQh6me`v&yGRP1fc z>jli~1*|kaN$@*+`*`)?JphPj?AsYKsk{Ik2q1;m?_R~;Mk)Us03_MNI!ZYMS#uF9)w#f&^txNIx3Q3Vhy%AH>Pq+U5Or-hp z>;g|F(ma_+OYM@0G+%k~T4_I2a&UTT9D1>aH%p(Ta>pveG&Fo%c!~9mBT+8gy>!jn z5Ae_Rr8WrGoM~vH zoK6CA%zx`#m{i(?DKNwYXBwKc$_OqtIfIL>HR&62)(_=}iwYa+pcl-0p2j9;u3%cW zXis~jX=u=kH8@rojcOYwCnq8W2u?M;z%@DOg=>0X{GEGOV9+na-$_+}0h1TW)h$Hc R9Si^f002ovPDHLkV1hJAZ+id$ diff --git a/public/images/pokemon/icons/variant/1/98_2.png b/public/images/pokemon/icons/variant/1/98_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ea5f1ebf5dedbfe7da1c70e7213e0cf13a1d96c5 GIT binary patch literal 642 zcmV-|0)737P)X0006>NklP!AC`#q_jo9V;Nbhae!vxxQQ^AIgIl-gZI{>kKF%0r=lyk(Oas2rD{kk+6aZ zNI0aOr^g&ys_;DLnUHcVv$0zNxo}(Cu*!6#_45Fu54o9Cp%$>5hqY)Gn~GLIEPQ_J ztJkM@b+EfvEfgwd0tNxIkD^U6n2j*II0H)QXU05jY{2-wuMVdks-9#^GA&>h8?wR1 zUzZd^Ma1IdoLXL6Rok0c1(>DFA?10V9@h${-t;o%<@Ed96%KQq0cEjZ3>5(?Qw2B~^CKs^f3msDEVwp&XF#bS(knNU zibz1fL1}4?-hpoYoj$JV3vtm2kZ_-+4|Q>~P%RKy-GG#D8|*X0006>Nkl%Xp&lY=is@b%z|sfcLtOSBE51m zsfYvw9F&&U=uPzN@APp+UxfrRAVu0J@O0lBbj zFH%JUao+h!PK{3`wNK?eDEIk2t*`O0ekwWvdM!X@nKsTt&qP4+zRn&!hAq&b*#TT3 z0|Byd@W~1{4+Ag+`zGh{I`4Uj5EzgP%fAG2Gqb-@bpX1&zpDmlt44X>^|v6NsSDs= c4%6^}zny%TF5`jBR{#J207*qoM6N<$f|Bqdp8x;= literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/99-gigantamax_2.png b/public/images/pokemon/icons/variant/1/99-gigantamax_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f56f7edbfe4c5ce6e7d12c65a4923730feeb0a2b GIT binary patch literal 852 zcmV-a1FQUrP)X0009UNkl;H~V&1$a6uIcR|ZRzCjRmJHLbz_v(M;t;YL}=TywL4<ZC0e( zjI~$_aqs%f?l64#eq0zxf=VSQ5^|EZL)drhqO=~XCPk9!v85DLrAj3LZ%%!VFzc@` z#W?^Lke!qb0FU)HM;SYP>q2}LFe2Atc%IEc^)RC8cvlT5B zeL-na9eesnu;+YHHJARBSKIOGSx5j<70+0GIQS3Zp4&`O1NACuasDc&1j+fV@V{Gf zd1u$|`d6I=lx0P~SBli>RJnZt%4#WAq;&4SZ0^*gnWJk3djaxe1|Co@bSjWdQ?MHs eHpSv@0Dl8pf}1^mQNEJ^0000X0009TNkl6`#>vHy-d;Yp#IL5aCdN{!L z4^P_a#wXjoYq<%@J9{VZ+1J-^?bPk_Er4%k7Hr?@e9NYK0nP;kN~!@9AtT_o#rO83 ze&2vTFn-(s^xzT9rw`9kDO6~2gv4^G7y$tq{_?>_rp`50Wno$G0sV$aq3BNBOfm;O z5WvdE_0cIic=|+kjbiVv&t!0G^UrMa(6K`Gq8shw2`Tcnt8>ecI2CWo~<1z$V*a@ z|Fs~CD8Dq(_{maJ(Fli%aXi1Dap8YY9=lAEr7|W zVnT4<3i44!qx*vLD)K)Y^#zkEl;lyD_mKc(r+|P)i*;_x+IS$uob2c<_Jf#kcBy7q z3#crP_WIVNV^Q-+K{bDW?*9`&S?wnipueY_Ro~Pzj!ECN{f9`$fO&&Z&%?2>uV@eH z3rdUX*waUXKj(|8x#LfHwVkM*hXf$6;u)(ChxkFFFX0007DNkl>n^|hyI3w#bWVYmFRZ6xoyn* zAiz~C4VxI6{A4_8H!Ls6M1V`xW&qcEY+0{&of{mU84C#Y(!gQ;cPkqSNVwa#8+&|x z2^0)dk5F9iwx9m}DtIg)yoUl{d1N&ByZzAoY_UQO4^LUWTsH-bf=)Af5&;qt04PGZ zDl4FdD@&-n9#j>>0GV)D0fn>!2nGM*I#vHlyA!1t?F(x$AgCe|&f-SG)YfZBTJ2Tv zb9x7B1140U&FBy3`ktPN!otwe7wk&b3TG!3mvqjwWic zs)z@mHg>LTVXiU&s9xl7$7@*IGq;#Gpt%8sRv(@n2XC#+F7`bbaOYQBRw|W@>S9DG z9Ph~>`R1cnLER-l5f}wTc#vGe>H6{U!42q{&Z85bi2_Xos0!j{yPGvb+o2$e33pqj z>R|&4$M$2h2qEqn2I&O^99oNdzI(FMi{;=(xb8yoNYruTdeYqlRAfgqgk0wZ#6tZ( z$XybUUc~F_`kIYZE1~{$!Kf$!qf|@;7?n1vODJ9E21pZ4-{Km>66M28fT}KRKv1f| zFAxex&(e>+b2>AiJBs)}eTws#DghXkW+r|cV4Mxqw>;N#S1<}t71oyPx16}o{1>XMvvewTo4Uf+r00000NkvXXu0mjf0EP%D Axc~qF literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/1/99_3.png b/public/images/pokemon/icons/variant/1/99_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f5274f2745b97d072d3a5266fb103fe22488bb39 GIT binary patch literal 669 zcmV;O0%HA%P)X0007GNklIGk4yb``$cWlJ91CbLYL!J>PS_cc#OBd3F49KKlnu+o8XqU@n*YR3$2vN@g4L zJ_vBVg)JLgn5Z+}Z!B9@kg)*Ac8>zMo3$P5?z+ef4$o`}2=$V{Vf}Y28wp6br;}T& z9v1@z!_*@b*Sqbff7=Cb2?+0@0NB4&2>z}Wx9crdsP~Uqo7~?t1&o4DGJ0YG5)uF? zLbxg`poS|=sJtFj6~h3Ta99C_v;znQ|Kd7TZ>Qa{QjGS6wHOdo5ea8;BVlUmwK%Qz zDmXE{YR`8M_E@Vl1x4W$im+@s)l3Q(Ys>(Ub$fNt5Rh`YY%}YJ4MUu3nSO#3I_VsZ z)nZi<4?y+x6zuGJuL)4S$l;FHu(qdeF>gR~0}8F4nwt;aDxIG;JQ#47dn=aD=Z)%O zL@6Ba$sqaWqgO%QB|s4v1w?p|T*B%4k-HFT8pZ_l&rJoKDZICyO2B*b=2!*3(=||r=of^;`Mf{&W#d%DX0E|j96Tc0xl?~LlJl8WX00001b5ch_0Itp) z=>Px$bV)=(R9J=Wmc44iP!xc_mcBukA|0*{0l^_#mfE3X$Sw}SI`s((agZW~R`3a& zLU9mxakPV7+#G~LpvB3d;4`E{$ZZr`>M?dG`KEgh_nv$?_a}jjjEszojEsMQQYutR zg=yzKlFDqxp6(_9)LLa0i-jofHg-;=lnO8IecfOA0gh!-GIBarYn1^~5k1~#^2!eY zv|PJ40-|c(RtKpp`-xQSv~B?4xwaN_EK`pePG=Mgjc8o69)hf*;yqX_H1J&e+cE9l zNWVnPOS8VSq-(eR5gPF!xvdV??!Kg0lHqiQW0`dN zmA_fypJc|}2_+-P$Mf4hY1a_n^l=rF45u^T>pqOD2Z$@Umtfr96piWhE4nQ`B&mGV kx5-K?c5n{$+m#{Z6VTU@_(Of3>Hq)$07*qoM6N<$f>MUcQUCw| literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/182_2.png b/public/images/pokemon/icons/variant/2/182_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f39877edc1ecf6e381d3852eb978e38afa00745b GIT binary patch literal 720 zcmV;>0x$iEP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT00078 zNklXcZzO*dbeoE*^L3 zpyt7dA>tBTNQa0-(aUP!K?gl`GXrZE87K{wjG#lUgZ%&OE$Z;zoDut--uwOE8y|kZ z_j~_0Q@LE`Uk+0PXfPT;qtO5w4Z}c1QRENgaygS>QB~*$3Yew$5tkwtP?rjPxO2Pa zNL@fhQOc*{&-ogj2jF|RjdRU&%n!boz*<#SH_#t(lZ`n!JmSaIVF4g<`l`IfA8~V} zH!Aabk-C9_wQ1%C-*MFI0KmRHgxBXHl~g56th+iax{-!}>QVvw@(=)CpNsQ07Xy>y zY@U6edkz#xf5a_eA{O&1sidkwUR>-3^tIa1YerF&@@#sTla}jz zEWFmN4NQ*z)@nUdZWtI?o968;m9dx^Kw?F!0k%_F3Zswf+hPH<+QY2-;$8}LunYbx$& za+UeI0tFJFFFM0&dV}Q41lE@0Y!yG@yAjY-bzgu2*%zJRN&gi9Y~~>O(gXqyXx8*1 z4ZjB~KTs==1wNO{nMB3wzSaFLD#1qL|NmFF*YOLKpOw@)_1Pl;0000X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007a zNklH{3GF{{pg?+4wbku;#F;I~tmM3&cO-V@*9{*kn#>?($) zxTo0-><)w{z5~F7HAPlawD_;=Btg4_n~@0sn({N5pIKwVn!;7z8Hv7~UV@Ti#Wfu^ ze(Rx6v*+$0!}}R0uZ!2a7~91a6qoTICfGu((rq5?+5DMV}Vyy)gmfx`d0U+*b6oi e|NpX00001b5ch_0Itp) z=>Px%8%ab#R9Hvtma$92KorJbMG#wXkd9hHD>_&N6*>qyC@w|8MHeSm7jY87Q4lA$ z{s)5SA}B7Rh}{Z0NL|FXp{~V2Y(<$K@zE+K035o&Wj z>Hz9isH0#TB!&`YJNRqCby*VElX6&Vn4rBaD@wl=MD!hcW_C2qB}yqGc|CIDt(xF+VFKZV8S z_zg!HQer&a2W?Juenmc=#v$4bh8^25c3`u^C&E6kMvW&c4nZUO*B6DJlVHnYQVbCsXp z8tkER$|wP{|2Sfx2ty*2F#w4HHSK`>a7QAeK9VZ>_JvfJV>!1BE}xt zZc(M>LAS|(ga_}hCSApV6=da|qDtF?UVu;tV`A>k0>v>G3HLgNbYL;_AEXS3dz~^+ z#dG$1l$)fLGW!9k1&DItNaGiSAXL-_X00001b5ch_0Itp) z=>Px%8%ab#R9HvtmcL5^VHn3Bp)JB8A_u`68rrI4jjcgw z`4R?Bw&G@%)XkS1L8N=clo(yTJsSF5!>Pv+_YZaP_?zTa4SpjsPFVN_0oXndP zjRfNK)hcS0x+}oj@{v$Q1{C1cDy?VARypB6D2WpHT3TLA84wcyQ##!eb7LDPVsm^4 zrKUF5+7hMqR2M4R0Xx~mDUy@{d0_xX7Iv&sqaolkjI(sqQql>qlTF<6QVCFAcqw*H zm!%b})Q^ch+8&z__wXMpDFez67mQ5*u}P;eR|b^*2i3R<0Ce1Vwji;Y9gdr;`Fhu8 z50z6!36TBA5d%dS5}}L%NDQcH2jquaUTsj}@XhkCr-1gwxNNcqSv_1oDn$`7_Rw~V zDlHGXO$KDX^g!vq#RB3y#6Cf1A$Yc{1D2}=2`?X_8`xZ0*LCSzaF^3FP z@tplX%1zQsnZ1D20z|oRr16V^A1Z1Ca+fkB{D;rz;^6qa_Ia!YDCeVW0r{0nx6Imr vPTu4o_o7*R0koeyy>u_n@eNQ1N}l@*Rnk~4#NsV|00000NkvXXu0mjfoD&Bw literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/190_2.png b/public/images/pokemon/icons/variant/2/190_2.png new file mode 100644 index 0000000000000000000000000000000000000000..eced210ae5cfca07f5adfa1cb73022489f67d84b GIT binary patch literal 739 zcmV<90v!E`P)X00001b5ch_0Itp) z=>Px%ok>JNR9J=Wmp^DzK^(`wQ9-1I5G(}V^nOD&YX%9(%OaI_aBvVQ2qhF8vIv6h z5IP7hHi1Ma)Il&1LbAmUr5$W(P-vu(6tUpc;X2*a4uv|(&*9~cJoE2e(qNH%;dpmH ze#d>@?|1jR_X5m}tE_AP8la!XfWvAGIIPBi!|MM5BqAmv?lvBkZuoH`BCci}-B!g6mPm?Mmg|#D(y(lmAOLUu8T2BH17G8WXDm6xc zYO#bh>F!AYwe&Kqm<3svSg4$6zg7q$;#?$%rQ>tsI%s?s3n2nUd7(FYJe5UZ?Fd%P zg1SL+kzm{X9FB%emjYmLij`ElcHWkO71uWBOnK72bbRiC%te9&!2tuLSV5}3s*ll$ z>z)*reoIQHHc$k+MRXJ&u9pHhN?rM%ra$1D V^LnKC%E15t002ovPDHLkV1g51SiJxM literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/190_3.png b/public/images/pokemon/icons/variant/2/190_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3523ceb6b6f21dabf73b6cba38c566bd2f3814 GIT binary patch literal 736 zcmV<60w4W}P)X00001b5ch_0Itp) z=>Px%nn^@KR9J=Wmp^DzQ51*2h=WTPCsSI;0UMCOTU$!AbSOkuZE^RZ>NKl-CGFx;%)1bhv{BC+pzi_8jcJ?du==UTU;Rf788(d%0hJ z=iKvdV!rQlnsx49101I_z?13>@T58eJgNR4KoRjp#6N1@E}ajvNJRXa3u>qK#dvNHUKLs7y!BuyK zcvrUpN=gcVrmCA%Yq*-@1Y&;$(0yGsPgutVL@5>9xd?2} z%<^OO=8bM-q%}{LyFt_%?(sKapx6cf?Qi}4>7#*Yi094!t$sGp)ay@AtzI;#oQk<>t z-`E(pskn_$ZiWUdrux{PnGM85BruP6b@K*D4vcVn{H`gFTu+*NHwMkRirWZ#EU~ap zei88(79KM=c-4UFl$VFbNajZPvh|s%{59r`P`T+0-ET-pDG*vy&nD;|;jP^5?pN|9wEqsfWQnBi~XA0d~^C(VEkdzeq zK~XAX4}3-9UENWS0wOvHyXpG4`N_nFb9Nx@Q~CJ-WT}vC2@WFG;9f{Q*8MSkEfYwg zi1?*K);OozPSmp^I|#x0(ru)&^x?po-_>MTwdCM_X^?h2T>l7QJ9X;+H2nmYCN{#= S2Xwsv0000X00001b5ch_0Itp) z=>Px%X-PyuR9J=Wl}$)gQ5462f-aplLFDR6gNsOqGG-wyVrpm=NDE_n3kN}HRT;SS zt6B&HO2iN$#*8pYEgEnUh%n8fK@=%W8cNi8tJ)-j?R4a{819`9o#`nG2Ja6S&O7(q zcYd6E?!Dm3l`B`ST)F!1q?8h;ae9<~pE#T>WcMXHD7jKfWPVX(eo>TCBAc6134N?! zdgP;-vINzj^<2DTSY#n9`DjM+(To9glDGa}P}*J{j{z_pNdvIfpTHZj1R(eJ1A9wb zRo7cqkg2|R82k1MMw-G55fcF0w(AZJsFV^71@I-ijz7>^7BkWm#{ii*u=2e4Q^@{y4zvi3YkGS4>R&PqC`qjVq>Fx^e(RKVvnw z@yLLspdL>rXT6uO{9OjH6i%ytX3W^3{_8-YJ?>6CHU7iEIu6v;9Jv3r%-_?yOLKd> z@z>9cm4N|VzIXwE2H$xAngh2S!`3{-mAVs1@%+so01xjy0pLb&(#(Hb{f!T3=?k+u z9y4GXlJMpMYXjk6rrW%||oR*7isyN4I5ibX&B)@>x?#mE8n8$+YYw z(~e)0Bb}^+er(%zo%UQ%;_*gNb*)u2v=PA!-#;4kQR Ve5LHThK>LL002ovPDHLkV1nLWJeL3f literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/193_3.png b/public/images/pokemon/icons/variant/2/193_3.png new file mode 100644 index 0000000000000000000000000000000000000000..defaaa1ece32b503276621481ed0e87f1c881403 GIT binary patch literal 688 zcmV;h0#E&kP)X00001b5ch_0Itp) z=>Px%YDq*vR9J=WmQP3&Q5?rVD@k7Wq99woff7t6A=%3atEY-Y0)q|dxJY0Uu`5K2 zw`9d&MMUcq9W4(^NI{-9AwdVW!;(TBb_x-ygNMDWr`KV5&vE}b8wLjRg@NC^_xruy z=lyu^Hv_(W`SRtkDW5fi<=jb7%2tc6_YDGIr%b|0B!Imd ztAKXLN5(^JJXk^5>wSZy+k+%1#XF7@Xc$lkA>BKjU0UYujqYPU>GmLz@eu586HexI zA_bOi4+5~Uuvday*dv_G=~%VCX;`urWZen^6u*B2V9aVG+&fBVbdm^fby5XTt)kVy z6i5OjhIMSLnrcqCD`97*v7)cZZoT00$}YLXIqhSff28f);amkcKw|%(E<`VLWmjCB$pC+J!EFW`2DZ3oh-B(S+`s=5cpp7u)XG4mS`Il<1*v zJ_U7!^d2ffs9AuBL5ZmlNQ8u`3G~NGO;W6BH1SV2{_IuH>eapXyWj73zt8XU{r`Pe z9KUR-&%;kX3;=+SB1)dX&jI{++QXfHuO3Jp;3rQuYNZhXyrwyZ3s6=*696V%r&Y;Z zvN9GU7#)n0Od187bu5ntfUt#T7AG<&4osucX}t^@YHoo*nv_9F5+$N!BPb0Wm1Ce1 zbC#)yoD4!rLJMC2!^{{@prbe(H0!i_BW9LCqr4cuc6=5>;3$O4kU`-Nfnc&S9*kfN z6exue0f8VQFjNW?2#Sc)&|nZn&=4Vl3K6LQnUA6KF_9P?e;{6*fmCA&^2l*v{7wdG zIF7}HLX*h^n?hj5kS-KSrBVk6iVApyz?iM)aI-*foHM~7r;LPwW;vSCgAPVKjmhF< z5U=W(4La6It2d7OiT9Y$jI%-!j5ur>1(Jjl$7UI{qryo-NNFh@rRR)1R^-I88ir$x z8s=}PoyUI?!24FIbjo<3E;^l4gppgamN#SEArC|wRoN^hOrVTRmVuy_tmW05eC_6=|(Jq(J}^J zFt1(6s1`~krqCNXTu)F6xeVfMhH09_LM`S1NlmGF4oPp*`3)lW{9!J4BQUZ&jjeM}O$15U{${b&5X>c?PFr08? zw+td2VWmiD{4@Q(JupUV(oj6W@OZy2{%yT>Abi8HJyaK@H_j$T>G{rOaI~oX?u!7xEmt8AS0%r8?Tt8%Z_?~f7Vd>6ZP+oe z@uBKe(j-}`E~tFNbW z`yFfTw_ne_AvyxRLtiLUp3AZy9ZcyGRc_xh>)6Rf^J3oYJ3O~=>om8w5m8I25;+H6IO;H=O_YC*ByyG?8`(jIy+mV|#qAzusEeBOVFKsW@E>GzgIPyiS z7JjcS_4cJL)|#Ms=X*loXHvCwt@{3}u3%2fs+#n+z}NOq9c((--Wpk@AUBuW&s5(Q z4j<}k>kjKY-4i-x5p1nrd5&HkH@DalYwOq zC%(DV(OqEL*C2N9Y`B;sF+JE$s;kymxJfONrgJYL8dvdSGk&bWeL8b;_q&efC`I zidY{@=G_aEfeTa4CI;O(qZ$gh^;r`3(TF9*!_Vi$npZU5`9+6`eM7e!ysqjD^CWRd zPCj`wzNetqmVE>7%cv@9^Ie|2yxzYeq-^yu#5;eJq6yA~t-ahT>&I7Ic0$eBXy`-J zOJcSS{C0V@+l`ov@*k@W<|TDYR377hLqNrEhhQth7F57 zp7>=XIroFu?&3LA5e8ns31Br}uAV+LZ^61&h6Wib+JfjXJFNv0&3Boj#R ztU^)RT2btR+b&>RYpbV1Db`w*u3&XlmLi~n>tjLcdiJaqtqQtjRoojMS?k)z=^vYO zCUfu1cfa5Fd)(ihHE9cfBMFTOMG!=ilB`dM_jq{yDr6%3&*{$UhPO$s`zl&jWfmdn-8o z5O1zdHa}ocnrTRrCJ7!OrQ{gOVi+#fP;wR{Fw#uSl@b`CRA7Vxqfksu6KWbKrK3L? zH0R+gbh`eTQDbnXli9pp7p+kEd_K8PDHl9e1x`^^fP)}Vh(N^xrL0YFc8YdVrg`aULa5)z6X&A_{L7XekV;?rou?k=Z z4&d~P5Q_(~E}P&LM4RwE)WO%^F#uz0Fa&KpP>aJ6G$DEy9AVsf}L7(M3&(RENAz4hTM70Ekqi~`{ zDTdOZjGCmBN=i%NjB0GXUSRVAnGLKTsd7$WA;*8M0>+|cl^Bi^&%o?rg>lappnsc*bc z`YEVNT@!xoz@u;OjjsuRqj+y?iA}K-tNQpW!xK>@=eNi0FEVbq+(YVD7n|*=pSf)@ zZ8Iw#S}lK{uMZ#a<86$(>dyuE$;olrzUsSF>)_G5lu*05;(T_-!Ml>H^r7)&82hEU za_gBsUrqRuxWjkedpn|};nbPhnoqi^hvIYJMgH2-@W?VrWa$f0g|8(wy}mulCu?!G0{_p5f1?55hI$1hyI6=TduM8@B8 zY^zmQl?jm@{fS9M2W)j;W*}21mJDPZXlDS2Q0Woz7yzZdnk zKXKN*vEuia6z7m-lI|0(M|XAQ?_`T!zR>JO&de?Upk*c!`-_ItcM75|XKzaFXx67tra9#M)+ z{@!n*8s=&Dwe}7W>^c(|{9DyQ|a)vtw3yVdaUP-5TFy05=2 z+t@VF&*y%;vXS#JJiRVT413e^?aiIp$nWkRX=+#$ z&FvuuT2S7Ynb=4{0-< z$~o(vruau`Y?Je0E6(}#uRQna?Iq7OU#hon8(J8>WDR-+YWbpZXr1X|b0=rtLmu3+ zD{SBCycs*Xp8c?S*6XXM%<0HKo6?C#9Q`7GL$7e@?6_xQ`tKAfXWs~aum1DHj!t@3 Q;EOJ0!9soA)60tg18-u*`Tzg` literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/203_2.png b/public/images/pokemon/icons/variant/2/203_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca96e9d14c9f8221fa4a5e5420cec1059824432 GIT binary patch literal 708 zcmV;#0z3VQP)X00001b5ch_0Itp) z=>Px%en~_@R9HvtmOn^aQ542cTogn!G#P{{Nh#?fjul-5mlhNhrAr+x*iIcpG@!NA z4i)KMMK_)N1A>80j?(I6+DW7dG2oDdmmB z!PToqxHo`OAP@m$A{u4E);B$To&K<8D=dJmSEojWrR^XD);Bk4ps$Yw#6g5N;P*3N zH5~RJ+$x-I?nzjT09E%!yPnYQ?>}742y-@{=R6c32z=lBN-u|}2%&{@rf_(N79bpe z7{;^iQCjcs=OmYQ0~cigQov+S@9UNN0scDq!Idln&h2E*Nv&i7d+|PIt$UX{wj91u zRkuvE9Fz)1o528}fMKpWII{7PRIvHV8ShzacuKzHfpM6%0R>Y1;GuGv9tQ%nRB7kO zGYuEkJ$fCW>I$gBNl(Nx0R+@^u8Ei7UYx@f4cbYe7&%xA5N*b8APoc_ztsI&=sKF`vK@Al(kqr q0dx||x&dlL&1lJ;J7}b?vG^aU$cQf86-jUa00000x$iEP)X00001b5ch_0Itp) z=>Px%h)G02R9HvtmQ6@hQ5c3l9ZCF2T?7`0%uvyQyAYv3BnT2)7_`W6rI=y}6G0G& zBDhd=qZEY^x{@LclnPw9u_8ATEl2#BDFRU{8%qa;tMY#ET~5OtIOksPAkx{~pE>8g z&w0O}Gg)-RN7fPNqyKv#F^*g)6ymF&pxS`q8h`*8 z&M&9v_BR{UFGwT6{H`{#I-bzzi)Yk)yVV#_-K6e@i~uhV)=+daOu_C6TK=_egC-+w zl>PF#U9e8#fZHuPOUaD{o$0wr+r1-Nsi6%Bb%^XWw9wbSPWm)8%`OHW-~FePq!Y&4 zgmsGEKI-N9jrZF90h9uP2q5qL{KA6aq9|WKKbUnC7Qo`b52M1;b`S#NLr>{)eJu-! zg9vZo`2Yi^!eI@kP`km~NYDyu2) z+y(kGKFP07Hr}xB(dz(}Q9u<=dLrHlAfQ%zUh_2Ei*xMqM#5Dd8abE_5N*b3APoc_ zzq_eqPk=a^0pSEFZ3kdzGcrseT?0x^3M8IYP=s1wq*1$Z@lXH(BL#xoQ=7Ip=k_%5 z42VAu$)yDX00001b5ch_0Itp) z=>Px%WJyFpR9J=Wm$7RTaTLct5mD%YT%Zmugg%R6Nf9N+LJdKOc5-M32PX$J6$hb1 z|A-7ihl~l-se?m1IK@RuT8Js6NJ@%=*ToJ!^pbKz7Jm-mu9r5N!z!IH;RZ_8A~xUssm6qEwZ4(hVC0Nf?_d3QZb Qp8x;=07*qoM6N<$f}j^djQ{`u literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/213_3.png b/public/images/pokemon/icons/variant/2/213_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0edbc1bff3f7f77a98f91b7dafb183e9ab9feb GIT binary patch literal 645 zcmV;00($+4P)X00001b5ch_0Itp) z=>Px%KS@MER9J=Wm(PpSKorM6JLFbE328lqr49{?hr+^oD0&dQY>@@Qiy-bE{RjL5 z_8|KQ>|H$8AK*n;C>{$Q3Oy(Yi!9P5h!p8I)F8b{;vvk~+DhAGls)u&N?tNEpS(Bk zy$P(f)>>=*Q*GoKETv2)?}H%7HQzj0SqDlf6X#%$E4Oa~Flcw6*-A`9W&)H_CfA-F zP1zKvX-Ki^04Zf6#P4Bej}G;FTX={p{~zN6ps9gol9*R0Fr^I&zm!mjUdwd~g38Ho}5(K_p2T+gKs*7Dx>2#UK%79;36qdA;ip4tap5pt4AAc>X00001b5ch_0Itp) z=>Px%QAtEWR9J=Wmp^D4Q5?rVSK7&Gy%8RCD1W&gIf?>vQ-E| z)tU3&qiT#bY>tZofmf-=TE5O*L0v`dHG=AV8}!03csW)2a+`97jQpv-uc$ zo(wMyu-TI&iK*i&?*M?~QG;erDzND?02YF@bp9+@mW2=^6ke8sEhw+-ay)9x{D6Wj zSYO+q+wZ9LldW@tAeb9c+hz`L_AKePDQ|q6STC>a0#L985Y=e2Cu#PiRve=YI*x-rf!A{rZh`+dxzn`-!84jM}IMGZ|k&6^qgO=_wO%kFVE>W8{NlxG&%H563M^ z#SzWaz1o*U|= literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/230_2.png b/public/images/pokemon/icons/variant/2/230_2.png new file mode 100644 index 0000000000000000000000000000000000000000..531b9e30568176c2f2bf75cd7aaa2e1c47b4380b GIT binary patch literal 677 zcmV;W0$TlvP)X0007PNkl>;*bHzJf!34-Xs+8!DZym=B7y)@!cXy{2#rRYTw@gh|B7TQZM zLO~JY!T1pmf&^_YCB~v{DMbi{V6a&CKQP-Rq-EdRmmrdXytnUT=l%9SGmj8;tfRnx zqJU*tyZ`K`0Pfo2ligN8hFbB}UQj%H$ExQU1N>Inpd%M96JW;f-{v0AN7HGNu__$) zck8^g-#hEi7u+R)!B%aXR-L|5sdVu~yBnx9K0E7%(L2U-P#z-+R^OH>(sPn5i#ViP z*^kU+LNz0R(a~c>qeNTTJ-s-@w(TmY3mYge5JG?qC1O;3`i>ZMkCC8k^7>hx$xq+W z%EQ1_3^-Js;*ORfG%E41vuX?*7(;BXNiPdNqQ7~l@FW^nR>Dh1;k5HNCp z7fdc>%*piZ=mX7w35A zmE;W$Gt@_Z3UGs)eTRVo#j{r-A!l4 zm!YUG92^({gd@Pg>c0xy%hl7n{gstNKI)i}5JSP#-ShPM%MUs+GRPdu`NQ1HKOE#B zOr=1u-v}Ta0rFmMl3slH&Y+>6Nld#ySjX6J^X0007aNklY!&WvRpJd~!-Js~Z$Ey2z26(=DO0mii0p{R+C%5QtcQuiWRpIb_uFgxh zy%XNubfy3XtDadVnjuOg5;@M~eRiPI?~#ZTM)w%~Oj$fpaP7wly*w`=3KEC3Z~7OJ z-y79D0j#Snrn*|9zUgbd5Mn#Lj)J-&&L}UW2>kVh6dT{OA&ajG?H-g34_C0y7@F0} z!;GsKaHwE`JC2_*5a7h83x|cY0HK_y2RMNm^7+X8Hp^pyi+?;|VBMQi4oX!bzeG8} zJu?gVI4OT!!yFjHP%JnFyklcrU4aJcdqa!0*V@5->yN>YdHAil zm~)_~yPZ-Frdrfd!ak&8gFdi;n%;TOYvn23Lu(HH-{w@?z- zyNyMzWK=M!7d~AW&vFm|PzRT-CPiNbbeV3v=PBTgmFC6P0000X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005L zNklu}cC`9LK*xPzU`1)lx6R>RcS03LHf7pd19F&2%kvuqASkhM*;fB8Lcq zHu0b#hoq*4CZVQC$(}CRo=}2uE#2eJH1qVd;lAVhJ??$@eed^u&m>6_{O0KfnVA(DgRF*R#ODPP3R`-6Uf@URM@RypG^>d7afP=`d=kN=tjS!1ZK`v-T)k3uTgc8T(+J0{{odcWkRJ zIVgA3lS`O^!ot-LzYpNj{^a0W^*HCSrk=6)7O8HQi?@xUNtO@ z3T2W2pxNfG00TBJt}m}JL#6=$F{|(c%q6&4BxxCzo>=VQc-8t7eTGYLvrv!wBK^t1 zb|J2WYgFHJ@V5|G-Z)yV)%C%ug#F7q(RlLfsV~_`Sk#G$8(sha002ovPDHLkV1lsU B?#KWD literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/233_3.png b/public/images/pokemon/icons/variant/2/233_3.png new file mode 100644 index 0000000000000000000000000000000000000000..09d9ae1fe59133fb8d94476af7eb7f772dbf65ad GIT binary patch literal 559 zcmV+~0?_@5P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005H zNklF-SsD6o!Avsi{bUkfOUK5@VP_+4!BxCLJ0o=rPMI3c3REC02vsi6lwPXYOO9(A8Qjq2_Z5q(i=$RrO&8W-*uU(F`pU0md;{xiSJdp9i(CKz002ovPDHLkV1f`F>G=Qv literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/2/240_2.png b/public/images/pokemon/icons/variant/2/240_2.png new file mode 100644 index 0000000000000000000000000000000000000000..118ad1f4fd26bc5fef625b997042fe13f5e1ebea GIT binary patch literal 560 zcmV-00?+-4P)X00001b5ch_0Itp) z=>Px$>PbXFR9J=WmN9GFKorM+Dg{x3z=KQ&gLxTZQq+dF5D3YfB}<`0mlQJiBV^0o zwR4w@Sqp{IPf$bg*j5;vL5IPEkuicJ6i?S7oH*NAauRMK{x5g$=?;E+@7}wEjW*h7 zqlc}a%4QKUcCM5PT%Wb8>ap)e5izfmHvo)BLl6vr^}!cY2jnAPxTn#x(r&dogv1Wq zEvOsewE_YZIwwtgrJW>43*X11p+A+Qd#Bh&uhs69Aa-u;Lg%%>foB9=pk=sLyF-#3 z(TJLa#Ff+R1?Z-4JQ|kvGI%3uR$&7?0F_d~L=Q;Q9_JTl!0mZlK67=QL9YlZrGhzA z4i8@e(1@B$^nmk=Gt#tI!cFv`azFIiEF$K*yS3okxx69EG7k1mD0I%8X)Vp#yUnQn zjOUk6O8dII#lhamoohwJ_!f)zABuFL{h1A3<}191E+MD=H={_M`Rwom$`xRxSON(IXW yV^eG^xvmFnWr>I}#u#_}*Gwz2Q2!;|gVSHpJKwFB^#;!X0000X00001b5ch_0Itp) z=>Px%A4x<(R9J=WmN97CKoo{QmEzf0cy#?pmn;d?T1=*PNY@Z+2?>}kEgemkhC(M( zNViO-cr+MHA#J+G(5|H*&mLU+Ot%^dfwwHz!IhBh$tTei;va-`k9Vg}@7;SR*l44T zHoDug(o7Z+9X%_htfVa(r`3Jai6Ww%v(Etd-UNCL4G`HlKh#-38Z96qTJ|rnopNl` z*G;UaZx;N#^TX7Uyk|PG;J5kNc^8kD;e2mmPL77JNm-7}%(al~UHRv#ax^D#Ks~ z!0WTGaeFBgVMG-H4KN;$apxbic134$7FQ~j*cRAz!a;YXg5N%Sz{yE%?LBFnVp#nl z2<$pAFPehi2H;!k0KflFMpuIr+DjoAO60!A?JuUY_n zY#l75H;!njitJw)t#1q{BD&N01i-Pg%P^QR3}$QpPK8ns;TUs9`7Xx6QPo2QTqi00000NkvXXu0mjfOk^4q literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/255-f_2.png b/public/images/pokemon/icons/variant/3/255-f_2.png new file mode 100644 index 0000000000000000000000000000000000000000..adf8c6ea8bcafb7822ac98337abffc61219a92c2 GIT binary patch literal 534 zcmV+x0_pvUP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0004@ zNklj_Cni(*wGu z2XxJ^07b-hs}TNOJBG^zMy zMpq^pZH`s^6`+Z!VrW3K7!uhunfwLw!3sIgr{b4MJx`*P3U3aINRY^;?R`mAiO)qT zsVV^RxhM~(n%9%#zpr2`?z`MC?S})@TC@Ii@#DKCRpn*xsBL81K!Cx66wnyXt^*Dp zq`1o80%A-L&TQGEHW}ZKko{ZR z07Rw-KDEcrZ@5gpJ8jm^Kz%qx#V@nAyaQnOL35J0Zr08xiK(KgV7*Y|apunAR)>>L zdtt|py5^y-7i#u8)H&FSyiLxtaF(+Rq+Y0nbCP@ogvO^;Gqx+f2V2vOb?xha{*!bv YA64x()Q(wvZvX%Q07*qoM6N<$f{7#ZVgLXD literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/255-f_3.png b/public/images/pokemon/icons/variant/3/255-f_3.png new file mode 100644 index 0000000000000000000000000000000000000000..48fc5610e941b8812eefcbacf3e3c3ed1dea5f0f GIT binary patch literal 545 zcmV++0^a?JP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT00053 zNklKj2|_tFqKNCeR!!rKsch*5!OzC!+{_vL*#K0J5#-1~YQ$Dy9%X#fq= z0Gg%&G))6&nm+*wA@rb9N{`7{RRank94Vzo2;ppbI{^siAL;|BP~rRo3TNet>^D6E zW>u^zP{qm>>1k~O%&Yh(KowO**MMp>WD+sXCc*^PXSv@zz{(Y|UJG1%pWR!7LI@|5 zi0OMfnZh>|#7?FF@C^mI*gIxv|FHHIEXVzn-jPXnfKp1{o^F19*G{GwUyf9atQZIo z-;MyE(^+@G_;!TX-BSQwhPxPB2m#R2-j5K1Od_V&W6gmIx%S>c_h6ew`uhB=u3U0k zIM>xR!5IM+GCDT{fUnR0<@v_!4pV_X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0004@ zNklj_Cni(*wGu z2XxJ^07b-hs}TNOJBG^zMy zMpq^pZH`s^6`+Z!VrW3K7!uhunfwLw!3sIgr{b4MJx`*P3U3aINRY^;?R`mAiO)qT zsVV^RxhM~(n%9%#zpr2`?z`MC?S})@TC@Ii@#DKCRpn*xsBL81K!Cx66wnyXt^*Dp zq`1o80%A-L&TQGEHW}ZKko{ZR z07Rw-KDEcrZ@5gpJ8jm^Kz%qx#V@nAyaQnOL35J0Zr08xiK(KgV7*Y|apunAR)>>L zdtt|py5^y-7i#u8)H&FSyiLxtaF(+Rq+Y0nbCP@ogvO^;Gqx+f2V2vOb?xha{*!bv YA64x()Q(wvZvX%Q07*qoM6N<$f{7#ZVgLXD literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/255_3.png b/public/images/pokemon/icons/variant/3/255_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed47e69afac1eb6c970cfba9dc78ca552e675ea GIT binary patch literal 540 zcmV+%0^|LOP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0004} zNklZ`+P(xs&L)a26;?g7zu7X3Y z-zgkpP7ddQd5)&t$Bj0fi8*l+q`JaC3730MhNwcmNeD-R_`pmeZx=e*w&@ zI8>mD<#Y)LrvURRjs&Qps^}R|ZH7jr%uOQ6(ou?slLD60#bTB_f6KcyD1>kum9oCK zt2ILLD0a05KqwyNws=9Rbo%!d?8p6-$Xdc1pp=pq=l<7s?P`t9gUrClfq?**`3&$m zonr^Q%x8EmoCEN*9%Cc91;BJLh7f{ArL5QEp92;0_;sG;@Qg-=Ru;*oiro2Iy1FJf zBcMVS_I3dXtt@_do=p|m4!#*RYhz$;E`a59*(w|Y=su`U64PdFe3GatstVfmChu3* z8n?QiFzSUvJL-C;+O9YCwWn*aA9=PAVdt@-H;7$tdUKL|2ZYa0t6uC_d=K`g7i&7! e|NJKzWX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007d zNkl&c<-E0zo)yyx#xcP zo%1{Q+&MH&V=sr}KhR>>4irM@1FEX(usWVCKp}*ts;WZ>p?!Sb0)V$Ww>N+iVgSBkh0vu{{5*%=|c>FFgCBw_scL02Po9Eo4pS8`PL{2ZK z$gZrDo?GNiXGWi5tLxAbP*&{pa>~>m@&#-u5U>E0S=%b?LhcB-9S-&=Fs5Yq{-utw zzK+@huf0g%KX$-`>p2?2&faR&``MAjihwt+Pw=!ZXF?W6;|#Sq z@g$OE@008C^TdPdZqyPuJ{2{!%frET)hwslc%Q96iQGJ}5JGbg_7V$rmh?AP^H$hO zp_Zx`z%?AflSq;eUn!aHd!7hi`!1J2V@ig?XuKk%r8kLtu$K!@;v78U1i+I>5>qm! ztcH960GgxyjP-R8Q!>1c+(ZabJ)k_n0DN05agyFiRaG9| zpJRL~x;sE4GP}@#|KtxHE3f5|>+f2wID0z=mP3v#6#;nFQ(w~8cqS}YaJB=55ZbAh zO90I0W&un9BeG@(R>PVqdAJZl^KLY8=)`H}bF;NSQEv{pxxfFArv1$MiVLD#RPDpv huJ7Z2@1F&`<2S&KtJHDOS)>2}002ovPDHLkV1mFdT6q8f literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/256-f_3.png b/public/images/pokemon/icons/variant/3/256-f_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5d36370218b64749b5133b173b4bf7fd50a10171 GIT binary patch literal 731 zcmV<10wn#3P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007J zNklHkWvpCcwq+p@8WH3@9oHgoM;lK`pG+Zs3at`5l+_eb}-lYlXn=U`@&xd#K z-Mx#?G)-DLeE)$i!*iez!aAX*X+F2-^8_e_Ff~o{2_Z~Pov*AZq1FIOlu$xQoCL~n z1N97efAlWn(~|&>ZE%-OPk_;Ii1F!3USAz0ryATYJOv=1&T!?{RC6;Zk%_)Ra;m|{ z_20x-pINuqZ5_G-%8pI+4La5%g}f&X0xp0uYqi2F6R#f1>2Qtsr& z<)4gYjOI_&+d~LpF5WxE(yRBJK6irPoj1+X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007d zNkl&c<-E0zo)yyx#xcP zo%1{Q+&MH&V=sr}KhR>>4irM@1FEX(usWVCKp}*ts;WZ>p?!Sb0)V$Ww>N+iVgSBkh0vu{{5*%=|c>FFgCBw_scL02Po9Eo4pS8`PL{2ZK z$gZrDo?GNiXGWi5tLxAbP*&{pa>~>m@&#-u5U>E0S=%b?LhcB-9S-&=Fs5Yq{-utw zzK+@huf0g%KX$-`>p2?2&faR&``MAjihwt+Pw=!ZXF?W6;|#Sq z@g$OE@008C^TdPdZqyPuJ{2{!%frET)hwslc%Q96iQGJ}5JGbg_7V$rmh?AP^H$hO zp_Zx`z%?AflSq;eUn!aHd!7hi`!1J2V@ig?XuKk%r8kLtu$K!@;v78U1i+I>5>qm! ztcH960GgxyjP-R8Q!>1c+(ZabJ)k_n0DN05agyFiRaG9| zpJRL~x;sE4GP}@#|KtxHE3f5|>+f2wID0z=mP3v#6#;nFQ(w~8cqS}YaJB=55ZbAh zO90I0W&un9BeG@(R>PVqdAJZl^KLY8=)`H}bF;NSQEv{pxxfFArv1$MiVLD#RPDpv huJ7Z2@1F&`<2S&KtJHDOS)>2}002ovPDHLkV1mFdT6q8f literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/256_3.png b/public/images/pokemon/icons/variant/3/256_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0c529f838ba8c06e4e7ef5738ddcb87a18e20af3 GIT binary patch literal 750 zcmVX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007c zNklf2Ry9Qlc2qQWOK_YfY@F3Ws zC_9OCk-+O-I@l@$t(57oe8Y^pqBOIvQ13MR@y*PS_kC~X z&H7B!WGjd7KhR}(4ipjVg1WBz++NQUpoo~duKPs9)Tc+XV}bD204kIO!YG^qs&E7K z40x}#llGo20LL-7%cdv5mWD9xJzc!G+=`Yk=zRAGfcVfbmu_|!H-ic}P#t7yE<y~RnuGPKSuM5wJWqiNx%$E)Vm7Z-QFpvFXTH6f*TQZT>Z*zX zzMtJoD3xYx-|n2{?tb+V|F1ncP%UB5Uox{Hq^mbc^GX$;4rMrS&<{W;l}1Y#j;uzK zaR3^ZDru@MLrWM;1pQ1;4iyflIv9ZWvmdyABLaXH8)et?1xHqUVX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000AP zNklsi3jbd=|EAT7XQ$y1f6zlhyn4>L#k*Ty_gJ3 z5R0fNLC|iIQKYW0Ze!q(2#FfPW{M)QXvW4!+R{oIYeShu3i>3i*N1QpiP1ECGuoNK|mpd{?&Kaxprh5xsXB#9msjj zdjsbC5Hkjp*^*IAT*1KCkpO=W#sO$pzlR3bF?_8~BGCXVs>RG_Fdf+AK1lgsORwrkEy2zH*)#~~c)dDbHFouAiZ9a~9 zdp$kwvst*L!vcWqPF%GKJQ&2a%VG#=XrY!_l;LZ2aB-D@VvW~SokkOBX7Bb}10)-Izrn=n#Bu0~%swzp0CK-AhQdvAa@FkOn z{^j`U&s95XcYvhBLbzrxI}Yvz;OeEH>FhkEuE}S}a{?t!!Xk-b04B!n5|78r=_2itjdZGdnOnO z^|Pq4My-GUU0BLr8*ZvB&Yv|KQ&pwv!yi0c-=V3cMVuLVkbK4c~;k*Y}(?%jV>r&62$rOPmCy zM8-FbQLR}~lFjT?tA^!C-)A0&^h(hCj4gb~v O0000X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000Ab zNklTSf|IotfSe!=1MfUdvejayBRbAzvl)QyNSr+@7h$!`m-p{b?*YaO#t?9A;#+=N zJd3M|LI;Pry;>u$_+&j zCaM*X^UmzJOl$FJN_HQ`<8m`geI)yQO3JeWrYo*i&znMrIR0yH%w5?&) z$QT{baRBxf&ZXS7Ult62y}W`S7Jd&vM|7N_H?iEMIQ975L4^?7iK1mBmC}r*C8?D1 z-^ET^2k+B$XcKpPV-lIOIruTWjvE{;pu8xSfdqIEe~80bO`O3ntL z^%pahHP-w^FcoQU>Sfo@Gx_)SD~6-jWIxhA47Ue)jKd;&jOhW{9g#P_~4}2f;|4@V# z*5a(AnYZ_19jAj*+f-7W*B5sogtowB!B(T-RomI39KheB@?0DGGJrY~FjT?tHU9N6 a-R&(pO-JK}-$Eb&0000X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0009* zNklt+y19_v8)2UFoZtJr z&--ysjbRw9;SE*zM!e{fPNLE3lflg1~&p$y*Zuym>W&uIn{+Amkt3ssnfI z_A`DW#?hPGY47yYf7pv1S4swf4CF{^&d3KYI>Ztz?DjGHz(q2eU|{wL?VWyJOg$wW z>dCsd(CoEmu~=4f0(13LDP>rJ>o%>=zKt1m=sIuP&Di6lCQ1Du%vy5f1gx z8@!HtxS##M7htHFx;>2<6Ud6J3NTj|WtfxEMEZg=?_j7IfPvW~jE#i|1cDjM5Ty5H zd+AtlB?GO!x_n@Z8B88zU1|Wc_T;y*u@I1+G~Urgq(jaQE!|-~P9(JefIK7DXcYw7 zGwD?x*4EbJsC59axyfbXBy)h7y+P+a>h?66v5sBXf~L>lQrno;rs#eDyd+#fpdiC; zAFZx7G<^m~t%J|sVgMPtN_(dtUrU2|Umy@<{6vgoG=X{uP+-2>AJgd ztw8R|mYUdhL;R#zL-+EmslMlxxyK}c_V zGMgoarq6KkLYVHpLnWORmvmsY<5mYx0r2?i4YTHw(F6xKbTjSm&f4;1G`jl^0i~U` z%X(?D;-m@E^T7+ipU`klfOXj^X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0009( zNkl^> z;vqbEXg58zE+T}I1(HxKOnXQa=CCBRbC8lwdDtbwU^*<%I6M34t_#w8Sy*PC`MuBk zydN`lrfG7RTit&JR7#nKVbs;olheuuDy7U(kDrkpol;1plohnv4jm{^VBs@<00zF6 z?#zJz1-F&@gV%jDFH$LG3Jf6r?GNF`!O~@p~p0)dO`#nTx_LxX!Ch;?kzTZ zomniE)x5xbJylAXcHrsbyIHssk9q)De-J6U6df3_xzkNzIc41>KxyM=Z&<+SMw+{k zK`XO`fD(7H_haQi2?FE*r3Rh2zV%hyiD*$^p}2+Wa^FBfF1>or(yeLQd>-P-9YU@~ z=HAWVPDJqs16dQuj;skVUlwJU^_T`gs<|6?A_~A%Pl)ao7txJ$)-nW{J=s}0c3jy& zd#^6dp0|R@gX~KUVAY=d*WKa*GLxpOe+cQ2YH9}{q8TKXQvk>_@{Lwepfi&_0mVJv zF5bpW-MwF|w{Vg2lKaG&{boT~$E1cujm@>nkmR}?77v2j1zL@V>* zINnAN4^}ceiG5cIHn=!dzjt4BBTZ;)7ColX)jtGa#SmmfGpy??212Ip{Jx7^V3`-m zBUyW}?9T#~;T5FRpn)SX9{||@FNEArtN683c9pLFAs+fpGMW5g)tVsR%w0z{ zwO56#3J6#z`)rj{kJP0s(v?7K^5X71`N(>B=zyxJ9qYHkVXoPy4;l7qzeXJTZ!`Y@ XqM;4)DIEui00000NkvXXu0mjfmZq*J literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/257_2.png b/public/images/pokemon/icons/variant/3/257_2.png new file mode 100644 index 0000000000000000000000000000000000000000..305fab85238f8196587b6ee958dedd5f9629e841 GIT binary patch literal 990 zcmV<410np0P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000AN zNkl-_OV(JqN1$ta3@!Y)}h8t+> zW$4aTy#4I}2|-#04z%^Mt8^8v@>&X=hXK$kD>%_~hHt;gQRnC72*CP;u>_pA?kEd3 zEyv?J8G$RSZ!|$Ir&OEv|DNLfalIv^rG;9iD2rBE!I!^&4?wQNOsu0y3qyjnA-9wu zn6nj7_ubx^uUUWNCe^_nI;u3z9^9kae9Vx?1PonDGWH!It<}Tpm!lN_{s&rR1=@qZ z*tlo`*B%d09qeJyt&`U3!P!s~){lh7Gvt#3g%HNtr6mCPM*`ThZ1_h4JbQ6lrTFjj z9H*qw9J~ z=#m5Q=7&N6(po+EZJ89+71L3r0jMDlMJ5CYuy$z)UjHzesp&j>aXYM2A%rnwb^*?Y z8eHYIfSKO$-cB`P0ETv4R7376uT>Wr4L2z;6e-KQoeCig*OeQT)i*{gEoJqM*aM@? zY1+xF(q={{#uYMQ_uyoBiFSiFBM`3rTtNWjtzhR^Y@kEt$i0ZkxBX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000AN zNklFNbFp(p^zyw5ESb}pta2igL(T9&f%u1F}Y3L z=L@ruPmggwTS)peak9gh&f0gwUF{6ySRKlw?RDga#x% z=RX6cdJ!82l-ZJzNnF~%H<19p*$)BGHXh=n+01AtOjm`4)1HSLpFutFb|gag(fl~v z$FVqX2x+KM%Ph(m4TbsP#`gdem6ZbEcDmw_U~I_^ zWe{T33aIrKyO=u10*%LB(R@D=H>nUpvwX0f+Pqu_ zmsWsS_Vzi?se%DGZmm>HKDe}^E;1QzU7#K*Z!9U@p zsH{}=zYl9Fc-;Pr%3|ZOSJ=v}YL3#jne1dx2%+6_Ux_<5?eS6H-lRUeoi0@%_3cd@ zw^lOHxr;i-f_lx^J(vtQ?eTHgUc$7;2SDeqH*wUQio-&zK;~AL0qFhGjIG?7y$tG+ z9sRR>y(h|@`5b0^!>aX2q<_K-#I`?SIjX*g4DTdsA&X1S#vRimgLC8fC%g>%HgUG( zUxs~~80v4${$9KmP~!C8SD)`m7&p}43T!|IB|^S`+Yi1C`Pb~9?A?DLJ%=P)X00001b5ch_0Itp) z=>Px$`AI}UR9J=Wm%T4TQ5c7R6=`E^3@u%}VlfyH2Cbo*7z|x7sR@agEuEwiF-y1+ zQjwI2h8S!&7Dj)=HITLzi=_s~zfSS{#xKG znu4}81#M{x+R_xX#Ym8d1QGqpE66xOHh(xp!LOh)C=T6!Qx$!n^IXgJqo(Aw*ejYP7*LMJb zxw8v+o)=JEQ#nB*5}m^vxbK+-09-v>q8M}$?d?N%Z~wcJuPuzAuzTuXE05*IQb9RE zA`+8NDW!9{+%kpTQ;ZG_p=&S(07$JIC?#oC;)$tejBV^;IX3^Pm@K$|`{*C5mRU=X zC3!3-+DML3O-)9-i#^W^@FG_am;QYHmcz$0i%0(V$$=>tG~Bfq?)3 N002ovPDHLkV1gK;{OX00001b5ch_0Itp) z=>Px%3`s;mR9J=WmoabCKp2LfL;QfkfEOhEnGTVVP%>bK4xt0G$Fg^;IrG(A+KcV?vt#0{J!6vZKbv5 zD(l++2KbkjfOWM5tg9tpT`d9YsuG}xXc4)TS5RdKLlt2lFA}&`#4bS&Sp=R{od>B5 zm~}lG${|z{tvI1M>db`{5pC+BimcbM1{4wP5)f>x(;Rh5-&cgQaZ%ZRZi$HA9v}Wy zKYsWUfQiod$RMw~1T>Tbz~1-wL^s!XtM^FLRFzrJ%0Us)tvESVOV+md@$MU0*8`xT z9DbeLB~%fiigLJ#&hT%nTESTXiima|Y;pAL4FH4wke=V>PP5J9NB2)f?%i5te|nJL zTO1cRRvDF!_^fE>$;4gM{`7#`EBA6o%Q|V*gC^o&V;z9k{tm-*m*-zUp9xk3{JHWa zpO=lf(k3zEqN9u8jBNW4DjYLunkuu%pg+v(vqz4Zo6VDTJ+{Y(R{aNX-4?J2Dk6Hi zbHwI2p6g(9)S>6M0cep_TBkB#@yHqUhtTzKo_+xSxMjf1gP6X(G(aHVEIq$XD^8f` zjLmVJM{ioeKo)DIrM0enxvr~S*VShHX00001b5ch_0Itp) z=>Px%U`a$lR9J=Wmrsk@Kp4iKNWBHyFQ8-!p@%>l*mGI%qEPnYm#~+mix;6#4;EUy zNUr-Oyez^7mIc}KLVED92+qMT&`NF=r-$r2PU4?TjM6>$z`!IXlixh=pF~3lftRep z{{~3Y2{5ltfO&NSRK*w*j4_d%?^0$!okh3Z*Id>&&JPAi3nv#%dkEb(3CCzI>rm%u z${k|HnDDPIwnD0I*`_1U+opr-!Yw%G#;)~WWdTX73%cT#v39jbdzuhgqgd)&e9*n)_E581xr-d%nskf>hxEU^;T-W_sNK_oX8N zCSiLY%dvCrnHz(ijvV>MsLrEn$>A)JdwBvF*VHRu3vbiJvK0Y`g zy-?wihy%&)Vv!BN#WL2rVum6M0H-4&6%XSvMq#a4j(lKlRbX00001b5ch_0Itp) z=>Px%dr3q=R9J=WmoaEsK^(@vSES%n=#VY+9d79mRD_mChd|&B4v!Mt92`132E>2} zis0BGg)YtTwhSRd2aDiP1R*333kj4Gu8{2w8M+7|a2=j^z4!9;-Kn7&{6IKQ?(X-# z`+xUNgE5AutY`llAW3V$Wwi!eR%<|6gb+puVbS(HX#=WEI&0ki#UQplcOYX-`D2+6)x{iw34g@$RT;VlBr|kco$#a zd=$TPNEr?QileG{7_XehxOwn6fKk}j&)a>p(7in@QF3 z!Zp5)eyNY*sEW(GlTZ-E;SS79_(}kIE$&|o#6qcBUeu*54o4|9j;`ARl5e-Fv=3^p zoJMwftjOY!aYqb)6Cu|Q!K+BS2BX(19vBX%8-gThI~ZM@5W*^@z`?9L!FW| literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/327_2.png b/public/images/pokemon/icons/variant/3/327_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3013d175e7ba7c2f0bef5315dd57cfbedba61ddd GIT binary patch literal 588 zcmV-S0<-;zP)X00001b5ch_0Itp) z=>Px%21!IgR9Hvtm(MH1VI0RlJFJLJ3MJHbk>nqsgacBNi^xf1rCcy22M!#h3^}Q3 zIf+~(wfrdL;KFT_T(&|AB^z1oK<}qM>${)vJYTlMKBsT{ZqN7iyg%>H`}xj5Szd-L z=c62;YKL+P<`hh&fW>0@;(LKW;LofgwJ_j{hXhE#6?C-I%gtTdO{DXw5+LAgOEcsipQSQmFb0s}{CgKoNn#Dq>hRcGqKU z1Tg-ruc=pTV1IHV+pDBty!QaNb+%2cAk;&U_YB)I1BeMmyr7^W1M=i%6p)7m zklF%p_%#%bo&M>uq#5}y9>h@>d440`V1syG*n3INwh?g+P(9$3JjiD;AW;B{S5tL@ zr2)CctRg&kc;$=ootz#;uRlBoQUT2iNW~2Q7n+?$gOs{oB~K2 zGn|DgDk=l=B=4-bV^qUCApEK7LnT1=qPE4{a(Ghq1wp%>GGM&_^!~4+JK%3Z_$S}Z adcbcMU^OnusM?+Y0000X00001b5ch_0Itp) z=>Px%2T4RhR9J=Wmp^FRKoo~Rmj(TL%~H zsY59NLDAxpv0XHKsnO8ExHJV*aJMVX5aGxT-uzs@DES z2oXtse0%@fm$*y!Oh7w_9bBsb`MtF{5lMz|7vHH3 zB_orZTItU9)dcc;)9pu1aHU9JP56{A{dto_=f`v!EnYu+4#3UlkHCjHXclmwS-}|~ zK&LS^i7UlaP8M*G(NVX$Q9phAhHwxujJrk-h73-Uu2Wu%mzp)ovVeZ%G_@;fybqR| zHA>Ced|YX_DN7|YHyc-Q=H$mOPEu97R3kc#*55J7D&+Eb*77f3zZ)NOkOAPT{^@^} b|5CpIVA|u+1f0n800000NkvXXu0mjf;A{vG literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/337_2.png b/public/images/pokemon/icons/variant/3/337_2.png new file mode 100644 index 0000000000000000000000000000000000000000..feb9de9766c4ec2e6869d974bcb884187765d988 GIT binary patch literal 474 zcmV<00VV#4P)X00001b5ch_0Itp) z=>Px$lu1NER9J=WmcL5^VHkiPqdy^zBZEG!sSrsV9NLbW92%V4+Fbez92{M8$wAtZ zz`>!xEpAe}&rz?G#gbc6xtHMxuiL@vc7FVG zdVaZ5dK1JM)FJ@0=@_?I0+v~9HEVo*yc=gSmS$E;1yPb3NvXHxdeO9+H2{wDXQDX9 zJqYv6DW!sJ!6lQ=F`JIDY-gn(XVbB$7mYI*HNkGNgxBrxIeFtcxM%R%qfG)J|}P7rTYwCdvGN3i|3lj7F;ab zSxm4lGr(^80LylGe7H55WYH8a5A=eoY6-~UbvszLvk;WXi3R^cdc9~wg6oTd&Ynj1 zqXgp~)c0SQbvbEyMS}4AB*R?r`NX00001b5ch_0Itp) z=>Px$m`OxIR9J=Wma%HWP!xv0)IbL7Qi`|;S6WQppg8pb#L2yble4qW;M|w!6gqb3 zRD1#(u^7lAQbZ_%5#@H!+nTgpax8VowOqByB*5Vp=K zrF1=iLAAKXk2J1h#p=0*UB{^BFK`{} z>jsB;o@zC0;QBoe&OZn=A^{#0x=~hC0WZwqIu`xi8P~Ds%|^%f%t)UXgGgXG`%8$5N~lw{7Cb#cok1G;$EB_7yx>+5pV?a;68sfQD;c`0H6D? UPx${7FPXR9J=Wm%nPlP!z^LOBbOJAmVVc zh=jU`Tj>y55FCqiX=g=zfkHcW=nIJ0xl<9xg3yvdvPl<98Un=(r8qei+`Jv)xklT9 z*M!<3-*T_V1b_L?pBsT#v0}xFwULNO5Ru^hPiqv~33K!7(|;L=NN9~3h)D2fUbhYi z09vC407x1J03Vta1!O3|s+0c~D|h!WaV=Oag4LqXkf9yS=o-ehi|4Df1U`Q$0RRr_ z9z4%W{5c@k835eohIqb8%Y9H=cknhhMAgYl=c-N~4=11U`>i-gMB=b{BY}eIH!d)7 zt;pb%0f|T?4Sz$XlGk^8go$g(j*e1FPe???A~e(s=B(X za~*9*{cw=|Eo!Ei~#K(XS-2b~_sG=&PJ5+J+54yN=h9#4JO%H1pg zU~Id7s+(;I_im3cwp|n}CG<^Ga`u@^m6)SjhUwGY6bxO#$j=66NMfFL?n_&bztVmhACWs09d%1(Y1}-3k}F` zGGk{xt!54YEY%&0VMooj5};C({HmEV2gu6$<1;!42B?pjNK(xE)sZp{bZiu-N@x+0 sn7&<#=_A{vi0Xwkas~ei#QG2V0^`8@z6-PA{Qv*}07*qoM6N<$g3DP1MF0Q* delta 553 zcmV+^0@nS)1i=K5BYy%2Nkl9Ct10YM1u zWGBgBmM%@`6tcLOp*Yn^I1maF$X2=O2w2Dzj0l07x(IH;&9B4xeQMG|KJTaTzuDikBF#Bc7KeBDE(WcWxPWNBE*5KpOTVU0_$31B4>PwrG!!X?1 zucCtHBDZ@s2fa9^UTe&=4jL}wy0mkB06tvrA-=C{Agutk8`{CcafcsA(Xo211Ayn0 zsbo8}SioIfhImeycCJs!x4EN5iFJAP9@n~!T+&aF!+&wdoLeXg5INS)^`FGj`NOkI z{cHzyd3E_rkNN(5s>J|6G&neW04BGNVs8T?qB8j^%!X!QcF%qR3s(z8SEfG=E r`x7<2KO#{{y|5;(Px$^GQTOR9J=Wm%VG-Kp2OglulYg7ef(+ z7h^+KWicMJbn_D9c&XQ7G8c>?ds^t!!G!z+Au;XJrDXB!q4pY(5n7BP5JDHN*Fn68 z5@+yPqVAw)xerV5_;+`&Bq%8LeJ)@m_~hGj3ejIh7r>rra)%pIonrx4QuV->>J~h!_`1r+=eqXi*LheVdw=micT+ zaOg9fB&b{z-ZP&qX?FvMoaxqqxutyh3Fv356DYh5HaUSeI| z>=@uCbE;JU(u1Su+&1Jc10rJH9eks?>e+&=`%+V_)+<}3ms?QZWJasc05n%UfG7J- zQQ7PX-vs9}^AgQfFBN#}+x@4{=&TsHmzhGASo>=w<?T@g=}+=z&IIJ+|sXLqKk j7uLebei{mt{15yEN)G{EYJXBm00000NkvXXu0mjfz-j^& delta 552 zcmV+@0@wYy1i%E4BYy%1Nklgt-p#T~xb6&JuM8 z{g!ukxP}{$RK?*7CaqL#B4HTqqG0J2du326%As4S?$Ch%gK{ z{yCt|GXSr$M`M3v+DWb5L9eohKNuS4{K1fS-Wzj$Ee?u^dcXPB03~&DdrB}4GJ~@Q z6cKf>bz`yIZ}Q1%#3N+hBu<+cmJ5L9hX@%UjOt1=OW4m(&}ln8@ebvcXi{ME-g{9gL7A> z7x`$o$^De5*gM|fA>gDz)cCQXi!Pa@HT`d<%E4c?NoZ>~en&a^u`0?Vi z0ZZl`Ksbk;Ftxr%DnPB>tHZflb(4SPLdk%^L(bZknM}4=x0g!Fujgi77H^f*5)pNM qe5tOFFCkS{AFP=x`74m?f6#Bl2L)j@xx(520000Px%8c9S!R9J=Wm$7RaQ5?rVmZnP`{1bjs z=#)5V$dW8J83ZS(F5>9qES`&GiNU2%TdVip5e{1Yr@ z;k}-zgO@vE2S3ZZ_l~>!@O|(7?he+hS+i!%qYx1#B1#`GYJXRXh^SA$zbX+?U*3LD z&c1H_c+NAgH>k%f0CobK0KEJD(VX)`(vx7k9r|Z%BQs`XPssHux!N@>Y>cb>m9X zRf0MVEtQQX;VcDUdBrV;j*2r5$u8&V$m7b*&oKB~K=Ki5-I{NqKm|dN>ie@_doq@Sl zk39y@Wk5vKn;$Qk1;eIb>rIr6CV~66jh2s;60X*uCqWTW^_a!yi}wJ`f?9Pp7r1W0000aN>uq=^u z&{?jYKCB<->0QZ?k&%&+u@oYrL`3QBdG$dN5%u}^Hzgu!rE#(f?o{eiVw z34qPqIsmPoAI-5eLM95>=@0Jg^V}Ba!6o%xlX|b2IAmgjmTgh=Cpdv?0)ILD3c$&> zM;L~=dk-igN>8O-DdPmL*^cty2JK3jPJdv`b@~IE`|r*1Gz>nDdx40k>hYcl6s6lZ z;92i!YT+QJL4OfZo4Iu}mAVc)L(YRsv!c@^w!s(OUHs?!X6ytmcBPExw%B?18i4Ee znXz~K8H{T+_7sSSs`r{^d{zBqf_iRiCZIOHdb9<=&D&GHtBY76V;R&obf}TD!cKP= zz=SLM6GpWX(#C`vc7_!F$uwx=BF-%rH>l0&9(Ub71AqR#K}ODsIoGl+U}|jjXzNbx zHVziHxUj)6409*jo{EmA$x+qgJ*-F|m@b^+-*ff8Wk}oxL`1#%^@MT0U>dewMB1ul zTT9tX98g5mTCK#(!yf>Q^96vJ=T4);MpyVE#BMY580QN!wsgJmPiKO`J+ztIMEl&l umZC}HttFBe{jr+n2W#p?{|aRM5BvcqxCVzHX}oFx00004%P)X00001b5ch_0Itp) z=>Px$S4l)cR9J=Wma$92KorKmh>L$gzzlid)=_XQ(beo(+#ST-MI?g%K_RQuf*7`8WFy85W6UVRq*hE3CY$jsE=4}y$0Ao8pMn27YCwQ00000NkvXX Hu0mjf#`V9N literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/370_3.png b/public/images/pokemon/icons/variant/3/370_3.png new file mode 100644 index 0000000000000000000000000000000000000000..39bbbf7277f5c59c3f3f11fcc71f01921f454124 GIT binary patch literal 405 zcmV;G0c!qX00001b5ch_0Itp) z=>Px$Pf0{UR9J=WmN84iP!Pxe5w}kL0L7zQx(G#g_kxp4K?EVIi-U_p$<_~1$P#c# z=oIK8beE*KG~m!2_5(P%`W$M~sHtG?fkEDHdUw2c@6VrimjDKX!C)}_Yb@ObiAa@W zW)|JCCzJCTB2umP5MCI=3uCm}!*7Cri#7*|NZI`nZf;KzOczBy@*RbCL7tzQ~o=b!q(nph3zzNK1zaY(SkV00000NkvXXu0mjfJB6>D literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/382-primal_2.png b/public/images/pokemon/icons/variant/3/382-primal_2.png index 2380442f03dd967c8d623561fab6268971440259..ef646e58170a76acd7a0e71830dfeed490265be8 100644 GIT binary patch delta 879 zcmV-#1CadG28IWaB!2;OQb$4nuFf3k0009(Nklw+^3HrGYu37*=rNB!0VOE5E1AP`FdkROTqj;*9W0+evgVGDr4u^%e1 z5Ta;C3OtElAn?6Yfkn*5HO27VV(*sttyBn699;U!*@11U?cUfAMz`+Yqu`Zg5=pgC;0zb`=uA&Pb~gf)?2-|!3oZO6LQxNJ6SlzC7F zd66|ZJFrb<#EcXO_8tXbv8Nw^{gZL^T?2r25WY3_Vj6M%Fgh#9d6_8vvV=T+t; zTp*U>)3uJ$;++_BobMKc;~{;!bh!PK554PBvL-SfxE#%42hN(vtaz~mxAo3-exASN zf|ptL^`MmQ4LcdqvbF*z+s5a!0GvqPcEL$4w%Jm_x3E;Y~y}hN@dEPwQe&zYC<27JK?> znBGHvB&zPjwcLAUaJ7~?$9L|7kxt~)Z|OPd&wqTqL_VteSkUXNZv1p2NA%YhuFi(J zd}s>4F=`Hv@BX-wlm#exMnV8Q&dmWZx_vi;OJ5m&vjD(c_i1&d$c1>pC2*~;nVO$l z67=o#bKicw0@%qA=|qmb);Y%Kvviz%O1^0pa4J(Emg2~nq16w_S^&MEI&9mquCiJ! zA!q^eO|yg_y#r7cqgs8|0oVN8@_X-93M997@(M1vKr993P)+gHTA@Z*OeDr{R1600Q4hL_t(oh3%I=NLxW1$3Fo@=oqRQ+K5L=MWj<4 zEEVaXw2Bns5+roU)IlL8T{F5isnE$K)1$bwOQ;buNUN<-<9||$6qFa5DF}{QiSRl+ z?t1U#<&RAjp?;^wyaPLaCGq+rA%wNzKj%^Jm>QFSV7sPEg0)-PhJZo{E4RB( zG!|#o$Ptaj>&hYB@zVCumIGSCwYxsuaSlKo?!)mG0Mq_4HHlQDPy`?u45_ih(_gBL zQq_SH0D*GYv$R48D^e(8B+~4@dket$uyDlH0ZM126MwoRvE?NIGFBddlyAlX^z8N> zz;1-4aLN5>8f1pF_rZmKf|c)CkTErprjA8^Rfhv~p6y zRbP)1Slm(YZkHQ&vA#AUg`%fxa_sD&20;Itk^@dE84NKpJExM=lW{xd=4iRi2q7$U zZIP63hJR!*M7DCs{Gi}&J_A6{y>12Wc29z>8ad)4Ln>Ka(zQlS)D%#z6IoUX2!GtG z^e5Dqbfr2_B2W%H!1Tt@=V-Oe;>Kj70kK0VSk7XLX27b_%gx3KA&oozk~yyF4;G2VCKG3+l_|Zm`(%$MkJh6x^jc*sk=mR@di( z!8U{lUEPhknWV!-)80QPgnj$DNGD&(M^meBmS(#4Uv<9$a8Cl`(5wUv00000NkvXX Hu0mjfR(p)H diff --git a/public/images/pokemon/icons/variant/3/382_2.png b/public/images/pokemon/icons/variant/3/382_2.png index 040d5b4720322d491b4567f39af7dd062c73af4d..987672917b52a48a73527208bbabe0fd3ce67915 100644 GIT binary patch delta 774 zcmV+h1Nr=c2A&3xB!2;OQb$4nuFf3k0008mNklYzi7`Ke3@_*B}AdyHoMJtb;F#*VAZDvyjBk!U}DI>ZV7P|rsmU7#5&-TUu0LEZ} zam&!--V|_;U0Eb{#w3%qfm%c|S(~+#QH$hz^Zdo~u5WE}qECa`8v_ib&j47TA7I5S zkeuj4%1zgDd5>btDy>atc7q z?Nct7F9*~wyTh-xH1SZ+SG&{1j1H>yA+gU-1L3qLS1CQeUkBrsimH?{;@;x6z_%5Y zlo4NImv^alr{U2nVnzo*4RUxn*vRB6ds}-{?L)>bLxXtX0{@E!I*G~?ud2h#8qgg< zIFDj{s(*qpYtd_tYKN6gw=FN2JAzFE25NFu!QhR6U<0W*fTc2<9=hUBZ zrJ?j0e0WSO3`qlO=(6DMweHG%_UkM6KFwp#T5? delta 745 zcmVTA@Z*OeDr{R1600N9jL_t(oh3%KWYZGA@$G@Rlp>QJQaM3<(C4WG$ zs8b6$$Qn2;HXt~JCIk#Pb;wwxQ?R16B|{*P4jRZNfkfI#B7bs|AQrWUf=F;^CI=;) zLw#P~`;}gENhvhn>F#;od-HjIy>H%#Wm!1Sii`n6Y77`wW5BSwIDkZC0f1?mk)bU3 zPeTDDBFkK%jefRB5SW{!2I+Bbo~mJw3usABC>u(Z;JP8i;FHu0N^>3 z2kn9C(*?+IcWW=jk7c!tNDD_c*=Tt#Sj`t~@10l&0H7KwCJ)-e?koY>b|T>P>KeA1 z+W>&9ma#!T{_tMRefO>7>v=U_KquD0qx&TQK(UgBYJaFmZLXu9hzn5Z$Z7{B%XH+u65CO&uZ zw0GnQ$I3+sw-YHFjI4Sh4#1t}K-&zbg7t9X5_(Y9$1qCkM=3b|?uI4*vc zbNtKzWk?yMSV@C+O*}9al&K5nxGZh})=17`-oR(dy097TBj|@+)Mgc2-gylGm?`UG zOJPS?4DZ*mp#T{Y0QQ=OYm6I#m29+7tfXxbWnx&>Q1SNJbI&6*6rdASme*O$kSvCk zPmYlQ29ezT97#S=0E{+*r-gL>fq2uXB2II|ufajY<J%=P)X00001b5ch_0Itp) z=>Px$`AI}UR9J=Wma%KwKorJ*Zo5>S3=&jX3dM`(Th$ImgCX(K*|UfK3xVPq4Baw2 zv*$u_10t9V!GsPz4_&;Jf``;l2}}d^(vZubp5nNM)VfR3g1<$l_c-ah_ulvJ!3G;_ z@PDI_ccbh0O0SdoH1~II!h<}UT*p^&y+$Mg;(F~GS=(6q+vkD=BVQN{Am%5#=IsJVQ>-XuN*~q&4|Zqa)R*Uu24Fd}J3BqE?H2WXOd z{Mt=E17;#IzKa3mX00001b5ch_0Itp) z=>Px${YgYYR9J=Wm$6G6K@`Tni>ZWQC1kDMG+G~`DUN`RAlM$UFlDehY____!USUB zouF%B{(%rUuDB#{a3BY=3Ua&Kip@-OT1fta1fIn)<9KPZJ9~J+`&GO9nAvaNzW420 zV8Vn6|2KuK3yFyJu~I7YJ|lsMn3*|_`^?O2i+ysmxM4;m@O^;*#G$adpvLyFRNv5?3tFnV6Ik zLJ0oXSMHQSohe(KO>uP*weZ&E7MRMqkce1HiHl!<$F|>i*!%buzyAP!$%E&;GBF`U zs)ljOpthS~PNxU2RA=yg5CM3wr8GFzpl*bf#!qz1>i__MVIaKHmiV^w1sl6t03IGD zt=%|zldi#}6PY>;)&ypktC)W~IKMuNaCiARvky9(r`^R#CwdeMYh?g#CY_7B6A|Z` zH5+H6))}X00001b5ch_0Itp) z=>Px%l1W5CR9J=Wmm!ZDK^TUgX_}L5&TQ@y45phitN=^!)L<}(3dEk_2Q>W!n5O2; ztyqbrkiGJ6_|np z3c+nUQAYJP-RTT~u@cWw_mh}yY|tx~;`W1WK%(>WmQxf(RD zWY{73`GwCPt9q_CN~zskA%ejAQL1UA@9X`vD4>k`K2hJlgDX39FH*vu%eULFOAEZ# z03k9X;&BY1<_SRL*HlUk?e03Q0u;5kSto`)SJe$+*C$&D zQcFCJNt&)s{W?8VgJz9b&sJUbj1y!57M2~rY6`szm`&r2vaBdW@=Qgx84En>`*1zi z5LT_09m^dPQu@Ab7{F?_cpU2t?FtBXVQ0ak%cW!Qo_$ZRGcOvdZUGB&7eEWvabD?{ zlcQ4&xwu@ciX+WNyf4lB0Mu|NN2dV%{_~63?E9uM@|m#oe0RP~wrhHO*+gsS?JdRT zMHPx4X{)sLjXEbGfj0DEbR$+Dz7le4i))0000< KMNUMnLSTYf^-}Wy literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/428_2.png b/public/images/pokemon/icons/variant/3/428_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b325f3256aa678f60d9087f9e41703b53342157 GIT binary patch literal 576 zcmV-G0>AxX00001b5ch_0Itp) z=>Px$`bk7VR9J=WmOXCUFc^j(3f+aSy+M{N79cI2v~~-OEFA>~f-ewv@|Ik{2rPKa z5(Mc9>MY6N0Me4h#|V0XvV%ohR3t-xNQU|a49l-5^6~reM{v|pNBy5t6~D{gAaXi9 zqm-1e2U6*^B)zsh1_JH^Sd_}a0PtN0K>4nNN|!JIWM@Dnr3PYpwKBf%I&97(f-oKg zvTuS$8gg?US^iK-wv|#+DkY`zT}P>Ox%)18<|Ae2IoWBE=+XvvD>mz!>Q+f+F0<`h zhhe%)rQ?Z}QdN4!>zQKP1XVho)ZVO2w2)+JdupUFO~C*(-1POq0@e~kcG%p!uj)w_0WQygrY3Bnj51OVCZ?unJv1W3Hc-*pu1%BeNIT4^xdw?4b=fs>>W zLmNQY|7$_MA1+SM>~v>Q8L|?v1X|0{7SMv#iH=Ub8nd|72=Bt2&4+XdvezOhCI|M3 zk<4#dejmT{+p153ke57vAs`527PE-#d5fI?FkW4P+4jxM=ehyX00001b5ch_0Itp) z=>Px%W=TXrR9J=Wmp^C|Q5?s=kwcMCN@>I*w7fRW?&?qoI>f~xB1H(K4k-ocP;ju> z-0Gm4TW^W*I!MLgh7z%G;?SioZK1<6>7!i&27+V~4$dLG*SqW0=KZlc_+8%R?w6O( z{eJKJdoRF${UaiTgklueHgv_tB!rOgXuBjwo3a8ZB;fi^9=5V*44BMXVeu!r%~{iF zrL+K}>+NW}ggbAG@)=vdhUt4vaLzM-1u(ka07$sx7>ze6w^jxZwmkHmJSG;_V)q5y z#KM{cGc}DC;Nth!7sm9RJZv~x36KyH_MQBNag4g~R}OKo>j4;Xa^;J~IchO~^P#xa|0DOIZ8^FNn&P-9p>%b~E>S#$3Y0LtOQ5VaV zRp9>Mer~RWZuI-`LzU8NmpIy#y=)ouGl!QgV{B?tI$MllJN)qQqw?=419HwYLED#b z0>aCd&%_ogwKI@^9B>##vnaGv_3_}4sXB7}rtYe_mYZQOrzD;9I<`d#Y~FED%ei4maDd2pDL1#SOwORFLqrTqn-oh&?J SHQwO>0000X00001b5ch_0Itp) z=>Px%bV)=(R9J=Wmp^C|Q5?rV@efs;Dy1$hJVcBYjMzv8Y1{&FmV=N%0!lLEz(sT^ zghCesZq1OQv<^Zs2{<@JiU=)O2U{_VR6(9(5lMBD#6iyCyvya1+TObhcJK?~cbEKf z?~~vAec#K2|Jo-KLKs%Gu7l8lARZ!wFvj0+*fB^20%*yCYo;>0}&Jcv7Jpl?KjAlBsYhJEaW;hl_zIwykdnIOsu?aaPd{ z2PWW7Kq}Sq3<#Yy&&%maCPy znn?x%2RO( z$iNrsep3qAQ0C(NjMLNR`;o~o{K*HX7Iec4q_T^hi*h?vq4e}K?No*AXvB856|L>? zN%*kmaXbS`DMQtQZo^p+?Np^Fx0uj+AO{Y(7dfkF>B0Hq9K4bB+=EJhQp!+18E59l zCjhDiy>A26iX>XjfrU2y)y!c%NLniTvr`p guyR*;Un&T=-`;jK6^d*66aWAK07*qoM6N<$g3L=v)c^nh literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/3/429_3.png b/public/images/pokemon/icons/variant/3/429_3.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9b2384514dae857194a96ae362d4af3ff67f80 GIT binary patch literal 680 zcmV;Z0$2TsP)X00001b5ch_0Itp) z=>Px%Vo5|nR9J=Wmp^C|Q5?rV5fP~csewRJ3Qw>^I~3Z@T!tf}PEruEWD%Xj40TE% z?kNe<$w;Ayn}`l2NI{W=A~uuQMF^ovA1$d<%^=i2%Q=L1m*f)L`%|02FC4$)-Q(_a z-}ipM9}oU(NF;RxPq${qb8Wzm;V&- z=jXQv&e4NSyuyJ)Kp}*o2b%}Z%N43DE-%okuW&nl(R9=e;7KQN?In$pD^y9wC)rrv zVMd#E~FkP-Sgz+!L6Rr(S&Oi6mF3c7f#zRjyUO`vM0Z z9E7%urMVF^Io9^ZS&EEtcemvWoM%9=Ai>Jwd^X`aDSGAE!KKI;&wqU~$MV?(;pA%` zgwFBo%vr$OQoGuNs?X}dCe!yrM7BqH`r$W`?NI>UXtO{&(@S$B=6pBZ#BrhSUQ%mZ zL8;$;pJO*9Dm0#pp-I@ zF7KOg3PMYTZFBS4gbnh@0S}{27nQ;{9y5FMk>iAM1t_Hq#4-&|U$_cDy1d^v0xT{s z5X&?;f9Z;Ewee8uJ!1BY-#$J(-UHO%N{9M^)%mI6JII6G;h~ftaDM=-JWH3aFX`F< O0000X00004XF*Lt006O% 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01m?d01m?e$8V@)0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600GrWL_t(oh3(fdNE=Zc$MJ8_ zDP$7N7RrMoDcD60S`Z8ov`7mIL9iImUg=UDyR>AD=o09nF2Mtbq9Q^mc9CL;P^b{P zL}-ifhHeUiAi4yuL%e6sLBW6O3C(YM_jo)${O`R#cM;F?xX+2Sfx@(b(zJonw1LvJ z45*X}Y^1f0v|?W|(1&%swo$!N0Q8SDj!V_XSO^sXl~P_a>}q_d1StmE3;oxwsm|<% z1H7qvexy|t0quo;=A+%bJ3BJ-8_!k%82d75<|I`V0k_?3V9v@E1J6D(6d*K^xm=Ey zgXadPltOE5fT5nj<<(CBeEqymp-=$8o*ko_-!S9QZ?W?x4}dcgCGl_qfImM!(l@t4 zXXRJ8eb7hN(<#2azq}NEbB&7Dg3(jA(p6_di#FH@&f1lpEnquJQ z^kYV9CkFClJZ^A1P7ed_zNzG$0)1R|aSwocI%PlrJ5G;TJK*l$eFgoG1g&*MDdlOc zIViuy$`naV4F`Zj&Sp4g@G7`ub?_iR3c!|I=DCw$%PsSvavUzOx!t%+vy`k3x}Mrp zY6qkrS!5UY?nedT@|F8d{MC!m@EY}XX$DL7`G5XN{#E`0#Bw;)X-7GG00000NkvXX Hu0mjf>JcbL literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/393_3.png b/public/images/pokemon/icons/variant/4/393_3.png new file mode 100644 index 0000000000000000000000000000000000000000..7fcd8815e4fb2065a44c1507c3db570c502649c9 GIT binary patch literal 3261 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01m?d01m?e$8V@)0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600GHKL_t(oh3(hDN*hrW#_|6& z(5?e!-)opngBu|wi&Bab4MIT$A>b}xETw`;K+p$pQD_aRh*l9?DF{Xs#TpvAECjkK zU4`^MKni&RJ6(i(&A7186P-Zwt&+oV`SH!nA#psWi zCeju~z{~MDPAg?zCa3J&-CO~n{%Y0EBrS@73l9c-vwWlG`)-hd0HKY1l3ieQXW!zK zQfRF$Fwkdk{aXcqjm;Czmh%7{jpmsCykz00fkxng4WtmN_kpq-bdr)8#R_6 zkNJQfe*X&Q8N3ND%@(Nd?*Z-BOrw&wxhufVb#wSSM`^ae)9249W|vs}_?E={RBtp0 v*SFj(@i)WC;1>05=>$v8`G5YC+*SSnAN@Pj^i0D=00000NkvXXu0mjfSs*DO literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/394_2.png b/public/images/pokemon/icons/variant/4/394_2.png new file mode 100644 index 0000000000000000000000000000000000000000..637cc289736531b2af4c4ac6415b375bc56b5a63 GIT binary patch literal 3331 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01m?d01m?e$8V@)0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600Iw5L_t(oh3(f*NEBfl#_{hG z7zCkR7GYVIw=metz%(E$dI+JD;4LT~2aBXF$!I0d;fw zfkFuN0LO7c+9F@HfIrY_i-F2)J(KCaN^co_I5w;rMn71HMhm$a#7tg zIg->u{xi^zD_*}!=D`m#Gvf{SZLF76Wdj4|v+YOXfZ&0E!sQ=7<865pfb`&0a6msY zGc(S{dWrOnuO#1m1faaSPkL}FSYSu5$;0V;-nK?{cTORzxvk(jNk^~Al|zAH#+l9D zB=KmJ?K>}m2MQtFdL&Fww6CG<<+JSo3Ks}aRt}){xk6904?vBB-jrAOX{*$N1xAOu z{y_Q9=~VGpKp}*?GG+i^zy3yL^Bv}Biu2Y5a^HWF{&eoIXdUFSfpWhd2`k{j_FZOKi_LOZg~a0FZT9w zi3@bX>W_EwV3={ONrFt%fs4yUCP$LU?TG@yZ>0R(%~(X8{$=O?&M#MSl+@FzB1r%M N002ovPDHLkV1lBaOZWf) literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/394_3.png b/public/images/pokemon/icons/variant/4/394_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2a471dcc51ef4ecadcd3d5a976021f68ec89ab2e GIT binary patch literal 3329 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01m?d01m?e$8V@)0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600Iq3L_t(oh3(f*NEBfl#_{iD z!6*pZC0l61mjW+c!pp)Ct6fD9Ht`@r#u7p~n_`c6!j&TfB%rQ_kM;|DJ zkPq-Y&rlY{q68E|_!q8cNoQ;To)3=Wd7jZsv@-BUX^D3)%dE7Y2O#B4vFfeMd-_GM z67rvcaonqC^Sl@vWN~^Ta-X}oAuFp5IP8}8#R2+(fW&2I9L~6#qV4-`W9b~VXPZXnY3hTRf?#AyKrl>^xN-p)>L06>m|;pB@B<<4!rz$cT@p(S5* z{y3*n#RCC_5dP?%0N``I&hnQJ6s*hK&D~?}=@Jd&>tE3-$O8j|eY={Jz?1%I9&Nql z!MUsZB3lBCV@LM{mRX}x?~p*ttnvQa3A#;_+?{b{r1CgeXzK!?Qt!YrYw}uvw9J~) zkfRK=t4X>|Gg84Y65vYWCjgIs?6wXV{N?~Y_1&l3xlPc4!dW@xMUGou!SIX2y*$8a zov_9eo;;*8w$daaNYjC<-a7rFmtcFSfbbg`eC}o}qK^Ku^MB_T+A)XJ=bf)`00000 LNkvXXu0mjfFsn`o literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/395_2.png b/public/images/pokemon/icons/variant/4/395_2.png new file mode 100644 index 0000000000000000000000000000000000000000..733fede6d6b282b4adce36149d918f1f62471aa6 GIT binary patch literal 412 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01m?d01m?e$8V@)0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600M2dT4r{B@^S%%5EekfD5$>OtszRK+Ur25RuEV>2)@eC;&@4hlo_tG14<&WN{mPZ=ZEt z15o`ED5F=XE1-ROB`~h(j2>+OjSK>;q_b3Obqal7dP2JX4$ATpS={FJhxY(fYjsAC zHdxv@R4|}toMT`!QUV{H2ML8jR4Nr-^_>Fn_0D5gI7dKP+YYAVj7*I2?EWoww~8%= z+K$s^!rXhe?mtinVI54zTl(Z~g~l;=_r)8avCP^`7(nf8C&;dWLI^81Fs#~}-#!6g zu4P$CXH~x));7<@j_wxPa|Y$LX_^5cgcUm*g5UtvTAlD<9{?Xu>#Sy;a9lDvA|EX7|F%B5exr^J3{$Pu)lGjo zHkG9Lfn@j!lt_7Pu4OxqxmZd$wi)U>uoE_66x8X`>3y*Iq2Sjw(U%|Y_Il}Nu7B&F b1wY~k{&DBj#U$v(00000NkvXXu0mjft+sqj literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/418_2.png b/public/images/pokemon/icons/variant/4/418_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7712de363c1d6f59d3dad70a08e71fcbeb354b4b GIT binary patch literal 2486 zcmb_e32+lt7+xrpLykhBMJ|`6Kub;bNYZ4N#uA%C;~1a^v_jQxc3+Z}W;bM)Hfh1> z02L|&R9cYBQm|!2EZ_*!4&^?|Afp0m3*``WIJ7d3Qz(K8zU`3#1a%lQ+3fCn-~avJ zf4uinJZ;M4zP*R`Mi8X0E!mn1@6qrY*)tUWzHu?@BE0qTCch>l$aCT9)dg9%VF-eR zE)mi*l}!7q3@3TCEH62L*6;B`G=jt@_`NJQ8z`s)xCGIR{Ze-TLj~T9Wf<&)-J1y9 zLUO(jq~%XZ=kjNBG>;{`gvR?BNZUg+Dv+hQJ`N=1LYbr0XuM3K z53q{lOP8da&Pq+|l#Eh(tpSbB5JX#k|J4+o>%R869u!u8T1C8f|I6B`>8$wE-g0anR(O& zr?v!>EXc4}fsPfC2Ih1;lhZEkb(aeK|5`p8$i;3D0e$d zmYhl+>jM@S%+|lQ6aF;uGMoF)(oHm=X;N>{&;+g5@SL94I2;_O(Gh^saVDeFK^Qwj ze@r@TKcm`yq@lC@o<({`S~)i>x&YiOaqQWH`EQ;0#5(+aE&YGN;OY+9-eLIT&DS>f z&~6F~*){~XX!S98IKY?S@d8AcCm%dKUbs*;96`E%W3yV)GmCD%KQ(z!%JAa{@G>A5 zjrpVW9XhpU)r>9OMulTHP)AfCHs)+v^r76Qvt#Bgj?WDpBdG&YeowAbXL85#oD}VbHU1iA0B!Ok17n^wy*Lm{oPN)MwZSi zJa!O4GjHxLm~I)+a9~B)g4ptimV(r@mV?fk@Eh?3{Z_nA`rhgXhw_e!N&f@d(D%j7xonV z9=1%(Zo1xML&N+ZucYbp`>T)lgH&Bd+~oapiXFdBK=xG*S=V~E%MEg7BmTopZq>U& zPo=c z6RrE3FE9OSz4O2q%Z}&N`p1I9wpaS3T-Rc$OHLFNej(H+7v77&>#vQQ^PuT+tRLN;ipB-2G?Kl?_yVRqd7y)W_?xS{B7A~$D{b0tO$ZfaTp5d=2 R-Btft*^;JMx4)dd;4iJXe5(Ke literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/418_3.png b/public/images/pokemon/icons/variant/4/418_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c400f59a7ab455f9c732eacefacd699e949a1084 GIT binary patch literal 2502 zcmb_eeNYtV8Q()=iGtW3aBFL2AdCKgH-L{0~C7+HHBnQw1eSU~Wkjw=^KgTZv3hDqZk7(9@(b=U% zJ%U+VVXzT4e-3ba@)`r6w6U;^Z(PPRf_8xg%?z^8fDb4f8uWQZnGKq?VY@6GtJAm^ z4MUV=W^I=05VhNi(HtoNP)0{!JVB7CiP7-{MbHjvK1vak9w#WAU@*eSQbv}f(a28= z-30_ETVh=laR#5vTDPM3Ssbsguh-Sy>|Ee+-~~P) zDl){9QLNuBDU$4#zQuI(^*0>A+}dnWACKhX^F>|AN^TttBa)CuqUEv%Kfp_XEY${h zkXr|7Cacl-*_;626e&<9N#2P{6;Dt`DOzVh=T&$_L8_P29#{aZoC3^RST!2f3!~^V zl3?`=OB3k?#S+9g)FufYXTw8KV;M!V6vL8+Z$P1D1Ww_;7cB6sQwsPv7_i63xd84L zU0O7nMm9(CN&)B?veSoI*lcXRC@Y-EgM6!53uD%KJOXPp2s8m4JVs`4Bt{A}z#Mu3 zU<_>{4NihGFnn~qRpM*a%Bt(fRW3+8wDDiB2Ej=?XvPVb^Ax7%XaVCmV8WaxC!iQ0 z7#J#Jf=yAt12-DyebB1PN`MxD9ykqzk-!Mf#9=0Z=CBNdL%>WtW6Ur)sSF_Ss+z+B zVe>pPEL}rnf0Tmdk&)MfhBd)*ysCAxmRE}m1Z`y6^N4)>AkUHY^=<%-en;`gy~~nQ zspkS9%LQ}yz2d^Zjl9g&eK&QI0l;7+VHNc}z<`N1Vh+;8W0W9d7)XXQ!eUN@{t$Iz z8EFc4o2YJo4E0D_csD1y0PLK&_QwbF!*n^$@_&MPcxV0pg2B~(Ij%7LVey6EJ*H^Q~EB_BGcwWx3B4Cmz3Fgst85%;a_H z+~!Ze`g=`EQu(6i#j7QMTXlYn*q_%)z9{Vb)t?6v57hnis2ds1i%qU-3cYl-==GT9o$nS_&3wDE zZTkv+sQZ}@4{5$W_NQ0=Jsp{G_!lh&{kj-rPFGRe*!9s%{NPHnH!W$?$xr(#3${$d zeC<{I3HPL4OHaZM+kuO#7L<2o&Ai$|4RrU8lqa0s>3?d+XSY`#xV!eb{M~(9OP6o& z=$JWs_Ut(Oh1=6y8t?WUyYqIX&3f`)ocC}O!mlkwLTf&Wk5$PX>FWD+LRXEvDC4~w zZN2?X(>Fgq=h>S5_LPk&XWqK(T5~34ed5o4LM*?SgrGCVtf^bNZ}o$7O@ps~`3h2R zePZeQf6*N;6jz@+?QZVOe7X75+&A957T2Vw*Yw=(3%)Tg@Yu);8#lCDkRzw>RgV~a z7p{L&S(Z@>}%hd+57E-A1@q@nT))flZxy+@Xq$5pJD%;L$%k<`?<8Sz}225 z-Xh${faP9mdU=)Q^3#(KJ*FYg6y03*Ug&)bf9=k!q#@7Z)Gez@KS=B_J#lR0Y+UE5 z_1;?jt8EZY-?`a dnS6im7%nU-p?&EG7ph-c`MHJG_UxKh{{!7;hY0`x literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/419_2.png b/public/images/pokemon/icons/variant/4/419_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a95721362bd977bc0753117cb135d164a8713f42 GIT binary patch literal 2630 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 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/424_2.png b/public/images/pokemon/icons/variant/4/424_2.png new file mode 100644 index 0000000000000000000000000000000000000000..356858005eb08717745289c19deffd6ed6c9a52e GIT binary patch literal 884 zcmV-)1B?8LP)X00001b5ch_0Itp) z=>Px&E=fc|R9J=Gn7>ckKorNnuDf-rSg56wd@P+98VW%{K?uac){v>q&XNomSJ^sr zB5LqL{sc2rO1l-QLWw$%2-5&Vw+A(1tpJFTR0DIu)=D`HQ#an9D(oQTu%4i?%Zz{nZp({E z3T;-y)z>T3ODQA>35EP&f5c=i0|1!JW$-7v2tR0FfTDz0rG0tt&69!$>$FiXrQpw4 zZB_#Sl=B4jQVN}0$rw}4cek*oo*+R8_S6#z8l|2|VkA}I%V#;ZoHojN0=i;=)hqzO z)uU-F%&*EZ00}8x!k<*ERrS^`u3-0N45bv9n33@1JPE*^x}HZH+h$;1W7`bGY^P$M#s0I_u1rJw{mlbgF}gl)R$O2X z*qeJT>!XOt#Y^-AWV@l=vU{NY*#jdTRkxY{PZ$Y#9_B1Ppo5Sby!YY?n-EZ z=bXp-=(^4i%_XkuI@fibXVPh&NvApIoY!ifIKOUje%<2d?_bJi;;hxnZfp;Vx3{x; z;GQ_<0QB~TZw+l$i*;`I1t<*o#|c7WHwyj24FuR}khQ8{HA~h#5qI6>Z^zh;5_UyU4a)VlY7ef$MIekNiP(hdUv0000< KMNUMnLSTY#8kd9s literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/424_3.png b/public/images/pokemon/icons/variant/4/424_3.png new file mode 100644 index 0000000000000000000000000000000000000000..78e066ba68ca61da6c0192b48067bd80f016616a GIT binary patch literal 895 zcmV-_1AzRAP)X00001b5ch_0Itp) z=>Px&IY~r8R9J=GSUYG_Q5gOr7F;aaK?(u6r$y8zYRbv2>B)tfc99&Oh);j>8ESu877}76&mghTqG4<7O;yvzBt`WJOcnm<pMm_WsoDWI!ROEI9iIsm;u4-5sUf*7gSK1&PQu;{;Bv<<6{002ovPDHLkV1n}qnN|P* literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/438_2.png b/public/images/pokemon/icons/variant/4/438_2.png new file mode 100644 index 0000000000000000000000000000000000000000..17e9774a8da5e2b4c02b32b37f41806bd94c5cbf GIT binary patch literal 486 zcmV@P)X00001b5ch_0Itp) z=>Px$o=HSOR9Hvt)iF!MP!I?3YY~JDg4IC~C14T3XhG1eAD|M8lS`+r{VuMZgieAu zIf#>>*iE5ODJZ3t(BkIgAPS=LKRF4}CAkALqYS9+P?lhp zpf&;R_f7wUuIqjR6a<0UzGfQ%*Vvxmz?x_8W=IpD;Joq@_1Z&IqzWi4UHEvS(uzZi z#VN*(2G4ZbcT7@D3WvKpAgK!Cz2;WdC)M+day&ym%@sDRR5;La~A)M`#L&~jkZKuNCNcw-<+kQM`@ z0tyb0Fc9w#k53q@y;aPB(K{DFElz#RU?{?c6uWnQ>RhbxvIR16f@rT-oTt*p=8q8| z85TYpJ2%uDJgSmZ0n1zKeCEj+C<(UqUwLi1FvHI^txgP-a}Y=rAV^eTvZleQ{(}N6 zIC)z2yy%Rmlamcq35IVIK&2{v_5X(?8kt;sGT9artZwnIzDDlnzn;fkQ@1$o561m` c>VaRxvDF{^4JHx*0000X00001b5ch_0Itp) z=>Px$ok>JNR9Hvt)v-#$U=RoJ3%H4sLmV6eE^Zw}tids&zJp+fiVskSF2$jXgD)UD zL~wOh(Lq6Kpi~eMT!ah(o2O9z2UkLLN$$W5xvBlqe*N*k-uF3F^KxqLqXww$P?KPj zpf&;R_f7wUp67i7lq8ASzGfQ%7Z0yFu(rQrhBN^R&UIbNvdk2z0!m9eTLGp10}($!6UEDc(eRm)9T7VIR}B{wBjBiQGv;t2B-QD3UJN| zXnrjy&WJiW*-({W{x$(rsNq2xA<3I3-|M1&&#fX00001b5ch_0Itp) z=>Px$@kvBMR9HvtmBC8_K@`THbn;qsD20r?2w@>XK{p8ss!LRt{))naf*=SADu_<~ z1wv3nP@M|xQXqts7cYu-kPcB-=^(~8@nl*Qo!MF2gYPo#I6LpR-}l~(hg=>Wm-A5v z(5^!r1zo9NAP}e)i$x>u7}-Qt32@`xK}vn)#I#*d#{e1HE~w*xGN_K4Mgd`OPsK~Y zUZ1cSRwHsBCHm|tYuRlakfGRG00J7J1L+8$RWVlfUjUI@?qcp>x!!n9TWgS$0tkx9 z(M&0ob5hG#C84`ev&OlW)l>xb)0Dx}gF1221&#!43jD%{PE0=jQZ|4Qm_3jY$jr#t~VIF`8hSY78mI0CAX=hl#AQ+OBDx|YCHWH}`iFrJ8Jvy$S z3LvWo+Cm~r(b$6az1*^b$iNmq#8V<+?CiU)#SF-bCf6n?e3EqjCSjXkHG=Cf?rqTi)`0*6D8|#7 ze(}okU0%yxBY+I)_fJvz?UB3#lVUUhX9N&-U(Bx4O(sM4)k;ldKsLMb>N#Savu!ae z$Qv{4TsTaNw};x+@_t4D<*(K~kQ=FK9IzGJRMxm2@CQ_1B`&l_%8UR201jnXNoGw= f04e|g00;m8000000Mb*F00000NkvXXu0mjf)35+< literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/441_3.png b/public/images/pokemon/icons/variant/4/441_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad59d6324121e4818991b15415f53a32d273021 GIT binary patch literal 654 zcmV;90&)F`P)X0006zNklqO7q%7Q)8LM;2zsFg_Nf zOc6FxNUVnc&3RqdJiUA8$>!a9bIv{I-g|!YzxTcwBER_x_zL(6{7}HMtmKcNVIbRZ zp5rvYg{*Sq1!N+T$Z#C&BH=k8*ZhJ+H!aXV155>KqGl#9!!h;!3?x-ANCY+cjk z{hRO)TE_|74y!gO*wiykqhk|l%5~p0Ag_q+EG^6t4`Lm67gW0$6&C&V$u6N9d{z>^ zX*2pOg!9M+<%176Zcq-bue+0m2K!0p=JFb_+6rP4it&Sk4={cgG8o21>gy;LJBDlA zj1*L>LD7nE4c*+`QmCj{SiqsJtuBc#q|R~M&vHA^X&m6@7gp%~EsI{BAH}d>AVBfc zGm6KeX~8+w)Q$s^pWVIvX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006I zNkl1>HgigAm$9@CxlA z4z^_J7B``bqzHmRLZR)TT{6^Y1v>;{5epX(DjAga9OOMOO~l+?E*8vhx_1Y6AO7$E z-o1$9IGp4}`oMtc1B0dy44OVLXhH*uh*ParBSGI23Q$Cxf|X&)Tt*>9M1RN&yeB{r zajLs-`S$r87q8y>w?KtcnKG9FsBEkN^bYu^9&-Z+*H?M?=8$|b2f&%p3*3w+*=p=} zjPwN*5oa;nMiXGa)F%#coH$rp1Rtu1-3T-SglyH0X=NLLNexUI%Mm5mkMe_nde7f?;D0s-XS zZz3XW&rRqp>@SXxW6_8@U&p zFW~mvgdR^X?g40=dqMc=x4=M!oQ#ff`~G!(PaOzMBgT!V54wi)1yo4)`1qNxTR8Zi fkNn-ri3k1!dZvxkMMO!J00000NkvXXu0mjfG4d0$ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/456_3.png b/public/images/pokemon/icons/variant/4/456_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1af49a055183d2c9ebfbf8379cf5b37682118586 GIT binary patch literal 628 zcmV-)0*n2LP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT00061 zNklk2XqYW zoExM#x45|^(v}o-kuF||RjJJ)w3C6?;e21NO~l+?E*8vhy7xV}`|!Naz4s=RQe5RE zM!<*}0i$LFjG7TJYGMP5h;m&w5%oE-07XP~vNp-1IvOb==0!o^Ljj72y0=>9#zSUP~&uxM|A)!dlq1Lz(4hvA2>EYNqci2E0+P__RL*AZPuZ^*Ecd0P()Pq=`Bic zzMCZk%ylPgGd4d7Z~>@ue%R_885s!RI(ejc@K@l(Vu7!%GfuZZ^u5%9ff@&}|L%mf z>XbKMJn*o;k?GZ?E}YK$jYj-HKW?XXY{nYe$=W2(e)a@57MA1d!OOr(sR>}PI+aqB zt?@ZCzWMwScQUC!)e8mG$QL(MPZ)R=b&4xA%CEXVkhr%Q5mBy_?|E;hb_{@1T=6P( z*uu(Xm{=?XuH3+Yl~R+n>XfM(U~sheuDYnMvysAOhChXtHgWy5|3$=AK&MlPz49@>S zgz2})K#e3lO(%8T%;^IG>1nK7W?;BbK!fz<@|kZ?IQXBB{DaDs2mS&oeUj83Cao_3 O0000X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006w zNklAvx|p;e9g2g-O{avKsfbP?OE?4}OEINpD^7^{gdOF$iTqU^D~}q+}6KUx_!@g1sum6rEd^R z#;Lsi79H^P{ESAk1i+x(AzvtaZ~!}wJ+ZXIw~s~-6a`TINv)XU^Se(P0+32%HF8q+ zOyIn@z(BLtOi(J31<=`raQ){SIF8$KZ0fe7KdUTOx_ymIC9-;mRR4bX`E~BC$2YLo zs#3QdU0Q&;?GQ_Ed3v$Z?E`T5>KXY$ne{8zedBxq&9}p#-QmuY7l;UlAA9_Go&mgB zRAKfb_}{bx0Ri6sij#j3p9xf%4*EV0RALjUa4J)E+tGXCv}ukEsE}*c3XNt-4+xAh zHE4JA_M-+R3@#8*A;+iL#KCAA>9wj1+MT)1jtd1UI7kXN!#X_!~i?|$3i~sXpyv+CwBi+u_ T(Wq>=00000NkvXXu0mjfd6+mP literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/457_3.png b/public/images/pokemon/icons/variant/4/457_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e65119dd11a6cde278d21354dee7f3c26e0a4b3b GIT binary patch literal 675 zcmV;U0$lxxP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006m zNklkePxS88l#*xi#|wUZe!Ta-sUQgWmm_rt zOc-~-q!9}!B7x&LsWo{1ipW3_3DU(XKd(Qq2q_`~uyEb207WFoRB8aYt;^WRwE#`r z{=-LndGUNRK!sBghEzBOgAJBgL;|O2V_zJEB1I%{T8G%jTWs%V^qSccN9oO2KmhyV z0M8!*aPQkE0G!sLUTY#vp!yR4Qn^})j19ETclr8yM}KG4y{Y#KIEx$S%9Kuyc>m<> z`heE?F4;mJ0Kf0z`J*WuKC6E}f4r5fM%wqz4a(0?c989*6Or?h3cb7Ult`w+{<6IeFs^_F~1x$uPwZukCYy#88DxN0&kUw9bo_Tsv2BIhq&$=e>B7@f+)B*wnoaERO&H002ov JPDHLkV1k-LFuVW& literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/467_2.png b/public/images/pokemon/icons/variant/4/467_2.png new file mode 100644 index 0000000000000000000000000000000000000000..46395657b207ebf5613b6ed30f231921572cfe65 GIT binary patch literal 800 zcmV+*1K<3KP)X00001b5ch_0Itp) z=>Px%+DSw~R9J=Wmd{JmVI0R_6A!~53>;gfgFPKYVu&6}1;a)R4@CnJwCLz{2X94x zLkACaYex?qLYm>Bb{H~Yii9E(CB&0yl;Ws1%@3&6Y1KP4eoAJ&z8S2I8h5x6$8eyZFv1*b3dAi@MwR;X5)5$V`ebt$X_|g zs+vTD9o5cOsw7--_X{D^Y0F;~pb$a@eIAC`U}r03gM7dGnpbZo%K8ZUJjdWpTKcL0 z0j>|+WQqXprUrJlQsx)*c?kD(<8EpI;C7Z1|TyxPhWp8fDO*F zT6y4JAeId{b$zNFWl+OuO%Wg&Ef7f@#%Ecrq({~Pc%JxfvjceiGtA;_+Lp!8&s*bByu=0C& z{b4rOKLMERMH2O9=`(ZlHXl0cGlRLZ-K*ue2DLLGgtGE`rjyenhv#uITrpI!hS(r9 z+3W}osyIocl&&w^zf4oK$9HLu@0z+RmM#T2tjmdQ=WtNrHUkG4jK||V8Gj1EkK6~O zl&+&C0GJ?>(E|FrvC^-ZiUBpGzCLL}ed_2M)j?D<*SSatp_EeU){QQulseNV|G7m~ eF3T7CSNaQ_R9f6XY&%o{0000X00001b5ch_0Itp) z=>Px%yh%hsR9J=WmoZ2iQ5eU6S2`8CB!hJF9ds$JASbn(IH*uM6um)Q>{L|f5K1gA z(!oWmh|r+6ub%bj}3U25&n{HM#^j>OYbYLJ1*My?g&eLI~CU^m7142%%1tQYT7hNWXg@c>ZRj9iwj&%d)%zG+gNWA^5NHm3rRx#@mBjkMQ&hd)GGaw~PN^?t=_v1#7I&2H1yHON5)Qg3YA zcKQC!D#cuZWJjy_yqGI^*HN9*3MIctLI`Esk8s^1hQ{YO+}#7<-h=xb?(T80v+Auq z8d6B?jeE=G1x2%#Q6e}S9b24H12&CvK9Kme|k9Oh2jPsnDXzPhF&IjG^Zj;x<>&Qb?7c-25%I;^Q-kP$CVizwQUw1rP%e>cW~YY0$7>g$U()TfToH%T#9 zh#ZJ3lMq5FrPRQ{fKoO74n)yktE!&MOx#^Dg<^TWy07*qoM6N<$f=Od% ATL1t6 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/469_2.png b/public/images/pokemon/icons/variant/4/469_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb2dfece00ec62e8b8683dfdeb0f558b82c1f83 GIT binary patch literal 826 zcmV-A1I7G_P)X00001b5ch_0Itp) z=>Px%^hrcPR9J=Wm)}cNK@`V7YbykXe}EB=2udZQnFvC*A&Ur-NP>`}l$lS8!b*^! zDEOoznGf2JheCv)kT8T4aVcLyOEaU4)VmM)5-2Q@M9TDVo$>D7TCb5}u-~V-XXc*y z%sJ=I%!R0;iYlsz5<*BJgtWI0g@h1tDk$YtP)Z?$?6_g<88&9WAz#n^1YmG}g_)ri zGPm*&LdcpjzoYlv`^bi27_Oem6baDy@Dl*}@tY9L(_^erGz`OK_Yr2;F9{)}FD@5= ziJ+Unv7=NC^pTYj3z(7asZ0rjbd+LMFOh1-Nj*&j-An}C_}U(@wlPLeWr{8V1!`Bs z6st+IvpX%;CJCYGP|@iUNM#p7gtSFMBktn~G!&NNUkspps1mUI+!as=Ar;ut!Z-lE zuLkHoJwkr`riQVmE)uZ!T(R!I`^ckVeh1|U(5h3V#bkTE+%I{iZ3@5_m&-)ZbmNOR zZJAqnz$O5m+*=aBlbQ%Xd3(~XP*z18s8T#Qze0UZEdWj&Pr5t} zn2}9R^XfLhrHeQDJoAo>)&gK>16Dgg^>7jWoumBt_?_wLrd=T&MG(v{+4b18si-L^ zfaEkUOAF(yZHxhMA^CPl)RgLTYW1R=06MBc!!TSG=}EGt%+LAeMCjP*vreYQ3L)g= zQXP~)Mr#3C8L{+tj)pDdpQPA+WPy3~sr1^x>_^>|{1N$fbwn>jEyn4G@>jQ+KV6X& zlX00001b5ch_0Itp) z=>Px&6G=otR9J=WmrqDkK^(_Ft97Vow=E3pAQNm!3JDt?T!KOh&A^hVC`83W7eSUH zB|}W;4~r;L5JV6vky(cGmLmkTpJ+t@k&qCY)gyjzC4J1gLF$2!JcyNfZz81&Bw|>~CFTfnl{IgpkfG zF96XsvVdmLlRJLlul7>hm8uIJ;AO9&HwS3FJu+|nygtC-KSs|M zpsGc+$)VOC8cxXy`Lfrbs6c2)U|!v=IG}WU7C>16o6gkg4mB&Yxf6ik(>}&}+JL1S zW7&Y_Bf_eC2da1+o&w-^;{$yFD+QnS0dVnBnYNYZ=i3HdRt>6VXgX7?fl?YO^%&w! z(d#au@bnR2?f`CS?$DsY*)Wg8Q%HZ^l8~u(-~g`lydrnwFnc`P*!iM|q3nam(5QY= z8Y+>YQHDN5`268D-+wwOK6X&AljqAJ&zD0>a|iwIO>twepP8AN#zgzuItLBIaFplg z%Nn1H?CZ~E zEQnuyD!t~b&+2O!hT}xlHL1Xq?4;H<;9}5fY`v4s_p5ns|JfV*oi|-q*X%1w%lc`* j<^YMb?*28B`k(X%K?$5Q11hTU00000NkvXXu0mjfXEB9A literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/474_2.png b/public/images/pokemon/icons/variant/4/474_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc6b709c8db322c3e5d352d4ec86cb482159579 GIT binary patch literal 594 zcmV-Y0X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005q zNklKL!lDXHHih65wxDgJMQEN-|67J!_V`)&vQQKVvNDb%QXNFfCFG3 zfJDSJO>;RCNJQ-E>;YpdlduD639yp7fxI7b7LbS-08~;p004PE1OS#JO#yk<+E*=? z!{TkGE0PCgBnZPmUULBOS#5OecRT8zM#B8WGM*c1&qz~1P1Epo_b!n7;|uC)86G77 zX?(N;NknW`j^gF@4FK!|@}nK{yIV3?%jIzH42MY(78kw^fNJNZh;{NptrASg_s~H%p zUIPHU@wmY8B}tOuF7FA*>uzIdSJV*zWaWhxB*%G_005w_mJuu*pcF~|+1-`^^V11z zS1v^cB}wYIuef#c+s)}HN|B@h&m67U2W);YtQz1kcgPB>!v!lFB$Z?712zN0yh7xW#t9u9kJP=pszrmTd^d2ws)}= g!|UL)^WOu%0mlYv)KlQGZU6uP07*qoM6N<$f&ftjp#T5? literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/474_3.png b/public/images/pokemon/icons/variant/4/474_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc48efdaf22c523c22cb7e02fb1a2045c88634c GIT binary patch literal 577 zcmV-H0>1r;P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0005Z zNkl2TOuLIrf?Mpmu8{u1ku3%pyd{!KS0n3l$OA` zhK6toq)DSfXgN&ErPKxkL47T~ho>0caVJOkn~r;T+~@t??|1jk#u$T@!?px2flJ^5 zfJDR;MX^~DNJLEDbwYmX!wjS$!1%@xh1QC-fJDRqAigmK02Ep)0AM&$7m#OdGAhju z>W=l9NIoeolh6$0H3tB%pWjpCvzGd|k=QO0xqw9f6#^h2LdIqc=j`u`ceb=91!A3r-g> z>TJX3b*t)5PDc>S*HB6YQ7o3x=#3EC^r*(S_YTYj5)tE>czL*2WosNLXKw)jp-qp# z@rdPXn!9{1Ag?>TJ&QU5fTKi4h2%KD%MJjl^M7@>A;7@k1DEF~B7?DfZR)zHvn`G# zDXaqD^u6W*$KPQ*CLhKp!LuhxVKG)LmdyuhnM5fSGz4ebc8fy;gAd)cXZn7Sh*&8V z)YZ8Q$zU~?6wPEQ;P_|lD3P(=66@U*EEHJHB@M}*>0NBZ=5_ho`R{>0eGG5Z?}=Gd P00000NkvXXu0mjfywm=6 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-fan_2.png b/public/images/pokemon/icons/variant/4/479-fan_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2d42121925950a495c9d5f5d785b18d58627a81a GIT binary patch literal 633 zcmV-<0*3vGP)X00001b5ch_0Itp) z=>Px%Gf6~2R9Hvtma$92KorJbMQo`BaVUZ=W^kxead2`FETZUO!OcxXP!vS_XH*d^ z3ZkQ%po3tM3LQE*NGBbN#12)Yg9^1o5S4fKh4Y#;$)%+o`j&>f>)kKk_ujjBpvA+} z;(X8sbn8%C!M1{^z*2nfhm<&qog1bFzs72<6ICs9(CT1*K9$JoXGhk;`m@E+U*LERdgZ?TGt!P zKMboJ6x)^+s5Bs7#n@iZR-D^>&p3*MQ0NBE(N`8DMgEfju8= zt;0}s_3wyE4{Qn`RWPcEK)JJhreBk>%1B(*}I8lm@yX z5d4Btu@eG?55pd4mTPs-L2*MW8XA}VdJ*?^tsuXl-RsMVigg8aa Tz#NXK00000NkvXXu0mjfKR6r! literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-fan_3.png b/public/images/pokemon/icons/variant/4/479-fan_3.png new file mode 100644 index 0000000000000000000000000000000000000000..590e3c7e7a2ba17b6ce4f3f802c24769e125c36a GIT binary patch literal 627 zcmV-(0*w8MP)X00001b5ch_0Itp) z=>Px%D@jB_R9Hvtmb*&>K@i608WDtm7^0&1!dDTsFm@Jds}V%B(#AhPkkle#ohE&3 zv@)HK#zG72e1Mup5u&2_AR+|BU=#Tk=U6tm++{BzDKbrtz0J-q-#0TGgDO0X3g@FL zpj(Hk3RV?_0-veh3@g##smWOu@*carg{W#zp?44C{% zk+&ct(HyVqbi20J|piua=vds(2mkhXxb#Q;M9j@Mj)J5X&vxr;GgU@I&IV6HA!?R7Hz@g3KItRh1;`v+)tB}3?51Y0XBb^Dk!Zzi6t zR!X`8l*bRx!&syvtLEh7s>OT(lmyV~CIL8)7AtFc=$A}E84jw!S~ct-d4Ik}(YBc9 zU?P#A_)>_{GnWFgr86S(z9g1KF>(;Da_rKs8FdB`LZ~H(1rs`J3vwt&8=X>KK zMOgv4gP|gT0>NXU=EuS$dA>Kw3z(~e0g6!7)4AfZZxq@} z=bV97wN~^RR1f5);dR}AFY39j6_gKjdVLk5Vo?DLN$hlQ#RL8UtWHZV4Iz2e00000 NNkvXXu0mjf0006{7;FFl literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-frost_2.png b/public/images/pokemon/icons/variant/4/479-frost_2.png new file mode 100644 index 0000000000000000000000000000000000000000..abe9280ab03737ce284c51857222a2f0507ef309 GIT binary patch literal 657 zcmV;C0&e|@P)X00001b5ch_0Itp) z=>Px%Nl8ROR9HvtmN82MK@f#ER?*HPAX=rg6AKG#u{K~QHewS{1Wn^Fu!({gNTZe5 z39%Hhun-FiNoOGvL?VKPok^M~Z^>JS&1LUybAf(Jj+aJ{(neO$OmbWC>o33g z)=|z@4`2wbc(pY+K#~9u3Zif%;MGA>qQ2X7NdG;9oh=i!{mkKS(QJmnA~&$N-)BB0ZO@|ZbW1?(%u>ol_ zA@R$ik@gykt1ZnV4-5kbl#n*4vA5pn0%NPfgDC2G6-iLha7>;HT}P}a2Vu_XWw8xu rD;mebpt*oLf002ovPDHLkV1fVuq@N&0 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-frost_3.png b/public/images/pokemon/icons/variant/4/479-frost_3.png new file mode 100644 index 0000000000000000000000000000000000000000..55576d669da7166331b589d3b73266ed429d8627 GIT binary patch literal 675 zcmV;U0$lxxP)X00001b5ch_0Itp) z=>Px%TuDShR9HvtmQN^zK^VrzO(|-Vg9}MgvX+NcFxJM^x3!t`@Rb6$2HFl1tK300D0I z;8cwa^=inH1Ljjff&q$A(>kEm7v>FMvH6%+K>#Eh6RN8rp;9N0MhO=fp(f|%H5>yf zB51dd<$-`>ea(7S$>*Lj<-#3$Z;E5O4?r0uG9ej}GZ^ z350h*y2df)lb4}I0-J61ve~RUyL{0gK|oU7*4a+lSLR)^F_`m|Vs0U4R5bLCS8y{UQTOi&4F(Pz2fv)Pth0wbQDy zy4B=n5TFDjj2EDkn>i@k3qYYJ?d5#fECFFRiv)8}dtATq1+Ic89w(YeG#J*qzoh)8} zE}Mhwh1DOKqntAt^P?Pj1q0G%LgJG}BkiTd$UTI-Fi`E10ZK?4l=ea~8;q?gs(M~U z;wl=B$$MeY6)Va`m}`1jY(v_L7Gj}mEjbn&VAw{!-k^lez07*qo JM6N<$f&c=GFa-br literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-heat_2.png b/public/images/pokemon/icons/variant/4/479-heat_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a440f95b3b7cb3e3605c81fa21b5d7939ba69af GIT binary patch literal 669 zcmV;O0%HA%P)X00001b5ch_0Itp) z=>Px%RY^oaR9Hvtma#8`K^Vs08nkQ%i4c(vBnHVhiI_!TTB^)a_wYnJ!i22oq4+Ugf z2iqQLd~8MWx#0dH23~;J7?1$OFjeBioNQgu&`e;RV`~;(7p1xr5QU+lgtP$yE}dzi zeC|a-x~!J*iE_r7K|VPk%?6R(Z34RNHuD_@=?y5YHNo%>>hXYz7;Lv~E#C~T=JN(* z%Vgdd?E3P9`uZC+Ab&PNQ3LBaG8~(z2K2fISpf+r6?6Ssa4zLM2^n>_dINHCWbHP; zN8OoeN~fD$Y?RNx7Ux{O>*kRWv1MBpbpm3tnYp9W2^yI{C<8oR%c{D=3rp&$!Fab2 zK$%b5X}th>AwZ!Z1xdQiZEKjFxr_ql?@YMDa|5Lw-pZ~YpF0ry#sVyKG*NGVN*@^N z!SbW^F`C-QY4rexk!tkPDe% zm$0@!3YFT6`M&~`8=A0jEj15OHNZIP_^hdWz;E!qb1nqjB|QKD002ovPDHLkV1fVu D<+LV~ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-heat_3.png b/public/images/pokemon/icons/variant/4/479-heat_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5c9482a5ff87b8e83126dd5d898c2f0ff139ecd5 GIT binary patch literal 666 zcmV;L0%iS)P)X00001b5ch_0Itp) z=>Px%Qb|NXR9HvtmOV%VK@^0am4cO>f{lWLK@bE5JGHS%A&7;I8n6(wvlJ8rOFIP% zgFl^!U}0ku#YRw21W94QG=eskf>z30nB!&HyWN~Iq{wTIZ1#4)otd{ulhk=N)j6Lu z0RQSxL&2ITcz2op;YLGa=QUN`xf$RFM|T3gug_b_-yKRVA!7kG92LC3T8ae3{A$BT z0@Bvh(44fi4hMWLxc`WO7a%qUBmhySN<7ST=1ETW`>k_q&BFKMRCfYmVW_AfZGeC) zF04q`-c|tVvRcO{&KYM0d2&FS4Whf-1a#SL<~s_~8&F$og5f);$AXF|+HHH6H-oGB zya8#M&Ktq@&z~fdE@cnJ&n76=!2660V-weaUiTms&~REYTLb7Z=2DMo$hf=J8<2|! zSt}N$b9YHzKl)s3^7!%*%$dv`gw3NPV#~H()Cq{mX6CZltjs>2mIJOXm)70f4ju&K zW>J7TpSII_0rEwFLcz1~c^SyAhcLO3R0()-Cm1u~?(=W5@qSTu{rKF0*f$a2TKhy< zQ^@LaVEIw+l#JixLqLF`22&lO#b%ye_hll$nYM1}Y3>Of$=vLg*^4eFm}#-i#zem) zwuNXh6fArf!YLY-gHVlSTC6i&^$cP`W0#ux>6N;??#50000OV literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-mow_2.png b/public/images/pokemon/icons/variant/4/479-mow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a785ccafd489d06b8cd89e1918d6bf5349ea9e9 GIT binary patch literal 711 zcmV;&0yzDNP)X00001b5ch_0Itp) z=>Px%fk{L`R9Hvt*UxJcK@MTAf!7cU-)?a_eV3Wd;1MG-WA zMifLb7cB@Lh3(ObhhFL-hfokNEoJE;P-tN(+SFgDe22dA?Koj)cT-!?xun@07vK-FXkpKh5 z11_?8AKagD{=k3|$ru}-kPUGjU z(8lJ9ex1I$piV*0%6oH~ryHjdn=#4Tp7|UI)Xn;3-448&r@>`PFm`{DJu9AOT>4I4 z+c`n=VIgiJ+s}Zwb8KJQ8E7sPzF3+`UDD^zBmyqHtm+>}@3zJw^Bfk`8OXT$Ogm?T t9x2d+W002ovPDHLkV1gVuOSb?3 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-mow_3.png b/public/images/pokemon/icons/variant/4/479-mow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6b51214586bf5273ef4b891c0bb5257259fc15 GIT binary patch literal 708 zcmV;#0z3VQP)X00001b5ch_0Itp) z=>Px%en~_@R9Hvt*Rg99K@+Mg^=n}C>&{WCyJGYXpv~4Y!ZY+B?=}eViEZUzTw?C$Ik91CXh^Xxy$a( z@4okDb}y1WKB7JDlLKJh3hj>sSIalHIwdtwe~>GLTqgrX+}P67e~izEFPqQuAaemV zZu8njIeF%&0j+=7kPB~q%JTAS0diM>zT{lwk-3)!$dLt_DM5`peEX7343JkN-6lN_ zq==!RY091%h@NwCnE2yluME~c8x*iC`|mpo7M-RygMsc!1rR0GX%R#qMT>{NN#V*l z3j{V483gRKQe7a@!-$`}lZihkygLuEL?-oRFc66i4V{<1zT;-%Mx$Zga}cLju`47F ztDFlcH&CZnDwU+w`rd}ZWb88y@|F46aKAldTY*fESFhLSI{DLF>NNz$6^bO-ztLyz+qn+Y1I42NS*370dK$ z&E8p%9&mc|=KUGxZyQh}360}ePTidH_TblhkEL9`YW}A;@3gq!1hvB5w5!#s6pKY^ zHkbLE{%{&V(SAvQAi|Sb%8+z|`uN$18 z`>>GI;J%*$N$2>!bTH6eD7;vfNkh`-F{yxCi!bbtqqUh@+dMl34F(byO^il9=&k~N qI1R<$Y08%7*vuCOdM9E05`O_qrF|}!RP?<70000X00001b5ch_0Itp) z=>Px%H%UZ6R9HvtmODtpP!xtwK`huV9RyJvIyk9V96C4&x(Y1_&K5xmI@w8Z5*(y1 zDu|$U7KC0Vtmr{z;1f)?wz|F6v>1e&C zAVUKv?MXlraR)Xi>ka0x0LKd!u{iFakp}{l#u#j;bW6**VGEGYbx^;t`v%nGtlr$w z-j1vz)q<4)&+9>Ul1jI3x1m->LH_9)*o5vN^llbsVGtXT}8z64nPbuH#MS+ z?yW4_0$$fXD1QIyyQ@7#Y-dmbW3)7Q0xY}L(e8MNy<{lmhkL%oa`Tx%TA4!WJa&;x!0 Zp&NrPg#byL00000NkvXXu0mjf003#c8^Hho literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479-wash_3.png b/public/images/pokemon/icons/variant/4/479-wash_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5e3bb99fbf57618336332b6775b53927ce6299 GIT binary patch literal 642 zcmV-|0)737P)X00001b5ch_0Itp) z=>Px%J4r-AR9Hvtmdz^!aTv!R2Y-ObLFC{fiNh)PCjm{w9oV3(H<-f$94}bJ;<$rG9tcnxW3Yw6F^X-kTY!A6gZho#H=rJ8 z`tF4y^_8yUj_cB|Nl$<>PCNjSW-=L?fA}B?h;u9n%zM~RPj~xn9#=rS@d3a@B0;Nb zn-rN{Qc$`{3C4Q!1_+?Y;(=v=4fgg8TY!Lw*On?4m}O|0eO>{JTc_yzY*|Ib^A11^ z)BJj)j3)OsZ2^xL=BVU7?YpZzMQmpfz*r;k0d)i{j82RX(?vz2We{Lk9kCfJ0cq8( zt9=1-p?{V|)H5(vFix<(u9E-a<$ZwZHE0}=I~R3$n>wL}XgjeP`LOc37V8pb^+w?u z#E)Q(8!($iSA)2jKA5q`7I!XVboBg4TRndU<*@b&$iVVt`P>trgycV>E&(~T->bIV z0Hr+%(pgobUeL*+XFz#VX%x-!c7JX)0uN~?dwR6ES2oB%fKIVvpFbEF5H-u=$*K0T zK?Vl2i=CSZM>Z>GAIGRSN8SMSqPA-$r>|=XnXQ|1GHBOz`iF&6hk6+?_^)w5JLp{Y cLJ#;0tyPCEhgbl(00000NkvXXu0mjf05=pJC;$Ke literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/4/479_2.png b/public/images/pokemon/icons/variant/4/479_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3e9c85463b88f9268e78c9a129591576a16dfb31 GIT binary patch literal 579 zcmV-J0=)f+P)X00001b5ch_0Itp) z=>Px${YgYYR9HvtmM=&{Q543{Kp5zXK@m+0_J`3dVsu~=i&zvz(G`nHuuOxBE1G0Y zm{G)F5QAY1j6;TDDi|zNPz2?>dd7K|xA*7XF(0^--k%LtmuYO#QTwxPb4xwQaOq4hRf{hQvI7{_ zhpZksNlK@?6!vPG%a0;;cMpS;c4vR6Mgp**>5)#rhELMO} zu2Mas@zrcotJ=2O8u09LmU1U0x~ttcAkTMl>KNd*DjEUG_Cmq=?Y#zIemSFn^J_~q zoLTsR{`I0snxvIv z;*t+=d6CHV29fr_X5~6Tke+~YL45-IEvWyGL&Q*={vas%%upWGA)B3h1qs(U{oIKt ziEb$%r(IV_w@Z{Xw*^p+siX00001b5ch_0Itp) z=>Px%1W80eR9HvtmM=&{Q543{z#uXNVPzJRvLb@PU@(XX8Z3$iqYAPW#cH&P(IMyy zMn#Lkfr!CiP!M$Bh6}^u%0Q4Ig2LpxaK_>C_Ws;E<^#Ry?ryvHcfa#}=e-z3e8eKo zM}HS^`8i!b7|2=+V7-BxMF5BOe?XG}v3ikJ5P+AH=QMFKt?p-A=9YSp;Rc7tDSv;Z zApZe_`jFM@PNt|Y*&7`NWhmf1lox|bZ0kcS4>BCUFc=Q=m&z->SBlnQF$R=y5=>e` zLYjuf3J}Vb%VnCGU21Ao+frKtI*vo}>@jWCzZ#Hdr;eHf+*U;+Kv`ZWcssY+09?x~ zD&UcmJsKLFQlRWblQM?_1lUG$fl~1?S}A4J;hfyU)1&%aD%>gHT6&(=H@E5ItxDgY zRpX`|2#^)q@84Ar3ek0Y(1zxe{R#-BLhKyRMLKmoRB=3!rRMVbk1lKtDU^Y4-DD+X4NWzJ9@90hA3Mb1xNt a03U5(E-c}IrvLx|07*qoM6N<$f&c(}yaHeV literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/524_2.png b/public/images/pokemon/icons/variant/5/524_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a93dcb3c02fefc51ce1a0d0bc627a26630bf0ab7 GIT binary patch literal 3133 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%0Dy!50Qvv` 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600B@*L_t(oh3(e8OT$1Ifbl1| ziIYP?kjfQt$e`e0ARyHLz=|CNL2%bW3WA+06oZ5A1wrUgzXtafgrn&oxO5OTAcEka zi~G5lU`r9m{1kVb*NlmO`i!XPrWz>?$gF*-%3-2}`W7-K6w_bLF~ z`VaJ<->~yJYOO16q&6^|+a5e`TeSaMwIUNHjR-|TU6 z)K3R+7zr@ay^hwbi!%cJiHs|8pb$b8m(~EH3mRZcy e>Hqvu|5aZPEDO}cityP00000X00001b5ch_0Itp) z=>Px%JxN4CR9HvtmQN@|Q543H&15U}@~0T3Y$hWjv9q9r*szh6jfJI+C`ESGHa1pb zLrDH*VSy+a%~A{-ypoLtEBbD}*PUnd?lsRei#eNl@7_1B-~G;a&UrQ2Eiy@YKVkErKLx6b}tFjjy7fQo>OUA#+w zPrrg9Aid{TGaD}&1JZj)D}r!<0+8#zrlnf%pKLo^vq`rRAlnDk0t`}%Xg@lY;oCil z*Z2JZ1Q?#f?@_g@tig&mg$xAL;Ru*aCca^+Wa90^14Js1Mx4}iF)!c6PN_J$;zi>(XB2$1ara0mj=?8@oARz%ogJ&9fJb*r*3CKCk`_KUi`I~X00004XF*Lt006O% z3;baP000U%X+uL$b5ch_AW20-HZeIiHZ3wPF#rHaiJg{rR8!d&htIt?y-<=6ij>f6 zXi@@54ZTQ_E-Enz5K6$103tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUF zWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|> z%+C|c55>;RS}qbKr-&IQTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bfe_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l9 z0Z_aBhs|Iw0E)7{bq;-T9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL z1(`yIK=_}U_z%PWq}jQaiQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{w zo%_#%{(V=tO#a9gB!7-$M?^BX5>d|Vn*3S!?g~$*UQipUPL&zMmg;!4Do9IA%up=Rh? z=qPj=x&RGBx1dpI68aT-2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3Oju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvD zRIYI4MQ`g1<+DyrL=EogS06Xii({| zv`U^zjmmKqDIK93(F5q|^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6b zsWa4l)YH_rsduU0(?DsMX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5 zoYvCT^3%%Fs?s{6^;Da#?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR z{dFa}^}2()GkV5)QF?`X?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJ zuZ@h2VvIHzbs0S}Rx=JT&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lg zhs_<#1?IcWhb_<+P8LFo28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wu zZrx~o$A)4PXj5p@WAm%6nJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVP zgQJ7Uq0M2^(ZDg$vDWbhi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%56 z2@eae34a)26HyS+zks@6$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWk zUW(I*6U24LW8oFzvR(TOpM zEs5_rp_~TJ^wNN(wM(bCZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f) z7E}wKr~0SXrM^xJP1~RLDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N z5;bK**^9Ef#WdN^)PTf9vR*Qp{o-l7 zTcBI8wqSIn=gRt3(5j`YdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7w ze(PI{6^cd0H#WFzsN0CzDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8 z%%N=0R?Jr6*6Z8cw;d=~F3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~Ee(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H z9s-9XhaP{M`0e$>L5F*fu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe z@An_mJyvsE<#^c%!il02pHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf z_v}A;-u3*k3(gmgUSwVDy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+f zub#UWaP88_{E^}7QP*$YNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw% z>L5Kn>ODH}V8MesW8ASPKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j z|6Kdbc>FRj6+1QlT=e|YubW?}zu5oM?q%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600KWrL_t(oh3(fdNE=Zc$MJ8* zLZKpoba8kkE;*+lc!)!VLJ@>UOt)ai7E-zx5!%`9+`OS{30;gBq2MA|tjGzHrN*HK zGPpDl#Iba_4#)p-u@UdQ*B~^%Ex99n-ar5Mf4r3M``qWGhQNdw0+VJ4Od8`rrIZiQ zZnsk=e$OaSDdlfD6{OqUk-BX@@X$=M#My@qeye+=~(7po|X)s&#hJrBt*5c-YwB`R89O*fW0tt2K{O(WYASD5rli zIyV8t>&aVzVVnSuPMQFWWHP*Ya-xCT-XTA}z32P!Zw&+}6>T1Ut?S;6)044))tbju zr^EE5rI7$1KfPpihE5?%kg?? z69}p+$ne6}HtRt2K8)OhvN-_u+vmtU6yR-^ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/526_2.png b/public/images/pokemon/icons/variant/5/526_2.png new file mode 100644 index 0000000000000000000000000000000000000000..13b1cf0d0ac14c6bf7cc19687999883110dea9d5 GIT binary patch literal 783 zcmV+q1MvKbP)X00001b5ch_0Itp) z=>Px%$4Nv%R9HvtmOW?`Q51#mb_Ns)k|k;4DuEPP+--zZg3*))L{J-liZr5IZ5ITQ zNII(oY%EM{v=AW{BKZ-lQtry8SP5iJqmIZH7F$Nn#k1Tzoq5km$WGyFGMSm3_q}t^ zx$os9<0F@GKKTz=C=_;4rB8h?LFJ3pd9vV9xQy@ zUl5=VAmq7)M4)&)LshU-#U=XC0I>*q)h@`ls~jp|h|=ymnFss@36CK?<1~aE00000 NNkvXXu0mjf007uNW6uBp literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/526_3.png b/public/images/pokemon/icons/variant/5/526_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e563cfc41bea507a47f0641a8dfa885c063023bb GIT binary patch literal 3544 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600QJmL_t(oh3(fdNE=ZY!12GJ zLzWH-)<7t}5)Fk&f`~$(#9%1|f&@Z4baNEJQfQZUXdKeXA_(GEHy06t6kH-{Cj(LbF};i)*1H>6hf!~ zilVgC(*MqZdXNx8O@y30`?}X0Kp}*hnG4fD5pRAVKqBO1cjKJ#C_mWde^a(qTRJJidxt+`3F0bi<06C>Z@ZhL% zz(mN&>|qCe!cJruPFM3JZEi!m*izhpyKUL23pn4|&B*dA)*_1xee@buPex>zy0ZFC zfW1#Yk(mo?Ku0Re^LG#UvhkQeIj@241z2fIgb?cJz!1|jBmDXCljuT;=$M`Ui8zJt z?^%m10#NjOi7mxzDm#{d`r>Q;EfI2(w7ChC^UNN0Fg-H@z}q)#1P_i38C^@+u>?$n zoU{ksSCINdnd~}Y_OQdyw@=u~DJ8@A+m;N@dInob+T2=J3L#Wk{{RBz%M8|k zHUrIBeP=*@ZClw)128%;WElK9tR4ukvYFN<2-VAtr7SkD7Qp(}4gjBDy8wtTl&(N! z=#g@AH$B&uf#zeA9@szRB$M7_eQSr8zsmFsw$dJSYfv*XrvdInnoNZQ;6ls@E&r>CqXOI4tL>*TfqBn#UB1bUws zkVU`O&`uvdkBgjAVzTRmSfPz%VY_}{dMeB6qlW<6is)}Fgis|CxE3cTW8MjQpGpZ+ z5hyFaJln+zZC8M@EnKXo86^icKgW7xrG%-PB!Kpw9Y5aJ2CUY{JOMKfFr0#JN*K#! zrV`9bfBp7G$L!j{qT1{4pZzb^BOR%%c03zD-ePx$$Vo&&R9J=Wl|4wqKoo#Ke?|ufrQi?_ zK|~4_1UreKLk2+p*yPJzr zhjKNk4!Ncd!hO?S?(+EZ-n|QGG#ZUYqtX0l>S`582vKy-ZGYRYNo-$1oKiR2ORlxP zxedU-Xw@$ZA&Qk!ztK0h;Y+e!MX0ijl0R4b$6EKf`3MUM0|^h;eM>6t7`nznnVauj1Q&(xVxWadH0Z>bBp^C)3xu+Auq>G zEeVpBQP(~%Wmi5IvQ+z%1GEoE8K;pGKFaG-cztGy<=sO7E_UAO3K_0Ak(B94Q27kX zpdH~bg>0G=J}6|<6tbnvwvP+}5Htdutu69;+xkOJ1#aK>ptED2b2*N)*946KW7CsB zscCu#4~V2pGBJzC{0qs;sOPTsC1^G`0I-@|07{J^$8ru}y?tWacAY#PDpyWTesxk* r%E-C(_KB)cO$8;+JFePHY5s~YEC#i+u7Z~{00000NkvXXu0mjfu(IZ2 delta 448 zcmV;x0YCnZ1la?SBYy#)Nkl9or$AWa|(kZwU5$x2(MeN|_QD|{c z3N82t*uh0wL=cxQ=UNVGhdLAm@irIhpar)IB9(HSL&py8LOLbhc{g|;77BT$yqDz7 zL*66@2m}IwKp+tOX99jDB7{(5tn0cjxjiK@N)29LOnr$=4u61mQP-0RA#_v9jzlKs zNpjDL&}JDK%h}Yn4FKIr$x{BE2m(N}(BqOC=%skLXjvmRWZe0a3shiZ(~P1 zo_u_o`a9Jk!s$GK^=^9E#h{x>=XVe2REw520K`s?xm>^9K=R@mKVR=|mI2`Kk`O{@ zv(N(o>>s=#6n}~05<#@EGL5s7KRs(8E2m83wz)ixZx<`o(^V4TblxJ!;^l10&)@gx z(2^%Br?wJwdBM$edizxX0000 diff --git a/public/images/pokemon/icons/variant/5/546_3.png b/public/images/pokemon/icons/variant/5/546_3.png index 126bd405d950a9bea68e9a5d9c42229f86eafef6..2bc5d147c8c91ba65c2d00b300795373845374dc 100644 GIT binary patch delta 496 zcmVPx$!%0LzR9J=Wl|4%XK@dQnA{xY?;Asj?RgfSUu{;P^iXsPUqlntYLSi9% z<}^h%7Ykuuwad;8kJ+6$&}cLojYgyS&$Kivkr1L%y>}d^DSx?rC8?ImEKYmQ%)LC| zU$o(mg%FjWQnfJm^1dWnRfK+Cqa>Bi)?5ROmEV6||DOl~M0XResH|S0XcM<$ZcN;Y zQ7GD;y&seWrDUY5-Q7RGzIo0MbEiZm!oYVm{Zz3{CHUd?k2$M7| z%ENh*rbW`U02rSN0bm$GR%5fQ-JSiCQ^EHfEEH|GDQOBto2#393?s-~bQ1V#n$DdS za?4vpcN09^K4Nbk)IA%0367QDf$ve0N@qP|MRsv1(1GJPE%JG&4DP1<>ZGWYk^54h m1684>3QDSHT%(oJ{1u;vgSMD?8UTL)00009qBQc5YbP`VYoML}@w*3}|GPzQ&O zktn5$v73uSpsU8N5yjb|79WT1Z|?5BhkNfX zfIuJ+2m}JbenY$ChP9k~>rqyVTqBqoXgC$pZ*48h>~)A%w0=d6CNGLrL!V z5n3-JV{VQ;+W_!Xuei#;6+r+f^i(d&c2AQP#HAb`6PI$(WW^DO!IvPDygc0F@#ojK zqrX-xq1o>OSnXz*UEB>asq-*Ityprk0pR5Lh|9H%0d4^dhNB?M0PuN92qCo4Qvm?i zuRn-OIqc6QEPoTGW1N@#!Tk+JW!*7ulgs1#cCk`jot>iD@45t8JU7Su{53vaTzN)i zeIr5NXOJar_Pfwz1X00001b5ch_0Itp) z=>Px%yh%hsR9J=WmrqC(Q5?rVn-U~-j1I2wQ)n}E4|`HrmMl@kC=jGBqKh4b7NO}6 z7>b85I+PViT^2kLp3!yfUdq2OYh&<{=8gM@A4l6P&=L7LqwEH$JJz8 zMCA|mi>`3OPy;hrl|R^5nGI8g6NU;WjAM5n&s%)u*%Uk;R=?|dfVHCW>8=<6W^SEm z#~9JKD;QM^?De0g{^_^iin)l`Drki=8>UOO$+n16>3ET{TDg<-ZcnGU{q8l)+ynq- zZi0KMX`tZ0Qdr*Jp?Yr)%d$d2_iIGNrCMggR3c*EYZbM6+Iw0(r+))`6A}?MFq17x zsJGmCAi@blwe%)ki*i067{Q~#by7`A-?#K8T|U%{Q0cg>ep%irbs{H`{K0+^L1)=f z>3Fb8mLgfI9v&sB(s7r6y~g*|i%Y?>tWd16sp$7d;}3{6HlfFoXGe%NHj&-3PMXpm zv=6mX&d*Y(x19fHY=ZjI-YTodyrOLNt^%L<1E$m=4iQS^Pyhe`07*qoM6N<$f^yzz AJOBUy literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/556_3.png b/public/images/pokemon/icons/variant/5/556_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d617014f75f2a0dce106741e60c8d75e6f6a0b51 GIT binary patch literal 857 zcmV-f1E&0mP)X00001b5ch_0Itp) z=>Px&6G=otR9J=WmqAEWK>&t7qexLuq)-rHaN+GC#aNMoNTFg6i)<(;)S-(|1`qKP z9!yKbgS3ZL7K*^D9Xu?GcrZPzUV_*Mq7(}00})mdMNqVZybjxpyX}_qv?RzMmiL%> zZ|0kS{+W3T=Q`K9{;Y%$ju65*tNwCyACyqjUBdv}>u&|Xwr%Y;P9m+wg%FMeTU=NJ zpt7nQNP_-N$O}4f;owUa7uN8!Y;(V_K!Jvy^c?%{Y2$EF=OO9VSa-U6My-cxJD&l8 z14q-HB@PPGt=rmDoZ8|0=L6J>QcNojK!49I9t=-m+jdU2IHV5BZ6vfDlnqKJCPkg9 zo7wE;?v)pG78}aR#f3F0tIDaYD#z2Z4IH`eR>x*A8)(cqLAt8TIv|l)# zmrXG{p`1I-QK+54&V56<7PAu!MjvjW2yD#qZMfjHUAmJH!U<0_IiGGka_(HZmUfk^Hub~xEdS3aK=}(#G^Jh7 j6y!Ml?9x96_}}U~w|$Dr(S%k-00000NkvXXu0mjf<$92A literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/571_2.png b/public/images/pokemon/icons/variant/5/571_2.png index 1e238ee619de1a01c8704417f88e4baa817dae14..8153cdb98e9a261e1875347e015d79bb69fa2c12 100644 GIT binary patch delta 706 zcmV;z0zLh{1=$6VBYyw^b5ch_0Itp)=>Px%lSxEDR9J=WmoaPGP!xrag(*~x(NJPq z4Dp3n4P+~5zf%n#Q8*|}gL!D3oc6YWtK^255nildnh8oCO1=E2^T zVeiTSAe?KDx-bM$JKUV$a&VrjP>9G6 z=Q9!fEN4?4`W67-$8;LNc5G}lb`qa86%D4M!G9aqMemHm0f^jBQz||8y_3dG z zr?;4#eu4b)Y$?cvTilYGFmx4$u44O98P&=Vw^zrwy*i%jfrhT)VCv4j9Ds08e*Oa0 z%251Ia(_IogkcN0RrqrSlVByCP5Z}Jw^7HT9xW{$aC=PXLh&`^uv<#S*0j;lLy9;r*oa1ge zKj?v`WgHX=IZ6(;U%kP07pA{ej>{@753#D0vW~VHxlO!y_Bt(;@oEDHiBlfeF)Nr? zb$yj8?ZpJ=aXl>#3N2Nk9r$T((E+3C+GVP|{bbLA?uZwLG21^UliS*dhLa{|T~R$a z+dJ=n2;42_wE<5$EL3@z9r*A7TwMV6qp|jC{2&`b&b_8TqRu*1e*hwDUC)v+`G)`i N002ovPDHLkV1jf+NJjtw diff --git a/public/images/pokemon/icons/variant/5/571_3.png b/public/images/pokemon/icons/variant/5/571_3.png index 528bfc4b71991723de0d86b4875e00935c76b775..f8602ad7afffda20682d05cb0e0947b894febd98 100644 GIT binary patch delta 719 zcmV;=0xPx%ph-kQR9J=Wmocl;P#A`viUnOVI7Gy1 z&(^`Eh(!>*qg;wxL4QKQ4x#l2l%SK)8wyhBPw)>Eteb-<5y?`d)6LZ@r5)~&#X^TT zg%E!HnSblLnZ}IcuLhIEylOjm zV2=Q}`1L+lasXHN>AXe^z#gF$rvO~!NK9hqiiHrq>$(LYgdZW60L`(~|GYwdWf!@Z zFHYD<&K{}oLZGa-s^G0EiTRm3K{fHJl1R=pnu-0j;`HAr2+-{hp;lLIeKt|#x}SbV zJ74CbS8XGN@PG4AF?EsXvk3sL#_{G(wK^WbV!Ub_>=8F^SNtrB?o`k;n&`6$t;Vq; zrOr_e)f^`Wq^kCf?4`AskALn&o_G600Q6Fs#rc^cxu&8- z$jH~+pjJn7tgZRERoge)UqB#jSf0auRPIzv9Q&kG%c;VK0(fL+n-C zm_`%RX!7)76|FdBIUlo}kJmiVG@5~mvB?3Y;N1sDXvL{&Cn_Gp)*{gyi=Go$hUUCe ztCV>o)qe{^pG}mCnqxsR*!EuY%m+ea;Nt|I=~deZti*!ZNH9z$90FN9aRZlVHI7w5 zg(r+puExXiliu$nm^82u!autITonrTh%P}6#rNv8#=NUvYIhex_}6YeQN;m4h^5!b zuuE&|4LZ5($Egkr63h8mg|#>6M2y&V-Gb}71xOiQc?!x(F!f$6Rg#61q)zx)W`F*Y zl^c-pP7+7>#I4UJEa&6QVb1*y5f5wLm#72w#UId`WZuLtMVkNs002ovPDHLkV1l4P BXpaB@ delta 667 zcmV;M0%ZN>1+oQ@BYy&UNkl@NKPT?(y3gXjm4As{df1VVNX!bZhghLA<+7|+>ku7mwvB>7~?kth`WEH={J z`FGFz&%j0-ZS;R@tH@>|63J&_7#2D+sV5!AV7h4o0BW-d0Dr*!^|e$u0MLto0du&) z*ee<9QJFU;A`yn+77>Xkm`c;Yk>AS-^~yttNSvNrqSdZL1;?TFHDl@7VC&t=zasc*wZp@)5T<7d+>G@#nK{ss>kx*6nx>~D90HAxYoBGbz44DeL zX`?oqz^XtLaep+^K@Ma0U{}JibG6w7zGmRq+?Kh=O3OudHm|$69AvP2?*Z?-uh7M# zi^t|Rg5fAvp%9UX=d&lWoK1C*E11=4*JJPdJr`zmN4eM64EUM>tJ0Lca~Te?_iFfdn z*7H65`8`1RHhvLbGcXOD)FMjFL7p6qMgHC0-r)PsjvQ;z@B@otN1O9nFbD8fdk#NW4Gjxv3slb4=^8lU$8HL=m_-WT-Qw-1V>pgxn^WnbR&Rm$DnIVYnt zxZiVSuVW`TH(Tv`>3?1`0f|Vw`S49#oL{F-10oU^=ht#g(cjHIi`gYE9F;rK|BQFH zH$~aj17ygoHPgUB=jl94Dm_P%Vg09hxRFAC0Teo)R=W6LoeTf~002ovPDHLkV1j4f BMppm; diff --git a/public/images/pokemon/icons/variant/5/594_2.png b/public/images/pokemon/icons/variant/5/594_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a646222959fa8f8103adf0d48f253f65a9b8c4ab GIT binary patch literal 1876 zcmbVNe@qis96v#aiY_A>1x)67Zi3VHe)I?J#jXN{6+(g4Mt&)9+#U3w*E{d7_6KC3 z%n z&-eHD-Y717Y4*(2nGgic&a+zVU`_|)+38P#cV%cz2uw3XYnco|iF3kZ3iSR5$q+Pk zm~)gWrM3c+7I-zq2sNzQ$BO_BK`YEYk)j(|1+HQ1IJXJ8(R~zwImU#P=xmrx%x0aO zH6XF80)-Ab&_Ej*#QY+>!bbuEo>eH=$GhAz=`$e_UJ|UspHT#kK$Hd(k{K2Vm)eTq zY(ZjSqZ(Jy7)HPuMm1AIX&6eg940VAgW?2=YgCwy#Pp=r2uB|Th?AIF(r(F(3IjV6 z;#3roL{YETtM+Qtf>ej%MxznM2$UdH0HKooZiVux-16c{1`8|G5+^F0;D*DDRE^+K zObAeQ!UkT9(YocRpMb|uA0?u=8VlPL0Wx$9Cwe4TL^wmEtc&GYw;}^99>a=GK@nu9 z@GsP{S-S1FqBQ zF&#B|-y+bSaAYU%Gyn5`k;H-0qFhhR6E3)LN|07g2Ep=2D`FM9F1m7Ya3l*ziVkPD z38BMbWf>&;nR{XnOwf9rEFk@la8JNwp;qxy5}R2Ey!F_0LV@yVxDF@mK>ulCL$2#TAPXUTMwZo1xqTPre?Pc)YhT2E5KqHV*L z1zFQN_Lq@gbU&9hzuP!>kCNWLIoRp>#K0yERBWv1U6S?MkHP8%mfr3hUSplN>|l>) z`d!}^=cew(>u#ElbT{4@zWddm!_D5FB`-gYa_U0HZGRB`ms z>2lla{nt$2UHR?P{?r0gwPf(#VDGml*A7li4{Ae4Miv?N6^|xtxHHgI-dZ$}v~UE4 zBw3S^c)LwgO$MMH^G6Ft$1nSuj30N+3kKTT&6Z^=nnqg9Rh9Aa@s}=|W^8Relgq!I zLiR#UjhCQZ#p<~Gx!0#TgYCo*JvU~(*WWk3yy)U9o}E{#6V7EFwtlpx;0}{G)NuY{ z!s-^o=1ulfP0b}#fNQgxkiIJy{BIsuHP*v?$ouyg4f&zb##?6noZG)6_4Z@o|6X2B Lq2;rz>WzN`pK+cL literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/594_3.png b/public/images/pokemon/icons/variant/5/594_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb7c319cf203765ba765f9155ae0e95b820ea46 GIT binary patch literal 2075 zcmbVN4NTN#7%n5=UvMfeGJ>Smsc6>g{cv|&@kHPlpd2EetDBmyU! zQse}m#Ny?EsMVZ- zCh{JD8Wbv=Rw~t~-k@M?l!l=+ucKz{NsNqI@_fP9OGQ0wV2U1&QT3RQ5>O z_Z517M;gV8ozm(NHg3rM0Nkq()Dwp?rE$ zsT_owd4{zYJ_glUR9aH2BUQRbps;5cN}`?#W@ysRd)yREm~~SQKnR=zL;YnW6L}Z! zfq@}A%>WCtnM~zGiQ;IGYBFLlX9deLq}Hys>1|qo+wFP-4q~E}xXm6-<2t<__Bf@C zp=f5<-o(@Sva-YW479gvG=Nd-l(=1|W^i3hbTm%I=m4(M>NMIIn-UoGhGF|f9u{sb z%Jss2M;JUJ6b%#apZ&bZt;Mmn@$A zVN+K2ti3^#SHC~*_r((?m*yUgpY!&fhCF;~c}>awq}Tpwzo00|oiZ_d_R)mc^$E+5 zhaGI#7GjO+{KBWLnzJsgeC-cnO83H&lAhCRq|UfjZ)C)`x3`Gh2hOan`RKb{)m&iz z!sO!2sR0YNjdxa*Rj5`ZC+>a|a~^a5W|*?OZeMlu_D!W-!lp^Fou~e8>)4QRW#eZ@ zV%Zh*JGY8mmOEpLPd4`lY_2vHkN@}5-BD>=#~(hoJG}CKV9zI~ZC7(*!{+DbPc62* zlN6MBuJq=@X&XDpmb$>69q(41vb?f?$DXxG<2!;^t1fq4&ANO3Y~PicwTCXZ(=%J@ z_GT!gBLTOz%$sfw8I3eOh^YBm*PL+R$fe!)RvuC>oe`z&ne}sPP+IR&>&2G7YmJA6 zQ9oU5ZlCl`qkir(y7T^DcMN)~iQEtx5Kh;uudIt}+uYFi@;dwV9#>`mjl|&Uiomu- zwPO~9RGvE-aH%!$j&Lpc#Lb-jXAegt0TJ+@!&16W_xc{*|hVDU8{7ZTbhq+ zUTr&d)xcHMnhKZJ_g~096BgQPT+{KrHO}G4(Gg!wNiP?7u4_5jTN_w#z5aIFgL9uh bAnu3Mh5b6=y}mD3$-nQ^q;yk#LT<@_^5yF& literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/618_2.png b/public/images/pokemon/icons/variant/5/618_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8b134146ccfe01d6e33afd15b7ba0be0774b6b08 GIT binary patch literal 540 zcmV+%0^|LOP)X00001b5ch_0Itp) z=>Px$)=5M`R9J=WmcMHhK@`V7N{VnZ zz$#!N=;05nl!Mda0)Y@V7D58oh;XdMfw}59VXLqvjW8CMot#H5xmi6>m`}CyX5P-1 z@0&LaI2;a#!{KoJ&zu_9k3~fHkK66`*!HqUM0BSW>9AJOomQkftw@WA9uz$ar~g#Q zar3RuO#r@r`NY=78e1D{C+7S$L`1(|S{mv~>e%x~ca4i-t)jzP#mdQvtm00ZKP!0v z>g%D2pD*1$_I(Qls^T)OetV)VG)4s`wyrlF-fvZ6z`e!HXUu{U|QO8UKv4yq~iLWisHS@ z*UZRC>A9+Y+(s!yIj;bQ3I(VpF#wHr*TigvS~+;h^8t8xIRJWx{_T}J$BImnT?&2< z&znv|dTb@$iGT1R2-r+wp1gQX{mnBPllv&9xUjm4Qpz;XtL`@duIJB~{N-lT+Ci(u zBBImMHYWFhLsw@?0mX|qSvgl^^XGRwZ`#Z)H+vU$mUC#G(BCLW@wB^hWPI#RGRUyY e`k#6fIDlWvAFp8x00001r;P)X00001b5ch_0Itp) z=>Px$`$sxu=C1@qnBd-Kox z`2Y9*8AwP-NJvOXNcf-G)2J7Vh;AOcuG_G^A|oPNDA{`XLXQ?owiZgZiip-qhhgt- zMYdc2y0Qv@JuyXYaFpEO=#DY9#7?`2=+eRrEv@Z!%U2aSlsdun2fcwP!2IHL=#uY? zE4S0SWu^fryKCehj{pRs^NZ7=_lhM5u(U7(fMuo`gTI6`hQadwqnys3h4JU$u5l{& z6!??Hu*52{h-k(zg7NK_k2unN41n$%FE+%0&bGr0clA+r*O{wSg6E^$=tvo?mUgl@ z5(w2&m9r&`d)lGL(Qx&Eo2f&}0X00009a7bBm000XU z000XU0RWnu7ytkRK1oDDR9J=WmrqC=K@`Tnt!08p4h0KkO<-m{G)1NM5HNW1&rzWm z>On6pNbjYWf~cSfJrsKB$%|gJP>7dEDQwYOdk}(Pgr2f1t5T@oA%(I-%j+SXAu+pd z5`}v3gJClJUNS$vH-9z;5#c)P*8c{G(hcBcbpv==-2h%zx5EO4VFW(soYx(kuImOT zH=(fe*a!`r15{wnMsLmYgWL|ra(6YT%4-%njH96vbI!@x=&geTfS&9Swz5AEi>1Li zr-km{a5j3uIVU1QSZh>~4l1}vW%2-kRB94ZddN@gV=Q+Uj^kYDq?#v;BXkW0!5!pw z(32es%uS^x0RZ2=eE!!@F2a718tNXJ}l3DbRnGMJf}MSfx*0Fa;9hc$g#v-SYs{k!Ki-(@UW$pf^LQg$I0OCuIb zL&~neqpK-EYx)$7CE@#R7~kyEkV**@{|s8JNh$YNidd- znm!!RbzMVD6+!eJ0I>YvP_MHf7u8yuw~mmX*hgu-Q;$^z#y9(r?mxq;#Mel$NI(S% zKsy8gj2&xeCCkd_GA@=9+O@U0J*4~38ir{a5P;fsc>39c5TfQhW1k+QTt2Bl{&Pt+ zwdR1zZkN)7@3&!h?+#ucWpvElavU;rU-{l8~6OVKbCB-ee?meG(CSEn z=*t)hF+ip{NSt%3zNaHOS_M>1hyfy^3P@FNnuC?tIk;x#A)?k^SRKbPR6D<6lwz?z zdgIJnM_}x@wfndg2ZJ1~cCXsq;>!*yzU&Be?@CJCsH)4Z#s%A^>b@nTt_m;=y1H)# iF!U|ry6D>ftNRN^8qt~J@mpX300009omAn3*)8 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 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/636_2.png b/public/images/pokemon/icons/variant/5/636_2.png new file mode 100644 index 0000000000000000000000000000000000000000..57a29619e108c7612bd1fbfc2be11acdded04385 GIT binary patch literal 625 zcmV-%0*?KOP)X00001b5ch_0Itp) z=>Px%D@jB_R9J=WmOp3{Q5?rV@rEo-JET)I^bx4n3_*uTR1|a&vWQM@S*#!xv{eu% zwe2DzHvYl7xn$}j*|InVqMD{cb37E;VhtgLP}xkHvQ?mL6*zl2&g69K56I4!a3e?I&@RqhjSz_@ z`aV~!6uFUlh`-Tdb#V!BAAZLRgb=E175dI^v zxS3$0v_dR?5l)@v+?lzaYvN{tweu6MO3=_}LvQYHwCphrl=+w>wUA@8w2ie>w836I zUuUzlP4@LA_9}HwMnfc*zdAaTLpvy?^hqgw&49t`;*t#lkXp#`c;%iwww1T|v2Sqw zN)o_^+pE;cEnjftq^mj@ip?@P-5Qw9y4>h&)-D3fZ`6i%(N!IUcBrkLV%NFU{c5Gi zt(y;cacv5KshJ=EhqVJ9efv3{5Nqkpn*qcAV(3Hwh?@z%e|XCJorn#0SUX^TqvjY6 zTsYV%A%v1r`h*b5-)PYc7(mX00001b5ch_0Itp) z=>Px%Pf0{UR9J=Wmd{I+K^(?EZ>tNt36@)=Br>@N*I-w}u0ma;E~0Bt$2vun&@m4R z>faC@J483z4Lt;2-?L=C;QLCcgBiN$3JdDOt}-3ueR=&w&btd9+6RUiX86wgywCHU z?+nyXLk%_5@c%#vp)Q-lxe!9A-=DfvwMky7#wJ1tWllC$W2;lpBKR+LdPfULDUHe~ z1;kkv3L%u+RAF4H!g$p!uG0-z{qcf3T^|)ds2nAk=mcOey@2J|tS%m{yGpu*gDR^P zq73q%mR8+t({AaGUmScM){Ynmp zMtJk{B>)}m;#BE0M$DUY34QJT!hku%)=t4w&vI;TH#f7jQ{efdXXJBx#BN>X!?*WZN?uq&DWxH$ zG>R(E?8Lz_8wboG{%me~bJ(wDCsd9S4o4`JiXO3+wgxuVcD>%*o&xl*yoz2PLI@?LG=vZ; vV#Fw_qnvZc{<%wg<+wyozHX00001b5ch_0Itp) z=>Px&3rR#lR9J=WmoaD)Q5eVn6&Jy^lmsEKOQEry0)eIpwxUzBNHY~0a1dIsGyy}B zL4*t~rGi&NiPAy2Vg@;|LyLo8v`KG>rV#=sB!bscQbNE$)y9wo_fS8b}DCvJ?RTWOI3JD4^#7DeNGF z42D(#Sa;IsK9iNPmK`)I8c)Fhda9EQjKv#u)>uHmK|%<<6SxMS*UcgQQ!ebdAOPTs8BlrR z=hxX>z6EA66u^e^PH2<21js7*^~wTC4K{GU~?-Y1kr#jU^>l{qo90vf{-#>tod1IO*7ETDk0fNl}1B}K~P&daBxL0n8QyvcShq&?RE3bOy z;_-nd)T&uJi~np^kH3F|XLb+vf&R8|%vlEIpK{^mt=l|KWG}P?*gWRU?LHwCHE_sk zt&WrZpSZeo*nn$3P%ND2=mcTA=gGA}?-(Ve+00000NkvXXu0mjff4+t_ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/5/637_3.png b/public/images/pokemon/icons/variant/5/637_3.png new file mode 100644 index 0000000000000000000000000000000000000000..29d176bea57d890162d620de251d82147512a337 GIT binary patch literal 818 zcmV-21I_%2P)X00001b5ch_0Itp) z=>Px%>`6pHR9J=Wmp@2bK^(`whK6S7LqeB4q~StI5TQaLk|F3&Y3-Orf`fx}7h0O3 zgOt#vAV{Zn%+M*gyrqQ}Y$4(xyvac%AbBWqW)O)dHl>j3kaxel*VyD;8lk0rA-sS0 z<39Jj`~B_$TUf8RYwu7~ec>q9S zb{#-)CodaNkk}hKfJ$cC0=EfN_UcH1seyUbFBZ^nkTE8AUbbM&LHD9k?t=`^N2Q3jnZp za^Qp8J2`+5O>jF$2}Qu=Wv#UrShRy&STYt(()B^+p^Qb7G8w-oW6`91`slTcMU(QZ z6qjeExRm<^U%OZ|IneIYGfBMV0stk1VMMT7buf`)bS*Bt#oD`083HU!q!`8Wqg8-! zAu+p7-Ks+axMRlX9Y0#7HmUIyRKGqBJl$IRXl-L2X4>*O z_p46N8;IT-?E+Vj=2*e&W?x9{!$PwW#?ss(wriWnB&M-l+w_3|z(k7S^t^#{@vWUS z9tTNoqVlbxo64NMsdJh0N} zbZTLsz1ZF6+!_|56N_lT2U)+UoYMlc2n+a07*qoM6N<$g0ZfD@&Et; literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/2670_2.png b/public/images/pokemon/icons/variant/6/2670_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4f9321285d4a0b646b73231b8a41eef784d04fad GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a#R9*LR^8g zf`WpQs(WB^g-`9x;)nl}h4uG4``s(vyL9Q&((Jx@OZIPj6>1Dr$5RsI7tHV<0XUBY zr~$>dd%8G=SoFTV?8tZ6fP=+BpYhJD|Npmh@4U8SYL!lqlDt}X?^MHoUrQMud}cHb zJ|XDjtCKl7#5b|X^Eun@jVn6^Rz+_1Jn`0N%6gu=iFx|nl_w>4Sqs+eGV*=Jtas1a zVR?H+Wa!alhE9i-l|IHTRgQW3=%%kU2j?rE*uQHT&b#=$TUL8{tHdc~d3`DVv{jih z3WuIQ`m)Z#qeADoXF-daUEt!Z)LpZTE0%~Y`c!1sKXELx=dYgj1Ly?? MPgg&ebxsLQ09HPPdjJ3c literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/2670_3.png b/public/images/pokemon/icons/variant/6/2670_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ef884ede7c8deb05fae1481e4a0d1aba31c317f6 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a#R9*LR^8g zf`Y=io7eyU{A9JP+vnzbxfrRkjav7L_by$!)WN|aIVp)#JaIWt9ZyM+UogXe1mHXp zpavA*?&;zfV$u8dvLoMN0}d7kea1Vp{{P?3z4O|RsZ}~bO7d#my;BYUeJy2t@R`v# z_=KR7uTJLV5Z}Zi&*yBrH?HgySQWY1^Tb=9DeHOeCg$mPSDuvIWi42<%gFZ?v)(;x zhvn@Rk)cPI89E(SR{9vXR5|A9qnp0c9GtIsV*jpXIPc=~ZdvW+trDk{<@Kfb(^h55 zC>(nJ=*v0_j|!dVo&_yxc7cntQg_WVu2>?r=u?rY-(;Kr8uqKj|HQG(p1*q951}($u9(mmWQO^xCy+|NsBr%W_*9 zs7IhA$S;@y$VUbT0=k`na$TM-jv*GkZzrARI&8qhvbiuN((m!#|NDD=s?SMPX_XlM zFzS)Zxc%>EFGIIXXN&j;Pd3Remg9o9!l$~542??9sLh+(`o80ph2=$Oso=`q$#l5On|3{}t1$1Aux2N`m}? z8UCY!0|DL6K)EhY7sn8b-nWxZa~(F|VcA@m66yE&@BjV1KGo->stBW6zD1jPgg&ebxsLQ0B9D5Gynhq literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/669-orange_2.png b/public/images/pokemon/icons/variant/6/669-orange_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fe737b886e0e6e9648f89a0a497e380f550e61 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`Y;so6Mk~pyJ}<9cel-yu4>889tf3uw7hvv4zf^q^V1nE(=KkY6wZkdF)w1avzC<+?mw978O6-%dKsb=ZK1WpiOlq~GJe|M&O$RG*Wo(ke0h zVbmj+ar@uTUWRU&&KB_xo@|m`EXM_Hg->-A85)(IQJXin^?k=H3(JenQo)tIlbyfK zSbuEwiIvs|qP|~Jjl83^HuKz_!*^VAckF(;Yw|aDp_iX#{%IAOkrEbX(S5DV^7Qdt g$8uj^{~eoGn9bt(D}UQjpsN@>UHx3vIVCg!03UgTr~m)} literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/669-orange_3.png b/public/images/pokemon/icons/variant/6/669-orange_3.png new file mode 100644 index 0000000000000000000000000000000000000000..886794562fbf12c663455c79ad832f3f813662b1 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`Y;_8=FFH?P4I9FK=mKy#BoZs~(Rd$M*mI|9gjr*sDuZKknNMME^hD{~zYL5vWI? zB*-tA;Xf)k5YX)mls0Q+-aVN~^^1hf$AQ z#_fMUdl|ZAI$Oj)c(O@$u^bn)6+YEfWN1`+Ms42Q*7qH+EG#cNO9fZHS&(u+RSrz4&QOf-Ld=WuF2org+mZ($u9(mmWQO^xCy+|NsB5GPaZh z>Jcaj@(X4F@{z%TfNp1?T$iVdV~9oX+exRn4jb^WY%WZR^n3jG|NdT|>T^<6S|x@* zjC$lUZvXq)%g`;;*&_bIlTEUV<+z}&@TsmML!;6&YV+o{zVCQtVR_M6D!8(Dvh%kY z>yNEIvC{fL)b~rOk$1G#W}drq_>N2Nj@?gpP5$OC^zzfpKdnMDQo`aay04X4o<6?o fSnliVzhm*J!85cL20?K6^-&ja-clmz(& zGyF#d2LigCfpT4*E{-7BO-<~nS^!?L+BCDQNl-~ao2eX7q%RcVzN{xIs1%eejT zXD>syOlOPu2TwN1E|%khw!){niVTfPt+xouam4)R+XQ|-I-pS72W~@K9`ov1> z15w{EsYc$>TAO+9&fz;QxjS}0-8K1}yU@!|Gyk*-%}5E0v*^B7W_kMfu4B2cum6tC YE6ir`{FT4$D9}|5p00i_>zopr0KXE2ZvX%Q literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/669-white_2.png b/public/images/pokemon/icons/variant/6/669-white_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d3cc24cdb4b617b3401226d3d7c9a6481d727c63 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`Y;so6Mk~pyJ}+*DQ46*2aJLxpnVFMnP&4nqEevkkD-{0#~eNL)MtHkh! zQIA~4?SDUe8MbP0l+XkKGvkAT literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/669-white_3.png b/public/images/pokemon/icons/variant/6/669-white_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fab0591042d28a3e0956df4a902825603503349c GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`WpO3~x|SP%#k9m$$SqUVq*{IV=6hvHgGl|5i6LTDo-U(W6JNUAy+<$B+89e1D)G zfs!D6C3nZ}r@JP9a~FE~Y383+p&2P*aTeXz$}CSG-*qha d_4VJed4<_5p1<<99R<3I!PC{xWt~$(69Db`gnj@3 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/669-yellow_2.png b/public/images/pokemon/icons/variant/6/669-yellow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..87feaaf1f1d72faa43e38ecbf0ce917020a330b1 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`Y;so6Mk~pyJ}<{Ha{b4hpMx7(AK0kSkePs!!}r($u9(mmWQO^xCy+|NsA2az0Q9 z)FV(5G$~W|NXr_)#s$Dv`P$r z81=|y-2V5om!Vsxvqk)aC!1s!%W*+l;Zt2jhDN1l)aK1?ec$oQ!t$cCRB&bQWan=) z)*oAaVx{$gsPC6lBkyRf%{+JK@Ew=j9lM|In*7aO=;f!Ge_DlRq=dy;bYCm8JbirE fvE0|!f5+w(X0v$y%HMVr=qd(JS3j3^P6Z|M&iWfmfHNLeT%e52Dv^<^$>xC<*cl zX84Z^4g_>N1Le9rT^vI!df!eu&2`v-hh=kNN~GW8zyJ65`c$8js?sVk{9)81mvQ^w z&t8UZna&pR51wq2T`b21ZG}&D6&V_po>7}OxAlF;D+|ku&QigZy_224%~*eI^@)|% z2co`TQjNT$wKntIox^ura(C>0x@+<`ccGV`X8vgvnvoI~XVHDF%<}Z{UB_}?U;iDO ZSD4M>`73|hQJ||BJYD@<);T3K0RUrI9zA;W|Ns9-&ilFm z^$3&%`2{lo`N-fvK({kcZiAU0rcS|$;)Ks{_FRFMPJbkKHHq^svyE#*@i2KgJd#pF9%&%P?|AP6R5S!gTe~DWM4fDf^4O literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/670-blue_3.png b/public/images/pokemon/icons/variant/6/670-blue_3.png new file mode 100644 index 0000000000000000000000000000000000000000..50a0051db07c8acbd693b2cd00ff33ba4fcb36b5 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`S5XOoL*mKrs-^m*2Q?qj6FZYV~E?v5G{rE>2Ygfm=V7@2B=6Px3 Si)%o)GkCiCxvX88Ok<U0rcS|$;)Ks{_FRFMPJbkKHHq^svyE#*@i2KgJd#pF9%&%P?|AP6R5S!gTe~DWM4fldp>y literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/670-orange_3.png b/public/images/pokemon/icons/variant/6/670-orange_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5b49789aa168fff82e54cf7820c43939a20c5e75 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`Yqj6FZYV~E?v6x@y2EUKi)t0kJ%BZ zN1!CgFPPy!DmW0(?F^LL;OXKRV$u6{@rE>2Ygfm=V7@2B=6Px3 Si)%o)GkCiCxvXKPv#qy?htnO#Mykr}~pG;nu#p&NC7JRRG@6x49j~+ex|Ns9EzOCXw zJpv^`e!&btJ~B8E(CrMA+u-Tq7-G@;cJfA{!wNjk$}$R#Vt@bN4|`^HThb~_?!yPa zgr63D`}Z+@=$UOcf5D1nvm{q$SAX`h39MefxObVc(#55Qs`*Ss(q@Hg)25|uDq3}Y z#%|d+V)uD^c3)U>T4#oojE)NHbZw~?o1JFI%YWEi(75FrKFRDJ-^8^`xnsPSy{H5IP#iz*%mPoL_Q4fU|vZqC#z;=c3m9_vji^J`bfzhJ&6#O8Tv TWThAMa2>cB7J#3fYG6CzBWID7#ym``s(vyL9Q&qeqYa|Nno9$gMD- z9)Xe|zhDL+9~m47=ynFmZSZt)46*2aJ9(qfVFey%Wf_G=vA_TChdr~pEol`d_u+$I z!cU97{ri|c^vpJ!zhK3(S&}QWt3P|$1XizK+`G(J>EcpD)qJKRX|uw$Y17g+6|K5H zW4G)ZvHLtdyDuy`tusSPMn{Epy0%n{%}%r9Or%(0DhI&|SH)rYKrs-^m*2Q?JVGuv$bf)&eVNv_PU{_JHFSiOF6?=oYhi%Shv^O=gI%?j71O-tKUwCehd z-Lh}Q?(_8QzOdx9&I~CT9TnE;+EOhxJI#)l|FFBDamzP+lG#1JiEEc~$9ONxS49roT*pDedpgj)|*u3*RGC#!F*4M&GXX6 S7uSGpXYh3Ob6Mw<&;$TFdyUHg literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/670-yellow_2.png b/public/images/pokemon/icons/variant/6/670-yellow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc3cfddf3e8736bb35ce07b479669a018ebd905 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zf`Y;^$4WMLiQ?ko{Ha{b#-git7|1q+KbgFcJ4RBfLGfPk-la>I9zA;W|NsAcyk@Th z>Jcaj@(X4F@{z%TfNp1?+y+k<#}JF&x05#t9ai9RR+dp{6#M)Ce%Lds+mcpcavwhU zCH%DL+rN+LL(gop`3qJonHgPxWOP(mr)x{K*z7brUjD=Gg2pZ1@JVL(_$IDh${pjqESJao z@j%o@K@0Moxsi|;&A~CU+xv}UAlDXm4p5N|327vf7Ugi z9)Xe|zhH*{sNg_Aw=+;~gQtsQh(+()$s2_ZEATig%P2I8{r!JG?3vYVNvklq4YH-^cW!XSUh=1uK@#l3bZx{n^VVuzLOC-ety07nd5U<}(#Zn-#82o0hhzXw~%@ zyJg>q-RJ4qePPLIof%RxIx4KwwWV5YcA6b8|6zAQ@egpVoc8E-oZ=)HP;lpNFVU zqTtN>rotn0VpwkPI(De1+4b2P#sAm-<_XvYcct7_&q;s$T0LcP<~?R1-dN{(OcUox z%v@~sF6pu5uc9f^RsNl^FJ}mQuez%DOZQm6j={Ar1>FaNZ$&F@O_{E@VCfOzDUSm6 zW8X+EJ?nZhFJEBBQP;-#;=PyV-Eq57^f@ealXU-+ZLe?FX!X*Fz literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-blue_3.png b/public/images/pokemon/icons/variant/6/671-blue_3.png new file mode 100644 index 0000000000000000000000000000000000000000..9546669842e3fe0b411f176b76aa565c4cea8468 GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`S6CS3^)xQ2l)Q_2>Nsi~D@?|7%$4sBT=nbm>xGKezjjAI{%)<^HGt_n$9b4%EP3 z666=m@E-*{?VYy_Xg2y9umrSE;9&dl|NL8)cyryT>HWR)9;bG& zY5h1Z9WBN)`A*7K}M_pr<_IZfv zBnr-~Zz?=8Cx+$ru49LKnq8l*QT%`HZ=Qfna97G*^_=v_uhml)XWnBL;*E8l$24)C z#LUH3?~)!{{wkUxUFF{y`*Mb`_o}OUzjTlF>lj@7QqX-M_*S&i)|Bab3zi-cp7JPA zKlY8((zC87^YR5|9CdA+FW!4;-W|6aMW4e$H%a$D+4kzT@0;fpjNh#|U#{ezJ{K5j N44$rjF6*2UngAF=!=wNJ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-orange_2.png b/public/images/pokemon/icons/variant/6/671-orange_2.png new file mode 100644 index 0000000000000000000000000000000000000000..419fc8d4781d29f4486031eb1c6c0af1a7fd6f3a GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`Y;-sfeJUps7CMXZsBA1Qh@O9F;5~@qglyrAwDC_SX5or~KTxbN~PU7f!Dh1!~|g z3GxeO0P>N*)82W@faddix;Tbd^q#$Za9gti4@*G%1P-_#?{R7e z%eJ@kc^)h*cF(xu&p0dCDO50coyPvkK*j7;kM8|(Iy8Gl$jz-Em+pvn*wJD54&Y#wOzAi2#bksFwX`hFv zPNLw<`liAob7EL-?>csLT$c}x@M zNz7bq^)BhL<*%YC(pCPQu`g!`d#}2x_e=L!zmCDRF9qEPf^S7DZB3c3w_xcJ;VF*- z^<&>iEj{acGB00X#!=VC`Qp8o=G}3-QS>=1bdz-dlWnhV`@VTz!T8;Z^W{qZ>2rah O#^CAd=d#Wzp$P!`mBVWQ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-orange_3.png b/public/images/pokemon/icons/variant/6/671-orange_3.png new file mode 100644 index 0000000000000000000000000000000000000000..dc5730f086ef1fcdd23d646f5f2d864ee0c9c0ec GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`UQ=J9|)2Q2l)Q_2>OJTJZlrHABNv=T4E@(xpp%{oL+9e)w_O)c+svYu@|N4Aj71 z666=m@E-*{?VYy_Xg2y9umrSE;9&dl|NL8)cyryT>HWR)9;bG& zY5h1Z9WBN)`A*7K}M_pr<_IZfv zBnr-~Zz?=8Cx+$ru49LKnq8l*QT%`HZ=Qfna97G*^_=v_uhml)XWnBL;*E8l$24)C z#LUH3?~)!{{wkUxUFF{y`*Mb`_o}OUzjTlF>lj@7QqX-M_*S&i)|Bab3zi-cp7JPA zKlY8((zC87^YR5|9CdA+FW!4;-W|6aMW4e$H%a$D+4kzT@0;fpjNh#|U#{ezJ{K5j N44$rjF6*2UngFMX!$$xB literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-red_2.png b/public/images/pokemon/icons/variant/6/671-red_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2f5d20fd65d954e3c4f2a8ae5962147d040438 GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`Y;-sfeJUpsC_I#~d8)1Qh?Tv9x3p`9E>V(xprLq(c8sSaj~(x&QzFyYVmU25R6h z3GxeO0P>N*)82W@faddix;Tbd^q#$Za9gti4@*G%1P-_#?{R7e z%eJ@kc^)h*cF(xu&p0dCDO50coyPvkK*j7;kM8|(Iy8Gl$jz-Em+pvn*wJD54&Y#wOzAi2#bksFwX`hFv zPNLw<`liAob7EL-?>csLT$c}x@M zNz7bq^)BhL<*%YC(pCPQu`g!`d#}2x_e=L!zmCDRF9qEPf^S7DZB3c3w_xcJ;VF*- z^<&>iEj{acGB00X#!=VC`Qp8o=G}3-QS>=1bdz-dlWnhV`@VTz!T8;Z^W{qZ>2rah O#^CAd=d#Wzp$P!HaKeiK literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-red_3.png b/public/images/pokemon/icons/variant/6/671-red_3.png new file mode 100644 index 0000000000000000000000000000000000000000..62b6be129433de286c661581f8d0cb352f9a49f6 GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`URJhg(okQ2l)Q_2>N;%Q^hd%hRybxnt_Qbm>xGKezjjAKqEA>HqcHRa?2A0yXfL z1o;Is{6_&#d*>|!n$Pd);uvDld-n3dZOsZiECKBkIM{ytKmV2`-ds0odVlY{$Eh7G z+uqLSd9bk9J>!l)%^t@i!-k}e_HqXy10)4^5X4hwH6#rlQn|riyQIgKzlx?vSNV6wzMLWKz3QsoFWqDPItJIi6m%a5z7?&sHD$Wqf~7}YJK`O7v>4CiKlLbA zQ*mdjM6!oN?}e>bIAj)o&$CyU{Nk8J?6j}9PF!lgIP*@UT`70fbJ8EbR!>=+d5>9$H`aL`)5Lia zGZ$OEOL}bit7wXJm49dK%NfGntFG$((mmF%V{q+DLHB{+ThU5eQ>N=JSb9Ww%A-L2 z*f&y3&$^z>%NLk&)U|QGc<-focie6ieGUuVB;EgH+pF8YZ=P2$ez)R$xsreSTwtg% Nc)I$ztaD0e0syjp#18-f literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-white_3.png b/public/images/pokemon/icons/variant/6/671-white_3.png new file mode 100644 index 0000000000000000000000000000000000000000..9de027625c220e03f3a2bbbaef05bf5c70440969 GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`WpKu2E1>Q2l)Q_2>O<+}(fv{HbB7lUta-bm>xGKezjjAD%mR?*IS)DNbU$fExHq zg8YIRfP5tIw0GVzp!xisE{-7~rVruX;Gdz{+A zvhD4Bo(Bty-81g^GtLTj3Ka}qr?I~>P%(SeqkDgx4$WQ>a&zm)r90vscC;AJS!CfhL)pODxzgACKoOzE~h&R@G9@E5m z5;GTDy-Rv*`KxG(bd`T+?8_O#-m9+a{n9(d z{n$5BOV7HV%*z*;an!YOzIgAYd3W4y6nzd0-6Y-rWZSFTzHgpaFn+h2y9umrSE;9&dl|NL8)cyryT>HWR)9;bG& zY5h1Z9WBN)`A*7K}M_pr<_IZfv zBnr-~Zz?=8Cx+$ru49LKnq8l*QT%`HZ=Qfna97G*^_=v_uhml)XWnBL;*E8l$24)C z#LUH3?~)!{{wkUxUFF{y`*Mb`_o}OUzjTlF>lj@7QqX-M_*S&i)|Bab3zi-cp7JPA zKlY8((zC87^YR5|9CdA+FW!4;-W|6aMW4e$H%a$D+4kzT@0;fpjNh#|U#{ezJ{K5j N44$rjF6*2UngFNu!z};+ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/671-yellow_3.png b/public/images/pokemon/icons/variant/6/671-yellow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..57c17f66d7761e89c0994e2c341d493eeea9e97f GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a&!ZHLR^8g zf`USyFIP}dQ2l)Q_2>OJHc0&aKS9G%=kamlrAwFk`nlbI{P4=b{{Md;oIKPo0@T1? z666=m@E-*{?VYy_Xg2y9umrSE;9&dl|NL8)cyryT>HWR)9;bG& zY5h1Z9WBN)`A*7K}M_pr<_IZfv zBnr-~Zz?=8Cx+$ru49LKnq8l*QT%`HZ=Qfna97G*^_=v_uhml)XWnBL;*E8l$24)C z#LUH3?~)!{{wkUxUFF{y`*Mb`_o}OUzjTlF>lj@7QqX-M_*S&i)|Bab3zi-cp7JPA zKlY8((zC87^YR5|9CdA+FW!4;-W|6aMW4e$H%a$D+4kzT@0;fpjNh#|U#{ezJ{K5j N44$rjF6*2Ung9W@21 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/677_2.png b/public/images/pokemon/icons/variant/6/677_2.png new file mode 100644 index 0000000000000000000000000000000000000000..df72af379d6fcbd08e8c58b1bb88bfb21ddb008a GIT binary patch literal 958 zcmV;v13~X0004nX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ%glE4t5X`3DP>*MMWH?ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5c1;qgAsyXWxUeSpxcGS%#v160j2 z(uug3%dd*TR|GH$AI1=sn5ic-i&=Qq*FAMo-Nks8ci*4YuM|uM_(bA4rW+RV2Jy_M zrE}gV4zseP5T6rI7<576N3P2*zi}=(Ebz>*kxkDNhl#~f7t3AD%7#ijO&n2Fjq-(@ z%L?Z$&T6&J+V|uy3>CDM4A*ImAb}+$k%9;rbyQG=g&6G`DJIf%9{2DMJN^{8WO7x& z$gzMLR7j2={11N5)+|mDYDGy0}HFn9~}t+{h+pX2la$kMEqZ-9eC zV7x@x>mKj!?Vj7eJ?;7Z0LdS6$r&|YA^-pY24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j~SJ0{}LI8Mjja000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0004%NklJx{_=6o#J~SAPI;=?xuV0R}c}LW~2B z4vY+>KY)ceFgP-?n6Q!#9Zl2?MiaW}pe#CI=pb=2(eMN6bQ=o6q`lXVq0e@2Zrb;} z=OYI)GBPqUGX4zHG(*!g!)<3B?5c?C>>mQqhY(ev0>HrygCH=He%DCj-s6K0Ks(={TCli( zo<#xyywNyzmN>pkQjw_~ELUu5%UmQvy7V2@fdiG~^=YK7!TEg7@zo98>*>~a-e}Cl z%VjLEqzKluo?e>FA_$q?3GzOzW@LL07*qoM6N<$g5pr7V*mgE literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/677_3.png b/public/images/pokemon/icons/variant/6/677_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3eaf9b54ef8f095ea49d3220cf9842db5ec947d2 GIT binary patch literal 937 zcmV;a16KTrP)X0004nX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ%glE4t5X`3DP>*MMWH?ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5c1;qgAsyXWxUeSpxcGS%#v160j2 z(uug3%dd*TR|GH$AI1=sn5ic-i&=Qq*FAMo-Nks8ci*4YuM|uM_(bA4rW+RV2Jy_M zrE}gV4zseP5T6rI7<576N3P2*zi}=(Ebz>*kxkDNhl#~f7t3AD%7#ijO&n2Fjq-(@ z%L?Z$&T6&J+V|uy3>CDM4A*ImAb}+$k%9;rbyQG=g&6G`DJIf%9{2DMJN^{8WO7x& z$gzMLR7j2={11N5)+|mDYDGy0}HFn9~}t+{h+pX2la$kMEqZ-9eC zV7x@x>mKj!?Vj7eJ?;7Z0LdS6$r&|YA^-pY24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j~SJ0y`tqwAQx(000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0004iNklL2AN46o$XF*?NSAj4Lg8196cqg5&}{ zK|yibg_~}@fEZ}c5keMbA-zDc&_clpdIYzXbRiQ=tp$_Oc9DNKvk2e&-+O-sDpjgf zsZymslWp6nZQJRgvkqO9fvbBCbIrY8COkR zmAbty09H%T>~#r-leF$RG}{dTg5e}hlEgUnyG9ZBT+snwx>;eh1k1V100AOD%$=2j z;e=x$3pp6c8KxyN2<6gm`h0vX)ET4b3`!~C?ty_*J6wn#a&vi=E9_VY3oS{KB!&=T z?|yuH&p2M^=5o4O5y@F0xYAoZaB93gzi0PC2>MSidyuNAv$a@3{*-&;c%8L9^26=? zE#>(E6(qoS(8v$Bano)T+FWgbhk{$VR;IPu0C(Y(7C~GZtn|NlccT|UoMmCN-M|$c zbUhlhIJi55ksoSnuNDV^T-20}m6I(AfGawDT$@^F@T3peO8-G$Mp3aPfgO(M00000 LNkvXXu0mjfpo^9& literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/678-female_2.png b/public/images/pokemon/icons/variant/6/678-female_2.png new file mode 100644 index 0000000000000000000000000000000000000000..220e8a97077f214c838cac243aafbc49bf33d359 GIT binary patch literal 1121 zcmV-n1fKheP)X0004nX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ%glE4t5X`3DP>*MMWH?ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5c1;qgAsyXWxUeSpxcGS%#v160j2 z(uug3%dd*TR|GH$AI1=sn5ic-i&=Qq*FAMo-Nks8ci*4YuM|uM_(bA4rW+RV2Jy_M zrE}gV4zseP5T6rI7<576N3P2*zi}=(Ebz>*kxkDNhl#~f7t3AD%7#ijO&n2Fjq-(@ z%L?Z$&T6&J+V|uy3>CDM4A*ImAb}+$k%9;rbyQG=g&6G`DJIf%9{2DMJN^{8WO7x& z$gzMLR7j2={11N5)+|mDYDGy0}HFn9~}t+{h+pX2la$kMEqZ-9eC zV7x@x>mKj!?Vj7eJ?;7Z0LdS6$r&|YA^-pY24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j~SJ0{|D#aHkCb000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0006wNkla<6vn@Z2TwwahaNl(eN9+rXu@ec$~UWA1PBuEJ!3QIxAF?1z(5Uht#bMOy(i0DZJffPL~OlfW{tq4j^ zonHEe*(|o5javlwgN2>leVgBY^WK{Y5GqutdnU%1V2p`73)j3l5&2B&ZbA}Z^Xf$W zFDE;6;Lhrsa@^PK#&S;*K|^-v1~}Ck#-p>C>K#I{QTbzD-iFJax&hJtgloLqla%L+ zC=1ScgrLarSlket^GM(hI@OwMJk>kofu&SX)1e(jbc@8C7(hB}%4sIibeA046%&ga z@avwh9NZXrD?y5liabh=jj@@y$K`g_*-o(PRv~90oi$y6?YgJ!Am=>td2ZNq-B`JB z6;UB)dEls`b*ozY>lkCAui1@~W5Zav!1d`T>~GBD$?g}t+J6lIu-1{r&tsMZs)6wTzkiG#`Q3aoOUET;s zV7e~)o?>++dG}!f(f)*VP@Ph8&X0S(09AL?RfVc}^YMH9c=p``MX+jq2392HwIv*E z?I4{sUH1w(3jpwOwJx1i9i-=Pqy799vVLfb`k^hiU+R(1q{NFy36amFJlECjS|BTl zn&jk~Q>{t&VsQi3`Z3PCE5YJW2)2Jm3-Ar`-tWixMmM%_5HwxYlQ)wWY? nR9r3QrjJoqr0`EvsNebpJNaSDl?~F>00000NkvXXu0mjfAld+# literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/678-female_3.png b/public/images/pokemon/icons/variant/6/678-female_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d27883df1ae848023d5e0f56852219b2199ee791 GIT binary patch literal 1154 zcmV-|1bzF7P)X0004mX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ?()$2Rn!;WT;MdQ4z<|ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5di;PF1rd*^W9y@1fHGS%#f0;*;i z=|oJ-e3JS*_MtyH5VYU_o2SaGmxT5?DeKDTt6!M+H?_h|sB#Vj@lVF%SQ!<4=)GCRYWF z91EyHh2;3bXYjkXW^rcPO$x?<-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P6imC+Urj z7Cr)owt zOqM8n-Q(Z=-F^G_O}l?TVt{g>yPM9v00006VoOIv00;mG00_zZDKr28010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=mrM>G%ebpQPcnc02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00LS`L_t(o!|j((Xwy&}$G=Udh=152C6vN*DHM7V(XmTB zlt50Fod+%SHYn2I!JER+OK%=zMGD2sV1v?=l->fRhxM=_3wf|-+~(Q_QezSGf)v6m%I7o} z_@4n}?lGOMh$y!8$RU?_7Yt4<7y?D9R=`eW4{?u^rfJ54n>z1%q=10d)-(>A^F8AI$4^l`IzU;{Q2zzRz&bqxgNcPql3ZSrc;$7g(=(9IX}&O+)jjSQ zG)*&>ZakU#u6y>GNfLB=#uOauK)husl!Nu5fwH7Q#}Znt&$#8(v0uH92d}CCfRpRC z3&(&|qPXk3z=g9q&YL8~wvM|G@8C`AEhaZ)+Y?wJSLO`q2lc5(VjH z0!k@t+eRXhKzf;ABz$>38jW5=7K5c)0b>B4wj|uH{B$mE*;8-;Kq*Bwn~lEAupghT zh;AnV0Bw>*CP^?jwa~Tt2p(xrU8{fL3Qjf5UEVmH>3;I;_@zT~tAFee-YzoF`^=?Wq88%S5AISQ US?vs{TmS$707*qoM6N<$g1Oik;s5{u literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/678_2.png b/public/images/pokemon/icons/variant/6/678_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9c625e911c06e1535ec3b7b9a1878d471ae56c72 GIT binary patch literal 1170 zcmV;D1a13?P)X0004nX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ%glE4t5X`3DP>*MMWH?ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5c1;qgAsyXWxUeSpxcGS%#v160j2 z(uug3%dd*TR|GH$AI1=sn5ic-i&=Qq*FAMo-Nks8ci*4YuM|uM_(bA4rW+RV2Jy_M zrE}gV4zseP5T6rI7<576N3P2*zi}=(Ebz>*kxkDNhl#~f7t3AD%7#ijO&n2Fjq-(@ z%L?Z$&T6&J+V|uy3>CDM4A*ImAb}+$k%9;rbyQG=g&6G`DJIf%9{2DMJN^{8WO7x& z$gzMLR7j2={11N5)+|mDYDGy0}HFn9~}t+{h+pX2la$kMEqZ-9eC zV7x@x>mKj!?Vj7eJ?;7Z0LdS6$r&|YA^-pY24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j~SJ0{|wTuBSHu000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0007MNkl!E4h{9LK*YqwEwA3SLHi&_fHOD?u+F z=Kg>Tgk_Wo(qZtX2PXpsv5QJij(OQpQW_={SqlSu5icbk1TC?ZLOlesk)tRC2E|J} z%=buYSABEM1p9+P@_PyS@cq5-@ArU7OkxuMSr9_}e;TfT*z%)1^p z*X!0$ThK!}$8iJ->o|^ZrV0k((tQ!VZjFJ{`yf2MB2kcr(o}IZbpv~L8Mf6yuUi{x zBAU<4Du@hFX{snn8usim03apJu{GQ3ARo^H0CHjywFMnYQ;n{~j^hYHHEgRBTCb>e zw7q@g#3ajQW|hC*moXlbEWdk?oR~yW(oj+BY^^A1XnXr8%*>x{n`zyyvJwX2=yR~7 z556=`#nl3@g3_YKa&7N`!5OZ}_GYlOgD&QU=6abB;+GO~DEFLXaB+JDu`4QGe*eTE zDA?fpyvlM<62mpwz4huy&8O!ROi2n?O2`b(a7}iV5;E5m;+iCloeg}v^MOGY7B$4Y z1Kdl$#$!vvwEUVGaLJd*swfte+E;Kl@;vJsYlxt=%;!($Oe9 z4p3>Tp_x7w1py!*&;9~I_uS`cFO*+jxs00+*V%z%tO`<>uIfvWuRlU5A+vs1n3*5C zzc#Dz&%M!^f`emnEGKKKBq79qap~5`qZJ{<@4hYj{liw|Cvx`lQE(J&`~Edw^ ke>cK{P~$jtPhwR301k>ena)@bTL1t607*qoM6N<$f|X_ro&W#< literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/678_3.png b/public/images/pokemon/icons/variant/6/678_3.png new file mode 100644 index 0000000000000000000000000000000000000000..372759b3aa474874de45c1a797bbd53fd0147d46 GIT binary patch literal 1161 zcmV;41a|w0P)X0004mX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmP!xqvQ?()$2Rn!;WT;MdQ4z<|ibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~?BJy6A|>9J6k5di;PF1rd*^W9y@1fHGS%#f0;*;i z=|oJ-e3JS*_MtyH5VYU_o2SaGmxT5?DeKDTt6!M+H?_h|sB#Vj@lVF%SQ!<4=)GCRYWF z91EyHh2;3bXYjkXW^rcPO$x?<-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P6imC+Urj z7Cr)owt zOqM8n-Q(Z=-F^G_O}l?TVt{g>yPM9v00006VoOIv00;mG00_zZDKr28010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=mrM>G&WGgm^c6c02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00Lo2L_t(o!|j*9Yui8+$G&46ERI?-8!OQvDx{1qoVamh0|2^k;vfie>Agzlb`A&tQhR~R;T0;RjLCck z3YRV-20e1JQ&4Iz;E@$7C<6dqy(qGKllct#=?MV9AR3~(^_lI#AP9228k6}faX+*R zxNTpM^?CPU&C~3|JG)@pB5~IJRJSZr}UzF zzOj13d$4gP0W7k6rbCQ>Y8&MAS2j$51*Y25GuAjE7SI zz?DE{Q@K<-_ zAZp1BF5M=#svxf-Zz&Y^Z>mrSpoJyUqu1Jl>6eEeZXSi>Q!ILb*tl2nYCh$U);9X{ bK1AX-_fIrpJhOS-00000NkvXXu0mjf%M}e5 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/698_2.png b/public/images/pokemon/icons/variant/6/698_2.png new file mode 100644 index 0000000000000000000000000000000000000000..61b7d962358c163fb6ddc8acb2ef6a9309d22c71 GIT binary patch literal 3358 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600JsWL_t(oh3(frXcJ)=$MJ94 zsY{X4f>Y{CHG>W!g+jofk|iz{!H7c*2!?8*_y(Uc{ffpCy{EPyEo~w2ZlqsdZ z63vw9E{u@=P@{dR!Jqvd3hEWPC15MAKRFA)_vJOZ3nS`WLUr__YhZtJmJ>tAnV!rw z;Q;2+KeP>sE1<*yn*wzrJpuDZk@|c>fn?$r4gqja+}>WGM1FcO3_#u}GC2PlAq1vr zazApCSUAYpxdPzh6gz=qr=tKY4&P`3`nm@n9X-<2gD-~$Nf@t)g@XY80woe48;__n ztFi(>Z>Y;>9GDoUr0ULcNgs|P9wfzsa_NJWj>z}_Vyqn5u0XlKN z7Z$N9E2>BHMv>l77vQcpJp)^ZMpkd%xjQ_5vrMA#OjXjCD|S}TnY>ZNO1{_`KxYLv zgSy3O0m24y;OSL5K7LU!@V<7m0kiQ4xl)xY*J8lG1s)3r$(5?=S>PK`A^~JS9=nxN o-@Ghs?eAjUFT36OaNo}S1^8j1)X({Ku>b%707*qoM6N<$g8%SJr2qf` literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/698_3.png b/public/images/pokemon/icons/variant/6/698_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8165d2686d74c88251552c4986d3edb3ed3a5653 GIT binary patch literal 3361 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600J#ZL_t(oh3(fdXcJK!$MJ7) zC>=zD9aJdz&>9G#L!p8xh)7OR5Je(tltRU#1Q9ggri0K$aH$|cijxG2U5pTrYvEAL z;Gj^7kQ8}Jp>~L-Ds6Cx=OFL(61w#6*(=50`0j=e|NH;{+>5xb%SKM*KQLf6Cr}9C z0!S$%#zk#eGf)WOz8ZZ;z1HB=y@3|wzkvG!KEL}0fXv7cOU)`$%7_rctxiZ5=Ib1~ z(Ps=92pH|^)RhFNPDlXur$x9x`}9LPjto$*HHda~0&x81dESq|)Ic!vseJ=gmV5ii zj11un=h&7y%EEk|ox7tN8Wg!EU^{MbstCZ3<+I!U3xSO(FvU3yw|kVj6(T+pqe)*nu4Y^yjaxFHj+KC+`DLaBRxcj}by3 zr6jTM7|B=)`@DgW}*)_6aaH3IbF zrayjSW^PvZXu+{bboT)MdNVMveP~qmu8*E&@!1)kzP_L<8OkU2R?nM)V^g|Q+ZaG^ z1y_Um#Tfy@3i5ZyH!dAKr(qC$?HB`E@hs)aB-c({0sb!VWGqFwGO4cxp#c>VK=tE; r7q|7ZAWPf$z1Z~4ZgXDT*E4?roOPPi?{hOE00000NkvXXu0mjftrb(o literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/699_2.png b/public/images/pokemon/icons/variant/6/699_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf9f4c0441eb5ceaf18a7e876748a11b965d6ca GIT binary patch literal 3567 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%0Dy!50Qvv` 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600RC=L_t(oh0WJbNEA^V!13=A zDH1rEhL&i(%Eiq~|CA*!Nq?m9;Gu(d$OzM*gHUvq4qYq{1wxiadQcA$%U;wp45E;> zB?+Vua&p3SQPT~gG;KQAn`Zx%v+K0^yUp@u=Ci-|e((3jq3b&9IUH7jLI@o|RaJ+T z-|Y%ZKp}+wyyXP|hw6$Aj1WQ}>sJBTc}$?Hs>5z@%)rvo9u}G!0FXEUS8oRkO%06o zt4xhehy0O*0P{Sz0ay$wJp8tc($OCB%bj?a+_-u>7<8VX*7*+ak{kG)(S!iQk%6ZH z^2?n7%xI9A7dqCvXvU$q$tyZw8M!J@;?hc6nIEjdx2M&B>A@k)S(P}s<(PpI6n zCnqn5;2N`>oa(#E;qy1pe13A<&$1X)n5wP_i9+@~*dY&~8EVC<1{8H^7!8!#ENlC8dH&A{Z6m27!VzonwH zAYz>6^OL%5N6eX96Ho}D%k>8s$ncP8&F4oC4#jnVh#Q!lQUnk(#S#>r%~*P`?Lb)| z=IsYyeqxrioQyRi;|4kuH(86z00fdYL;xor^^sC|&_E^>Xhv?Fn*rc^dZvM#pP1$A z$jko^R9uyO{`ej}IE1;&$b&&!TN?m1m+mIENX$qe>bcLnNy{<1C7=0{{R307*qoM6N<$f}Wbck^lez literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/702_2.png b/public/images/pokemon/icons/variant/6/702_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b705050777c737554be78cf1663cd7627461d8 GIT binary patch literal 637 zcmV-@0)qXCP)X0006iNkla<6vm&{Q}23757`zhN+_jx(f$z>gbG2B9!e1jG=h5b97IHW^DKgjh~h~E5rPO7 zEMgTTpluKZHDEk>ZlQ;EoA2qjtb5qaED=F=VCKE~^WOaCn@m!ueb%=!oj}Q#@D^J8@A$`g-HmYQ~Q@zfVu(UyK9*I-k56d zfJwjQMT0IU)Z^GY8CzY}3LoRlN1vACcVe*#RKykAKeBdlZd{dvqUES-0%fcq;GoXa zpIefj`lx%wnqJBFNLr|95P*q_WdSlF;qu$_z6?8uM>5>?LEJB#J}iCTBsY_Re-VUZ zvYzayEOw5_`Pw9h9DBK+la84a?Pscrk|~}EVUUNu6HtZ|s34QlA}8Pg^lJg zPT&=L@r31=pDjy4CLkOXJRbby zz;V8Nx?NpdGYYMCN{uNT;*0=saw|C~U+gEc_^(dR60N#7fXDvUs)B@~#R7nZfkSNQ zE5;-FlNv$}*?pT->wOq+MrUqauP!odY7E!wh9woRKVc;R6nx&a literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/702_3.png b/public/images/pokemon/icons/variant/6/702_3.png new file mode 100644 index 0000000000000000000000000000000000000000..91e443c323d48b953f49e48f4714d701720b1e4b GIT binary patch literal 634 zcmV-=0)_pFP)X0006fNkl_!O4XEla z903IwW^sC)HrCTT;p@QSi?!R%F(6bKh!|YIXM2H$nxhm7R21!-BS2$rm3{MY3Wt2h zTZ|@9XK`YdMk)ktO)W$PVlXq*cQI<%-F{mN%E|@qEuQ$UuX=Zxxu>PrDCrR5!-}sG zesCIg?GwMc5+y^b4r26A_ zNS-WEVotR2umy-ZXn>jfxToQ8gr+w4RCy?x$R+7K+Q9F0NcE*k4L!Ew+Xh52tR65> zu>R_lB{%yhu-lXZ8X6XMjwgJ#=7E z*9$nbaHXKeR^{rTzunrZ!hY}z1wH{UFyh;H{gmba000hUSV?A0O#mtY000O800000 U007cclK=n!07*qoM6N<$f>r(X00001b5ch_0Itp) z=>Px$gGod|R9J=WmA^{^F&KuQN)cRcQSU4wL=dHgcD_{vX(=uEW7GdYT%1G)HwOn- zH$ilAXhBfAD@6K^o zy8*D*`|BY1SH}0PIa(Q7nxBP^(t~czCGs_;efTz5JCp*>I%1*m@fqjx6NnIHzorF$TnFE6sU>AU|~^WVGzxC*94J?b3t00000NkvXXu0mjf6Sc-y literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/6/703_3.png b/public/images/pokemon/icons/variant/6/703_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ac69636d1ecb3cd91fa7890815bd0499cf56d690 GIT binary patch literal 459 zcmV;+0W|)JP)X00001b5ch_0Itp) z=>Px$g-Jv~R9J=Wl|4v8Q5c3FqunG(hmdcH{v-&ZA24VMTAGyBhG=PvrX~rRi;7x8 zqQ$ALMTj5@YSE=K3#l$5qCuHNgDt0}Yh_7vZ|QQL>E4ffxX*ddIo|<|Mx)VaG#br6 z;;=GEM3nh#7>1*={;^gUL_}rcC6$Snlqn@5N~IrEI=H4jPQWgfXDT9UXJHS3U}%)Y zY#4xKlb2v<6vHqam7+CIRz%dzqEPD_+=JGT{Azx&ABWP=B zEuZ4enH}=^rysw)&E^Q7%-1$S0GHcIM^Eb~k?-CId)uu30)R%V0}J_LS<>V4GV)gU z_`CpgoTq8ojl%etEkRptCNUf4{^)|cDiWQKX}XuEYQG0f%)RJxJIl3}-6#N8{X@17 zh;2c5zupe}=4c-70-$?&3izAG{AZoL+WoAlH?Klvvt)JF@ZSIc002ovPDHLkV1lgT B&*=aF literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/7/2027_2.png b/public/images/pokemon/icons/variant/7/2027_2.png new file mode 100644 index 0000000000000000000000000000000000000000..33e95951d2e26073b7173b0f77959cce109899b2 GIT binary patch literal 3328 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600In2L_t(oh3%FxPuoBkh9Ccc zc4>z!sJg0C6iZ&{5AYCqp$iLgz=AzP#TKbTA|Pd>NM%JuPH{V<4iQ6s01Q|q%7l7D zRmnrez#lL}xRVW$ihYJwDDQN-v#rPPz4zT`rD@9lENcd6s2QNCW`L%e0h;RR0SX~f zDWxTZ$h|0~v??XLQ6WGfM0&Km%DXQI$m5XnaEKkaleK1`pQ{qKFkrXg;W)M2d>kjN z?D+K8BQ{2Ze+wv&Lx7xnYAl)o-G;};XaH2>CR1bKxyqe3MI?b;aKe74h#U1yQ6eNK9M&*E6NC125146vPdN$9`A7AM&v~~7? z+>d0Ti@=ovl=9-vd}n^L?XA!6IqQTv1|5G7->YK>t{%hmTvi6yYPHzj-efd7;c#tN zg8>|_?P{PbAfR0=da_GhbpT5*-{#=5fC{J=wdt=%I-A+U@?d}pQk9%>a!Kzr(raqF zdr=#hWH64C(l<=$Zbk@^Di;BIrxE>ycCHL5K$C)P1h~Jy$M28d0dzgQU5ZTHGXhkQ zYMd>^*&D~Sd8oW$RX4@(*A?#E^FlRmnjWO1p5|;>J-wFyv2_jR6MfV&-ItI60000< KMNUMnLSTXkCqml* literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/7/2027_3.png b/public/images/pokemon/icons/variant/7/2027_3.png new file mode 100644 index 0000000000000000000000000000000000000000..19849e146a3f500c89e9b2f671080adc9bf1ee71 GIT binary patch literal 3349 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%0Dy!50Qvv` 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600O8te zp+lECbjt8(st}<@gB%j8n4$?-VyVqyGXx!q6&<>D$PFhFu+TwB#mNjY4y{s3heYs# zjTtgTPQeT@c!QIRe?XTwgx}A1X`*-OB^K&$$>qJr%O}70-tX=_tyT+1IXwS?hm7L| z6hiQ1rfGWInA0_&5TdoWvW_Ymlhz6=?Co?D1>Oy z4^h?tVE5|@0Kn|zJ_8w+QTxuSBcKqXRa}T6vb6)Coi!OJ1F64PRtF9Yjrjlop}@3d z%8~_Fq zuCtw@Vw5f4?>;_<(-$8O7AWHg)(b~L?N9U%x4ae{K?s(P zEAUQDFx&~wG0@DYUHcj(1Dak(I<8=Kv&t|47*8s=bK@zaX)n5(!EU%l$>4HhW>hpv z21ZVf9yr0k?_~}JrXB4+TflC(L@JM5tpFi>2#xuWs}y`uK6lV*_Nb_JFlVNJu4*<~gx}{&PlTP=aZD1R6jR(p_ zcRRbm*CV?HOP!>{Lw`Wi>rlgfUI9B;+Zo)>Zs6UUB4*|zm`g50eqfN1Yb)ze!+tJD ziB#T_UAm@-Z0-CJX=@Mm!cqT&*iFpLN3gcCj$EyPPw(GyHhbZ?0vtAj1e{AQgFfZ# z(cR_zr8D^W;R^%LUb&7$FlqtHTf@~dLlbsh)6(+Z`wMO;53Jqr0Jt8?Kngk-LkG%G z(`+(M2p@_IG4Agd=PIzX%`}@x1fzV%`KQ2c;npkY@p^F|MEn91{vqSslV&;q0000< KMNUMnLSTXd(~Ic< literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/7/2028_3.png b/public/images/pokemon/icons/variant/7/2028_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3521427080fd76be57e0000ac6f0813bcc80261e GIT binary patch literal 3487 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600OH?L_t(oh3(hROVe>2$ML5K z;v~M%pp-P?0|O5^G_Ync5h673qI3*TK_G$>hy|f1g&Y!Wm;D9aj3n5>=pss`1}f|F zg~2W*=3&AYX%NUd#QWptJGc6N=QP3ImwosBeEICL*XPIg`>iPy3Y_Pv`42o{T`Ztd zN_UpcW^1a^XVrj8sX}CCp8DAZmYp}}2PmmUX69*(?D2i=Dr+wuxqxy_C1~G3rBp$F zNKym%`R*$Kb-gVbD6k%Du;NsG0hLmPro%A1wQ1mYY9`JEN_)9fPaW8B&HPB8aT-S!-w`2Wz0ec1(;{Xj5 zT=97+JC$&Kzdl*V+xt&X7ii)HRt_g6=Qo$1c^+=xz}Cwl0GwN009c!!TsVOUEF6zf zKf9peesI2lJ=S2!HhVvVlg|;3$4HM&Xc$0aWRLeg{M_XWf;q982xirvHfaGzZJ!qX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006` zNkldx5%MMSkvs+SXB zzPtipjf(^n5j9_4F_UZ9=;AT}iEEbuxO(yD`2yeFc!3()B3?(clxHqedRQ|ALr z7t3tUE|4na*qmK3_fnS7_g|YaKzw2nfL67_qp#0_XhjnZ7?Lp!^hc{&AwH7e-siiK3nntK z^?Qf-#3V^KL)|SHj6oiLiKLqWh+Ht%Kpm}W#T)PLc^3|$g9ikYJq@&JH<7CN%PryN z>IJi;8kcl4p?k4e%bz{)>BA4Em842JUcG++;K6;FwZTOKYNY=J(KwCPz%X354LkDN zjEJbw#btB$!qMsR>*X8N&{il;_tDd4*6MXjM3m!9Gn}0P;9zY%P$11(9>5%Rjx!y2 zzS&&uh_nX!vsiZv0LM;~W-U(u=PRO4nY3DB$C)Pi@k!viM(S1sc-4-VF@Kz9xvhc2 z*%=Pj)=fjMyM?1Z*#-;Slj&mluYIy7doa+nPuPPeJ>OTLAE~p{ZIy=oeCR2#eG=VD pY#Ve>f$h;LE8WDu{m()#;t!cC-P9u&9nJs%002ovPDHLkV1fcSOS1p~ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/7/803_3.png b/public/images/pokemon/icons/variant/7/803_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3225ab47b116f726b6f35e5f79ec174ef447c376 GIT binary patch literal 703 zcmV;w0zmzVP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0006? zNklkQw55M17O>BBM4Jaaxeeemn|77-n3fDZ?=JCp#>j#R6Gk8*24z?L#V{gwtfxJ%UA%!>Ma`YUI4+0CJ@jsV+!bwSiMCwVQ~2RdEkNx4E%N4 zrI)ejN)E%WXpBOtFVU4;e{H~m2@O;ctGDQ7Eapzm05o*wfN+sL1q{<}f>rUySD1x0 zy`>7*m7MQcw5ql12U7m7TS+HhfR)<-n1wY@X2akD0X5P+LH^(rS^@oV<2LNTPctIo zY^9g=?1hWz@#yPLe+>HIR3E)+Wk?PSWc{#NtL zNMvZBJBx;00T`MlR<(v3=PsgAnGChX?PQA6#iyS46;ib#fM~)1`WbV_Rkk}caL>$= zHIH>eHtdSV4Z{4+q+KliwNFmu47!{4WoPiR^-~49kt$2$R;l05hlv6QZ=zaB*akgO l;9!i($~f_F|FbZO_zg{Z>(rXy9Pa=C002ovPDHLkV1jXJKOz7C literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/7/804_2.png b/public/images/pokemon/icons/variant/7/804_2.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5a054163735b92cf3540511ce9800d12e72c39 GIT binary patch literal 1050 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%0Dy!50Qvv` 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600V1DL_t(oh0WMcNL)u8!11ph z)k8fb26vMtg?Ou#gdOa4IAP(xcq zmUN{^ZNe69gGmULb>aEi^j65GE%Xw|_OSe>v(J5ISKlU`(_?1dzR&yp<~Q@$qEsqH zE=?(wvMj48r^zn&1LXS~MQ%Xz2bEH(4-enri@Qg&KHyb&rBo_dGfHH&-&>%d0L*KF zJLkDQydXgH;p?_dmCwigy&0-2_W}@E?FXQ|xQ<4DC$abx$(Jh``0e6y0tRbFsq*;% zG%yyQ0-!4}nDst0(f|UKmJf7OpdcZgVgU+xGCHzhexturk3;&U01h2&rK#S}!g74m z<&ZZ}kj_W~I^EJFveGI_YBOG_pg@UWHkb(%6hPwXLk=Bm1z_E_b(%d-@z1-LdH^}dQtVDG2L=?V-o86DXGl+;S}%*Zv>`?)q91t=Ua zSTjm*TY!b-xGPZb6(zL*e17&L0F5g+5TLg$0KmZ5`HVSI2u<~V-Dkq&C6X^!yazgw z=7ud`HP^5VLTz7KX* zaQdrS_BAYOWGp_#+xvHLZuq30_kQpk&F#Ah9qS-?I9M2iC%k3wG{>^NC0cOkLHfQ zNZJViT0-3!U=!zDb4sbyTjkX}PbRzvI-#MSab~``OwpfZI(?Qk4M5~>M9+5u)AI^c zBqmbQWx`}zx)dJL+sm1uu(wBDzCh=Cl46o}^ZKdR4-`nY^(6acOQ<_16~twJMDiD{1-Z}edF}~)uaFb002ovPDHLkV1g$&_SgUb literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/1006_2.png b/public/images/pokemon/icons/variant/8/1006_2.png new file mode 100644 index 0000000000000000000000000000000000000000..65f7ce87a833f1a2fd81e048803f6184db6c7c2c GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4a*P9fLR^8g zp`oF>ooio3-&sFn^Vt1*R&y4=`JcS(@&CE$SyQJ1*+*6!dwlucs?%rxfBB|sWcgJ| zCLO3vuq4PYnBhMf5D;}(2$a0#>Eak-(Yy4@#Yu-1I9LOAwuM{{`t(2kw)V^9)VtTj z)s2rgXiWR`R$!v*51VT$4`=-mkC~u!Tu5YT@YVfK3RbOs`+J`E#q&r})>>Cf*d>1&hJGcMVJ;PIGu>YY*(4pFvOXkj(1-Hh|o_Fx< z8JDcoA7?~2W(lspwz1*9aKw@IduA|toK;`fBh=j_`GBR|u2uEUifzHWDxXzUOc7O2 zExPmP;p2nfb~VkPxkOs{;mzP1_YG32uCCk0xARi6&bLR-8-B(8F^KzlkHc+OLh@{& PFBv>t{an^LB{Ts50?x9G literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/1006_3.png b/public/images/pokemon/icons/variant/8/1006_3.png new file mode 100644 index 0000000000000000000000000000000000000000..97240b73609ae87f0476eff472dd18f3d8b84989 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<^!3-obnb*7rQjEnx?oJHr&dIz4ats1|LR^8g zp`l?=P*8DkvGb1kl|_9XwlNvoYY&~cv-JNJJKf~3Z+|H2W~s;aMMO?Do49JLm8&sO zk3dO~UogXeRB#}m+ZiZ#!_&nv#G-fUm5Y-OD{!y|>}=~v^ZxmN|6T5v$xF+wi>n(S zZ_wEG?Yg4U><^W1JrCLb6umP+>AIN6(%`H9Msr?CJg>YK^krra&sDE3p?@mOCfxt$ z3CA__J$rXS)AyOzBwm?)n;r(6glnsxw@~a)@dz;#4c78ec zVQO~LU8A`78yoI(-#GGq&kRP7v*PPqJ6#X*Ja}+!`i7<5S=LKuhxfI+-xSX00009a7bBm000id z000id0mpBsWB>pF8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT00073 zNkld7{KxW-0G0St*C2JeW@vKO%ON9Aug1hnLGq!7|x%g*~|<9bIIgQ zZsL-jB6FQvPf--q0cvwaG_ThUE~Ky9Sne~+mbdhm@9X!z*VfWBWuK#V?|?#x6d(-4 z+EzqsQ3@!8NQa^gfESK;f>Z+f<7>jkVt;{NI7TEIAHRLxA7HV(kd;`*HZxfoc%CKz z)XhsA*JT<6ghM@FSH#MOTK|1(K+_VmUj1Mi1OQm0Hm;H3f+%JdemG3G7Cvc{YR> zvz#9RP@hCtdh-ud6RrrGXL&AfZ5x zi=Bsbe%A4gK?WS^8$&A3Vv%Tc+b#U@b@q7&uIlVoI?WU}ZGU_X!1B;wJ_~b*gvrUH zic|)QL<8W#3kQAr9oNwF27=oR2T{D6eXxl0`#l;LSN~jF%x--WDRp-xU~=*_he`}U zx7}Jn7QaKeqnZ-%`AZJ~$F^x)T&*C^(*);c!LK91m-iz8EWMeR9?IQ|NAT!$3b{1+gwlC8f1 x4UVZF3egheV($u~zv=IOR002ovPDHLkV1jTYKNbK0 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/1010_3.png b/public/images/pokemon/icons/variant/8/1010_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6cd6e71b005538cc50ce4cd0a59c922d15a1e3 GIT binary patch literal 761 zcmVX00009a7bBm000id z000id0mpBsWB>pF8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0007n zNklSQJz0}XQmfK1;$-i->iH6PQKF5~Q2(NL}TI|dAe2HDSFOrJACVG4Yz_g{e4XHef(}6r= z^F8Ets*KI|+=z2KyOmBe_DwstQw8AEo1#>@kPrbAlSdV)3`_^|0Q?wU;<2`cKdi|H zf&G$4R?bqP!sHOy5UVa8Z zBr-y!Fx7-G%n9a(4*4~l;oG}K0D^H%mL8nFi%P&yXpotiSt5}U4%R2-yS8_hWVDv$ z;nOW5krBSWe*&O9=9GYTBwSAsdkICyuB3|i!y3`!D_8rXGSJj5-jpA3>P^XcY{!V0 zqk-P;XHXzlQbqR8l4Sb!f$LL_Xn=NozqkU1LW7h_7qXnK5PQt60D-1#{R=2!lpf*+ r*ot+Vshd{YfY6zbr~CKUN4M8+eDBZHbbejv00000NkvXXu0mjf&1Y3u literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/4079_2.png b/public/images/pokemon/icons/variant/8/4079_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae8cf28c75089be85e11f0d8394822bd9658879 GIT binary patch literal 712 zcmV;(0yq7MP)X00009a7bBm000XU z000XU0RWnu7ytkQdPzh#xp$ip@6flW`0+dw=P*w-MUMh;>YY|md3pP{Bviwa3 zy!K*Gz&}Aezg{B(cTdhbwgUg|NeZGmbFV&o<2Njd7rm1~RaNcOPz-GkI&gnEA%ty5rl>vjC)qVoLCGm+4tFNYD48r%q?SVV*mrIv;B-#(01>kEiL+|JmnxQ#ekWWOP-Ni1M-NVS3@BQ>$KD>ZIKKoy^yOm!!r1_o zM-Pj#{%iT#W*oWCT&Lj^x?!89N!O(Y0hrJYnob1sChvytd-YC?rB4zswKYchxcVh; uk-c0LKmu?-Xy4xlOMtQ}0m`ZbD68K!QXIc#Obb!~0000?P)X00009a7bBm000XU z000XU0RWnu7ytkQnMp)JR9J=WmO)4qQ5eU66CHx+(Aq&P!8gfXgjUimt&_X7iYHwQ zkyS4eSh$esN|%m7xJCyBJLE+Z5pnf2;D!nwDv=HfT|{SuQ0$;~>^2>A9y4yuj?Ezt z`#-(;zW2WOoA3MHn^8>D$|GL4MRB9IGAM*FQ>8Tkq`!Z$ZwSEKreSI8 zoliPqyn8)O_ls5w8h})3jq-G5O3ra*I4dAPG#p@jVNX6^4_qP|4zRd($nN1U2ju3) z5rgRw-cP)gHVYJvTfujU4Z~1&FISqK^(E3~jmH=EB;0B6&5fg+aq!kvQl&LS!vO#q zGMWkewO>7*Vj+atJD;TJNlT8ev%W-T?%;leZ&!Ziz*ScS8BC8zd*!o-G-NayGFsll zl()n}2vgT}4z`!2eRJc8+U7Wbv|FVdNcA{kENNLHjWGt(BdqW5NV^@(cZnxE+T>V` zKccodj;gBYx=zu}IzG>3^2S)--yu|7rdTgYCGXn}C%;{tc<#$zS(?(~|Gc)MA z?wGrzWo7p4SsO_8km&0tR9xoyUbM@##Hy;AUq7V&=+j15NK8y|u)XZ)H#_jyVitg| zXiSMT#vFco2HhB34~bzIN>zK>0R^zNsuR3@gUOCI*?XrowwNVUT&DbM<}Bsy!Rcg+ zQq`U|PsVJm9+$Rtcou-r_7AEng0if3RaXT4uz3T#^Lz+S?y1({Sy_w8H$w_QqOaea z`?SQX$K7&GqOYH>Xv|mUEP48pxT&eOj`jT=N077pD1eVo-FeWt{~s&>`c(nYuL^*E Z^&1nF7eC(A_`;j^GxQcXJ$*}vRB<)X1gE=;uanj5)IEj@R&Q<3I4C`Sl09-%*g{LMHd&;ldDGHW$D1~&(=$9Qo#woY@|tTBi&Ie;Bx z4aka1ZjHhbRYHcAHV`v&oW5ST9q8Y_{J>W(IhE6q* zAT$li^s;87$Ab-kFwzDEO=})iD)NzJ7GKB_v3z3HI*K+izK<;cA%qbGuwm7NC?-Mq z5(Q6&3uQP@`Xa{1F>D+vrzy2+{S#2Bg2%&od|W902^97WMHq=+1ydxhq77OCCal&H ziGZuuC9+vI8}VRTLmOaVs7^4ZLN3R{b&QeFksv%IfDLozsMQos@-P)C5J^!C@Fl2B zC{&>`LIO}eC6y8sCK4-Qr&}F@>qBTV)mmBW`tdHOXcBV#H>#2+6R3aynn98(R742@ zD#esyloSv=pi&8>63V7#xj_vdG(z(@t5p>R8HEx;tRg8fDi)Ih6bOYC`6Sa9xN&# zc~X&BLP-GsQR+`f|KDc(J<=y^A(IGQB7i$5m;L*b`E7kUuJZqw4A;6}j&~UM$>tlo z_t@SF3pq9gH*D+B_NssvwwDdiL7xopRdS#|$Almbwc#N_inup#7AGXd$9T2`c70tO zu>GC5tr)*cf<4KXbn0 z=&Gp~X=LF|%io=Mi+%Exa}HF!F|e7K^;(asTbpmQr=6YOzg8fdo%-0aD(2SPmvHg? z9Pf@w(T(FV%a7kKpR?^RcB@~wyrJP}h(Xclk+&fubHtcezNPNp3&WyX%gw{)oL){J$j%FC>TI3S|Ml<-1E;>3 z#7en-^Yu+x8>fGJJ|aPvGEyu{dEm0MGRo%e6@hAI)#SH-b{NL6z_N zXSFnL%^8?I+$myj(y=pf%X9K`j+&lDtHV5mcD+??Gv7ZJc}`eRI@h^(IDX!Ax4#`Z zH2lHQ!Q0%@GtVyDeWHD7uN28Ij7OG=wDz|?>&r1;zbp5S&uGgZX&=1U{BGaD+uxr> z&PH0EKYyal;~)J)O?JcS@yM*2B@4cgH^ilp9otFw+1ceuJDoHeKhM}X+AJqv9dFDQ@+3E zDrfDeHcQVGSA#qt7`}YvV`S+^+?s0p?&DoIwDVWKo_M(PN>$jJgwz)N!Va|N`zCh_ zRS?#iSYqnP%1oY$+d~}-mTYyjAXn47$xC`mr_;hHQ~A3)#UUnzg)Q+?f#-%00;MrOEt<)q%v zy7p8KW}glk);+M>buWE-X86G~PLiUBo(Q_P>+_&zUcFG0-`{sK{K%|#-uqao4ZIii z-N}&`5!D{g&ce9V=QHC{cSF{JbG{!A)GyfFedy>}%h?qlRQXXy8WQij)D5O2U*b6r met748&gjF;hcO!+ipmZhoASy2lh$v@@X%!;H7~FG^M3#=-2(#v literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/4080_3.png b/public/images/pokemon/icons/variant/8/4080_3.png new file mode 100644 index 0000000000000000000000000000000000000000..36e4fd9e55acfe471aac5088e7f6dee688a0bcc7 GIT binary patch literal 2501 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 C&mTVk literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/4199_3.png b/public/images/pokemon/icons/variant/8/4199_3.png new file mode 100644 index 0000000000000000000000000000000000000000..72e730de86ed6a69dc9f2c603f41e113e5a2d96a GIT binary patch literal 2382 zcmbVO3s4hx9uDQD(CAU6$4M)>1QB{B*@OVemIz4DP)!7r4i7=tWET=hvYX990%t{~ zRYA&F6c7=Gaw@(`c_{Kci?1SbjxD~xC`Is~V$|c%6Q$mU*R-AXI@g`q-T&@>|L^zv zey`b_2W1vu+7g$dl%D(+>6pEci zEsrLmC2K$>s%1eisz6vKEk>d#l)xYp1}Re!f~G){)jA>lar58lG&L-wNBKzr2^NZ| z)Z$DWk!4Ed%FI-y0Hy~mrv;iol0b_P5Y433=nSAqNT1{d$+h)0n@*dA5UE0Xh}9r1 zS`tAEMR9~CU;#`e0B~pl0+tfs0z3tG8I22Yec1q)4G5TkKgjh5IXv3*K_|`Oa1yvq zv~t=Q`6Q&P2m%AyY@^Z0GWxPmJekcA2n1FRE|*Cnn1&1;0hyRO17n6kgcy{#8Y9%G zj%H5+xIC60%{xl1gHfZw=SLe55kw$DI+-;d69`~( z1LPb5$P<7Z{$Btt2mn)12@0!|GJXc-%Q*n(#|OEBpFqi)fgu9=O)#tklTcg>k%HA) zC>dd6x@0szGtmFzKD|q!$ti7_KuAkWPt&i-dGiGfS<8K>&dj0lqwh$>Rb5 zQ{d0zGZlVHJ`;fh5CxZy1SCOID#-mJRGDVY?96`n|J=V8SCg#;X?{14wc)HK0gBZI zGFchZ9U(*X(<_adHdzHAq_kGIkgl|*6@lr~uhqXh0#md`6+)8!k91GL3}_Nzgm5Gz znT*zNmJ^$Fo^9>JDIM&eOPu`nqn@3ClY_vzoE<^r!|V`4bmZj1$r1JF$e24h`5eMU zA@b-?y7rGZritmD&N`Lk<+ePF7NnG`N>$Z^CjL{ zBBwMqJEK8X>vQa4J~!@a6lUD?*_xrMGYRXyuW0CG1xK|PzDS|v4Y#S9az}MX>f<9% z#qn1)R&TTQ6;Lk6r$gUvtSVr$UP&4|r8!qmY+n&$$sW&KX1rbF^Pb_{K^yGR#gp{j z=Fy!4?KOT4ZQDDr&%_1i@3Z}K8YPjZT6$yt&{#Npz4AY2i&}bpCjLE$K+QgXt+50b zAzBEs$vVGUd!3tjFL96f=pUDq3=RxDzf;okX;A-?MZo<-5r^qjtBVjOXZ&rygDp{s zm2qdf<_oKHGagna=+Tvo$LSvovR*zoT~dfS-`t*Y9q`^vcK1MO$J@^2_J#EjuunJvx_icd^R0&n&wyN168JW25P{-_}t~Tfh7KjoVMk zM2=VT?4Q`3>lx{r_(88%v^XXv*Ew#kSn%iNQrND%?V$Tu>d~%caUMm1 zUwyeZ3S|yndz9tGj}KkCV&quWD#zVOOzFSg<)zux5qI!Fb7h(CVPF6G5C3sAOMgng zbTlYw^Gg@|L`8lRL-@D;xoxfZfrOP_l!$^DS=$=h%&m}iM6*L47@~Q;d!&~-CcC#V z>Y=+b ziafAx|FcU?;Ms%0;Ymk%L+5ah?n?fiSJJr0=9dfa-XBwZ;Z-cYu;7havj=V94*Lab zt;P~%zIA(7w`KmE`Ih3=F#i-hJg;}c=INcflMkfxi)0&{PKJJ5pS4kLJCp_7WEABt z9rExvR96w6Vyd}a;IZ0g!|L(n)IN+qq)`=6q?^Vgx0nz6rBv?vlJk0*o5QQ>`U($A cX+;+0N!xkXmJH8U>mN^em{jz|io~t|1xfj=5&!@I literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/4562_2.png b/public/images/pokemon/icons/variant/8/4562_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8add56b50dd4c606a00dc0887284bac436691f GIT binary patch literal 492 zcmVX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0004Z zNkl5DD z-E@(TzJVYJm2Q!CEz*L6Lkn^7iPt|!!<`{ueoKLvl| z#t6`HoL~^o^DONFl^6qV9PI%xYj=$zwSh8w0tB;2EuiB#{zs`qHgC_h#{#I96`&^2#O9fuu4LO~@a+TVmQcMT^O(53>uG*=x z1_5qfKB*Mb!81~z;Ku#YTzkfK0TATkzsO3g&Xfuhfc#g%*}ToH-CgP@W2}o0RpM2H zOS=H2^zd^w3RJ$sY$EM*@bUT#fLbd@Q!PQzh>buVzUfeE~ zb#aLpFY#~4&7B6rwX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0004M zNklQ-44~Ak7ZWAvi>HG`KpYV=YQF z1mR-f?d@u9=TP6L^9SL>T@MfRd={Tye0_1>yW;|53~5e~0UeV8U6TP_;{~Xcii&8h z1LuNPya6wQZ2($k<`wA-l+hC)_(eJal~U$t8dA(H)<^}=ZY#i`-lW{9MfbjtUVwvo zGkRWb)EG?ydf_yApv*U|bzlSc$6Zd98fE&dIu`{&Sq zrnX00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT00092 zNklu`gCCm9|S0c`Y?iV0+7X`&s{V!9mJ*E(4wzs9|G^=gzbB*$(=r3-*3v zZUTVOg(9s&69J7eQSR;>>$4qa5=3WhQW-H*dS_WWkDrb>t*KR|gF(#5Jm8h*2Hu-e&m8WOddE0r)gWGo;AJps?(e`F}=W->qGz>**n12s%A<11BrFW1r}ire9l-5i3fm!>iS1$iwu z&=97d$#o;(rA1JHLqWH*5qyjf-6`(V*Av*?I}~&SFqt25(iC8qL297nEJ+R0vA<)b z$+XHp1t^t60Jg&;UO#?FsT|s8(qs^+fd1wfm_KmV75pt}f{KIb=on)njnvUi1(Ye3 z+~wn>Bl%ujlN19u(_KpPdEIjB07T7H-NrQoCkfNo-%)w#+Ybh zZlY#a>%ZV07K|~Gk4;rcWMfG5{L%WI2@;5npsY{nM@LJr^>DF3c~OI!jn+qMoUR^_ ztp273HXE&;YJFI!SK5|_!^CIAhH0h|NZ(8J0OzovtA<2yX*gtNE1>#iq4o1%J)9pc zzq0sKD?q_LyR~1pa%2YTsA-_UfSTi$MrOe!2Kv(-mtF)aIH@3e%XxmDoMghK0s^r) zP+$VpIGq82ra3P&P$M-|YOCM$0ihLKDqtKmP5Wm*JO6jP^1$DdVKefuJ>9SX0000< KMNUMnLSTYh$Bh{P literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/867_3.png b/public/images/pokemon/icons/variant/8/867_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f93d7c8bfb4f220124f51040e880aa7e3274f60c GIT binary patch literal 869 zcmV-r1DgDaP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT0008; zNkllvahZJ;R7 z7-L_IqG;gGL|)4c6xih2oc-)1Ng9rg}4d1apSKKke&C0b#n#qjzC*Gr>}?fxWg#9V)vw=h}5 zvUa;6b4O5+0DFg<4p4AGeaJ>pqBpw|I56p}7c$ctY(uuL02p4s0I)dSB#Nc+5)Y2P zaB0fSt^^J&3o}&)d<3pSK4NBuByL&H98GzZ9z)4epT?V;k9ssG(n}obaad{iAL(^<^tL&z0F-dPCAnBr8P-0fHQsa zj)vs|`W^U@@z;vpK>l>YpDLmwD18Iy>&$u32kI&FM`?^n1{bH>cD4Qs?qR_glla(N zl|(j%M9&|s-Z#U;g-)d{ z*s5hdBX&(Q-9Y+Yq6avK1zj~Hg27geaA5-T>|Ouo!A>|oT7G5mr&fT18+-GqW929e z)KSwwfdOsDEsZRK%MA3VJ1xBkRB%#3CfDXTueA!{ash$V94Ih>YMjmhK+l|47^smN vDz(*b`hd_6E*CHjny3A1KIqEP)X00001b5ch_0Itp) z=>Px%;7LS5R9J=WmqAEVaU91#tL!pSx)ijaKSikpwI-#Z7g0!dXgE8K5rPcNv4c>s zOUS^(D4~Nq5QK;rLDZCW5Cx@+gawWjHS{uH(rfqW@4r2u%o~9mcbc6mzizi+b93#rB?!aD3h0Gf;fzBp;7-qFlrWS)9Q^R8=bW3#BLYLcLZ#>D^{ za!^%OlWQ%-Vq_j5>*x!Fvs|?ML;9lfjpeyf#|^JWx(MJ}OCcSV@&&@g8=6RMru3M( z+DvLQMaP360FyyC0CsfmshkHFTO9fYu=~_Hd#ieuGSz{%Zq^(8(@b;&=0~yt0&Vfe8pDdtQ zPUW3{ePd})7x#1!(ymbrtbu#j$-9qV7@A(u!P;sBZ8buNa}G2DWWjZGcI}#XW@-Wi zS|P}SfU2sRTnK#vneL(K6_i*Kuhjy85>o;4!bz~1sR`CMmW=pe98f|^IQOs<`=e=; zSW@2)7bEj{trnD6@~?1UES>pe_)Vg!sws4TTzAeF2m?^>Xhw-8bug)p&aQL{fmbhs zCBcEg8ib67*=ZUn3F@_4h$qsqbaRYCZ(k`)St{ydK{}t!1sKD{a1#eI_yLhB!$)2>~;rS*@_X&2A8mi;@h k?<>m%`e)p$sG<_}8}|ljMMgqUTmS$707*qoM6N<$f}3e}2LJ#7 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/880_3.png b/public/images/pokemon/icons/variant/8/880_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e02ed7193ada48f2012625d5572e39f1101716b6 GIT binary patch literal 823 zcmV-71IYY|P)X00001b5ch_0Itp) z=>Px%@kvBMR9J=Wm0w6xQ5?rVliYI;2F69X*RTvU!Bp^J5;IYJG_XW4Fo%N#B}Ei` z6egjGMW7|Vg(m2WF&yfJ1|nz-`~wmhU5KGz3FW1%off8z!uIS7WO=p5TL56 zLV_)B&6)E{fpw~j>P^^x1_T(s-nu-W?uIV zwc_cXK=*mgIg$Alzq^#mu@3+zjt#@GNl?Qu;=VtrkVq}-<9NC!=o@N{a&V^NDzlTT zblAgm*u(5^1nIDc@w-c-KGb?0PnY7|Aiq|+x2%s-2 z#s&w>xv7O=8f&|FdF|7Q>o=_K#VvDO2O;8G)>w(gpyVRbJNKcbXW ziVNmlC?gr@KCc-Jx$RizV&MR^!jXhho03#j6`JA@k6JuJQygM9bRc#^2SQUELQ@=~ zth`z5h7Lqod9x6QqhhVGLWslBl#arLdQiey_d%)ZqIw{*k#BDA0FiK%JG)rZkM~`& zN@^dJy{7xTxO@AlE~+>C5F&wrqY|&XrY{!ISyLBva!6P!WMgd?Yx?b|a9o(=dHVg` zL$e2E|7nWD>^s?esrDZvk>Xg;4ttpAKk``Inq&4&008@o7CHkxz|ppnYH||}i51T8 zE@gisNJ~>5#U*8ye>0)vDV>2HZZutoGwge@I Bg!TXc literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/881_2.png b/public/images/pokemon/icons/variant/8/881_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1d861c0a9f609a9bb2fef3ed6f7b49766ed5a826 GIT binary patch literal 743 zcmV?P)X00001b5ch_0Itp) z=>Px%p-DtRR9J=WmO)4qQ5eU6Rx5!^4JA?;@|js;1}kC+ONS7ulcGV`?jbyQ+Ji_z z7wb@VGVrt~15b(+BzutzrBku7wk#y8Si4T9M(br07eb@gVV!Z!vUX-Ig8joVJKxNE z`{Vz;_k9oY%Io(M5hWsOH|E}BXRrYl?r7W=vrV=k%YX)0_o@a!_o~K^u(^;WKoL;} zSZi0E84q_f@}%#z3H#3g0jf`|127W^0-K<%U3FWa?W(})KoLjj=firLWcmiUqJ82-p27Y+#Sr6jYV;a%-6J4!^<+Hx@6K?0rX<+(G;Td1kE z<)C@byzD|+N`r_fUDpdlM7fue3@kncVCvcDE#K8#Jjki~ww$laKLQjH)4lNEm#tyqNz$85Q1smx>+Xn^U-Nk;v>0Qg*`MC0lBo%SxS`MjVx z&9RW(2C~%Z{E;^A(-D1AQi>0oPKI{XxP~nen+w@kbVUaZID> z+q?;z33;iu)`UcJ(o)gL)ca7@|7CfTKsr?-qGm(Gw3l8s-ye3@GyUPywsCL2u4KJo zY#kN=&N`|oKfca`NB01@dG$7P3+V&H7qwu5fwkgo*+HXN-)ie;B$hrHG?iB}x8UGp z*--%A&41+0del~#vF#viIwK;gsk{<^y?e?SiB0_d8n}~;E|aS+0yZ4{m44=IUU~h` Z`VP%fICA5Gna=X00001b5ch_0Itp) z=>Px%k4Z#9R9J=WmQ6?$VHn4M8=8l*iyxP5;aU2?APj|0n#8IoA|C1xVnnGRbc@}K zQ0Ycs2fYRhf?Z_k(4ml}C1(h;(}JRG7__hh>t1vT%u9a2+hLnY*FKmJ55fLncxT?3 zdEejspLw6>g|f=}w?ssVh&qn3Pq=y61e;$<9qDsT_EU}lO|ZK9HUR4C+bD(gLXH4M zM44dmw^LUC{8Ebk?yv>x4Wa{yh#DH4P?@irR$F>_1?Y1F*&Z6Pu16<_nTSlYnqC87 zb7KL+FdUC>s>1C60Gb|yND zw$Y+Fo=-RN==M9ukhT{|X@UlLl`F6kDF6`a>amh_`&fYc!^_l^e3%_rN3~c_CaiW+ zuCNj*5bEl&?icb|v}n$PG~uTFy|(9alx9L*J?O~ zQ~qAU=e8hkZ!TB=pt(>o*+nj#?YHiqzT3cd?)%Xf7e3hj7hP=@00ws3cyq6c<)>o+ zG(C*cH?sr4Y=^SIz*+Kk?4X&fU$;IZoSy@rdZ3fOnH`#gX8>5req;8eyIqZI2jQ19 zBBH7XIsq7eUqv`S=Xq^*C9}$SRYkysgMZTRoGq)Y|5-l(5ywXP3z>2e00000NkvXX Hu0mjfaQspE literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/882_2.png b/public/images/pokemon/icons/variant/8/882_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d80cda1787206e5893eabc2aa846779c3be032c2 GIT binary patch literal 932 zcmV;V16%xwP)X00001b5ch_0Itp) z=>Px&UP(kjR9J=WmrrOER~*Mb3G1pXvL>cPgShV!heS;&)CHyDpTumUWJ!oI0flxi zEm#|aq#>A+Luh+gJopDuPa-IoXo&0{j3#S5gh;oSQr74+w4GgKgQO){B(3;wdKhLh zyR9;_6QM}Hr`YegJ^Szor40 zc{IbhZ4&_ad&U6gpssx23br?8f#oI@OK@Y)2W+U`jK610bpmOtqYy&<<;QErcj;I^ z0QK8M4q+$sG+N0B?Jz9aBK-wy?ZcIMiN^h{) zXqO{{%-y*Nz=rD0T4QvYBCkZbPXZ!pzMzFxZqn_^r(5}9{~W!+X8Iz7T$^4-Ut}-~ z7ND_Xgulx+0dPMN=T+fa{8hoXu6jp+fME#W_|aN=gUz(9dqHoond3)mjcch`g0#oQ zY)0mfrx_Z$P69BMl=FhLRANO@3j94|YTN{&L#1K~R@Z*P+?|W0VhIl1oiR!&1Zp(g zNy#d&9j2_Hn9b=aS>>gsu8Cb++pCya74Fa^(uK}Qc`D<+wA=Ji>5diK@-r)Dd zZv;YzY3RNJESRgQYhrYGh+SJ+Eze~e@X|n-(7~>(XUz;|j``Uu_emrlPV(*7*5Sa$ zHlrv?K_GMj;9qdL34~5i>&NU>2P@g~Z0NR3y{~TGg|0|9o zgiw!M7*{{~FrXf}Fs_!Z-K5$*&Ajtpk_+^|vA2|^Sj<05(0=5>me{QT0000X00001b5ch_0Itp) z=>Px&ZAnByR9J=Wmd|S(Wf;dlvo*B`HG-0Ciff-zlIW!iCONDJH4V*b=%I&_%@Qz$ zvTPuQ;?X}q3ihZdw`;WU|Ig$su%UD-#2Dvow!~?T)*f zw#;N(5Xtv8Gw<`xXTHymdEr3+a~Z7!i-4ws zQ`#uD?4al1X1ID4CXdl6uXAngD7I7G(kkyz?6iT_((Eh6HOB_Ny~{{w(7ivuahFuz zFaXkC?Hj8Evym=($9o80+gaNn{|C{i|pL|0Gye_Oc1Q6|LVz0xoM7N@$IH(2Sr4G_-+BKyu;*NnGauk8>r4YtGq+B zqYY_S%u)q_q0E%qAdA^G7PD(y-CbcIGse%!LC-Gk>sMEUd-%@7YP|`{Jpo{T;|43Y ze&<}`G((vw7qA9bNX!sC`JU%@`3AiFV}>u!CMb5=4I`rlRf|QM4-YY?iP zd@gyq!8sAp*+>`N{l}jg^Yu4Ttm#z>i5Uus8Q%Eh13#~9?L1fy2r#;|2~@jxATtKQ z*3H{4R3S0ruJigw@#WyN)H~h-K=kn=)_?t?0j}mAz(8iq7u*Yzh^UjBP$xH`$xu-9 z@rdT*5lx1IZtdmc5nr`eQ_BvDhz@0@u%=f5Fb^GJbZL{(rA^F3N0@y7GVrg`d6002ovPDHLkV1iLk%Yy&_ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/883_2.png b/public/images/pokemon/icons/variant/8/883_2.png new file mode 100644 index 0000000000000000000000000000000000000000..18215b74d5bcf00ef141fcdea5a69e2f40bdb730 GIT binary patch literal 815 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%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L01FZT01FZU(%pXi0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600N6iL_t(oh3(ftNEA^V$MNsP zx`h&Jhi*ahP=l>lB1t+JmJ%h_K?yuqh|s0jgHfFdx_B#S57J4JPzfRQkP%Uuq9;Lv zMO{#1UJ!QFA@X40bb7Cuby;S1XGO%{>CMb8eD=Tp`SYIPI1YO`#sRR%>`$N&V#k*( z%Q8X{WhD?$!IDmmz9(&i`LZR}Dk4DmP~Siygp+h?=$8Eeq|7d){ogWQw#21Kl;OkM zp(1?&bK$ZhZG-990@t^Wgo+FV1h_W&0DyF7HvqqWoYX*-vC8G$0}3IWRcnTfOal-% z6AU*r(mpi-z;HvO2WiF}Mm967RYYS%r1J3 zl^qBngwtBp#OU|&@PW7bT6uSO)Pq#(#G4eKF24kzTlSMOyLMEu5S(w|xhKbII%_h% zAU#Nc_NfUnGOd9s11vHpXQ>wTSe9j!6!`G%1%2&Cs=my|soD6ad|M-1tD2Zt{Rn_< zL;-(&7#OIK04E+FU%0Z&qp>hod0{8>DU5~hFW;h@d1GC+b#MtzlT1T4(Ntv z<5cz9%Hw)Ax?w?ZB>|3XW@syq>+1m)3#wcopn6H%Fd%RB+!Sn%NJVfW9%sC?q2D*{?B5i}Q%4K5C7K4+0#LWb?W*u{K zmRhq8+lX?s<0{{Jp6SsOI#5+gfz%q%RS`ls@4vnxZYIdcG;uTGnS~H+OBQImbz|d{ z2c?kizbqfnFREZ*b`^V#6~J4OY~al+_lw%u1m01rD&}i+_mQC3ZCBtkNg;hyO!nug hZZ~rPEH--{_z!23>eTQ79?t*(002ovPDHLkV1gIpe&+xH literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/888-crowned_2.png b/public/images/pokemon/icons/variant/8/888-crowned_2.png new file mode 100644 index 0000000000000000000000000000000000000000..51e654cc108ede75b1f1db452c6fdab549192974 GIT binary patch literal 1177 zcmV;K1ZMk*P)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000Ce zNkl!p1le!|l-8zTDIJ?sTnD8z zf)uK>rMR&nqKpyZB%MyPUri~Mj>qFAcKXS7cK?$70Ll%oKMXO@>CL&R5d`pCdejM&CTUQ{^zlIUy% zfVIVN4z6h6b})d$iD%r7MJ-X%tZ+pEl~QRdSbejL_rW{djz#f((F4Hc8y6YwAJ^O2 zE#L4K43t?ZIDrYSzS*Vs-v{pi@b8h6IiT`u9j5(nmp6-#prGVQl~U>B=lwY_-}9RQ z1WsJlZ~+P|IW(#JTSacyK$)45?n=&1yyf)$35NT}sc&}Sdw$adgWTa9==7TQcdC=N zfJ&)!S*?fqW)~h$1H=8}JZ*ZN12n>(HofN5+-DjnFgt~NSHR=v{dhbL1ZMpB+=Dzg zcSh%z0Hd=J4FgO#f!SSM3I<+(7}7W(2MAkHGe$2P2Zcq^Hn67034qT%$Z-F-DYs-_ zhTaO7z4RHYf)#v6pbT&FP>Aw%FUdn8{`=!oQ=iK>F48vLn-jg^{&Ch8!$78(w@vrr zy7xv`ftnsCOCvGlw;-TAmGj_1K3q_guY2)$8uIqdF4PiTiRg=&Rgy!KrV=G10$AcK zfl8_LXmu&cp-CQ`JHzSw6DEvt#hAaF$;q->kB**{oaE3XPrh!atIh#Hqq_pvy*JeK zIPtj$3C#El2P&n~k?u-f%&ZbPan-aUKxW-sUS6i5^*h!U!}^sf(p^d4Sb~;EQL8DBCzopcLfjY=pmm-yKff+wbBQcGu>2dPI z^diB9l#qJy{?#tFu>!NO$G7uup!C z6WiFZRcr2*yi>f?Q5iTwkPR+kc7NNM0er9DftAc8cz3IpzOjUkq-jZuh4fG#I9kQWS1YDIy9OF@ zasz;-)Mj3wEM>;?%W6Hq*0)C?Z#3Hi^IhC{OrQdkJhb`_F7#b+N1&aHXGeH9h@ybo rwf)Ay9ssRUV6R%y|11=fUv}F6bN(&zt?{}i00000NkvXXu0mjf7*8(~ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/888-crowned_3.png b/public/images/pokemon/icons/variant/8/888-crowned_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8e45189e15f3b082032093144504355705f0285e GIT binary patch literal 1186 zcmV;T1YP@yP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000Cn zNklRMWqV#Pw4(12{C5{#@!QCX=lDXqaag(@PYhsLgy{xK0mi>U2xe}wmXm*n(f^!<}N z?%mzze((2w?=DHYu5(aL2%(2Up(H!~ZV2zz~4PT0Pt0N z|G@%{Fo4;|t6ZCVNGKFaGNL31;Pw1JYCG1$>0Qe~R<0z2kYBB9!I{!`L5tJzTq(TV&T)~MbSXx6n z02_ln3NC>X=F+^Xzg6V+43sl-Dj333p2vlTlXUw7)MV$A*3fQ(LG*Ao4vd-hcdL`O zfI`6y2K5cLmDf-FmrAN>(ykFSnV{HB+AscNsZnZ$?G0+aF+VeFX>?^PICc zIbJMO6=-#o(ziB^{EZ7JpDHgkl~XClNXbg3u*4a&Z)BmC(UlRscYg+#<~5ZlIU;~1 z&Jrku&^xMnwbE+aU+OyAnH!nHa| zasGTBpSM@_t#4_gx~d33K`&N10BqxS1j@oHbLG#%&j9##_O+TU5T4bMtHV?a;6%ae8}-nQvt};w)y;%|MnI^ zt0sidb8{*Hc(M4vR5oOjaEVUIO2+3r%&SLt)bVC_)4>5dyGHPNdlj&8V2sYL5e7#8 zAnnaEFBTt|&XKw7a~=lZ)uTJ)=2VcYh10_hGA`iJ@-w8pS>`wY?<#T<=&Ahc@ReQVQE*O95RuRw_d6tLOdM14yeK5s7@N5c6xbmKbB?j{vUV;&zZKcj}a_I(+n zhXSTPdj=YD@&*98ITbO1aw#*OUyz;weE9Z==Z$7ZV62N9k4dNm$~?6C4vzO-a95z6 zi$_LyFNlPIJGFzx!9D=3QeeMY!v8EJl3#Y(|G?%d^3p4QcK`qY07*qoM6N<$f>RbK AEdT%j literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/888_2.png b/public/images/pokemon/icons/variant/8/888_2.png new file mode 100644 index 0000000000000000000000000000000000000000..58f023ed3eab521561c2f385f8b255680ddda457 GIT binary patch literal 857 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 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/889_3.png b/public/images/pokemon/icons/variant/8/889_3.png new file mode 100644 index 0000000000000000000000000000000000000000..93b547d3e036d17007d5866f56dd45bfd2c4f13a GIT binary patch literal 968 zcmV;(12_DMP)X00009a7bBm000XT z000XT0n*)m`~Uy|8+1ijbW?9;ba!ELWdK8EY;$>YAX9X8WNB|8RBvx=!KdMT000A1 zNkl?B5@cnI_0=wLX}F-LQG zT7gN2m>J3-NDwL`3JLX)BDRzNT7n=!r?iWMdOO7L>D?OmF5kl6Y0vw-&+~lV@9)p^ zJS#B_gX3%^b^&2Ih0l!pq^hRxgEE-TLWn?m$5~Y;k z=#AoZS91G&BTZf}hY>W)(_x~%PQpy;NO*0f~!3@_Q472NTXt;bRb9NV->4yU5 zPhM79K|@sy1CJg6&>swQClR4P7-nVp4Z-jzL!lPT5K1XyVJU;BUNIP(24E=EVhPd` zpr|$&n6#xrM8310r{y-wqtv|w6 zz<1A|aVHVs?&dq@Izl-r0vc2jCKw(i;CIpF^=e>&6te>cc~wY5dh$@Vm6a@=RPRYKp>p2fIgi zv6Pb5)71q0F1?_rBT7kI)G;e6Vdv+If@3^)%%@T{zv90Ea?aj=|=saSgZmX`3(EJ>a);X1HK@6o5peTZ2vx z_wgmWr;9oKF6c)B6gPjqH>RISOqoqwXNIe-yTndFA9D;B;5Awz{K#OW6^)$>Ba-#OD^C zaJlBPo<{(!9wdt1i{*G_u89H$X00001b5ch_0Itp) z=>Px$*-1n}R9J=Wma$9YP#niUiWD8hA)`=uZiP@#>Sk{$^dIQdq5I*|gWAPxI%Uvo zHy)Rvo6FImg45w97$~^7HFy9-fpk-9g88c^Zupwm9(K=AXCC+wI)E`!|465)RX00001b5ch_0Itp) z=>Px$>PbXFR9J=Wma%KwKorJ*Zi*Wyf^t(lnNzeFFA+Ffx)rYl+q21(E#S%jKsRSG zWXlkU_beHUw`NP=x^!~l!$U|W5fFvckg9{x#Yzf|PD-YQ#ud^hJ>4(L_9Y-%k@>Q1PA6K`DXDMa0tZW{zCaAS8eSd!r zER>W|Mn=&bkx4;-z#Ri1M8(ANRMDEClrm~`YMf5b5Y20Z5QyeAo>#~7>ba4$y4X_6 z=yZDaB;MT#;oQW6&lLi9Y~3uWlBAT8=hXpl zoN{7sW&Mu(%hd!q$0-wrb3+o+4;EH71K|5Uv)N5zuUcI*1Y>fKk=A;wjT+$Xmj(cD zK3*kA0?cMN2qA!l?FAxX00001b5ch_0Itp) z=>Px$_(?=TR9HvtmO&_kVHn4sm5{ZAgTtoOl#&B>V25Rgv1oFXa#4$;gL0r9T*yT^ zxJvEfK+%##X@`j#hvC3V*@dPg2a%-c|JF0FHEQp(*22z8wK(qjZ?e#T~&E5Ee@i}ov0|yW4oCMSu z5O54u-`++~7ngb4jX_NzMSw@4PO|rp(Oc&9S3ppE7S4<<8UgC|004uv_AX^Gvmd5- z@|s-lbt-lkM485I3kB&pzWbJii<78taGxOPW zo4r#;aALrl_%f~egA}}aB)W|#AU;lQjZu>J)j=*%HapC&UqA&4v1?c zaAJcFTMZ2kkA6pazoB}LOVWG1hNuTIB(Mj_-OY8H?5WBE76Z=MASM_Cf&vInt8NZM zBJDq8K<+;Vf=QlQKmj^;ig9hBo3scp+i2RJsP`X+1C}v3DATRRxCa@K-^)1W_bpz7 z*r>5NbD7vHszHuW|B#S;#fYa^k2v=?f5@6z)7KM6{1<33{wsUHFZrzfA7sGf^#A|> O07*qoM6N<$f&c*9rvJ78 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/912_3.png b/public/images/pokemon/icons/variant/8/912_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c52bdd2fb73b986b7531c0727f5cf5aaa6bb4c0c GIT binary patch literal 570 zcmV-A0>%A_P)X00001b5ch_0Itp) z=>Px$@<~KNR9Hvtma$7hQ543HNYT_16%m96V$jeaPEEGh5QPR6MzyvE4G}sCPA$>W z7=acINzq_S{sH0;R45Kg)RHvh6onMulk>QV1@E4R2ze%-zI*-gedjy(I;g|T(cyg5 z1(Z6}Rj{j|Q~~Mw|IvePxBIJ=Qsr`4EP!YO2K!tI(CFmg560*FD)pRZjqfC&+JJy# zFqe0XD#gc^?Z%+GkRrgL_!4afLzJoHe+2~fOYBTrMJ+&8Jpe$#S(ndH@bEfK@4Hoc zT_wYID2URvTN@DSH5bE7hkaC7%o~tu0n)0~+JOD_0QDsr!C){b#{I}D4kR0hfNdKf z{tz|;lC1<7io*gxly_o=iiI1hIjyUQ^;!xtpx+ax%*YA3v%{vHtk~Szmg#OPHE-Ek zUMvEPL@w#zX@}m9t|%J4Gxp@?X00001b5ch_0Itp) z=>Px%b4f%&R9HvtmrF=gVHC%YAw3k6!9|o0oIr3ZVJ=)aq=HWn%#DiUF@iC?c0xn0B+l6d zRRRRui_~A_DZNee!SDaT39x|Lfm8#a=bK&OLpTnI4N-?s(OZ$D z*$B1P(tmJH;DU$8RGNIlSp|j23=-b~&L0@#pLy;!Fd#s~8EHz5V!285fOk@^QDt2{ ztxolE+W&Qrmfti}?)_?7{_>70+CLFG9-#_p3$Uf}DR2H^dXk=9IiSaj8w`j593pFD z+m_8rfUsBKL{UHvb`{cmV3B%1?rL_*NObHTG_x3Rj|xs_@AmYjt)|er?(YXB1*MZa zN?h7{p0Yf8-SnQHYlo`XVyNc0g0kW4%LfbtOQD*?^U-p;d9Nm-NgTVV*AR*uC_43aqs@r(ls6tw@SO8_b$(suDfCOBAXPKsK^1@a`NvXWq zSOS#VlU=1V0f>4;9U^cKA_jau0;KUk#zy$xvt>ZzV)`q`6@JT>qdox%Ks*}{y?h5q3Yr8$gsZ39NLOaE_Ab&A9l&`O=f hwMk+H5^bG7Adp)w@z#Bp00000NkvXXu0mjf001ogJ~{vZ literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/913_3.png b/public/images/pokemon/icons/variant/8/913_3.png new file mode 100644 index 0000000000000000000000000000000000000000..71cb697ee3be39629258097ee508d5b996c527c9 GIT binary patch literal 702 zcmV;v0zv(WP)X00001b5ch_0Itp) z=>Px%cS%G+R9Hvtmpw>ZQ545d3@9SiSags|F(Qs?Q*=ntK?_|RB;X`!a1jKpgV3o% z=~T_24uXT!Rs*GjbSf08gH#2-KM?VQM8vj3ONoNm3N___=y|-nz7*bl$*UC4ly~3b z-rxQI&$;KuMOQprSDcTo0qr{U|10SAdgEp)MWfM_Y+iX10sB^0LPb7b0^{e^Rk}HQ z$YXXvl>h;k)f=Ene<^LuNB)2lU;(uQsSH^2x{ty1fB-V8`D1X(mWq}Eph&+Uf z!~QPKMyS;^cfw-=cOKcJ?9y^)6%-;fNW24F#@#XgEc~gF0RejJI8&)mEEkC$u-$!1 zZG8cH5?bNm@%qRY+Ta(~s`+;x9u}^r|~ZJ3S!=L;w!) zvG~H4%}RiJ zB^SFMX!8~1)zD1E1V7hrwz9=g&2a@~!79&VhJmF}O(NDZLLFn@6N<#KgIaDe0#i72 z#`zW*eM_Ej7Xj{ca*i55EK^x^Cx5o!pX6?%3Teq=0hIP8Hx-Nn5^%w-3{BZD4|5Vy zO66u_2~cuRR+Y*GAo3A;h`>3BI9M7bKpHn>EQG&3TLv^vrayAp``v6g@)M8%#Itcj zjsXG=-9+NW&s?o?0l5?0CKX%t8%T+QW|re1$N7j>*zoMVQXj^=wgHpbrT@35+C|a| kXeH0mS|q6gNjA?f8b4+(SnA3;00000NkvXXu0mjf08iOF4*&oF literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/914_2.png b/public/images/pokemon/icons/variant/8/914_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf60fef07fd04c913c2d8ea18a29ff8d7d1ee44 GIT binary patch literal 834 zcmV-I1HJr-P)X00001b5ch_0Itp) z=>Px%`$G;<(ogFyNMq_x=Ol-xMd?Ch@tmqw*?L$#jgCVuIWpm;V}wL;HB z1q9sbnxE1?GAB*V5e+L=&%-fkS-NsTF(72-+xL>-@KS4oCZLx+LgA$V!-6^53}Vk3 z5OC>qTHfsM(2w66*ekQoht*!gr{xL}YpC$F7&NqenUz5Tp6fm)J90BJvF3;Lp4}t6 zTW_l+Hym@ZR5)vcc+j+n^Y*TFVr~vXJ&M&jCM({3mfYI9g5}4ii&+`ui%gRz&i4w9 z;y%D|&1yt;as>}qXOkiIKd1ziPziOL#)_GLf<5caSJGhZZ;tk+|xfZWl5eB5)v3FqMWb@_PtjMm1n z(RnqA9?Tt&Bg5>cXcsle{%a-{K8%8mmiHvTO2(gE)Z2;1b|;Lm1t8Q()J;IMMbdCt z%8Z#u?smp}cw z17eclujT;Cxe)!>7A_Qnw1}f=118;YNCUP(a}G3zTpM%DPb-6klG!Ww0Ei)hVaEnB z(*Ys=CxC#vvo55MKw`X!Qln-_N)01|+(%*n>@|C5pp(k?fQnF5?4wUdNB^4rub z^BI^zG2gUhs|>wIqUl?+d00000 MNkvXXu0mjf0Prb@6951J literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/914_3.png b/public/images/pokemon/icons/variant/8/914_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c7ea5441d4ba279fa658cfa5aab323aa38d666e2 GIT binary patch literal 846 zcmV-U1F`&xP)X00001b5ch_0Itp) z=>Px&2uVaiR9HvdmrH09K^(^arC`uQeId45#N;4)D256Zd<4aK^B_gB(xT9VVxdJr z@E{^mJP00&hl(B~NP~(JJct)7O0_}@sSy>Sg+xScRea@8X+bOBlrK!yjhUTwLvb#{ z&Q4~2`~9D(k~u!A<~X1H|A66ecm`I;<#K_1to5M;i&Za{3!6G5`sl3k7B^7rwfz7q zKwL;L`Y-^$#8%6af!9T#*voYrNKb%N?Opw}d%Wl?9Fx_s(XzvTM{m3p@~FH{h9jg77<+M1S!87WA>!+YE1M(woh9{ete z-lT-O<4Pqb9DUI*oUww~sH=$QH#4oG2M3|{P0TAOnV5VbE8osO2Wn#8s4IEt<`to$ zcn>hFxsAyBEtLV(l_UrtOM&5?Ulomf(5VWPyniAtSI?*9*rB*|T^^IfSX$a!GV*Y^ z`415@TTd!?urar1K)@ZW&dY)0vmiUp^$V&B07J2Q1wnsfYQjF`PbTxJo|Li4tpK4O z1{4Hn_k#}kHu_YpB^rLIx(rAFLOqO)8(zs!dYzgB1*9JWa&7W%!JMrt?nqB4t#aeF zx(`Z8)L=$DW}4YcM3+^N^;dT+T#ST`k~i@4t88mZsn^N(y9#E6S^z?xMBW56OC%L` z4SC0+5g=+X^BjK8ay7Oc_Fun&-I!|)7qvv!-Bxhx<}s&^#_3MfZEqbW-P>On)F z#JMI)8UsQ_el;6V_Jyd&rf`8MNEI>bYCuUR9J(5oLA?*un_Ls+=t@QkmU3n{-vc0; z1ezTIqPqi3ToFLP-HR@ezULFt)=(=uGn3+U13&^0Dzmfk`v1hYf>f6QQxp(Knq<|> zk7|o;>*WjZZ+VRMdTBl{pKEFabM)e{af$mUK3Fc%I+MJY3Q`fkavxywJ}?uTTyC=G YH@rRfF3dNE+5i9m07*qoM6N<$f(1!>L;wH) literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/940_2.png b/public/images/pokemon/icons/variant/8/940_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2344679d9873f18277bac4f3fedb8793d123b518 GIT binary patch literal 466 zcmV;@0WJQCP)X00001b5ch_0Itp) z=>Px$j7da6R9J=WmA^|uQ545NMnSkW=qQ{AnP3fq&?b`LAhZ-T^#dt_>L1XSp#Fij zs6`5=ps7WIK-`)f$}op_!!h@0dkyg(zOu;siU{s!dE9&MxqQ#}-t#UP3>jI2t6jmiZB{!sq~b4Bt-3EB4QD~na&l+~UG_62Pu%^+ zE|z6+7N4bAXm~Cr6GeJmMIhaIGu%Ko}TO4O`_e!%XY;ZHwz5_pSb>cUH3rq4l1QW zRjWv|(C|bYE#-V`-1(qr|EK}BC+C<+y%}@cbOx>o;vNL(Vx?4Q=W+#rt@CRD_Hyf7 zO`ifVahMM*4g$W#@bNt^XKJJq!s5x)ue{BH5fSITXv1If3NOK$Z~*05LI3~&07*qo IM6N<$g4+YlvH$=8 literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/940_3.png b/public/images/pokemon/icons/variant/8/940_3.png new file mode 100644 index 0000000000000000000000000000000000000000..56a17f4d4dd79d44edf07fa5f18b78f33f7f7d48 GIT binary patch literal 468 zcmV;_0W1EAP)X00001b5ch_0Itp) z=>Px$j!8s8R9J=Wl|M)VQ5?s=MQcM5=;H7@!y$4L1D&EJ0vDYu34-RP28$pBgQ%rO zqsi2!S{iBzr#mi8+Jr1r90PL;ntl!Tj!sMTPNU#`mb-WF&wbvH-+MnmB9TZW5{cwL zGh$~l5%Je{wOX~c-asKDuBEcvP<3voI@eNJZWkT|mUc`;e4jc0w$B%fnj$Hrtwwj$ zid;UP{INeDPa0C)HqtA73j)CStlQM~#iE!D%t1?}@m?r(j2F_wNP!NBh#RWTn=54X+9Urb}B)S`mU%QYcJ@NrX00001b5ch_0Itp) z=>Px%8c9S!R9J=WmOW?`K^TVLJGPbMun;7!e2dqG1KHz>6xUb?B5aBT60{Liun7cG zq_?q645UgCun=rK6VjzgZCFf|;@FX8TUidVTW(SuGwjZ8!pv+A1@CQU=XW2zzZqbz zx#pT{rfS%3BqE;gGsdjXx=B`t5)q$dKHA;_03eMLG@bLAKpG!NM7-q&m2=~Gc zjZJU>Xt@E#@lf}-`hWo7y?+7WW&k+Y=>q_MZ+t4PRjnt!O*374ArW!LSmWV?6&_q} z$?MeiB%ag%HozA zz&+lUV=7!4CDLMTZvn#60@S7qX=kx;mkJe*91Kp@WM4pt+8A7JN#L2fSo~0h6Ttac z1B%wI+I#DORT2>4s8|g0Kw{4Jp4I|nj5U(w)k+wkTxQfTNS0Tv9}z}b+;q+nKmSk| zKYRAM&{wTj2hIpk=-bl)juzJoaGgK*(ZAO(B+=30dTlts@;#{5#NOR^a{l|T>76{Q u7q+p8i2r!K%k%BuW-3WQ{gZJ2y{-Vur}%(B@c>l-0000X00001b5ch_0Itp) z=>Px%OG!jQR9J=WmOp3{Q5?rVXPxY18;C7}c|)XT2x4(6Ercd+f(nHOS{yPsi9;a- zL~NGgQfO`45+kH8ostI7b?SVq7Xv${+3euepl!cLa5euS)JGG>bzc8t?jb11BWHgvlc?A zsj(PTa z^$P6T!JF470hmoD&FjqFC;Z%*=JSK6|IIDN(r9Mih>k@7czfqx z%}qah)Hl`+qwl?Tx+@2zlt#6&j+D~4f8{q@u@SanBLJLq&Maf?o&4@qnT0~u7aVwS zP)cdoYv-hM#*OGz%eY7)N->@`;d()f@iZ^_s6uxToD1F#cY5409a|`5NyV;NK(&)z zqc(h&AW z=>^g;zu#%sUA%mB;0Oc#+l;+7myZs7A0k{kD5W$?t*_*NbuG_zeQDX<3jzlok6Zea z_w9R`W@gERd;X#cz?VO5bMv12@CFEeko9#QwC{-zCm);f{q|lcU|OD=ME|jr(lGBw ryX?33kfYsD;X;#k^P-OZLj}=aC=mwbk&Eaz00000NkvXXu0mjfc~dp> literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/953_2.png b/public/images/pokemon/icons/variant/8/953_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8b200581cfff4e25e0d2f6a45cb7a54273ceee36 GIT binary patch literal 700 zcmV;t0z>_YP)X00001b5ch_0Itp) z=>Px%c1c7*R9J=WmQP4jK^(_F&pfPB$|^+QK?hrD(aR!H+QD00x~Pc;D?x|_CJ`O# zpcF_TL8tJLcqrUM1TGOl6hstgQiue~LLSDYLJ`~-o8dz0>+qQ8%U#`hi{a&cZ!^F7 z^O@hwZ+<`U<;#~ZU%q@Dq>Mr*3Lz|aTS{5*T6?M3>jVW>eR^z%rN;t2P_>56SWl-G zLRbpy;e#*${WlW;q#C0D{2B?c*XBY9D>E1ZATYF$7gF1U3a;|xQSNqCI$%l_GcnAn zc8>IIL+1^j6 z&<&|TbIE-Ov#K3{*H6ZHw3WfA-@uwLW=do{0cuBasxeCc%~;NUV|o3bLtMJ>4ytT> zLrWc{<*h6RR{=OtcgHrw_5Q)U9+XlV$>|;k!Y$>c;ExFa(#d5~>E8gXKI`Sf+Z3hc ztu&pwhG|xEvGcjJrf%lZ{$|SBO%6?sP*!~`%brdyXZ5Xo|H4Mc9HZei8d~a@d;gW* zgdHR$@q`1qFMvBCb7`}=&#{?H1FW}&op(1HUgP?`ZvaFh5vD{&`=izl5-FvTo(Se0 zXD$sOr8G+72`6J*DcVkdv$L}_%Yg2--m4k)cRhY(XOtV4KRI9u!aY_>X}F66ueta@ i$}RWY|5c{>Qu+(w#2hi~4kVWV0000X00001b5ch_0Itp) z=>Px%dPzh5Ee{*g z(OQ%)LFu7A6?-tYQ?$5U$_}wCNYWp66D9I6two2T6x_8#(RQ#Ip1JPMis9vbPj6;^ z^PA87-tRXv;K-39M~)mh+Do~1I?*tUoV_iC*s-rdD%q(7n|bweQ@`2n0rWtn4;|a` zQsE@n#pNUbQ}t~CoV@jL!)Ron;Npg1Zfq0s!uC0|Dh^P7WX%%Qto4AnN zr^YQKMx(!m)k8y=bTVjO1t2k}SH(pmD1>mC?Vi67nbpN`Gvo%i2eo#Q2q9eWCoUDW z3yoO_AzX<}l%<6fiA_hIGZ=fPE8e0;9E?9Lwxrza)==v+CVz$Ap-)_Z*>=I moP&Gv+_KO8U(Ym0QhxxB3LZG}K+H4%0000X00001b5ch_0Itp) z=>Px&s7XXYR9J<@m|sX+R~*Mb*_?w_18)681|2)0@nIM@I%xW!&^$ER6#7tCaG~HH zRv3Z{zGz;?a4%I~%5eCSL0gcPl5TW^{V^aB;)?~{?1Z6_d)x-LGBsdo2hG~Ehvr;! zP1fCev$kIdoO{o|&-wj+=XcJHhZ-e>PNm^(C#)?A zA(Rk8UAnfce#y({R-^J#SQvQ@g5j+cA^QnP7=GuUP7S-~QOrt`^w_6hf%!dBdF0 z0+)$f+P)Ts;e{9gu}A=zWGE3;Zd~oy#pN#5aQBYi;qOptw^1f;v1&LHaP4YafZBQh zzFfYdzFuXW&TCt?EvQ`^jsz+o>t@eTH+$x>{oKkHpp?=xl!#g&O@%+N>`?YD90`y~ z=Uk^7$1zwgy%8*srSkAX3|}r!CY@s_5p|sl9j6&>MIVo>bNTwa^t|_j1#);HMojD{ zQzc%V%GF5%l?nTb+yJa6i9VBSIY}H@uoR1>R8a})%jKa2s4YFx-ohZb%7Kmng%IlO zkwX9sC8Csr`btka=Cq>k_p-Aw#%C@eT_1I@*P^=`X>VaLyNHz1^Hy)K`gweueOJd_ zS<&NTqWo`U|Q7aT+h3O^B-%Y`P3Wykv8}# zo2CAxM=7;$Ch*js3$+y*1+9g3IH?&8!hG0@7FMjTfF_s>oq~zzHXIU z4`6O{mE_D_8iI{91RGiFiJD~%H?gwL{rVkqL2l&uvhdD_-_k!ji~og}O-Sw9wVo&+ zeX~fD*UQApI#No{V0O{6u;p8$HGQM}tMmrZg9{GB<~CR9-xE{KtpgR4H+j93)jNv8n*UjN++^iv_r%IN|JDAPNW1=7 cb38Hq16ryHsWzfh4gdfE07*qoM6N<$g2YSeGXMYp literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/954_3.png b/public/images/pokemon/icons/variant/8/954_3.png new file mode 100644 index 0000000000000000000000000000000000000000..affd07a9df916500f87b4446fd84ae046f048904 GIT binary patch literal 1014 zcmVX00001b5ch_0Itp) z=>Px&ut`KgR9J=0mS1RFRUF4Z*J@&|4MCb9f!5x*!62>+lT0eIgcdDG@j=RbD8-FE z2=!$MK1jPgID;=T`ZA#pWrY%SrB6kKZnh+=RY_r{D}hnUy{**>>6F^Fi|r`ahwHhy zN#@8oQSb|aS+#HmCt7GZ))|vSLjLAg#xTEd{{kbl%VT{m0m2s zjyzi=8uXNn9Y6MviCdQQJXbhib+@rDNGS(e(V&ObT~#y% zz)Ao&*gvT+dV`X& zSSy>GO}|Rv)6Cz$JU|gpbMXn;1p}wGD!AU0=Q;7h8_t|liM29Uqd^aS;loF^q<;la zxCbzCt9p-(-!^3TtywiYC_)7Mmb+@q$QYf2lubQ7t zw>vo)4chH!%4ksPhssq9I1t%%sZiW-w$t@BYiU5?Vy;kfXMhaZbi53D`R-Fdec=Vk zqfXa#>&-v6f$D~R{MbVmn5`+Jft407rfDi4by97{G)?X6r~Qb0tSkU`@i_hRToPT^ zrQ3^;w1bK6vjA*fA7!P*i*VGf)m{7KSZVR{)wc$7neVwW)UV{EbfXp$p%ad}Kd*fF znKRz|T9~eQr?QjMAx_VZ190)uRdijq2F@kv9i8IJ-CyV(og(zkdq63)7cX4}AaJBz zmJLw24}u+PZ9l?ra*#c*pRRZ(*T=qaKyJ_7q_yoR?X7<17Zz!4JIchhA*B#EsKV)i z2+KdL^K$HYR(`(6gWv63Y&&e@mN%~iS@VKN!R>kdH0^Jb8p&XE_z2(G!Q9HD z2O{)eup74<)YzGnhE%HJ;p89yGxsbm&;5we;Uf}DV08Gfx;tq+{}y{*JO2bIK-hOi zx{_-GtaJ}xeqoWfoBtpZOAv`AD2`1#-+Nj#ZqMB$Jv+|Y#&#K`tfU>Zym>Bv{5~hU zUUwjiW7C*hd5UAx1nzu8)BZN;*>OzM)F!SCmHjbU7o~Ghw*UYD literal 0 HcmV?d00001 diff --git a/public/images/pokemon/icons/variant/8/981_2.png b/public/images/pokemon/icons/variant/8/981_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1bceb5c229109d83950ceaa889fccf04e2aec765 GIT binary patch literal 768 zcmV+b1ONPqP)X00001b5ch_0Itp) z=>Px%x=BPqR9HvNmqADrQ5eTRw=EV)(^ZkcLr@VNIt<|NpQ&4E3L*SvHVh$eapwL0|psnsIvDjAf|KuCqOl!S)^IH2ZGjDeG zz2E%*@BiLR30Ww|aekp2*L6!Qbm!|La)*FBarh^9y08_q4rvT1swHx1?}>AXq<0QA zZ73TWPzDv%R6my1Hn_Q5+d|2VOE#1Z1*qEjr@02uy6OtPWi7Ks8wbjbt=9(p8{EyV zZwxf}qSOP+ea{nYj}o3xfa-h$g{Xvc00K^qP!U$6V7Dox79i9E+}!*k5BS(|=#J}B z)0yMk251lv)kg+~?RS>W!^Xb!8~D}!!t&1mQv+?D$biOvEEPsctAMZ*C2*LNZ^y6u!ZiQk9X)#bTH9``fUsCf z0;4L4-vEfxg|q^Qqyla)D1jEZeFMb6Q(X_42dNcBRWQ|W9Tlx8C@H?zbAcA0yka;M z+9+HTXdEx+cNcY?rN=5@a6yLkg<#}*(E$OY4*K5!0z~#^^);)|HYXonx?g)%ES49D y;Eqwq%DwLOEtX2d3Sgnm!z#5efF@g85OfE^x5F;NkPn~$0000X00001b5ch_0Itp) z=>Px%xk*GpR9HvNmrsaIQ5?sA<4)aTqG%8iuij=%ukNfY#zGWLl2R6$*pQTkg%Gls zBuYutEM_)?l~R&$vz;aLYCLLEGaAv8o}~ATTORtJ>3ci(dSlK#_n7h9+PTQYZC_*1i>$KQ!ba=9CVlHB6o*?+uhuxI(_QBbq;9_NY#G4`xbw3`-Y|QIn;Ea zY-T_XO4W2f9({PNn&)30l&gIY#D%h%0ChY6HrD{UXI+n(KXQ>x}{DgFAI( zS^-@f-WY>LKbr#E^Mof8pg!L~L6vY0K)~?`6=5|BcH2T40YW{%m8-ARfQ1WJWb)Ek z3D#~=ZGff$VJ#Hod|WWV(#TB((F%36NhkwR%QY z4BwHcr+e1!v5NRhyu`}mLOo+ZJcyuB#m3BpjNToT9bMaI0aI{XUU1Jg9GNWU!%Q>V zX)s&|Tyb!#JbzJ?j^Z-$Z{5xXX=JhP9k)8~eUz{iU?{+$4)hk{^$+jZDw!EjSCi*h zBQYPlk9H`qd!v&wb$MJV2RNkPR!M8Xw5prWl@uI`fH*(%c%PiU;i<&isOSWcA!>9M zWMHK92V|bG{4>CdhsR@)0ge5bl|@OXfUpxqILyh)P(2Z*di9H}@je^d?Gz9evltj% zN!$Y<$`sNGAd(8Wxu6J5xJ3iRz~6fU#e>vRQ5{V8+eAet3NpnXn=7TgZ@Yp+p^d^d zLgQH5wLfmp7Z|62=>-|qw}RnyleN()AYk-C{~JJnaBtRsX0_Vp_~*;?-<}f%`2!-o yW3;kzu4faArPgo)*sAlaN-YYY&DNF%{S9#w!!8V=!~OsO002ovPDHLkV1fV%m||T3 literal 0 HcmV?d00001 From d9d147280be63bd0b14c20878f9720abab6417cb Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Fri, 30 Aug 2024 23:10:22 -0400 Subject: [PATCH 026/116] [Sprite] Fix Manaphy egg outline (#3863) * [Sprite] Add Manaphy egg outline * [Sprite] Fix Manaphy egg outline --- public/images/egg/egg.json | 8 ++++---- public/images/egg/egg.png | Bin 1241 -> 1303 bytes 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/images/egg/egg.json b/public/images/egg/egg.json index 420d9e57e7b..4e5f7a7de21 100644 --- a/public/images/egg/egg.json +++ b/public/images/egg/egg.json @@ -5,7 +5,7 @@ "format": "RGBA8888", "size": { "w": 138, - "h": 30 + "h": 31 }, "scale": 1, "frames": [ @@ -99,19 +99,19 @@ "trimmed": false, "sourceSize": { "w": 26, - "h": 30 + "h": 31 }, "spriteSourceSize": { "x": 0, "y": 0, "w": 26, - "h": 30 + "h": 31 }, "frame": { "x": 112, "y": 0, "w": 26, - "h": 30 + "h": 31 } } ] diff --git a/public/images/egg/egg.png b/public/images/egg/egg.png index 5269eff168052d9ed249879f8170ef82c76a63a3..2943e83b5eae3dc56aeb4b63e299b58426b452c9 100644 GIT binary patch delta 1134 zcmcb~Ih|{QxVStAGXnzy|EHzPfD~hKkh>GZx^prwCn_$jH!2D83ugFFDwq(J4m6Va zqo<2wNJQ)2>o<#58}P6_NK=$%$x?_FzVxR0)}H^TWj&|$?s@X<&*hglz8d`0YD|uc zbJ;dwy82Crd281yoWFK$Lj8+FlZ2yh=iOH*Jd^gBu`@YrwZDhV=D7XNN;94sX=-?O zT%2Ix=KM&4w=>y9rH%1K3$uj3QSIiLRnvU`B~GrM7Wyl5a@DlbZ+Vj~r=>QsaP`S} z-+jM*O5Ofx*;gy>1RZ!sM3q+(_uC^lh>m<)G4w?`Cr zUn{H1TGr!-m?m9oO3pqwOQmzmmQqE|c@8 z`>lD#@6^ftAaW`nh@9Ko^x-d)tLB>KIGd5`i^YHn8 zO)Xtt&aLUL<$d*Sob##1Q}v6i<`#S042(Q=@PSa!w`{Fb{(&lfTt6;P(%gG*@+O9* zw`+sM7L-`|pJJMFP$5oiM{r#|_oWZ(AAJwMuX{UAKkMM8oLzTUu%6!Zs$`Lv&gm+H zj;IYfvx@eMcm7S)DD{tW*_@@wMXBp-=q|37?%0zwCJWufT9d(b1QQ zhyOlIGI-i^`EJ+m!$%WNu`d5@8Z38KdwHcq*X{Yzye4lWcK_XZ$>B2J)Z6ooc};Sc z-}x7lu^{vJB+XrFyY!|N?fJTA`Ojs!4)vBXyYF4DxoWoH%{kfknReOI0pF%Kem9BV zvUcg7TO3{=-V_|4AY@~G$8ZVDdA@QU&4Zf{%O;;nDYG(FRK4*v|IVh&Sk~SDrbbT- z*Shib{GCl9QxC4Ie>g4GW#-w2BCDTM3T~TEvD)-j+Dr82H(poQZMDvtnej6-y)WO> z-n0IPY<`Dw=6;3tN+m!C-9=AYUB=al`&)8?(arcJq3`*VfL(xP~~ zDN8iIKV9rIWy+>0(|w;*Pf%9$ky&I|*m3NLqLgs!gV2*l)Hv5M_xNpakeGX8)}tfW ny!@UlI^wWM{NHt!{|D_k8ds!d-cR)h7AOp!u6{1-oD!MBLUk5LdFqaZv+L3oUUa2SAu6u|T(i!YN!&vHn9Op=~u7yUDddX|0sZ4x_{ZHfdL z961&-9(R=SSlDaDeBM#!^TJ-srqhlxoo4o0KAUxv*(|ptP>jF?CR<0+S#T^INoT=v z;Yd0Qjx$HnS#X@&H34TPTpNzfe z{c=d=Ui5z1MN=<&zwG0g7uqjSl+-xnCpBdeVSmMEjqo3a39IDAuo7N86U zZ^{Cc$>dF0!tnV_rH1~b&!^fg$I*zjU|9~sA#1_1>;?nYf@RrHCagu4MN%G*G%$ZO zMT~5V)ht0pF&3*?1r^0utY&3Y6l1ZPmCH>Fc|2ZK^>|d(3n&n|aUF_XpFYK|PoHAf zr%$o#1071`Ih$71-zVg+s^m0(Oih2N7(}__v^`RPs2D`K;j}qWf2bHlx!|XTBvG{x=DT@Dnj6>fiSa-e8U;r8bu2Z~l_Zhx+FplGL@D5@r^E{4+H zN4=-{u53VQZo}Twd{Z`{)R#f;X}%~MP)^rL?`gg&TSxgcu_)fNLmfkZiudeL$B^PZ zJJd0xc+U=Xj3{AwK36`)JN56>vV|zTQ~yRSONz`p^)J-2D9gQ5|4J>3C8aEZaz6Jd z{;{tqf;sjzrC^SIP05&JUsG~r>rEUEbX$$ zCx|GEw)OYQdc8nO(lq{mUfFCCq(pV?@0H~;LP~r(`Fmxxijk6*+M>=C(;u`zY)-qz zsNbLjVsn}eM*Rjw5SvpkG3qxchS;3b3Zs6SOUk)|yaMaOf)w~_OvB-+ABw1tys3n#(n*}d^Q zFCW6D2>0cquqlQ6@{!q;%zgRDZAzZoYoYxf6!zZagy10x!$TB?hbRmWfdrvR;J@Dr q3is|?P`I^>!mZ^S6lN*tL;eE@nWXV*({OA60000 Date: Fri, 30 Aug 2024 20:10:38 -0700 Subject: [PATCH 027/116] Prevent daily runs from breaking due to very (un)lucky RNG (#3841) --- src/data/daily-run.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/daily-run.ts b/src/data/daily-run.ts index 0a02defe052..370b13ea3a3 100644 --- a/src/data/daily-run.ts +++ b/src/data/daily-run.ts @@ -40,7 +40,7 @@ export function getDailyRunStarters(scene: BattleScene, seed: string): Starter[] } const starterCosts: integer[] = []; - starterCosts.push(Math.round(3.5 + Math.abs(Utils.randSeedGauss(1)))); + starterCosts.push(Math.min(Math.round(3.5 + Math.abs(Utils.randSeedGauss(1))), 8)); starterCosts.push(Utils.randSeedInt(9 - starterCosts[0], 1)); starterCosts.push(10 - (starterCosts[0] + starterCosts[1])); From 642b18e747974509d040150a5a201eb42e63ecbe Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Fri, 30 Aug 2024 20:21:56 -0700 Subject: [PATCH 028/116] [Bug] Fix Pokemon not gaining HP when evolving (#3569) * Don't recalculate stats that already exist * add test to cover hp update after evo (#4) - add evolution phase to phase interceptor - add mock for video game object - add returning video mock on add.video() * add test to make sure pkm are not healed on evolve * Stop on `EndEvolutionPhase` to prevent game state leak in tests * Fix imports * Remove `.js` from import Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com> * Add docs to mock class --------- Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com> --- src/field/pokemon.ts | 4 +- src/test/evolution.test.ts | 59 +++++++++++++++++++++ src/test/utils/mocks/mockTextureManager.ts | 3 ++ src/test/utils/mocks/mockVideoGameObject.ts | 13 +++++ src/test/utils/phaseInterceptor.ts | 4 ++ 5 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/test/utils/mocks/mockVideoGameObject.ts diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 6df486aab39..9fcbdd8dc6c 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -251,7 +251,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.shiny = false; } - this.calculateStats(); + if (!dataSource) { + this.calculateStats(); + } } diff --git a/src/test/evolution.test.ts b/src/test/evolution.test.ts index 41088c17bcb..f9123cf6d9a 100644 --- a/src/test/evolution.test.ts +++ b/src/test/evolution.test.ts @@ -1,9 +1,11 @@ import { pokemonEvolutions, SpeciesFormEvolution, SpeciesWildEvolutionDelay } from "#app/data/pokemon-evolutions"; import { Abilities } from "#app/enums/abilities"; +import { Moves } from "#app/enums/moves"; import { Species } from "#app/enums/species"; import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { SPLASH_ONLY } from "./utils/testUtils"; describe("Evolution", () => { let phaserGame: Phaser.Game; @@ -89,4 +91,61 @@ describe("Evolution", () => { expect(speciesFormEvo.wildDelay).toBe(SpeciesWildEvolutionDelay.NONE); }); + + it("should increase both HP and max HP when evolving", async () => { + game.override.moveset([Moves.SURF]) + .enemySpecies(Species.GOLEM) + .enemyMoveset(SPLASH_ONLY) + .startingWave(21) + .startingLevel(16) + .enemyLevel(50); + + await game.startBattle([Species.TOTODILE]); + + const totodile = game.scene.getPlayerPokemon()!; + const hpBefore = totodile.hp; + + expect(totodile.hp).toBe(totodile.getMaxHp()); + + const golem = game.scene.getEnemyPokemon()!; + golem.hp = 1; + + expect(golem.hp).toBe(1); + + game.move.select(Moves.SURF); + await game.phaseInterceptor.to("EndEvolutionPhase"); + + expect(totodile.hp).toBe(totodile.getMaxHp()); + expect(totodile.hp).toBeGreaterThan(hpBefore); + }, TIMEOUT); + + it("should not fully heal HP when evolving", async () => { + game.override.moveset([Moves.SURF]) + .enemySpecies(Species.GOLEM) + .enemyMoveset(SPLASH_ONLY) + .startingWave(21) + .startingLevel(13) + .enemyLevel(30); + + await game.startBattle([Species.CYNDAQUIL]); + + const cyndaquil = game.scene.getPlayerPokemon()!; + cyndaquil.hp = Math.floor(cyndaquil.getMaxHp() / 2); + const hpBefore = cyndaquil.hp; + const maxHpBefore = cyndaquil.getMaxHp(); + + expect(cyndaquil.hp).toBe(Math.floor(cyndaquil.getMaxHp() / 2)); + + const golem = game.scene.getEnemyPokemon()!; + golem.hp = 1; + + expect(golem.hp).toBe(1); + + game.move.select(Moves.SURF); + await game.phaseInterceptor.to("EndEvolutionPhase"); + + expect(cyndaquil.getMaxHp()).toBeGreaterThan(maxHpBefore); + expect(cyndaquil.hp).toBeGreaterThan(hpBefore); + expect(cyndaquil.hp).toBeLessThan(cyndaquil.getMaxHp()); + }, TIMEOUT); }); diff --git a/src/test/utils/mocks/mockTextureManager.ts b/src/test/utils/mocks/mockTextureManager.ts index b26d03441fe..ca8065bef97 100644 --- a/src/test/utils/mocks/mockTextureManager.ts +++ b/src/test/utils/mocks/mockTextureManager.ts @@ -7,6 +7,8 @@ import MockSprite from "#test/utils/mocks/mocksContainer/mockSprite"; import MockText from "#test/utils/mocks/mocksContainer/mockText"; import MockTexture from "#test/utils/mocks/mocksContainer/mockTexture"; import { MockGameObject } from "./mockGameObject"; +import { vi } from "vitest"; +import { MockVideoGameObject } from "./mockVideoGameObject"; /** * Stub class for Phaser.Textures.TextureManager @@ -34,6 +36,7 @@ export default class MockTextureManager { text: this.text.bind(this), bitmapText: this.text.bind(this), displayList: this.displayList, + video: vi.fn(() => new MockVideoGameObject()), }; } diff --git a/src/test/utils/mocks/mockVideoGameObject.ts b/src/test/utils/mocks/mockVideoGameObject.ts new file mode 100644 index 00000000000..96f03542bbc --- /dev/null +++ b/src/test/utils/mocks/mockVideoGameObject.ts @@ -0,0 +1,13 @@ +import { vi } from "vitest"; +import { MockGameObject } from "./mockGameObject"; + +/** Mocks video-related stuff */ +export class MockVideoGameObject implements MockGameObject { + constructor() {} + + public play = vi.fn(); + public stop = vi.fn(() => this); + public setOrigin = vi.fn(); + public setScale = vi.fn(); + public setVisible = vi.fn(); +} diff --git a/src/test/utils/phaseInterceptor.ts b/src/test/utils/phaseInterceptor.ts index ca3d55137fa..de65405abff 100644 --- a/src/test/utils/phaseInterceptor.ts +++ b/src/test/utils/phaseInterceptor.ts @@ -6,7 +6,9 @@ import { CommandPhase } from "#app/phases/command-phase"; import { DamagePhase } from "#app/phases/damage-phase"; import { EggLapsePhase } from "#app/phases/egg-lapse-phase"; import { EncounterPhase } from "#app/phases/encounter-phase"; +import { EndEvolutionPhase } from "#app/phases/end-evolution-phase"; import { EnemyCommandPhase } from "#app/phases/enemy-command-phase"; +import { EvolutionPhase } from "#app/phases/evolution-phase"; import { FaintPhase } from "#app/phases/faint-phase"; import { LoginPhase } from "#app/phases/login-phase"; import { MessagePhase } from "#app/phases/message-phase"; @@ -92,6 +94,8 @@ export default class PhaseInterceptor { [SwitchPhase, this.startPhase], [SwitchSummonPhase, this.startPhase], [PartyHealPhase, this.startPhase], + [EvolutionPhase, this.startPhase], + [EndEvolutionPhase, this.startPhase], ]; private endBySetMode = [ From f9de149f552c79a81d7f49f006fc60a71abf40fa Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Fri, 30 Aug 2024 20:40:40 -0700 Subject: [PATCH 029/116] double voucher prevention (#3931) Co-authored-by: frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/phases/title-phase.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/phases/title-phase.ts b/src/phases/title-phase.ts index c74dca97f5c..4c89b725c2d 100644 --- a/src/phases/title-phase.ts +++ b/src/phases/title-phase.ts @@ -293,7 +293,7 @@ export class TitlePhase extends Phase { } for (const achv of Object.keys(this.scene.gameData.achvUnlocks)) { - if (vouchers.hasOwnProperty(achv)) { + if (vouchers.hasOwnProperty(achv) && achv !== "CLASSIC_VICTORY") { this.scene.validateVoucher(vouchers[achv]); } } From 3a50925de00d7ad0a2ca1441649409c934bc5e58 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Sat, 31 Aug 2024 05:14:25 +0100 Subject: [PATCH 030/116] refactor: Update excludedMenus condition to look for currentPhase instead --- src/ui/menu-ui-handler.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index e8f2038aa2c..6349d219827 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -12,6 +12,7 @@ import { Button } from "#enums/buttons"; import { GameDataType } from "#enums/game-data-type"; import BgmBar from "#app/ui/bgm-bar"; import AwaitableUiHandler from "./awaitable-ui-handler"; +import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; enum MenuOptions { GAME_SETTINGS, @@ -106,7 +107,7 @@ export default class MenuUiHandler extends MessageUiHandler { render() { const ui = this.getUi(); this.excludedMenus = () => [ - { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain().at(-1)!), options: [MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, + { condition: this.scene.getCurrentPhase() instanceof SelectModifierPhase, options: [MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, { condition: bypassLogin, options: [MenuOptions.LOG_OUT] } ]; From ce0ba3fbf98ab4baaa2e5c9e8214b4dcc33269e3 Mon Sep 17 00:00:00 2001 From: Opaque02 <66582645+Opaque02@users.noreply.github.com> Date: Sat, 31 Aug 2024 14:53:15 +1000 Subject: [PATCH 031/116] [Bug] Fixed issue where menu can't be opened up after a trainer battle (#3932) --- src/ui/modifier-select-ui-handler.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index 4a567c926d7..6e9a33df5d8 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -122,6 +122,9 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { } show(args: any[]): boolean { + + this.scene.disableMenu = false; + if (this.active) { if (args.length >= 3) { this.awaitingActionInput = true; From f8e119f37e0a0fd13d9da68e969088e470a3d4e6 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Fri, 30 Aug 2024 23:12:47 -0700 Subject: [PATCH 032/116] [Beta][Bug] Preventing Run History encryption (#3933) * Blah * Thought about it more * Removed excess comment * Purposely tested everything by manually setting bypassLogin to false --------- Co-authored-by: frutescens --- src/system/game-data.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/system/game-data.ts b/src/system/game-data.ts index f8d13286ca4..a4c276fa770 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -464,7 +464,7 @@ export class GameData { const lsItemKey = `runHistoryData_${loggedInUser?.username}`; const lsItem = localStorage.getItem(lsItemKey); if (!lsItem) { - localStorage.setItem(lsItemKey, encrypt("", true)); + localStorage.setItem(lsItemKey, ""); } this.trainerId = systemData.trainerId; @@ -594,7 +594,7 @@ export class GameData { if (lsItem) { const cachedResponse = lsItem; if (cachedResponse) { - const runHistory = JSON.parse(decrypt(cachedResponse, true)); + const runHistory = JSON.parse(decrypt(cachedResponse, bypassLogin)); return runHistory; } return {}; @@ -616,7 +616,7 @@ export class GameData { if (lsItem) { const cachedResponse = lsItem; if (cachedResponse) { - const runHistory : RunHistoryData = JSON.parse(decrypt(cachedResponse, true)); + const runHistory : RunHistoryData = JSON.parse(decrypt(cachedResponse, bypassLogin)); return runHistory; } return {}; @@ -652,7 +652,7 @@ export class GameData { isVictory: isVictory, isFavorite: false, }; - localStorage.setItem(`runHistoryData_${loggedInUser?.username}`, encrypt(JSON.stringify(runHistoryData), true)); + localStorage.setItem(`runHistoryData_${loggedInUser?.username}`, encrypt(JSON.stringify(runHistoryData), bypassLogin)); /** * Networking Code DO NOT DELETE * @@ -1368,8 +1368,7 @@ export class GameData { } else { const data = localStorage.getItem(dataKey); if (data) { - handleData(decrypt(data, (dataType !== GameDataType.RUN_HISTORY) ? bypassLogin : true)); - // This conditional is necessary because at the moment, run history is stored locally only so it has to be decoded from Base64 as if it was local + handleData(decrypt(data, bypassLogin)); } resolve(!!data); } @@ -1418,9 +1417,6 @@ export class GameData { const entryKeys = Object.keys(data[key]); valid = ["isFavorite", "isVictory", "entry"].every(v => entryKeys.includes(v)) && entryKeys.length === 3; }); - if (valid) { - localStorage.setItem(`runHistoryData_${loggedInUser?.username}`, dataStr); - } break; case GameDataType.SETTINGS: case GameDataType.TUTORIALS: From 15fea2e171511e8d917f9ce2da8e6ffb86568b30 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sat, 31 Aug 2024 11:50:09 -0700 Subject: [PATCH 033/116] Gamepad for Run Info (#3940) Co-authored-by: frutescens --- index.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.css b/index.css index 8034c1a4b38..abf4f9f708c 100644 --- a/index.css +++ b/index.css @@ -148,10 +148,10 @@ input:-internal-autofill-selected { /* Show cycle buttons only on STARTER_SELECT and on touch configuration panel */ #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadOpenFilters, -#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleForm, -#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleShiny, +#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='RUN_INFO']) #apadCycleForm, +#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='RUN_INFO']) #apadCycleShiny, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleNature, -#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleAbility, +#touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT'], [data-ui-mode='RUN_INFO']) #apadCycleAbility, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleGender, #touchControls:not(.config-mode):not([data-ui-mode='STARTER_SELECT']) #apadCycleVariant { display: none; From 85a8abc0e8bedaebd4b087a0136fbeda4e329135 Mon Sep 17 00:00:00 2001 From: damocleas Date: Sat, 31 Aug 2024 19:39:21 -0400 Subject: [PATCH 034/116] [Balance] Final Adjustments to biomes + Gmax Snorlax Ability + Passive changed (#3950) * Biome Adjustments 1 * MOUNTAIN OUT FROM ANCIENT RUINS * snorlax gmax adjustment * Localizers please calm down - Snorlax Ability + Passive change * One more time let's give it a go biomes.ts * fixed ] * Update biomes.ts * fixed spelling mistake --- src/data/biomes.ts | 18 +++++++++--------- src/data/pokemon-species.ts | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 3879053b066..d9ea22f50f2 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -35,18 +35,18 @@ interface BiomeDepths { export const biomeLinks: BiomeLinks = { [Biome.TOWN]: Biome.PLAINS, [Biome.PLAINS]: [ Biome.GRASS, Biome.METROPOLIS, Biome.LAKE ], - [Biome.GRASS]: [ Biome.TALL_GRASS, [ Biome.CONSTRUCTION_SITE, 2 ] ], + [Biome.GRASS]: Biome.TALL_GRASS, [Biome.TALL_GRASS]: [ Biome.FOREST, Biome.CAVE ], - [Biome.SLUM]: Biome.CONSTRUCTION_SITE, + [Biome.SLUM]: [ Biome.CONSTRUCTION_SITE, [ Biome.SWAMP, 2 ] ], [Biome.FOREST]: [ Biome.JUNGLE, Biome.MEADOW ], [Biome.SEA]: [ Biome.SEABED, Biome.ICE_CAVE ], [Biome.SWAMP]: [ Biome.GRAVEYARD, Biome.TALL_GRASS ], - [Biome.BEACH]: [ Biome.SEA, [ Biome.ISLAND, 3 ] ], + [Biome.BEACH]: [ Biome.SEA, [ Biome.ISLAND, 2 ] ], [Biome.LAKE]: [ Biome.BEACH, Biome.SWAMP, Biome.CONSTRUCTION_SITE ], [Biome.SEABED]: [ Biome.CAVE, [ Biome.VOLCANO, 3 ] ], - [Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.DOJO, 2] [ Biome.WASTELAND, 2 ] ], + [Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.WASTELAND, 2 ], [ Biome.SPACE, 3 ] ], [Biome.BADLANDS]: [ Biome.DESERT, Biome.MOUNTAIN ], - [Biome.CAVE]: [ Biome.BADLANDS, Biome.LAKE ], + [Biome.CAVE]: [ Biome.BADLANDS, Biome.LAKE [ Biome.LABORATORY, 2 ] ], [Biome.DESERT]: [ Biome.RUINS, [ Biome.CONSTRUCTION_SITE, 2 ] ], [Biome.ICE_CAVE]: Biome.SNOWY_FOREST, [Biome.MEADOW]: [ Biome.PLAINS, Biome.FAIRY_CAVE ], @@ -54,17 +54,17 @@ export const biomeLinks: BiomeLinks = { [Biome.VOLCANO]: [ Biome.BEACH, [ Biome.ICE_CAVE, 3 ] ], [Biome.GRAVEYARD]: Biome.ABYSS, [Biome.DOJO]: [ Biome.PLAINS, [ Biome.JUNGLE, 2], [ Biome.TEMPLE, 2 ] ], - [Biome.FACTORY]: [ Biome.TALL_GRASS, [ Biome.LABORATORY, 3 ] ], - [Biome.RUINS]: [ Biome.FOREST ], + [Biome.FACTORY]: [ Biome.PLAINS, [ Biome.LABORATORY, 2 ] ], + [Biome.RUINS]: [ Biome.MOUNTAIN, [ Biome.FOREST, 2 ] ], [Biome.WASTELAND]: Biome.BADLANDS, - [Biome.ABYSS]: [ Biome.CAVE, [ Biome.SPACE, 3 ], [ Biome.WASTELAND, 3 ] ], + [Biome.ABYSS]: [ Biome.CAVE, [ Biome.SPACE, 2 ], [ Biome.WASTELAND, 2 ] ], [Biome.SPACE]: Biome.RUINS, [Biome.CONSTRUCTION_SITE]: [ Biome.POWER_PLANT, [ Biome.DOJO, 2 ] ], [Biome.JUNGLE]: [ Biome.TEMPLE ], [Biome.FAIRY_CAVE]: [ Biome.ICE_CAVE, [ Biome.SPACE, 2 ] ], [Biome.TEMPLE]: [ Biome.DESERT, [ Biome.SWAMP, 2 ], [ Biome.RUINS, 2 ] ], [Biome.METROPOLIS]: Biome.SLUM, - [Biome.SNOWY_FOREST]: [ Biome.FOREST, Biome.MOUNTAIN, [ Biome.LAKE, 2 ] ], + [Biome.SNOWY_FOREST]: [ Biome.FOREST, [ Biome.MOUNTAIN, 2 ], [ Biome.LAKE, 2 ] ], [Biome.ISLAND]: Biome.SEA, [Biome.LABORATORY]: Biome.CONSTRUCTION_SITE }; diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index db601935bfc..17f2de794ae 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -1132,7 +1132,7 @@ export function initSpecies() { ), new PokemonSpecies(Species.SNORLAX, 1, false, false, false, "Sleeping Pokémon", Type.NORMAL, null, 2.1, 460, Abilities.IMMUNITY, Abilities.THICK_FAT, Abilities.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, GrowthRate.SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 2.1, 460, Abilities.IMMUNITY, Abilities.THICK_FAT, Abilities.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 35, 460, Abilities.THICK_FAT, Abilities.THICK_FAT, Abilities.THICK_FAT, 640, 200, 135, 85, 80, 125, 15, 25, 50, 189), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 35, 460, Abilities.HARVEST, Abilities.HARVEST, Abilities.HARVEST, 640, 200, 135, 80, 80, 125, 20, 25, 50, 189), ), new PokemonSpecies(Species.ARTICUNO, 1, true, false, false, "Freeze Pokémon", Type.ICE, Type.FLYING, 1.7, 55.4, Abilities.PRESSURE, Abilities.NONE, Abilities.SNOW_CLOAK, 580, 90, 85, 100, 95, 125, 85, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.ZAPDOS, 1, true, false, false, "Electric Pokémon", Type.ELECTRIC, Type.FLYING, 1.6, 52.6, Abilities.PRESSURE, Abilities.NONE, Abilities.STATIC, 580, 90, 90, 85, 125, 90, 100, 3, 35, 290, GrowthRate.SLOW, null, false), @@ -3573,7 +3573,7 @@ export const starterPassiveAbilities = { [Species.CHATOT]: Abilities.PUNK_ROCK, [Species.SPIRITOMB]: Abilities.VESSEL_OF_RUIN, [Species.GIBLE]: Abilities.SAND_STREAM, - [Species.MUNCHLAX]: Abilities.HARVEST, + [Species.MUNCHLAX]: Abilities.RIPEN, [Species.RIOLU]: Abilities.MINDS_EYE, [Species.HIPPOPOTAS]: Abilities.UNAWARE, [Species.SKORUPI]: Abilities.SUPER_LUCK, From de66b450a540554f48e8891834d2ded7b7e3f558 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 1 Sep 2024 12:18:40 -0700 Subject: [PATCH 035/116] [Beta][Misc] Banner (#3926) * Initial work - does not work. * Revert * image replacement * better scaling * Removing most of the bangs * no more bangs * Update src/timed-event-manager.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Implemented Torranx's suggestion * Ready for Translations * Delete Picture * Localized banners * Biomes fix * Corrections * Update src/timed-event-manager.ts Co-authored-by: Frederico Santos --------- Co-authored-by: frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: Frederico Santos --- public/images/events/september-update-de.png | Bin 0 -> 33189 bytes public/images/events/september-update-en.png | Bin 0 -> 35659 bytes public/images/events/september-update-es.png | Bin 0 -> 33188 bytes public/images/events/september-update-fr.png | Bin 0 -> 33232 bytes public/images/events/september-update-it.png | Bin 0 -> 36302 bytes public/images/events/september-update-ja.png | Bin 0 -> 41143 bytes public/images/events/september-update-ko.png | Bin 0 -> 37600 bytes .../images/events/september-update-pt_BR.png | Bin 0 -> 34325 bytes .../images/events/september-update-zh_CN.png | Bin 0 -> 38689 bytes src/data/biomes.ts | 2 +- src/loading-scene.ts | 9 +- src/timed-event-manager.ts | 118 +++++++++--------- 12 files changed, 68 insertions(+), 61 deletions(-) create mode 100644 public/images/events/september-update-de.png create mode 100644 public/images/events/september-update-en.png create mode 100644 public/images/events/september-update-es.png create mode 100644 public/images/events/september-update-fr.png create mode 100644 public/images/events/september-update-it.png create mode 100644 public/images/events/september-update-ja.png create mode 100644 public/images/events/september-update-ko.png create mode 100644 public/images/events/september-update-pt_BR.png create mode 100644 public/images/events/september-update-zh_CN.png diff --git a/public/images/events/september-update-de.png b/public/images/events/september-update-de.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecb46e408caa9cde921b970d712e48116af7cac GIT binary patch literal 33189 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

J3<(K=;c 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 literal 0 HcmV?d00001 diff --git a/public/images/events/september-update-fr.png b/public/images/events/september-update-fr.png new file mode 100644 index 0000000000000000000000000000000000000000..4be33c85e9acc06813d46af37aa8e37cd684627d GIT binary patch literal 33232 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�(91b4=4Fuuex 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 xHofMh_GhMYBT(zoKrsLY; zYJb8mGoEhL-W@)bwcc3c_4axhym4{8a%mUi{n`C|Z|?a)tGl2*$bRZOc+u-uPZZ&3m89!-% z-!^69htBT#<)ekV`0e{-Va`EjHL`uExuP49mz*}ta zx03NsulxqnkeG5BAl*7yFV|sd%?dxl{l<+Yy{^ZQxb+RDa93ic(yvKheNvB_(uFsC zUcrtCiuc(4Up*xuG?Eoxfa7J)>a=Z|>$g6kyCp^1re`zZHyGi$rzbo=KP^l$OqB8{ zl3AGs$=*)(@F=+d3Gwj14Ju~cSC9dJkfp!e{d9H3-afdLb>8HfEit4Q;RN~^&i)60 zB2!$1r1eHh&~6;E%bY#(-aWo!b+T7Mv35i9#P@Bn6|gm*!H)?k5ej4^Jq0ZYn(lr( z6+AJn#kjY@xmK65kQJXzU1HwFZGX9Yi|DGr;|^-``iQZRBdY-GR@oZXo8cwhh}M~# zpR&4kOo#;3TMt-B~<*KrI_RPidWT%fS0a6-6b3w>a#tCgX2K1S67Z z$Sz`Xp+vYApZaZ*j>#))2w(9#e%I2;4chI##Hb|7wCN4Z_NptAEXb?cWp8v}=5WY@ z9~XG(KH&JnlJd16XmY#1<1OG`;H?isU$-S&*UfWf?(u@4#C6^1Or}uX*Phmt-(L5V z^0Aj{=xJ0a75U$m5gLfDZR}ZB)YlH(rTSmCo~%2MB&omcEJR8ECT%EhG$0wY+$-c& zooY6@N>V3Z`5rn*zEfH*IdT0||5kY}c-TYzWgGFtq zgQiRLh@|JnoDjkrDyELkxq>+Ha1;YD64_nvB^pSfZo0hfx zWBFbFa)CQd3P#JO?P8Lb7gHnhB*jfpRsVFW&M<0cYu3ig{m_p6aMG6fZ2|Jx^!nbN zUiGSlfReypgUv3f#E+tiX@}TP_IV$k|JI5!X%4JU>5EyIq@&0Vcp`rj2rKPTmKs?E zP>-^S3(0Bs(-mSO&2&lF=|2I$)dcw5OlA7HP`PaQNWazP z(ijRpIAr^b81J7 z>y!Gxryb7F&{G%XKgho}&kZyQiFJwlIbxzt!71OK=$Qw0`~J=Y)I>oyOul6pL5~JF zf29M2CTS}CJM3SXeEu_6^EY?b$k@}&S8J2V$bQU_?30$UCbNd0gYW8<)N&p2z@y@V z#2D(*=vSYy@UG@(zrZJ{S%@P!X|G`>yR^CI1>-#4@%C0;hEM@!)b_r+&jz7}CEP#1 zgzNE>=1*l*Axe5#^|kD$wD8kU`qxb))&}}>zr{Jn3%*we?@(1dn5?cQ&+yWCrMvoj zTCo&?s=caR{%%6D=G`rwzH8y=Yx(MF;1?^h%4XNP2Qv}$7k7EB$Gt6*4y3b+=g}jQ zasc41svx?JuE$rAs|byM_taASN(2&_^~|?&_uS z_)%+LET+*guvyE8dAqIZi&!RhPSy%WZt=mpiK^8ilFXh#2zl}=3k6C{kz{94_UKD9B$o@@C% zxbFLiv?v1U`)W7CAUK+}UqwW{@Xo(Nq-5k4{vXRclYyyB7G$iU(Q;G^T8fLL1S&&> z@ytKe5I&zep+Jv0nU8t1^_t2@;zv4kjCFuVg(Be5t}?Nsrz}L!oL5hKPIq={rz~ok zxfY+;6;hLN2Cr_=y(`<4R_f|p*4KFYG;m2qP*^x7Iz}DS+c~2fvSWCV6ZvZDt77;? zhS3EnX22{q@;X@Bk zSr#3r?Y3mE`jXor`OWc7ghQYz_e+OpKqJzSN`DNY-c+yJQL$acSWO%^+Ct#)HhJ8u zX>5Lg?jp8atV_{U#ojjXmzcuHm9ktyhk&WY>uG%hLjJ*r(u}Muj%Bpk7J5dWTN_G#5vam5RP2ZJpxb422sqvGz{(%wAhxr(JT2jVd z;6vnMG6|!wz|0tNj3odX>H?0l{YOd~?Nw1qukti_FUO>5tG_{z2s&pEVTDyu5Ug7P zAys}hkj*K!EVCA(GJ!{eWChW=xw$VEmp6XqoK&KN?lPYSoc=Q5V}c4eZX0Q7B`mK~ z>N*d(1A&S3+}D>QVZ*vb1nV8ejQXN}kN!#xuk>v(c6C!?>3xXjXNzqneGZxf@tl?C zOPhRLmV*OSXx}o43krU=kUbKqiXE{#BzaJ3zos?YCnQLcW-e|tP-YHS&sh08g9P^r z0vl@0L`4+-&dv+$60F_DzQ2b(*e~4j!qh33sFOFVRux1A$;EP!$>?2(vC%4T#ALz0 zfnwxm^|v|_r8vktBa@j2p3h+*PGOzlUw|>3ZoKl6S}Y~fh}aG!gZqwfjU`peKDjf* zF;h5sq~Ir?;JuR0XM%)vH1p#gJfh5WIy{V{7Df8{WXtr_*Mhxm|E~YWM`e!)A=Fe< z=jP9{a!hk1l{pZI8-s8XXer%VJY&w2FCZ{imUXjqs}JW?;OGxVS*YMQI;4SV#yT$< z@hJe~_uuu|W!0KZn-7nELS4xhi&u|35Jrr7h&BtrFaF|y6n+?W~B&FL1_NMD@@TXG*5Z*{B|c{G2JNCo^&HpvqphUDxr^0yyepA9mUn$kvHjaP#gu*f5 z!ssFR9vg=;#O9{rl|H`I7*!=}aB#}ce5PE}!2w~TU3>tz+mV4@--Hxjgwbt*=AkA0 zz5dLUWX-fpO~rJ>WMyt|11ISmAv!HTz5K<`x?KxOZclSHcQyC6`~aI^0wnP&-=Q7) zIa45{e(3tVBnULr;J&@QuNRObg*br-pO6XLZ%B#F+Zm$ncdjo|BJ}X1$RWr#|Jp953F?t@=6&oxx0+|NCm#0;M08CKh&T{0*EOx zFmJ}3=8D&n680Jw9**|;ygG1%%TGcOB$}i%N)OJa@hul9zpX);SV7OgZ=?9TR?SVV zwks=&v#b4&?_$|LA+Jj#iU;#1AwaMlFnM_tl(aX^jM#$s`FQR2SkZ;m!KcNGL12Gh z4g^4r(Th;GHyb`!FXH2+u=cT-D>dx(k0Cuu85m+$!!iD|ZIUcWN_GG<*~(ORr+P{} z{D7d+cqEio#aeOv?#45?B1<*!nE7igmiJ3vOp3?yjxbZUw5Ui!ZnjC`G;vk(p?|^%e(dlDEo(`1wmY25$xxZsqfxE zobcFfG~^tLa7~gxa{1^7vv9#QBf4GPN%1hV_m}2t#(gcS6v&0>(bW#Kly1#_`_&Ko zc6v(;BCl=Nhtx9_b(SbU+Xawz3noNCQbV-CI4BIN^brD4Ns}Pwy@>L={SE}t*18Hb(yxEKI&r$ zs-1pkJ6%dm#gz942CEP7e7SzyedOI`$WvH`cv`u;yz*si{4rrvV>U=#`47iW#A2m^ zLPqz@_u;f{!_f=9j^W$vGpo}Xq#s+}6Y^&dcVIBE)O5XA7fopp4B$|4HJUY=c)Wc6 zr+}Iedk<^Z(`j`z9 z_FU@_H1{hCrJ>HNu2jGqMLQ0P?aP2k>9Fj}q#l|nj`ZwOEt@&%tCuS@2Cn9SW;(YN zb@9WqIgiEwa1{yS7xu#CK!owTRGqYhhx9hPC856S3vWz?E*5!jyWz{{F#5`O&;A%} zKf+6n`<_%iBYxkI2aK7zQb$P{?QicEM3MO_!yZ*b9QK*S0Lhud)xE}WEYe={Ix;%C znCcWSd5!Esn!R9-F&`ghy2B*RMqdVu;h-*zNlyik^rKeCOSNw3eSLiq{E~Or-D5h> z{x#yFgisLHX^%PPC2kim)tRUt(fMC^9c&;uW2CU-_+G~mk_u+aeYUKF-JG#GCfY~R zAucwqbnneG&3-anl+_1?dxajfo@dZUhYhb~Xa{UaURyV?5|8(~XQEwVf?4i%TN83@ z!6ajZqA|8HgRN>TC1fx`y{=J{j_NK-v4Hoiz~nKbRq-Z^!06H);oGat*X zujVJxO+nI-F}z>iXnX+^D7V8USW)wDyq5Sev}oCm%Tmd}yy6CyS@z^!b0N`JbLkNH z<&Zkr-}37p8*Q1!3i)tv$7KQW?k61Z*G=wrRep6Nwe%DJuFsZHGj*m-5|0I%gAi?o z;)~a3dk5?eJkGYgy5D#RyaKIVPSXyXbjauhMYi8!=2!j_lP5_B9zcMC&RB|CZa>*Q$RhUOeCg=4G|v?>042RugY6k=3Y<5bCuX)j_J`m)GQflo}zqZb5kA8Z~lqG9L{6 zdLT~3^LOn>+ef+u1`m{>K6;m22Yp`pdCA_d?pAlP?NWW|VoTe&=fhd@%8Zl0x;<50VF5l5eo+p=)mb&yL?vJ+dtoxJ&*~-cSS*?(GkA`FimCy=`nkLM` z^UyQ_dqW!kC>DcHD6HCV&luRR_69#^Y@$*rDND)b14t=iB-lC!x@_^FFRiORkNU~K zDC5D7jpj04)|XS4MrDYgcA4?N3ia90J3NE7StJOXkE7JeB~i=(_3f?QZB*Rz58#kd z-l%`q6n($+2g~0HB|XKWMYEu=3}g?Q>b+#+j}>})5XZObkS50fprg1m8-xLo^%^!$ zTB-QTpMq5q4*~{5rV7UxWu6!4#@657&4$V@Jo-OWlGZDS2)t&93upK-?|`o6+hfE7 ztMUJ}IhCpoE+(mog>XxIyIS|Prum&>=+U;BSc%s#CS{a~jSnwt* ztf%-_hpt~QXVLB~R{6g^8lSEd zMewpgDuev2(%jP7AgX+$9}vyAW9y5{sukagGjdy2j=qzBDkDZ@{E&qLpb-zyV{QN_ zVtHu%?d31$0aKDcb9OUEKA^o~C+S#v;>%NsRptInZCKF|);ft6l zcO-``63Zw3fJ8ql;=#}H5X)C_nHj(dWS-Nu&%=CCNxu{I1KG=hwtpAiDVF%yi(!+m zA*-Y&)nC&+OT|3nBjjn{^)u1y4iWdRX1 zuTphi=HFi+f_2}6f_w6X?SlNbsdLO*VA4Uo3#E3Cqe0C4vup|Z5ji{xvlsWbvGs&GA#MePbM&HEeAgkXFPJB9|2@&aQ_sY8!eb_bplL#>8vZ|>?_16(qZ z?ajCfIDaBpccUo>30JS{LMb1Z0CvEf6gJic71rU-j53gm>#Qygp;U6gW8 z#)Erch-mX^G&Qlu(CQzGpIFD?2jp9ZfYz48(ubaUsm`h^lm?*;5&fvA3 z7ooAdoK(-%-7A@+pyB)l!y5H^WjGAxh_y-PaN{i=jcz+*DC#{BJoVhbwvp#aA+rCn z;zNd^B#wof%H>IO9ngl-3CT)_qsh}%p07W@$Z^OSI1ZmA2{oQSW0xLRLMtk{7AX*_ z8pt}owy~o-K5v`qI&_A4-rQijUvHu<;MWNIjL(L_ekT=RSWB}}pUxqc0IH0^CEmB) zw##WD$GDtSN=!wc5cs!S)-}vZEg)bGec>{4SS-d~?+}wIAxR2_kwuKO8o99ih_qIz z>=G^46=luN{QM@CTg{k*{A*R`i;^O@zS+Hu_i3LQN(w8&b4_JEU+QqumerI!<@<2U zK}Y+1MH#R1rJ>11mh-P(1Y>lKGA8)8#7&X+?*AZZHI=;FG}cTA^V5{UXF?KPy)FUJ zcQYZ7ov5y%eiRy*?OGt^gH_l-pQh4r#$8l zC9Lfh$EuAYK!L(o39*l+}zv}a!i7cV(pB$5S0ooPlVFK*#9adJjL~B z6%|DHI5$GR6MRqFi@fasvn#An$ls*eA$WW)j-#~}L$BRJNi8@*UbTT?Wi0gf#hU@< zWhR11(RZCl(0<><>L)IQOb!dIaNvN20Cx;MO0Z^pfYzpjk=uoLH75u ze9Xa4qQ>HjhdxO^-4cg#nQ~>vh4n#9$Tz-&bVwd$ z$M_+|t!A8BuVtY!IxNxXqLU8@`Iw$H+F@uT1x!!{4B?<2zcys~%k{!Ju;+O*(KnpX zdAUUnH4+WH={%g|8_Rx^qx-_#CX9rf_LK%j%L7hcGld-y#Ri>UlI$Avd(leNr~GF7 z)0j(Upf1&&WeYg4-# z%1!Rthi(sodzM(wcHQ4LtI5pwdrk$w{Pbk#_sOBA15cp2QVOY3CyFd}6!SVjOhwRW z#hp?eumXkm8r*p?RS8Hc(8DYt0&B5U$tz+$| z9#kwb#eLPCdMlV)Z z2bj)I!{8BO{e)cwzYFjkIPx}wT~rG|_+mFoP3Ci)7|Y1hGD^;nG5I%XW9KqEx)v9{!q3JRZ)7_8Bp}yA#g*RaG348waP6Ip^-+c!dTBv%Y+Yy~ zS?mo?=fn)VV8~#x5}{{ZjkL3R(VmRM+C^;HIGuAJHG2Iln52l1WDQxNh&KehsW#gf zMJm5$rkw?V00nWDpugKvfy8_t?Qh){(PNUo)j%5G535-%cxjpjcLzYVgC>{v*kL6_ z-{Ey_)f9q%ZvW-y=#aB!GgAIZlEY!OKS4lsul~!XZjYlQzsKc;=|~&DCo$ibh4gGY zIwR43@1u60>}BzjM*_+q&GA6X?{y%R>jU1`@KYlSi>q4;a~5-r2ha z;KX|5FEQ3As0shp|uD?fM@xcq`DnHJXH* zgj08R-sfNgh&~ojFXHCjf|cS|Fd#|Yr`$6^ynW%N=z02gzjPj2sIU_XX|m*`;^%UH z&dj$owTLAhc>Dc#21|kb(u`!n00}w8NS`-0oEyg@uow8VBKM>TS=f!t%ob$DLYQl! zhTt@oQeEq*{nNX+Q9&7cz8GmXKCWJd>r`@)WGE@6PVLVram&YJ+2R~H(cgAab%({$ z*@>yfT|o{s|M$+}ENoLCzlQvxS%&w=e8}u_D}PX)l%Iu6-Ay!;8zllON+c!Afs%Vj zKn#~b1Mva8NNsdAD7%Ztk2lv=jYWnKiqW;mu?{mWBER6;W0SV(qQ`b3E%_ygp$aVX zjkdkeA2{Jrp`lCaJHm72g1|Xd)036RnJ*+bZ2_TCpyjNu{Hq7xT_VM#o!!MW!Dr>`cg09smb@nk?!g_DI(({NFwbu=k1ik$&G!iI zmG3w+Jx@q;m(16K{yKr4ew~QVZ(Tglj;O7Qv*2E~fgMRNg>GJPZdBhq zN2pCO`9vSNNe|>eZ+N?OaAME|&BgFTyT(4bnEFB+oWoNV0JHRu)YyH)m}ROQ+d<61 z8&WcuvB)Y+GA~|(UwJ=Nx>Y5)$zs^^`6nV8g$9H*<-v_Ap2m`V13#(t&g{bm?aE$Y zR1AL;@~OM2@N9b}-io8~*MaXP&%LN#Oue~GPheP1Q(!$>q<7LTVyGz5daNz{cQX>) z_oAJKl;J^g0Y+w=PvZe5A$M57%lD|sWm7P^H|7O4*Gl)w0I0w*-nB;EUB>xQSeI0J zRig)(mpD>DH=C84|?qf-SUBS%wG< zg*nARygUH5lx~O(EL!otgdaU_O0LF)a5cs%&A05G0Weqfm-R7m5|OqvqzJlSY=4Rg znq2p*i#Z-8f>2$fT|hj(k6o(g2=w{A;QVl4@3-kXS9bPwX}_EO2%i6_Z7KLvF^+kv z?YuYXAZ)cnKH%?|BYP`AOv)z`+gs24Jdk^~;bV_hIzs+{A&2p|b zsS7M#c%Z9!azt1%L*5jX1J`s&i&Ws`dy>MQ3loJc;|U6-PCpk;i4AD_Hds=)F8`>X ztfBd1(IJOvK#Ic6_^+9_U_=BP4}|f}v}kKUpv#e1DVG6Lfy}16ZrS^q_>WOq90ao7 ze5oUk1~GX#jOq9QMHYbmFSW9f#P6q_!r9d8p6k|n8%Ny=c1@9+NOR=SvJ|RY=b*kF zwm3;>h3=Bhx8HeQYH4n#zKUC`!oqopsk zx2JMDjFOC%Ld^4acj-zGE`w0Y46h-~<}se1K2T%Dgrd<$LrLCYhrOrr0spRWvDR|_ z7{v@=3OoLibI|^9Eh^_-etTdVwX*LhVPPOhIXRmA8FT;IQG%0*tWS6}g1Bw+Tk7(M z&mU0otBUb&@3dLIv(G7gg5h9n+230mHpi0x;t-JB<+`{G=RpZuA_l#nNL;9sfG z4>CSqzGrX9|gp)13*B=>{t2rL)%NY{!PRnUi`UH@bp}Nt@ z(9;U5!q-FTj_YGG3_u}{zVj_^MCHM$7Kh2jjYVcd7-*yCg%K)O<-E*?Lg*h3a5%LKQWxBrks zAhC+od$i`$j+aywobT7;C;Oh$KC}LGrMGS9W9VWlI3y-en_Y#8Ced~&hIYdnt_qK> z8_d2p?`0P#)ph7c3|c(bRLEMj8ci0H_oDz}_I^V|W0Y8UDQBz=m4;9^9V5(mVEKA8 zETChXi(@NBkI-?eVwuOUPzx?o$2p0M8OnZK(1;IGpjn`mJ%^JY+tSw07PFPr&Eq68 z*l2WE@SzCw1bU=#F@&Mna`dhU1SZ(;y@>f@R;Uspy1u`BSKQjM!wRW@j zr9>5l>RBI=byU>^NA0Fs6lr&e@maY7*Oioo7>_rClnX$U3`r67*96jFsGbRFviB0i zzH^?B>)9Lb;%l_X@Upc_KK6gBc(#z6mYgJRp;kUpqmMT@{IGfUyzhYEAC6JGE!wZw8Cgo_IJjlWuv1#zcZi zf#YPJu!TXks#r$CXSwyEf0@yF ztl!xdiH*O446ZMw0U(0yKITXmESC=x$ zA~G^J=@N!B5@o^Uw7(Wu_=N&^3YUu&IM+56Ou%LG=JnA^6(|kGVKM?4vg}oy7(^fs z6jng;V|j=WghcbCx1DCRuwJc;src4$ag zLt87Q2E+V@o~zG`_5oMRI}skh9ji+y7{dFMG6 z=`rdl6-zDos`S|x*Kw3$LVR%$2wt_+y+H`ECzb1qcr&H}(UA2&UH=dE_)K^KD+~T% z6-WZRnEg!!T#t`jl@B`SyGh7JRiKp6D6kR3j&XrmAZ2%-%|$ZLEa0!yBj49HE0HzR z5${?b$*)UP^b%JdlTolUTI*`+Z-U@}2UtFo#69@rOhXR2zUzT+&is0E^tT6PWoFhn zsaYFp>0(dmdQWRiE%5)aytApY(+pN}3AW?^$5l3;913F7{YBhlEse!HLDr$dBZ0zl zIykpYd)hMOILf7NUiRS8>S%an*yRgW5G zny>B%G62ASFaBduA^&emC##3gp^VUdkXp*a{s)M=EQ=f9ubYh)I`RvFqaqH1a!ErP{_IA7xi z3m4A18r>PGbo01=yYqpp!PUx#Itc+|N)v%b3=h%kR2rYOmz4rr`3vT6GV-ZdS<36^ zGWliiQB$*Ik_=}WO{%M6_yvOO2sqIl56x!`KLz}`BKNszeK{f+*(}+FzTXjcEDGfa zJJ*JFBj=OvE#%B{ZYX$Q&QK90(Vfs(R#|SMyqb+SmZf*)AIjLCN9Lexe12Wo|PbTs*tUB+qz+&ay#?n zaLTWhsgY46`e-reV0mY?DS!b8)*~pp!A4Moo_@9-iz+HAB7zFH9EQK)+28C$DUU~+ z4&X5efUsCIeI!XQ_Xna`UjC<=gUAd$;VwJnY${k`>Hwe9lO{^@@k1p7m|o9|-ySxr z{=ZnntHSF%e`OZO;<1ys@lIFQs{U}SFCklTi|2%!{-54B#kAQ)?*)L|xpM{V=ND>)xV z%?9Gtl=O_x7yQ|KIS{E!JsXQ21R=ympR$?)sx@=w(RmVn`Zb+^y0J+qRM1D2o_LgC zYS+VqJ;x$+;|ED1l=6%iLrqWKGej6HCkW1*{}uwptrcMP;{Y(sWSAC(h#PwTRLAg@j`E5c*il^FqLKrc6xfNMXb-xq!S@Sefmt@^IQIiV=##X%dX zsSP|Kb=Ka4bd$`-gHky)2;>Y}U?D*i3ab=+4o7z|++pG7&cB7&MO|pLJZUF(h;Utp zA{iMnE8Mf^9^19y8a1um+oOj3?2Td1p@Lmc`$Sg98!v2MpZ9bNAFyJ0gB;pfz1BLw zUmkhb$D2cp_~5WPD*=LP8Y>V_$MvF0zUuGRITAwcOy1!E%a-+BjJ-;Yrgm6Ct2|d~ zCZ)n3h}4I@u;?6IrIM@UCyJLmO0;cUjR&!QJ@0nZe3-Y`5{@~YN5RM+6%pX)RpN;9^6BBs?o-d|=7=qwk zocV+-{i`aKg;+Jh)AhEqZ?_k__Hl9S*D&gG<7?biCaUX{m7pi4v-3%Fx(!Dnx{Vqi zV&Mf+EhmQxxa=*8;6rjOawF8oE$HOlKhIVN(Z^1x1uN}Tn7&XN{!IHy!vY^=t}AF^ z@V-+C=Lr#bv2B0Qr-?xaYn>axF%@`FoJm8}PZ$euf91rk&s$Ut*9Im#1qJ(PLxsZL zyvh8@$0;Gl$H})q217Vn62L;wY71J0C7b+V&_y$Do(GPHmHSJL-@bmd1}0Z*nNlia z`-TPfw+dcu=exSH_f&t*_|+D2y-ICRSWg=Nnec(`S-+^zsNR<+6WeA4BnYVU?qg8$ zY;^wh!IC2pRA1Dy-`VUX8b~smq2nL1J1qGU5OrlpDW>5=5mU3a^*fWjXRkA)Mf4zW zZ&w2ozdtR~LbZN(OmVH}p7_zE=rdgM6*wC=fhjg|cn65VV;_)x_fR}0hVcQtkT;Wj zsI%+s%GU1X@^&qVh9^kPc=meZy>xHNqqFC~8gSxJL=rLi>5#DAm0@r16(s{AwnFys z2QV1*4JobMkQTG|0=7JAR63b>l;Lba`P^lt1#Ai((EXNz&8`bumDOmv^lcyTI)>f3mt}Rq`Iie~t^x;y6S~iV~J#sKL_s+9eEaIE(vgJsi*?=2Y_}HCZ~!EuwV1V#M9$qvYF*wfmtXUk??)NpGHDM4?xROW)I}UTA%|@U zC;zk@^-Fj%Jt?X`_21u$V(`WgK9l9da_C*@a0%a=wv6} z{7Rnx;t@NHqp`dolvyX_VmU^J1gZl__9;M%w#?6j%|l@|zF73QK>*HygD@Tjiyazz zv|X0*Auh&O-DAsn4o^+2+9g$&$a*?G6iXyUel9(s(Rt-zN>m24s^-PnC&j?3g!ORV zLW0F=r9~p5u+#Fe*yEp5a>^K98|!~VOU$st1FJE}f4KR%ffPBK*Z!)@dCc*6PY~hy zX_{>o(SB}(Wy}F#Q-xLRA>ThexAJs;bv{&`X?sKcJPVZaJthJK<~D4wtwnfH>TVet zjrQB7M@YfkjFRg0J1!9VWJR{ir$3b!ln0w0^SbjE^kykZFKk$N?a)b?1KjXssFEfr>w3Y7~{`PU72XLO=snn@b@QX7uY#+ zfqv-}{nW=a@IaVyw>r-E8OSa(vKH2?koDxfQ5;;3mz$Y?5fZ&u0suc69{X)OWLs;= zZ$_X~)nuAqmv~dLHH{k(PY*+3v=r)^nk28CT2RW<=E_*4Y$G8wP2Z0M%AJI3BH^z+B`@}2mO}|U*T@-APGd6fEfxYUnOW|x73We5JEYc4P{{a zrg8HS1cw`k^uyubb=yyqakx1C{3wu&yQi&&H+ zK|HEU`PE3q1W-@(!1f6tsQ(qBF!@wD>(WrpqN4tqm_c1^mD{f_ef%n^__zsw=>2_U*Y+JFq=FWTEw+;QUXb9H4u=Krh$4?Z93k7eLEO27u_CdY zl=ow$no95>*cpY_*b+_Oi&2kd3WRpBt4IZFST{lhd_c}=0uGeH+W39=HMF%-k7N!? zldzhSwdZOvA>hH7+mFA#WbFInK0EEIPWX`!RMUBe0)dmRykCtc-!4ud;Ty8C3UQ&k`$rAwmsjLyzi`eo34>|J}e^S>aF1-dRZn8>RKc0v;fqJ%2oV z_53I>71Oy9P1aM|!KuvDWh-t6X-mrG^tN#%*@Hx+dF|{D9iBu#AJq0B)5+T|fc+A$ znU&&ruj=!$E&#deC+L=(k(!zT>3OyPp8BudET$N~5+a2AP|vSIG26B|uk`0ney8fX z?@xq2);l(Q^scGcjs2NY`jZ$|5v~Ex_k|V1(+ygGFC$kJ#V)=9xI0V!D954F7jAl6 z;7T;wu^>T-yeUlNJp|+a=gv!IoJG*tiTXtHB|67Rl2idy2>J>tbKNP^e!o71@_rtA z5I4wS??e1pL|};gR%vaqm>hRcLt*KE%h&ZPO#+5+{n@H$=P2{Z6$m?NHLCPbpA`)` zC4c5&+K0`+PmVKeh4cJ~F`2ziiTL>0gGtU}>A7D;znK9I^TzREGkw=6G6L2$+E{cU z>y#0##1=hNq^(n3od)H-GO)?2bg3kd%>0ABUZVCUdzM%4lKrt3)NKoZwst17y*jPz zDvD&CX(8w16qPDzJqUPlV4-#XX#Qk0E&2MK$zze;O&5#SpOTGbm7K$UEv@H}-)Gs> zr0RG zms#r$qd5`0bw!Cg=%`=h*&uu;_+I_Hw>?iqMIX;#*Uai!TjtbfTE3LN`cWMcPSK+m z-ouAWcfG_J7m;g5v)+#zw`{yOjVzQtEk~Js&ui`ekrCFJ&`6qdqd5%u%I5*z1QLq<@`$v~7 zjwh1x5~6%^qR-++`g~P-rRt?vZGNVd!dV6?RwUam$*BnCe>=XPANTv* zxTuv`1^RbSg@pq)3?iYKOy)E#Jk+SlAVDCi2_gB3LMBia6&4G>T0crYT9kSM0I%Q? zKI8*=loZF4a`I6K5cBe=^SzXnYaeh1&kcb^Muc6i;#0J@HkT|OC9O)zxC86zY*(e4+^Mvw0}0Qqv615r%pV7jw6c}?cFvNi|2&vK&q+C zj4>t0dtsutaPtes+#ZYf(&g`eltmH?A5$0dQcmfXt8>t#QRr$PEr{2-<(Q7uYiBe# z`m_ewljpNnkkZHP2+S3APtexXnTGO9<%M5`Zym9M67rM>SFF~b*NGSO{0-h*_5aKA zS7%m)6-LC0{im9$h`Cx>U!z^Fv#ow7xS_y45b%)Q;74Oy{y~->lHaL{2YR>sj!hjX zei@`|5zVNK6@f$U5x0T}Ql#GPa?S=U%oP+VsD(X?6N17NWO5~NcN$gPM{u+;@^9(3 zorzM9Cl?`jz;-bWp)o{FX{}6d*rZqqBAABEZ41S7EI^sG*m_hl^ppQ2Da@eO3t@*h zPWa;yC3D7i9u2n1bfsi`<#R$pETLSo;?kF&8&B|mB}xq8aVhr|<}(a)>nT=zvy};` zPYHTrEK-pdF=+EQ%U3wPw{70-!a30JUEL`wCP0;uH=~){FG^(k{;Sbjoj`R*Rk}r5 z9b6*qzpl~N?0K%o=8WuFZ%S^iJE7LQ+F)AAxL2Yf@_zF{!2ofmorMG&_23ENQL20< zySq6rk%9sM0FM1Uz2A9wR`jMsVOjNZM*8IIh2rYP*CIL_v8OE0btK(PWk>vBq3_y7 zJsQa;mg3|uKY!DIM*@b_Di&Vtnw^;1;5qz#?I3IheG*?$G-!!4GnBGYip0S5Ku6*C zE@5Qys0iJR$55*Q6EefZ_59J~PUzMMu2iQW|GkP=5=hvt8^O*(RyF;#?tle@EMA6BC!t3|JHenMV=hD&@z5CLH2n+jKq$iANT9;B^!UC zLQwkYNgeWl{~rKwL65!;n>K*Mz_%egN02sfi7;din|qooM-7{M94OJofzZ&Tw2Y** zbeaol7L+wfZE|KTSggLWQ-{)9HS?MOT4rKK8UjmisYct zECPLBRR~b2#0%qpL7IT~3VB?I|ZWppEsep_R7&g{ID_y5^y(Bb^5;juCLsX0W)BIZcsOXamH?mmz1H zq}YsxZgASTF4KJOi7R;1?|kR`AeE!73Nb|66RM7MG_;R5v`-vs8$a4QTHi8K*ECq$ z&{tjGeWz7_C|EBzO1OJ?oe zRg9Vb5>%$B@NN-uRM?HCwi0cSm%?nK3a1SM4w|k4my>n^-qgE9J2XVp&~E+3cb^9# z;Gp%stbs#c1WXB-8~IVNc$_u@-qf2Cr~>ap(YsW*&jVKg(@{g8tKyR?P&-N_w4}A) zg3|_~1_qzNLE7<)ADGzq`_WW@Hip+a2A5lV=fRNIHV#zOv=x=r6L8@6Y`BYx&3j!@ zKBU9u?o6?H_o}#@8Sah}K6JxH8}(I)8ZSJ4>EWJfkZ*nKdmvQpit5&*ZDS1`6HOgc zO`X%tT{9p}UDJ)7Qw<%H4L}|(qjgO~wT=DN$9fMR?FL$kjP|UO866W}eYB^o_jr5% zqU`Kg#;y<{_|vDzlwE@>fMrrvjRZ6FM4yZYyx2WEU3Iw~Ru(xK_@paFkXQ%JBz49w7P{ zg|^-W5Iw%VPo&q!BH)+|KDz|RE@1wJ-UA&#pq;^Jd8VSc2ZgltEr1x6=Qs!-Zi#~@ zItBnlmX-bv5#PTg>g6@yL)={w!y51Mz^eq!^e^e~MdNns^XQScp3=@V#s%Bi_<5l8teo_4 zzViGlAg{jg>K9-9;+J0f(pO&o%4?s0?WQ`U+YQWvUx|kU=e=HdpGk@NO@HIy0 zfX8OtA_N>r7)pPNpTcwAqrUpvtsM>=!~uri&9rQWGR;I0vtAXNied;HdtEy?P?UO7 zc*lxP8#-`+;8+munNT)>MWvAVq>c3z2QdWBeWe3^a0VPx0{p8mhle(dIKhk`C|(5) z^bhM7z}FkR>m4O!xz2+)Czb=p(W>H&8*|vDLc%v@gEX`l7iSJgreFsR-9UNi$ty@3 z&pvwLYUjkKu5VoG7(0H%v&@K_Il?pY9C-&z57+m^*c14vD7!r|Exn<0Dq6IKHpl zwkg_BfCJyEhK>p%3}vg7EdU1Hs3wk;p0O&2jEyyZq<|p$St~5sAI)!`BCam z!3iDc-q`EfA>aVfhi=e_Q8VD+sA0$)AOH|3s28)I6!?qDkRcEta5>SZHs)zvQBE5e zkI6WfklTZ_W5x+S<5l25hq-=1$KW!2$>kq(0Y_?94p{Mh`(4%!fdj=2AH{uRZ6G+p z18KviIXQ6fhw{qC!J!bY*H=AKU-@ud1ss3+#>S=gv5!A=@?#I2uo(p~0J%ja(cZK{ z!BOOyE)1Ljz@e<*nUtPskY`wUsLASB)LxOiwf9%)w2l(gJd>9LSAY)j3o+GYzQ z?;g%#jI#xj@SeF^R$PA6FeNZRJAe@-mh*lMv-R14z$kcmVyf}7p%@ZV)8ms;3{P3y z0@~TEsqai!Ilj`>-o<0uTiRXBv1@?C(4L_&^EtF|v#3F@NaP0mSy@n|bdhkpP=Esg zVpG5Y`S0CPqIW<$1RR7NcntB1JyTW}wX=0K3~7UaLm%N`m(x;cX3AYa8weaq?}=eg z3OYX!IQ;qF!KW92gZev&Jj?`>0Y>0j=ENCv%z=Z`h9Q@bb}Tr-XS@m=okMFN`UUL+ z%PqYNd=U;X0C;<33p3zA<`51KIkf~gRKveE2^==>;iA}$0tYWWd4*~Sv~jV06j0;B z!f19{vW@MujsZ6-fluMY$!g$+u&LbeQuk_r|Buv2nOtDFtP>Qa#Xi ztV+PWJZx-}*aM-Vc||2Qqm57LD%`9DKGP2$?Zb7ka*Gby+Y&WA^xMdCAa&PRisqJPkC>!b)l{6_2LqcM9NJx0D!fF(98XI)(#e39eg-_X=V31D=Ul*kQGLj3vR zhaZB)#bc}>Qo>F5ezP1npfwEdjx?5(mX6DkhK31`w_!@GU_we7F0wAV7(zo0Q=-)e z`weWQpN0IPzF1jY_uXQ@S)Uu~{`99mRZgJ>X}?*771{+CG{`G>i|vAo72M8-y2^6} z#RDDjQsp@g2OKzj+A}jVW^K%T_A!$nZ6FrlF^Er$;J|^Gpin-P8|8U-*t6TG9b^td z4V^X!IP^gqXb6>&p|qBl4jlZ#yNNbXJIEXgSQv^SZTS4(!PZ`1arlWHI&i>GjD&n> za45zYLWx2frkvnMybc^IAWEdO;!tbfLUXrRiaWcoC?nUAl9^4*jB@ve^k)>)Ukl*C z(HjIDNE;kDKKI0xhkK?!`_c2CeB{hquRQSji$1S%5;QoF4cviHBYFI=hUPxKp^ma?|z_(+iz_(*{14l@fqmXAsr83M44RCgW z)26v4D1?NDg@s4lfB!!GNqeY5JXVd|60Ww2u~Syc{_hxQJ61@ETdeu4U_^8@`a<9s z9ZNT*--QB|3esb_Ki%%XJ=>Ji!k=+%NE^?6{8@Bwz+X5_G<6oMdvWYA^nWPZ!%~8~PdmgM3UKhB zK54@zulr9P2ouB^h#J)ALIROWO1rj}s0AnZ6K`uDSn(-s{Yx#q3yqyK^(|wEkM@;U zw>eAeun?R!NHCr=2jNJcT&D{=S!`?!2hs-4szv7b+!L3dd+g%X&WUe->7lQ^booo4 zJ@@h_Pb+Wp#FXrm^nCuJ=jN*PP>XJ^2srj12sJcUF|kRRxg|VL4jh$7x`w5l2N)PW-`JPIzcnE*%iu>mEk+Qy;kWBrHf#fLiwj+%zSn#RGJh5^t*Rb4ma zSzg^98YT#dOuI0YiK4el0gi;E3`5|6tPoHLI1*E`jx-I!U6fKCs_(_^>8XNnqlS*@ zW9^esG4a$~P=K<-txBl~I6^|g;3+!RHhHXl3NEZ~9Y4}E0xbZQjY~*VG+18Ku4@p1 zqolG)H|=f>ChA#%)@+2Ep1-PO zMS&g$3RUG*fdvl#KcM}wVR}5SE?`X?h!+Ys=+J;asego@)i1?w$t=0k#2N#3fbD1qW-f9EQNr=U)9&KTE)Y3xy$Y;4xl;qdmmrl*cbW`{;!$ z9pm48^?}!3xcG%npMBxuCzZE(Y(gs7jFj}e$f#H_>WX1FSlOtXtH1yIzX!7f#~B$J z#^%bN7!eg45oNc>r{G662M)LqNJ4UER(`2skBciBa2Zn_I6}iC!3Nt*fCDU_l9e>T zy_L1XMsnZ)yABc)mz19E6u?o_QFgdZG40`zF=%cPI3V)rr=Nz)LqkIifdlfvY7%fj z?W!9F^in~2bl`xe;%M7sc}+)DbR4!%VaXAALU7KA4jhn!9LSlNkyCuMb)v3iw5D+g zpa(M7O}im7B5)Ly9aSC%Di!1p4~CLer35}5I0UrSv@2Oj;1DbVJQo|EqLr%EW&|AR znZ>0QD!b%4suL0tpyZIl8*jXU{aFV>!gKQvojCWoz;>zlW74+s9>fhM%$UOhIEX5+ zH-ysz?=CT;4fJa4-EkXtMmt-e4HUcFWnNibgWMIOD@XQ{D2c6UW6Q1d(3w+Qc9nJ% zkCCe7Dz#!3^NwtE0gN8 zR1i2`c>EIfr);zged*crFMZxEBEnm`U@;X>akS3QYfFu zoGtY9JW}zCkU9d`$br(%ZL((|2oU;W8#D;iQ#?r?W=@gqYX=D9&%XOQ$-n(y|HmD} zj$NxAE{eOtCx1W!oZiA`!0J3;#tHt!tH9CPx76x=0d7v#&@ofjGL}C^AC z(9_d{d%qzi{OCtNqEmQDM0AXwV>qC>cvf~_V>pDp&o9hiz=4(3{XBU-9NWcTSARDJ(g1u&N0R zzkzAr>KG21e(VJt4h=Yt_Gig<#+ur^rYyxGa%JWfSOdq8fBa*r(Hn2P0r6=WMLeql zXB~PtKgz+z`eny=$VBY;iMBO^8FMJzB?J%(I_PX+NF)@v z=YyV*z_xIpw4;lzoh{h2)z#Hs|N7U40HMq};evh+E<2(f$d&^K$BuhbJ3n!+9E!qK zVA$KmafDEV`!;kQFyjP2<5l2j>0JcTf#YcVRBh7;yoJ+q^XcQ#tUtvXIB<{$1-=yv zMGD}!dFe9%91jcNc;%Um7d~zb9AcBU{K8EE2fXpYJY2hW4P!7Xu(Aye4csDvm4z6a z1#m<~qdorYXFuD*0+_w0o_Y#RK6%mi?c0ZQCE#)}JXosr^>w-mY%>QA`tr5_4yb#X zAHXp&F#)F_pO1XxBYp#iu(bpnN(Dds@Iww9G>I301BcW=yFo?ZrVfYWfLz=R8svTN zKpj1iQLzee{PLH-io%E~6Y zC-io+F~5sYV!jt}DEFeQXxOh3%;tm8G#qHFY&liIf8YRkLjOmEC2;ucQfa7f_{7tn zc;@5JJom}xKKIP$zVO@^zWCx7zx?u-U;DxySoq7IcO|aG3_L+QUebFLg*!P6zrz&Z zFeD5eI4Dx@Pa!P?ykP^b9kXv}Gbg_azm*N%!6yWaI?NWLhfFn`^4hs)Qez91wBRw}Cm-~b~u{WxyNErCI z#H7r;f`pW`q|}^2*a#z}+o~YudOIz|quw9K;hNx8^D+t*90AQ+lljaPZC) z3O=12wCfwriB*8(QpcFZpi!H9ISmTjFjx#Zv}wRW0gMeU#bF2>rH5Kes#@S1H%)%# z8V(1s$)!cX2HSjjILyXykhQaU14o{)?!ujb3s-=pgu*EELEzSCBew}0{*B>?Lf-~0 zF3#I3E-6L$pJY~L)$JhSXMq!KzXBYFgGMn=h_}a!En55>!@(z@0-M2e3wP9k1LCpM z1Urvx{s9LCp4Is5W8es=TV}+|}1EJov`NhrV{{;cwv3ja|D{{q|p- zhHpuZBm8yAhn?El#8>X*(D4Ej=u=cUZ3Mg}_mFlrYs{?enT6aw?HCT`!0wfxcC2}k z0%^yJ2eut=YwVi0kcQ5=qwUjmE#uV*ZFR_Dq@3Pq+f0`V*<)@*lhgCVBV&}TAcRN6*u2eES+%;P2iU?&F=JDm z7F*Le408C`AS5WRXpD-9zfW8E3-aH;UpRXd;NV$VFZ>mkkPf#7K2S<^P+Mrk9+z_H zXg?IjX0q^?O+ZO(Qd(}bJyD70ZB<^=S$4SHu1!EKujzndlpbyauCjRphoiX0OoKMY zc{VXiHnHSTD;APBJG5|NNnLoPN3E1qVrouIY;szb6AGqG)}>(9rE-6~*EV&%Ll>jh zen0xeCun>6T}vB2U!AxC`gVZByN1pz~dyt1h7=}c0*VD%B)6SN?^t*&M zP|#}XPL8wAte|%M*N!z0Y+q~*U2_(4taGNmed>tpPbshMEUIYCFRI3pap2&z!TVD% z`1EinGh_L}U+|MJ{N>0MHc4OH`ljDYo1?i(&nb$Pi&c<~+0N4D1RQmBb$ALF#!kt| z*Nvz{E@8sWRk>Uu!fT1GqkUENy_I#^!e31z5;z9n6z)mpb7^xd7#Llk5I>hT&&n^Y ztn1cG1%_V%j+nS)C}+iyZkro80D6=>(dt8k7~T=Cij0bd9N>2PIvh}piX&Zc3h9Sy zu&}fqtEK}-bZjD35H%Pbn^aZbr!+g{91$sAQdF2*+S2A}S%tCQYlzvTKZCL|TiX1l zd%^Xvwx#G3pFH#DKaW27>CK|Xl?NV2*;R&(-k$sg>hsHtJ2~)}ID@w2M&WNseoW-S zk16IJp^e+5olSi@8)}D(YcZ=kNE;;j7}7fo9D7V#1M~w14+xViQHZ53Bjx`64E6?8)cJ7_m9-*bpAAfinnZt1Nwx}4pJwDZL zw0RrEb90rcFTD^GyXDQ>TZO8`s}+ol5}iA;w?b)l3bYP~67O1K zD=oLUvI(lg_fjF?ppsyRh!-;E=9>Wrlqym#1j3sAe%w6I8#uaczDC80th`ILe}CxI z@h5G*hW%2h$|hF;HO~IUe+7v?^^E`TEZ~f<|HVI}1d2JX%Jl{;-k$gZrFW>=yV4Li zXg_X*4E>vI_k2C?TG=V>`2XF!SG2Q#q(PUUb}Y2R?Yo<0A{GiM9( zQf*oY2@4bZaWD@#4;eWnO3D!L?dc8oMpyRQun1zTKz*Mw)g?AjT_qh5gpYWz$*tAF z7V?eVBctQx)DPUA-m{~9R7|{kA6GF4mG*q`8K9 z_@rdq_C;w-|3iLJ&EaE%2v`XzUMh%*OLk3xk!N{fWQ_{VY5}F9t&A}MH{=(WdNp!X zY~_(2pT&l(lv3TFk~g>fvBabt|LSM!dg{3|KpTJgPavBGjwfFKLzKWWho5gx{T=G_ zrD@^*_1_^(O&!?w32JATXa~R|@`1_UdgHn-5P#>fV^3&DvHNB`u>E)yIF7c@fat(c zS=U=~$Tx6Me@aMbL~@#EmlM9D3g1-4ot0mVU0` z@EOfbnoaHr0`&zkGfOz(LL7vL7gx4`;gox<+xP9?9}yKDpOgZYvZ}s6E5AG{#tt9Z zVD_>dPOyBLc@7*Y0vBfH7l2s>^NDN$v{8Df%~4t|of+j2A133YViL-$I}2Rf!2=MK zz=gmZG_sNhC_rpNT4G9$r@l^4eW88Qa`NI+QX^x$;0$gJ#iLt8so)k=&Wt<49Apf6Aj-c*e7bW{T1MnpzIvqNII1at~n-M?=?fD0gzY|H{| zWcXWL*$j`gMX`kjlT!hADCW2Jhol{MR=Pu>9R*k~CdV+K|bzk}uc%+f>k{b1w8H?a^AiI(i}v7zc?LvGJO z8C`Pd=m3ao_J^F|iBeVH2UX6ME`7I%@9Zj9{-xq_nGc$0Fq|M@Acc)|+iVc9rqZC6 zE8>YSEyt?_Oq5mDHjjhI;|eL20DPc=x|RtLIDi=35nh`A68KE7sO<*p3rGQlgc4%K z4;>u@08;8}&_2>OLx#0YqqWUrh4OZYHCPch5V%Y3E^STID4aqr!I`nxR$#@U-7s@5 z*v@o2tZyOKw`t7P0wiUXN1De$l)}h%8#*lX=%p;oAL=VIFDd6)iF!4S@)%b>$A+Zd zOGw4C=}I9J(hCSZoKeT0T>Q@e5*;1AzVYJP+2>c!JhyV{v&*MG1AkXeKMOGsA36Vc zFxH?er07pjVzWoQxn1dK1Gp{t;Q3+qM zX25~RbT%wJDkHZfE-9HZ2jKX@jkQ0zzWPY-%)fo`y|v4=mF3%vYM9eZA%RueHATX4^~OYXAJV+rRLgj#s{W_AmZx$1Cs9 zUu))|fufu?b~AA7>^szd3DQPTJ17VfhVBi73=~L)X%y@TxKaYB9W%Rs`{GsLsB4?9 z(|`ls@0E3ZrH4B*a`RI%vtkoGE8&{~M`(CduJdpL8yKPVzbL@rEN?6*sZYtsicL%+ zzX&qN_1@Y4@xOilS0B9h-~RgD|M!3W?l1o8+jJGuhR2qaRvZRH0$<+3AkpV?MS*VM zg;YTL>c-J(1Q9nApnyTr4R(P@KT_Q^!c8MeZOeGAG>{~&c$Y!-paTlVd(u~c90G9} zT6ydeOy4q5D?A)k^wIB-mj2MO;Y0AnPuATH5Td?dXuZHi0)(iq%b-H_3*D_(Bg!*j zkiL1mMtT}})s*rSx}6Xpho$GnsNF`Zn??z(wEAl8&^igCG=jT5$GiZ=4Mqa^ybEd2 z&hFYlU0%D&e(InVeuxVm+AK3r@M_deoF?!_~fL-fEVws*A6)_dxd(qBaKOR8|K0ch$KU?pzy0U;{`=p2@1gD~JR2DuC(K*pNUi(|M^mZ` z`Zmzh;F3m{c+M&bJSoL@vpXw+COjp2HSil64V&;!v`CRZ(K;GP6BGBfQYP5(cx{tQ zj)=cwvYOsCZ5Texq*}HHR?3|@&uYx5f}^#K7(Z6yE>ew0^qPu79ueZo)~KOIYE&7e zB0*iG7iR+V@vghfSt5w+LYf3Q;*s$qtS+_2#WQd1W~M1oY*|6qV}P0+q1@=P?3{fI z@S^qkZ=Cq!p8$5O|M5@YXXosjoipF)nt{Jx@0j^I97811hUiRr{u_chUVN+V#c#HK z?wf)CD{(3hdh50hez6rD_aUnkLEfLXXcg?rd;oxg}?tF z(8dQq8-MWM{@Sw|X>mo%;bYRoHV8Qka%}jp{Nk72{X#IN+DH!LB}}SS8FmYcWbh%} z_$ZBTv*&H+INZ2Mg>10r+7U8!Zo{vb@KLIxD2%&mhmH*jIZ6Vx9+Ev5!&n!uTf5CF zRYWohulO*FX9PnK)1=k0amk zWa-U4?lclFsGUbWMU|~V4_L?a*HDlr*1j)%8(p)A8YJK7nEray^8eKQ|F?Ihv2k73 z9iNDlI3$Oh;Xd4lm3&%;E#BF0|spEZ( zV@r;_$hPb_4qPN@g9NP$^g~c2tx+efKLkZTq(FfBLjm`H?|JXO`|evfBt_0pdItxC z$1``o!*_n~ZtsCJntu1p6ySp?7Cq%H)PtNH5}rc&Ad0= zX7$&_e4~oXG7eEIe_2JirA^*dXax>Ad~$HM zwJS#Hi^U(GUuNeo0X6>k?i+vjhu3afxQguM6;&uwEZtYv)KU=))ipNLq<*+17O1SL zs;fr|rRC*9VZ>Lk%SQY;u;)OyrMt8|Ahf!!0m;I7%l7K}hFGS*HryDjZfJ@mX;Ei$ zq!V_0a(lQUSX)*esA&k(1OW}*vnigj!w66NRKQH?=2&RSmTbjYuCg6$L=!pedC0fx@n| z536H+czEIpxNR}DAu7nq-_lKa$+d25jl-jdTib)xHTV>>HbgvfNFWo;{*3Uur#+6>x$uX z`}Xa@u0%LJR9sx#9qoo@7qZY#-Snx4zx{B<$G_UK|5$ahKeGQ=>-<54WE$19ZQ&3! z80~?EVm(FS&Uh?-VEMqQYfg=hj9z!*y62yK-ijIub|`0ZaH9ArQfTW$I*KucS0HON&6Q^cR} z>q-E58}o|N*wPJVqNNXV$w^?b8UZ5GbsMcjv27nTAb|*Ips~H9sbIfW)J6oF?{2^b{x>vbz_ATza=GZkWGy#{=>1zj0-IPm6C-Lt+I``BC7vO+; zz;R~NY2%C?BEa&4h7cKvHi$Do6)@r}F{(kpAx1uIQzNCM^4`2#t9RthDJuepEuDxz z^WJou**jMM?&SA3$gTp%2pi}=YBRzyx-UJf14j!34gmx%gB*=*5qUVo=SnB3LH2Sl zo_<@EgbuHM_7rW1z4?Sb+UA_xn@zLwVP(nn!=X$M3uv5r8 zuEt|@sJfQiSl_NJJIVqPMN(sFEqy8~>6POweaev^6cMbdfsxgM1a+j4)*OXG9>3N2 zlNXfmke{4Et6Y-QrFVy^RrNYjtK!R0JZ(fo zQI(LWvQw*~Pk}@`$7i2<-5oe&=D0j(Rg4?RCT2>ApiH2EDu_9tAPGVZq7Ax`X+tPN z%CI7`z%?xRD(@}4<$5Rgfem@i#rAxTyf@(H^p356ck=riWLJS>c;e`=3LI?Axp!AK zH8ih{Ks2{HF@&=B1W(nu4~KO1>=Gj!+okkhy5;2W-Z^vAaens3-KUuT^FzL0eurIf zKji!Ev%bT7ii>W)d}Tenhh>Vw^P;jtx^B6G z)xy6+4S5S+)%b^3SaoDO1TBLi$wm~9TTo!_)#`|d0-!odvi*8d?>)_m0oI|SqF{(( zE^2*qw0GyScAzH$C`qAqh^QEmI2s^}eFRJBzp zqG(n07k;8jQPF5H0xoOnXPe6uhOzg8m_1f8&l(M>qg6iO8O)({P{KSz4h#Hnw{RLJs|%61>XnH z8xQduIJ7f2W#HhBxuldGPhQI3(aL-YA2X<+LpFItjT=y4IxL(b>aKD7juImx`~(u$ z9hDYQ5-Ya6tvs7T8Z-}0i0RxK&v z4JhT<)fE**jm5eL1_p+Ph612f132pVaUH7zj=T@jZvJTSCgdgdmBVGFhY@il;Mh^(H+*V|9}cxVP^G#?65Zbvtp+$u z!aW?EG!;@SCwGn86>iXgqud@iDk>c#vUio0$X?vXr+dJKnc;=h;9MYR#<-AlsJtu2 zp>gP~Y}-u0vCSAaVqI3J5sUziU?@E}pB$JqxPc(dX9FDVu|ykxPoC`lSzw1&Eup$Q z14lhSeg?s!^yWW1;Mh*{j8cxBon4}+(I{K3(%;`N14l(=aQ2B+0LOikSvs*J@3*tf zykl-ob}qo-0v1lFVapseh+?G;T56j21~25^vDHKzyVzWH|F z(AW_NJv_Mg@W7sfeWUyESeYD{>CTL`bfioC+UvwX8?xFS|JBtq+8!HdYBz?gMF64V zD*#GoVy8$S(syw3%$b+z`msMfQW7W=cYkpcXF}XSVj1BuiSaDnU_{hCoc0nH)istH z5p~ySiYNhxzce5s;u@~8ED#b!#WfnRy1up8Z?C`>7_T$o;`mgJACY$U+3rUAZX$Q9Q1@L zo>P7HLnFe&X<~Mbrid#6M~N9YdirNfz)>FRh8IljH33KQO28qCN)?eGsYUHXQDxU? z1`eYxX5f$`?yvv{6BJc$Nse*J!Fkj!+@cRV!6*XA!#@rfhlYyxPQ^153UCA}CE%#6 zsj6)@8iy^5X-xD@$9pGBW#A~Y1CH$_pp9sf|0*Q+uNBn{93!(|9-R7%6@Ww3j(z}^ z9G!qeZ5$~5Rt?~&zvb4u+<`+(rd&S2AsTNpGbJF9eLrnNaUbExacsjDIA{Z{M;mKU zqKEYy`E{u-;1Ipz?A-IF>XZsN1FFoYbS6^pl%0uPR1KhpOcJEc1GDol_t{* zW(A`N72)M~#J~31+poOx=DBmP9o;vQUfz4v{a*ufRJAlz1pJ|a^rqu4F^&txTttLD=I>Y zmTal>mzAdm=XwTaBHfAV`UW;BgBBA3&?eFv4thbWW!$KwJr-|^#?>j6@_-B++8m7z z9D&LpXahe*V`hY{Ked}uDc+8DZlSpkYE@BFYE`L@!!utRoV?Qn9MLAW{!|8zdrxb% z8`Jl*P>%ThAX6mxe?R0iT-y}jD6MN?MMVmteQJXxp=wc7M9C32z!|?deH(xSpER+O z_gmXW-!V5oYh{pw{*;+x-}EAMMbr?%6xtBLL31nC!@&w)3xPIBX)0uGv>`Lcr8LMP z(Z*rx)Q0Te^I}(lV_?r=D7)t8EU|Z!rZOFgWGpq-5#K3*;Kca+7?Cr8W@a^C^$iHfuOgB%lVu@GU%*Rn^8yOsS|WM+6oXL}jmE(3V3w zOsU9gIQR(1EPw;hP}|sKTD@T&H*x|FuorY2a&!QW@(LT^=*~>U(qlOQM{#YqsUpau zi@iUjXdD$d?pAxyCEUS!(=QJXlp-PW<%nr?qGCK&g?V z&sSDaAtG8Ajaq@j#}|h-wIve+v#4NwQ!^V3h#EsvIRXcT4b?Qsz`;z?;twluP^?^l zgBg{93KEBvF+2Q0(W*s7ytQ*!!x03R&@YFNaA-qB4!}{tfdf+0J1lk^O-xJzIBvbo z5jbcXMOMNNx{z;|mjHr@*4@lZ#Y~5S0s;|ahJarCiPJJq$Z8Ek!9-HTE;4OwA>hbM z@3`xFP8z+$7I28(G5K*P|DGqi1vqvef@;9QPvD5AdOH%SSei|#h!F^RSi&msFgw6cMd z2{|fJRF^3gF>NGVqXbo&OIFr?+U-)&THbw1g^s&m=VbJNMA^<&lw8a>h$$699AQLW zXa^WUQF2mX0#Q^_n*CwNm9`kbAqRk>&DYtgRLA2}M&QvNtyLLtn0L3zQ!1q3KMowB zI{hDkN7S}TnWj|2>XZr;ZHpfs&vANs7QlfUUydUjLSd0_m$)Vn*}BXjx@hyWR)!zs z14CtukaC-rE<+B>Qrck=IfvRi@UAe63+H5@(Z?%s*6 zziE-=5UG&*9bsqj&!o{cGzJXrK+~RG9+z_ z2po(gi~LMS=ZQ%>W5qTFpStwE7lD9e8y0`z7o@Z z1E(me%c4>922LwC6caaS0~P#RW!S(WA`@lNs9wiVO=D*wRZsI})$bqL^~rK6+-9AwY??QcDI%)I2Tj6k^4h6`udQiwtu%4CZC$`zLqiUT|@ z!``t~5Cg5iSOaZPtV`ykQPDfLe%#5w=f$o9N8ji{r~w@O)UU2&Cf+w4OHY6#8d}s7SP?&8ExX&A@7p4 zWLMeL9%=86M`8*2DD;|!h)XUc+7X#%vA&7JCyoeHi(2mf-j=$i=B}P}XHP28Hxq76 zDBl7mYAuBnM}|-U?aZq+No7@aZMZ}H=`SrS*C!)<{Co>JaE){<8@NqAECj{y(;g5z zX=+P#CDULIu|`LZD4+JG6~j3xMM5>T%^khnnMvDj5?Lsg(y~fx50>VfsVvdXXiIZT zE+Ll}mgC*V)Ly7NRnca=9y!q35oqnOi)YBp%&hwY4l8gFTM%#vdFP#_GdQ2< zpFu2y>`06@MbctptsG7(%R_$m}IZAo3vZ|q~wxuzWLU>$n-{Hq+T~k*eSc^|&UDMEB76?^0 zw1;ZIIsts5cJKkf^rpM6&2o|gk1BT-LGq|RRxQ--t%Ef4p4O?3>RMXrPNdYK%9cM)pqb@PE zf}oA|*q}A3Dzs`OWs1&z3A<1d{HV|fjqS-$t%@CTbD3JTdqg$HO_s0T_0_4dsYrWd za%@s9NvLX|cfjxW$7Au&efo1Z-*9tVD|>$)KEn;_i|#ri9qDBHK=#1>U%&sZJMKy* zl5i?jiOkUF@9n?kixm;JJEo$&tM}$FKyjf&FD@>goSdq!ub-Zt4F-d`3~vxj(4q~& z7Pt_)MN#8SVfZugGB$bn=S8Ot!3t0rHC$*zK!$wCx;P^JGU**fi8kD~pSVw^h!Ku} zv^h5K^;%EwxcKpcQeW?`1J1fXvvXg1B%2y0<^Vka2xj8F@B~cbz0>#;Mtp?;oHnwV zk$s4TPZn`#Dan{)7J*~wiD+u93z))mFRlS1NI{D}xPTOrgOm&4W~MtMqU@#c(bPDP zGKFt@1`um5IWXVDbPkGGdhw=333(wAo|lssm1j4%qEbjlMJ~D~v=*2{O;P?7+F@uZ z#p{AfDaA8KpQeJv^@2I%GHui-1D({>sGVN5Ii4MFOi6pBRx<0nof_4*RB$0hy*vz> zT;`p-NKuqxn@i3LuPgskueiBK=6M5(0?%0+D&eB`J;j<`{7+6Eeq!?QV-trS89(?i zbOL(l5m;cKI`ZVy6;Cle^5o><$0rUwif_jcJT!LTL8b>E8b9>N#No#$S+J+4k3KVV z^m{W`K0AHo_em=&E62b2%=kCIhtILKo%=r%Y#+z5Wo3+!=60N1cUdK9WN}tm*-CC08rC!bwZg&;0)O5XH z|I#f+fl(Gk;@To3S}%37Ou(1Tqrs7;k9=Dek8A%xYFf%^__>|s564OuZRk8@cF=s#Z=yrnS3*FxQP}|v?-xIHFxI}2_XPxra7(AG< z=TsljUnPWa6}a`7ID5p+GN8k$t-nH2&jqjO^uTd4!`)Dze4)IGoCxS=;tkxy4Al4F z_V*(K;MY`NheT|;Y-sC9OKWG4dkX@9*DbV@ULs(egM@<5Y1c6eM>4Zl3rn_$@@&;Y z?})1<&5hgBlXiBIowKVQv!285Th4#|-9`94BDuz!S+$nzR~U9B z`}ly%oLSCx^@2?kkK-H?pF6l->Yc^j0G)o2+oIX+D`@b4d_v^7$-24!A5F_6t+njv zZ`ANNlx@}eCdxK!H^HaUgKZeT)kc*wFvz)c^XJe&CiW_dpK?(Dl&>Ia(Q8`SIV)TPdg*+Pu2ZeRcqCzdh4G*k6m+|eU4e#&qQPafj0_lLQ{|I7dLf` zJ`5{X=J0EqtIdIex+~str zZM+cb*tc z@+yBVxfMiS+TeUP)(ApILA+Ta&rt`O#NeGOmZjPND%pn`2^7)Kj<6qCUIU&yZ6!#{ zmu4e>ch{HDqDUJY_Ob1nGOHbhI93{>qkVvG#&CXDzxC6+a$~Qb;kK)*;xs87d*$_mru)-Uu?q!Fn+oOdF&h=2GMmsf6Sc?YHirmI;R;0_m|V z+j(ofphJ2-I0SyWcdiPIDR@9XP}XLotarz3UGEi$fNmEZ7YyAv;nA?@g^{0 zRY0HFS4eQ!U@V#CA$nc2f`4yoJQ^#?ei3%>mLr#Hp6R|2?#}k?$aQL{=eF%m7%$IN z5IluRtE9wQy7v6-16aUbvM3Rud&H^uw3=Vh*8@*ZwEy~$ySws%9qp|pHk19+0f&|{ z7qW4XMa?myr!cqIOGG^`s3VEOv0OC+cDcPU(-h*z8iafpkIeiyQGMhpVOob!?54;m;ngmLb;e|3kv0(mOl?r@k) z#eGfbGn_laUXu=(lp5=o?dc6~D5e)44H&h{aZvmFe?kxBW>8Gt>h{E>Lp@^9u9GfO z#Xb@wt}*S?K}d1!mmn>Yym8=134Fw)9O$lEYXEJ5GOc}hk77bB*pqHS{H(RaLQ~Bo zCZZa28ibvw>Y_Q{DuefJZY*Yf`uz41epn$ddgaqDb88|z^t4nD`_2^RxiN_j{a{jPul3H|Wp()6 zSnh0xyR(7lyE^AC-9vF;Q)>~WI16U8C|KeK%tHi}5d%oD*|LFpWmxDR3uG!GGt|vP zMN{wu2lgS7Rwrw`#&cL+_%gOeCXjfOC)1}92b<8AeR*0zp1`AC>Z05aoqyIic6or3 zjD;9bzRzmp!9qA;N(&^_m!4BIhzH~t!*P$@RQZ85MQBaPT^(k#kg+fTDaoUj(EZ38 zEOh59uE0*8%TEB~hDa6z*|IFgQfQ&nPd54*7;a3~a#U-oJ~(E%Nfi@vP|HX*hmg=v zW&G_Li3MqasEegN%5&(T3_Tj_B;6|r#XN@w{M>PP=_+16H zpL|0mkST=(0=eUVB~|L^%NKAje$Zq#+i*g)?2GhtYBU<@&8}-zJylz%o%0EC(os7b zN>E<;9C#jtK;hM(c$B~rFpN>ru^{EY9mfXE8H|EKYK=F%vxc}<;uC% zmqPmqxzneSq%C~bnB|m1SjWNf4jG=Y3(Jh>8FI>gLRf+<2Curvn6L5EofxgJd)1w2 zNkU3p7EUKI9bKIFqjru(Y32{s*8Ewxm{kv;J+c6jcrUb7^Ycfn10S~}DdVO{xnB9O zA}9T)k(`k{mGgmkFR}95VMxlVO$uDtv0hX_EEb_58Sz+voP$QcpFQlnKQFbmQ70Kq z20{)C*t@?i?_7v2%-ac<_#V}O6?*Y_ypzjyVAqd9aCehMc;`7I+W4M5WKT6TZdmV4 z$4HXQV~gw`9Nu_(`~q6N0K-pGI{v%!1gn z=}@rnZ$t#fW_wZo%l579Thd6>CayYoN}2q3CyOcVK_6BuTYTE7Q)P2j?S*6Oy?c#m zX!!0V1l~`pY#cEaqG_S?5@Z9loG=3<2<>KS%hh)JLX*N=J~0y(NK}piRN4H>69Ekl z0N~UW_P>Tt79u-!qq>h@WZzd(R^lpx1EP;2&t z$`Ygf1(#QeJ$W%G)7CZTOvB}%Fbq?t?31rIwmDxil=&SFp;|D#F5_`&Qx$slgLMx# z-Qr){!p?(u!ZcL`6cF!l0_g0yjuwRgg`7RBkn~?cDLsqBIT7P`HUIxxyCP#3w6k1H_drI<%_m1fDmGS;m(ljkKPkZUH6EP5`IS2FfBNI=_ZsKR&Wuo=N@gQQ9|oJYiK5-#G6w1Js^gj)`2d>=|%hR^Z81_1eR#WF>S_ z(D=|=y}$8e*vSonD=ddgZ9oFg8!{|J*!i+2n(mS4kpI26OXcn%ru{i3Sbt#EsG6zul;sNZ9!j9^@z>!Jt4TG^^T7_DR;c7zNJKWUu#R%I;4iim8{L z4ZYtE#=c!tDRXh&Cg_KUOYu>4{}YMJ&YN)c98s7{PhAa>@nBHpKyNi2kse4ctE#pS z?|g4PQ4j2yS4u3F5Otk5oB`F`d$$Xdx<{AkTs#IuTk7Jdb!;E#!j8_I~PdQ^! z!D~a88FwSvlS+59p0C|LbI|pt?c;uZR&-MR&SWp9qCo}T!08RuxH7}jIHAh@u)Fi5(NXNb=e-b)QJ)_P_7((J<{;I5i^z?0%e^zehEKr`OFt4 zAnZ_XJ;z~!;%w;a@7EMoxbdgIX;-Mz(y?PSRN*QXsy|0SSfC1p`)Z%HsV=w)pBT1E zlI2cs-E92*UCmhQbfoAw1r_z5*VSTNvX`8tyRfwIBeYoZA=p0jZ-0(uJ!%wN8Dkly z+(alp8jjgNK*;qZ);Nq=MSF8ek!NiN?(DT;> zqp`*RVm zi`xHpk0}ljRoTLI^K`$yxTIb3Eo{HKG|2o}l>Of4agt&0m93NKNUz1h9pUar(iE<*iomTEc1D)@@Tjo_A*`Au>Tn(pj)9pd z>ht*_)EY7ATXMm?k0dl`Z}ZFV;?7E&9K0dI+rpyw?z+^Z#MT!x+}524<-p4K!g!tQ zuRkN^Fp~+|k?ZUyL(~o)+%@8*^jvD3dCcO*-w6W>MhlX1JE%d1ML* ziwUO5PMD)n4;Z|Jhm=qjX$x6=KItSDb4o!O&bNaR^d_gsUCq!T5VRSQ1c_{DtSkZt z)iph#+e7(Kof21_P*}~Y0HKqBk2=>q3`tVEFejOdoUMEbTj-;xo3Y!G*ZwrqIzopy z+rXsz@Gbzm%+=H9=g8Fbfj)3aXXo2tX&&;%0r|WnGa@aR>Iy?Fq8;r#W-i+YCtJVC z2r3%`$d5(RWxPrgMs5d&rp^)H?DDs!OXQ>qTq!9iWN@sTO>owK+UiI?`*F6JEHkKz zrj_-F!oGzBK+Q~?8)7t z>o8S~TL$MdhsQ+IbCyL{gz$vH)Wbn^$t2roi{_@v5J8^WJ6z{Ji+tf*KQe0QM3S)d zOVyMm;kM)~3^F-KBP>YdjfBLhjNVol;T*vr7IY#{Sbt+H(1(U!(65$h;(-@(o`5`Z zE4lXp@;+IBw;mr|6E|X%(_D3%H3{R;tJ~4eXt*ac_TJQWL;C6c*XJlA^SH#E1S0cH>xbMtrZY*e?Z5>_jVey#sB0F-8)&L;Dz2F)_LRk~VMt*MeKl;N5QH-5^IRV$h%8C-e} zMmg+@bzY#ykIF6G=3|%)pcC1{LSTA3m?ILS^$WOf3q@Ec41@m=z;F+gF(@7_{r@T6 zT-C0i^B+*GFTD;YJN_+Z?t&@qujE~V6kEbOBG(X*@7Njm`8+W2*t;wx@oDnwYbv#B zvChuNjPL4wiG1lI>lLCn#}ntSS4n?l%)CHO=+1&ZwZoHB^L?B9w0)7NzvE9%z^e-j z9iKlrx-T_Y!(g!CL~7J@Byrsu{ZI`Y+(f%MA4)uCB1(1K-4SkWrJ`T03A#d8S=!Cw zkSQdPxH#s~!%wN_hwByB;m{;Af+sQ24tIi0TzNJ&E~4KEW1RIBTbRCGf4;T3Qq+p@ zdR}{6-VqvhCEgUcnuyz$%2^P*#~e*a+nI#HyGk}ve=i+LY1^l=K=e%|UW%x)291#C zYfgdDneo~gZ8g^(!$4n*hLvHaO0Uot7_EvduauajQyI3?!WhebQ&aQVtapX36884O z**F#B3?H}uol$;WmXzZ0VU*5OH#t5wR5}5Bs@8sCiwl3|2j}PaGv7oQ)NM#yR@(BV zzB>piIYjMeI60wC53yzyg@{HB4h^e((X&W>Uq70 ziRSCquL_A@I-<-pM{tXh;A_Q-xK*ve#c5x@RMrLS*9bGQSA6Rn?Cn)4v)M%S(5tB; zrg;T%DYWy(49=d+Ebd5`d2RX9;DnWWxNwXVw914EZ8NN4P$6lj+E1XQno1s2uTYtb za4GboCrTXFi~q9OC1i=JAc_fDmd`lEpX;BXI>dH7`UWPd0{VwBM)HPkpkI5n5=vfiE0`q>iH|I4-TP7D>+rN-D4!?!H>zD->y zRMg^cjUp-N$^)t$UnX#Q-_+3X{jef08tG5_KFv;BoBzN;W_Lx?UuTCurl&h&6$&&T z4@%&0t)uzQR1E*#K4i~gmHeWot4h25-7K?;By@E2sxVl`pYL%R=Xd)>aRQR$o;u^1 zeu?826CxaeHiS9Zn+Ip@B)h~hxIF0%10j|gWo6jlbT%W*FUCY1+}iY{TCy>zq8g@c zevHr+*Lb9;5|m1KpNzo$7^d;_Vpo@!|5fI5IhJ$S%t?1$HI8gJd`?>-zZc&shB54< z6Blx|m+&pSZEMV1PvorzRR}H!%wz$p66bxwn?DxuG{ebGQX|oe(5(CD_s_@2=cm^i zn`UuWmude($t_V=(_a^dKe_U-4~b{`U!z*_|IV~_{pFgLHZ!A53`B*Eydfbe3h%2w zkN0Y5Y}7&kgss26x!KFq?Z=M~o5hMwPEJt8(%9bKUhDBpEy?V?_Wip7@|7rl;IO;xjr(aBJ78!)ci6$kwyVXPp$H&d=(8WD63wWKykmTH8Si7%8VzE}{ zi()}&j+5H?SRQWo2Nf%{&%U}(?Fym{hcxZTKZU57z{S5;`dhJ3&@gPh3_6FPHxh1K3_2LPcc%TdfT5gv%f0OuIApqEvYSQ#4#ul!)R%`c8QOFD=$)N5dBt~ z;P1PjAjzj?aWR!b5fvoybQRTc`HHBhVJg?o(1qF`*Mh<<-78c~qcwIt-08TP<*2WzOGR)+sFh%4Lgfu!(e3Ok0lY<~ie6mTQ2cfv_D|m4SBP!{&bwm_TF6a zz9r+43U)`ac8vKaa-7USlN#OqL|@|ef+JdZx)s-ri3rOfWo-+n1Eu$_KmKO^kWVx1 z3TjvI5-j>VC4Ty_i67h}^h1 zj$D&7YYwb0zepBAkRvxlVRffDGj#X?gtso9ptiBNUg*`)5!uoTl=ew>l>?Zy*1@d4 zLR!%EY?N4M1d$_Al;o*Cu32Q2Mldy)Y29+=1TuZMk9Esb#^t%-bBa@wdVe`}}}e=NVza^pJ0CE^)Rmfr09@pH#uRYi0(mfg+s!@d+ZH}}HA zIN!S;W&ZlCAkuCt|KT3pctgiiV#@uQ)gL9F9bZrBtcbl^6Ks=>HFmMK_IiH2Df?X4 z{X}^ck{?ohRvN2&)t!*QCHZu0_I&@hE*P&y)cb^dN$Qq8BR@ZXb90lY>lWpq1a4&4 z*Wd5q;gLl1`abyiCYXeTM7YJ6RPF^&?kP|(Jn48cYOZr*id3wTI)p|2wV>Bc?i~L zC-SPQ<9>A#Jul+S*1ZhDlDBloy@YKWR4#4E%Z~ug8+5aJ!{2QH_QXFu0xyS7IUR3= z4HWI9co@`5HPg||yTgRUn8 zeu72a2bPx&1w0H+o*w_v23~26vEX2SeG`+E6nwMhb9{6J1{X|vV3F2wdIz>NS=+~h zAlogYeV=SMA-hc_*x-g7V)&G~l^alW(jMw#7D#Rj-hjzl#cYTlW39!RtdTLUHwah~BM zepaSbBgg^A+`KZO#$@9&nf=quw5^&>=EOm?Vj{EUCM2TFa-dTt@l$DpoD~R*FKWgf zc8cm#9a5%sD(LVXx{TzI{9#pwoc8f9hG@7eQu7w>#~THPFu^)a`3@`tWGpwE+rHcL zGO@qnn`CIATj7+s1TDPj8f$u&gIC^k6IXR1Z zKu_p4ds5c5(fC5Br{>k=d=K>`+iX`)!*yY5BX>zd zNq0>P)gwOQ^32@7Oy9r&zC0%v1+p&}s&8tf7GhQZd{QjzH=Pa;%G}J&>LFww9#<2n zurLJ zO@_9o>2hr|a^a?U84+DXjk>b@uQgiug`xesd0tJ^6;zaviwg1YTd^D(%E;sPuEM0E z+T9u4xw66DSFXENgv_BhybO|}{XBH(hOF%D3{mfynktT~Lg>5|?de}?=xHw3q;v{u z+N=ogaacOq(vp#3E|loh5u;uAV$y1(gJQ1pq2{mqJ3cDTh4h2(gSB>f_ySu7tPT?r zAzvC6bGFlyK=|F}(ZUeuG+#KCgr;;mX9U)^RR}5?5;5H?f_hlCrS3_xTO|E5#JZ<< z?@7sf)Q(X$Pv7)cqajw0LQI7=7DSq=)VZI)gLRV1_XQ{}k&y+}utuhuk4`YZu2U!- zi!FrGYDH5lEp`!kkAN}w?4M5HrR3$^05&c$M$6d5OU-AJzkzHV?)huk&o#}>e|uq= zqk8FJi4@v#JH`SkwdMP4GIpa+3?-4l(5j9~k<*_#UvyvJ?WBcMen@O+;2*oef5F%o z+e8`@A^hvrSJ|hX9VS&>9i8(dmMi}rvGxOth|k;$T&%3qyg0gIqO;j@QancwpDKUu zvG{m-r9=;3xglGtBqriQNb9JE56P*+PzfQv(IA&~By;F8Fayy*f9l;FLSdFlWk_HT z67BNI6%Bl-vd442aB+P(lJRo<2|rDUTG%~Ut(jmxuhhpuYUzoVi?tfUO_?O^;r)p7|W$?6XT*j z8eU<&r-STvi(;~@#!MI8UhyvaUDxDm{^{o7m+%+bL<%GjhyyD=#N(`wpAnOoUjDAwEIEMH zrlqRfN1%k}>PIvVFroqW#N`(gbOl$+$;pwY(!qn(&o-6dFzRjy(-74ib5l{}t*)-d zaev2>hCbZ7$tGl(1^NA6Zr1J*VJ&a5F8^e!>Z%JzR;?cIfBd`ZDA*=fCe(i@O!`&H0c*t zIGp2wJDud#I2-7hZs_U5*=HgrTtdN;`A&f+F+^Jf*x4}F@DS8t)j4VR%QIc}>W(k5 zno&SYS;KKJ7?E8N8nZN4o44ymT<3RF7t>j*Arv2U&2SbL_K1| zlV5@1@^9l=GPLiPS#aRpZdRHB10AHa!HqyCgso~Eqt?~K<0djP@jN$^kcakpXJ@DA zVTXknKmDaIx;hETVW(q%*_NJlrl61OKy;Z4j!|w$NmpRacl)Z&T9LXoWb3f7un;zB z?1Uy`T@3J(3@(5CE%aNXJd2f87MCwRkEy}({e=8x6MbnUtI6RLP9NB||6pWcn419s zSu5+$kyE5%8mTcY7|DU%%01|kKnCjeu)zd|8YuMQ;S-{AF_fP7DW}9%9q|$qO)3AtK zy{+9g&ybN{BkJf8ntxcwS&VND*pD%xm0JmUFhuI|ztE3)c^$&SO>gG}lQ@lRGIDdV z`w(r=gK7HOxnFxa^Md%6-^A`)&FARe{Z&^lpyKtOSMRTNFHSP(yTn4B4$MUZ?lmt)&<8qaC3ZnW|w zwMY9Vz$?Z8ts+H&8ZVhmiM%81=0^i>>0Ro73M-*s*8B*gti*et4a*##^1s@B&u+CI zt)UtdZ=1%}n*v|e(zahu-tL<~Sv4W9j$RQRnUmRVoQYC_I1s#pT1MiEYv;&$y^4UK z?!Wvs9a{)~2ojI-mQJrY5h!~5MU9E7pUKa4QM|!q_SLIbrooSY)wtWkEy5Yw{qNAi zBLJCdu%g_u6X1O6bzkSjgSAEQA`}{eG?bO?oSpw(T$Fwv&*Zwq!M(h=OwxE0qoSIS zK`CR>G`rC4wd}@Hc=y}Th)3xTP${2h-%2&t*DrMic2wIQ)Wr08$;-3k0*$-&p;5kQ zl3o5Ku%Wsabw|#(7V9k;oDm!@J3V@~A)-^&aM7>FmTBS^3I_6Jay{l&n0`pZ@Adwm zc>u`I%&nSWO=B?OaGyHL^4UtH)p;UD_>FmD8pTIZD4kl%EB~2a#Py!DEt7$Wr83YT7 zWkif3s7tcN5{mg>4+{xENi0-PD4=4>C?W<^D8TuB-Mu|-Uf|}wz+R!x*Bh}Uo_EYu zVyD71c`YHzvxP+KXt*%noPeqtt>=3H5}aA+PUr}cSHaO4p>HZHvvhF4#$4^=`z24B zIB#HW1OFMvQk3*BY~>S~u{6Fs6_Y%NA>)T*Z>&pTx?Y=Ry4V=~jhCI-G{^h6)uS3ArWnRM(AG8YukD;L@4xX^AUP36z7 zw5|unb(j&J^T+$}{vI$M^|6+M;a={WI1~7*3pgZOQ66s{P^jc&GZzn8=~Q&ota(GJBxwu76W5xaq0sI-iho&XN3NO1VKaPNyn9I9f@fg zA8r{w(MjJB;fA1NjA}z8`+&TjOizf6*&W13sbnNY{52LO+cC&-W8wWY2sLqX@^zlY z`s4CK;CPv(_C#aO&5eMb~UgOOrV5blbKtULicAiozzS^6A_BV0OR@egvISwEI_VYn?Bl%)HYUq_yAu{-#p7O6oQ4O;KWppXn_m=bf1veAvZv#6AXa#dn z0zzg!ija3JVx(X9nZ%lP#d!Ya)f^vuv?}=AUD%#5J~JZH&$5Stog;EqP85ndOyDLN zF+pW9qNSxl57k#xYLWC_R|J*fZF?zPAch-I@(m}vJwu4~uCs`stU23OnccapO?H6u zMIM^;{_uy)=VsS9)>M_?>JpEa4rL8)RZSJ*-8IaO#WvP9DsLXJF_mm7yrJ>M?JrS4 z*zGc<<#-n)LN4o?=%57Re7T7oM;&=r-6gSHA{Gr`&+bxBFE*Ea_P6x7(e}W%B0}?7 zL$SzSBB_=o#hO#Vv5P{B9-=(S;hzKXqc6#`?8-LBXXd0*SLrOhL0@F{a_PYm_ND@{N*&!qUak+&PsEV45 zS2Xa*C5XYB`<2NXUy+%%gD9JOngs6()zCqXy}JQp>CHITA8JFlIDm__<2T)N>eG?=uDtNtj_3-_W51+vR_4J zu5*2XcFNIK=R2>0H-~k8M6PB&=G19kAJ7k%7dNhB+6HvmWX+zFZ+C>Y z{I=gO+@ptY@q9;VUZhqbaWovh;veIr;5yN_h&vaPaWEPdwLQQ-9#hjXOy)6>UXg$O zx5X67fMtji_Xg_rw}+=%w~rV%p;82gXls`!#EhDjSdv@d-+PwM+4!V_JDleXmzA5q zxMU~?dVBE2FJlU4a#=hI?}?9M5?9^liy+>p3y$#vsLXR*BYS|wZhBF)ktQH;@97(t z^(TPQzzucL!WzfE1roqypKwiASWJHVIXN}Y^i+DitbX~V?_S5ix+}DI{BK7~Y**=3 zRtPK}{P854yI-AdB4VoLE>p|E47dvF`l#aDD$FJXkaQ z@5OFz&WkhT--#BcK~J-~v{KJUnegfgLVQ{?<0RGtS}g9jJW~X#{L6JNGztnVWO|!M zfqvE8J1}~>M2)G!uAm*<<0HNwLimX(a&AgjcH~HJUL?j}U*KTH#8<2*-+MTGm+~6_ zn3IIn8|7XtYYm>{-N@k4}6ph9jBraj&wgMFbs>TKR| z>LVQX26;xmX=_%Nj0K&}B3QtXwvoN}RXYz8ROzm05M@DuK*PJW@Ba6D#6m|RER01k zCWCaG6wzt?$x@VAA1u=W$J}4%Ci*Ilwfgm2U+TI(ZYPN37c8ZxwFc8|sD4Fuy>upG zz@A>>IKl+(#TJ2qfjHRM5)u-{8Co?ZferN@uxL*CmlLr)Q{#q6q~FBdecr05^o9n1 zfZ%k~e~lcBxI;q|>rfZal$Gt9o11$Zbdd%~TYxzG@gD{QmW2k_|7;uD#rDrj_%ipAO#!H^?+JGYVf^Ut=WA2=g&;g-TS3KzuiY zLhb0XtvLW zDbTG+oWWPfE%A%z86m$OK z6{)2vIDGd`au1xtI#`A9z9Za4j+9EsP>ook8L6G`G%J+m1? zrJHi6qB@Vy$jH#F|Dsn%Do|i-(u=nhmQp=L$cs%7r7h%n1#pSSQI;ZkB_%l%qR9}; z&PUXflauA;W$%+kH^3x#zASo{-v*3=`*}SxyqfxkhOJ8dSJc6PwStO@3gNCjK}j1N z7M|jXYkMz7ktl{_ja?9JKMuoep(9<%6Xr=sAR|2Rs1gZ%J zoNu>dA?(*vExMzsmFR4Zxgvry@-d21CJgtn8b(45Gowlw5V@97oYan}pUa(;u`Gn7 zWq1jRyXG|``>?F?47%Azx@n9nW4}jf6)${B`jyBZKORqmZaRRN;;D;^3q3vk^S|zA z|1*S)!>|-ne5mZKvO+&WNsPnTn8mU0s4l%)F=p4>*QOgDae1Shp&syc=5jleRf#o; zAFPz$(*(Ocewp}~`0Zv;iMYrkFRw+u3@Ixs+XhzjlVt)D*zXe{uxrCE^h~_w@9wX@ zm^~hSZCw{LQ%;h+XN4#-MsN>q0A5&;l+pd9YY^aEoFb5*J+&KYg9e!P)KWnb3=Am4 z|87o$fnD%gLIMi{P5EW)fmi#x@u%d!DW9(GqobqE-7?g!J^0v=Ilm_1O5k5$j|7}Y zC@zocwy)|vyv{R!vH%9UWXdLr*~l0Ga0r~ICF1B$G+SI_0V}AVUu;OhW+yo%%I=5& zo!G*7`$Ewrk5dp0OmGRNz7Wr}F2n`iLLin6VP){k$AymAS!(q3Dk)w6S7)dm_NyaO z?u<$*>aH?=9o(Ez=6iGqf*UwpBN~B>Jl-Ey`eljRWj$*ZV>itM{fER?#{+T8pIc!*f)6x7t}UTJA*&wv?b;^Y64fNbE@Y#A-knd?qja;&6UT=udQ`m+Y ztRXe>+7lg;CIVg_u*_7L<5?@LS$N|?KW#Ex3*Sx%urc64`w+M?A?!9o9N3*4h)BdL_oP zKok_~lAd_fD8*$9ygruqZG5oP6IB^;t0tLDTnh8(#a+3AHuV9K~uNlD4+tkbT4-0;XRd1S;~ptJMets5A8 z(moE^mDR!Wo(+v(j2s+}Uf-;Gz!k`3x--+$&jJ;J+qByB{nj3%j*iX%hdh35JyV_C5-U1qnX)?nAVzvA)Gf}UW4)Y7m=UMo$C2b5LHUv7JE+}U zw%n?sMuw;zf5a(BE@x(DDe?Y#^!xSba?4*Ku5BIl zjeb*SKWh=9W>w1Q9dzvxWO@E*geiP z|65xJlTtiF$e!&wVvGBviXR^kdp}t`cm{alO5PtaO*$wSyHP-!;&qNPT!IXYY-AqC zCK`4~{M=%`9G29<-}_Dp-%t^M30nLaHPD^Wb>A81>3#r8O^cI@3oi$vX7KpI z?~&jM~GxSVjDuN!5%~qC{L_2)ZB8C8P z>3(&$P5T^eNM;O04xE^nK!Z-Bg*X4jMd;U8Skd&P4O z-Uj@Axcuq3$duwAa6$R-_vS|L+DKLwdoo*L=Z?(A}3~! zJ7i3lQ&4Mhlk;Sb7KVbc;26l5nCNm%^xV13b0KF3=3s+p-hm3u2-0#+hGhsR5~eNa zA*0>Rc*g9LRbu;0WC=Xwg)N9LyoyjsOU`Jplv*sV z(lP^&ajU}RiQZfiS%%)+u=eBy-M}3&d{(v`FTpBVvo!Kxy%*KB3MDFD*vgceSl=W= zl&&~ov%@tLo#j(s=eUEBjNx%Rj+(aYJ9*=a!FVf}xib8rWzSCnl=SS9pk}Th|utxG{8N0s_I{rWs)sKLpnP^akkN$0LE)5J=9p*k zp`s{vL{-N6$u0>JI5kDi-CDVCn^lO1B=#i+BHu0`3Z3QUI%1vmNe%11N9Xi0`p@Z;4h@2p;3%FS?kEU;)cAvz%NK# zwYEJ)9BooiQsWTd;>OVxE&K-^)80y!u#x1Z@}hw4DQadHY7Af(PfxR49tgS{oXIx` ztVF9P4hCpVdW8)TKkP;Vvnrwo1O#9~07DY`ePBS|0JBtA+X7pZM*#8R-+}`*Q`QXa z(^*uK)Dy&UKuY@s_^5jyeQdwA5rIE2%d*w)wxC4shUA7?^`FO)&pTkbtC~g>yLOat z$~;~VJ7LHdrrX&MjjNAOWYR#(Y5v45IXfJVZ03?H11s4V<1q1|UZ~2LsVtEO{q-1H|QkU2*noG2B zv5>$?K>NDIG@V`Yqb?Yuvg#pxtJMjjk??)EJ+H6ltKOm_eo0ZZLqtwY0RF6Q z$k?FkL2GOZbTu_YF0xENer6lD&kGBZ*Xc@*pq%Gv<}f!Nzs&l@EXz)>Re#gUQ)XzA-z%@|mk@{;;%<;0M#}-q@+gZ|rc%64{X}{j$3IVEqDuB_3`H$toB?_vn->bGk8B?K z<6hTz+ZkMo1U>?IOO*XE;RX?TDo+OB{1BjnWM4?6qhhidT1Qmx)sGEP^bitIx>!1n z+r#Qqv}#||Umyh7R+Ec?;53>G;-hj|G&lPfmvCWRW@5$>ga8ji76QYqo1jZMYLZ!{ zx2pl03K?8mTZ(h;-)c<%>JxULQ7#{_8TU9mHFU8;fDiOa=PE7rF zNvbwuW3jc}+}%F{`CtHwQ<9O{VnIr`vWZk&T~BN1BFc?ESy+-WAV(caf*TDXSdfN> z230jRIExwJG4|t2fhi~sPmV~(L(3XC-eIrpF)#Ug|5 zh%P;kd3OcQ=gCgD-?KA7$=y+OY73d;&`FY=O?g(-GCP%C2m$$FyKU_R5ZX~PSO|;9 zx8fkmoBF1HPek*bn=GcRN|q4QiR|5(Ts(bRr`TUYc!Vx4cB@5Dz%Ft_WY)d zTw0qwz4b6N%s}E$xiTn1v))-bjZvP8m?1t}uFPzYy);ts6m!hJe_?%Hgm+PdH~K9a zxoSgpIi>v_^Odg7EO|KQ<}{&nfQ5#NqoLvpKYVgksi*TK;2L?^c_JC8OiH_X(dKY4 zi6q)#Lv-K2zub!Bk-Y(COJmz49@XL)`e}%?r@O)9HySrjMbH%Z_wV0kL3hl{mE=b* zg{Go|Tnak4cEurbmRrWFi#!M*moBW#z{C_DBG+%B&AHL)S_Gv3KO*X^#~)z&tMfSA zZAj$|>*Jh~V6BNLMmjnq+dF_}ml=PO6&ct2`~iX@TNzr`+?+x1wWLG_EfHVp;Vgp8 zRJsUB{-7L~&F~ka2c(`h=FF&^yqIFMy>Jz5=dOuy7T&rh6N=k$U`gNXUDg_%4R5J9 z@W1!We&c^G!n;eP`2wt1p&-BU)+G}-V6dX0>&0V02)U)qWR|0<4Df^)O{Zfgs?g`4 zfK~UhNg!B4(`_e|r0@eI96NO(IL3!Ck0C3!>RZAI8Bs6<;!%vwZ;#0SSxwG@OTiay zfd<7t1ms?vG4V^)75%mueJ{Bgwth%xKy-w!p>p%e<%HmTF%3tSHEGVpBXxYD7 zx5P5EXg70o*P#BkB@-!o$n9K?U!`n%n<7mc{BRENq1myqv0iw4+xONc7lIxw{rLjD zg+iUV@V=6i@7Z9@@5CjYb#+Ns%;H}C(N;U;?4PNnUAK)7px;wS9LHB*FS7l|^bRYF zf`HRpOG{2z51q^g2H-I!`ucXK2yF&DWUBm)WkwK-((; zm$eKwfn7Px7I}qy(#=S0pXN_r^M%_o`le+`Qh>za*)DsP3kCJk0hCNj=f~f1C44}Z zJo7ah3YDWkdy`ou{7~Tr$>&9nLMuH(YMJC1t6xN*(A`IXk<*!UQcBCU|SXC*nESzkAwU zrLpDaG_s3XMh2D2d#(W~zbr-r$iNwuvZkdd^Ht4R}>X0pZb zlXAh@+8X6vKlxzwK}Z=(T@C85Z^GT{vn=1Lst$mB{^R{|9ncv2_x5Zo3i4A)fwVW> z8Q%Kdmyb}KcCkG>(+r)%%|V)UI2;}f(7h77FJHcVt*LQ)-A0Z?ps%Vu&j97+9fNBT zG6Sdn?2ZcyY1q#W%95S{Bvt&wX!cjS?>}_MxeDzm(fxd%jX*s{h3f$w~@US zI>Z4U0L&_Hst4E)QQC{gq$ z1l_xPcn!|0%uYDp5I>w>mG#RxYBFicEy^f@XtLv;*z4seg3|YsjacdAB&hMxTdM3W z^N_%b-(W@n8jxpbA)9)Rp5mFu1 zF#l05`*EJ*4_;b@zuCIOCN3_5rd>(R48`>g1qi;l>WUnfsGnV1|B#_-;x_AA{djkA zP(If-ch#^=pH8-~1Xu>mhQ9&lNla4Gh2^*E_Q{drB?N-g2%SqhOE|pSb8fp`-O~L( zj?OVUuWpONvEA5dY}-a-Hntkuw$a!&8r!yQHn!D!zWXmf-Z7H#=A6COnrqHy>-bry z(p7uLL`VN859DXsSYH%HNmJw^1Bqyk_xL|rQ26K_{hnaw%5aWU%`$jNAiH6vxF0}g=L%sxdW;QAN-USY8=Mz5T)n`eKJ{)%YjsLA%H z$!aCi%fw?sw47sIZ9 zMgJyl?UAs4rto|c-rL75^w^aiHWg3Lnh=q%iP4P?m_ae$PvQ%ya-~rz)sq^50t@pR z7@h*V2K9%HO2@1?CZW$_8l~|mnTRTz)qWCwRv*Vnc44?P=eOf-{PrKoB#fJqSabeH zTvdwd2#f$yT7F+geJr_hdr+zi@-f-#P0xkx@oA!Kf*M_M`lm3EjE8fV9QuR%bY{)KX~`*2&5NbFspdS6_q8DvyTM>NpNQjwa3BfBE)i{ zP?9@eDcwG6WEWB81_LCp*rKwR!7?t_HB?koadGREk+ms;#y*hZSh?7nuARIz-QaX% ztMjATjM3=AhV$u(H+>VNO@j1a1@;Wo#Mm~Bk1?*SLBmPzRxx*3ybq74h9}(<>QmN3Jo(eGdg5)h6ot_ z+|Wp=8FLS&WvP3)299eyc|_K)hWh%uVlnOhUqwrubOxzi;Caw;sCLzQT|Atesn-i7 z2`OFSmA>9SKCtSucteRH5nI;EGGg9fp2#pwo5RC`RA2{XA6vL@{FQOn)HE}8hdCQp z0oWc=N}%a<5~duK>+zt_{Ay~57+HXXQ2gHtSDZn@$F*Hj@&Orx+uvJUyqW@D$ks$A zM4<{BPH_CMiiI$AIw$Z?x8L=r(&cO&DI?iMQ4$5D84wsWTr5#m>KC9nCxIcR$~yTP zvnA9}EkYbGHTs@v-vCWSFfcQwd3V&Sq&`!EoP?3~Ls*RwUXlb`&o#xgbdJ@!*U&8t0!dfo`sbCcpm@q>gh0L-ArM6=p#LIg=h>Z=5gD;=l9KD$K2AU*6;Ftimw^oN7l%ROQj^N- zH4_zsn0rPBF^b=mBEJuso=(tMC&Xy!UqgJeA<=Zx<6xa9VnxK4&I8qOLzbjm z@!yp?6moMsi2Ujlb*|y+Gi~})&)ZWFwS7Udx9(1{NBi`dZ!nBqzEQP2?s{@Z zka31$5o!pt%m^n+RPf-RX$FUF*WWAc>(E{QG1)`|Yhg%R)ZkRXhSmIv8L9NCGc7KS z#oaimeW)*N6Q0-ueFPaGg&wsK^QLC*PVQQMo{S7>)k^`sWNP)K%;c0>D>`v%mcI{ za&PBo`~Ip|$6cywyih7y^c4hj)u%{dE^n|vE*n*L42NBiU$Pgcld=oyZ0JcVqIWAr zPr|NAbrG*4ZcqPio3j-zaNRFsx6thI2X{DmSV?N#%&y8W_}up}NA+C)B=6));Q?iN zop=KZRz=Dk{L1_-v;4-n1~1YI$^qUaJ&gfbTyIHRb!q0YOK(1^5}Mcu-t)$&H^4hv zNqGKN&lglrK=>-h7w}#bVU4v0_FQ;YypeTL)rp8Wsv0S)8ae7|O6qw~vKYg16-Alb z-Ei4WHGV&I#nmzQ6-TzBOqfIKusR)fxSegH`%Z(S`>>jzu?!39EtM#u3UNHjU<>(8 z>NoM^PZ2Xh?@aw|$hk~fOUbk^zlhF*b1v`p zgR6Xlqwz9&=p{*jJ{NLkY1e{9dAl_-uHbYlzTc6~V!9G}&Bqah%IB+{_S3b%KT2+_ zGo2AFu-dRmTZQTfL(PD zoQ-Ln*({voCHB5vc0nn~0=#s$uwj?=^O%DNoljK^(bg-zoL|7}yS975I6j+8!H2pD z(y`3lqD_1;GtUXL0fadcTqjAxuTlSj2S3bMf-G*?1a8o zk+dZmG|U-Zwp6Bn8a|sx6!i?f8Up`qV-XbEswYm6)VZGS7}|icaI2PM0jnE zo|cu?NoM^7H=J-(L{V`rNF^$k(K+aXN0ZmnDR4V6I4U^yZwevHUY?wyNC^Z!KD7|u zBCEQ(x}2OG;Qw}Vc!r6ZllW7f8{G67V|9mHl&ID9r#(GnYE8Vl)g4#IP{;Fbyu&i0 z-Wh((U!LW#)#D|RHriryK2D?ET_5E`YLm~q#E;Cg9^wWA)#7YMN{}AGNY4X{CRBVR zqK82drUKHQ6_i!}$x$UYN>4+S z43`UgoTiqGqij5!yjJBjsT0lt1Al_eLMsv8E378v&fCepeGJ6$O6>r59uQIivIhUf z@6hunS(8TYl)=J&I#AC+#UL?FG;DuD!Rj#bECtecfnTs|8Tj#d%A^>h}9ozf?2wIFjeY(e}AVII5ti7 zJ6}JyYkhhHkKaJzcVA-PDgJmoUn#^kMv}h8QguG(mq=IgB+%8dcr2HH*U|=e26n)+@)pj~T}Fh$%9hi!gGC>C7VzU8E}TDV9}{1KAThZqbdY$R5dJ44dgbK=Yo%!t_ z&J;#27#2x1#i!CkVo(uq_xnn$N4`mxMn^{jitz{s2S;t!6Rrz|XV4VG5M>R$g-#|T zsHAnLK1%QC#@ZAj=hexDnQ>**$KL+&)i-R}zhF}Nf|ibv!EL2tVuwdZs1WY%@9XPp zg#`6lb+;84h5?I-tw*6ab~;;KU7ej4?2Nx0Iv{!St8;PEx)u2yIxAG^FzH#h3uOMD>qqb5 zD2O@ldDLaG+hvTEhQZ=e0L*o}#A&-tQf2JF(gjL}EM8COS|PWyB*Wg7H@)>J0}%Q&KRO zsCHFURElW)al@{9{vlbaAjF{GMl93$bK7>fe$EiK-KOvp9N)aN5E zE-#~^qTDW4=QcL*P9>>P({ns*)XY|>jAXdKDJ}&j>Pl8-hEaZsNfKJtju)%U%}t;6rfuYt7JahB*0{w$ zzt*D2Qi-nqxG)%SNZI$m@LQ(qMBqvKH*S|R!&yvxIE0295joRsqxb9oHxeBkcrE{K zM~J|oQ#V$jLWgn73uNck)!6KTNh(&pW?y4!Y6{!d&d!dRm6!}_MOrs(J3L(a@eURZ z9vuTCU)`dN!8g0Qnm?43jz+Vh|B9B2kMNls5;q;SHsxs^9xh`Jmwa~kl5-oWqV=>r z)3)=3gj5XX4B(ldc&^u^Z4AhdoKfzLb8;zY6qAE0Y}h~ zU=7|+H!Y%!k{+SVf`O!0blqMq8x+0KR$*AghlH89@Esaj<$asGFCBY&Q}set%Dn*o zBqyd*GA8Ek|?Le4-xvtdMTjRa`vYLFU?V&n|)Jypv@KkW11wUjt zO$(<-C+St}Uk~gX>3W_P6M5f&K73O_Xp_zysqlOIy!U$xg1>oAzs{cVB4IByu@U~= z!U!G}91P**!zQcxUmQI%BLfIBO#^-yAU)=N?X~kmUjFG0F@?S3qc_&7cvl;C?N&(1D_}QCMJK*e!ZZ7hd6&JtyA%7hLE|z7f z+YZH0nSC)KwgNI5sX0Z%zMrw=W1#eK=*7mzLH}d}0#vt|ulY zl=7OJF@u`?{(WuOc3esdzRdyNsQ3TeT>fMa;FnX!mso*>H}EF#dQ3?t%vx6yZ<`ZQ zL#Z1rcFxWZ6_quffD5iki#{*76_gW?a4N?NNMU~RuS2(YVq^7wv$q8!g z3nn=R7PDD2793(l&<^c`C^qqG#&^Ga{KRPBS3asp%AT!4k%%n|1VgRwg z%kuAF8kHG44@*>n!}%OFesV7L*wH_lGa{k&z*2+I2UeWU= z!4gpT9lR25&B@D$m};h2Np*h=Q0w|abJmAd)YLE@rfv^Lo-fu!xicjyb39KrO9}a& z$DpV8hN@B-k>h^k4YB-(^iVeM`Fz??;D22F&x!?no6ykE9bO&_^~&ozS?bF6@FQQJ zSWaz+^Ap4cAp^_P0yHFRj3~7$G)gl1|G6RUI+X@QvZup6OpUGVOidwUUVwb>e_pxh zaDxOPVUb?y8)#q5Mgxe(;L4EY1Wm3Bf^2(bP6bBFRLcd-ilWj|1$lWr!14zeB~KLm z-c&jD)#lx zueWn%2*n#JfImnT!s?d4to|F?mFN!p09W;#o&@< zUdQv8kH~bu14U9hj+gTojTd=}q^l39?@Xg^h`RAhhb#?a733+E&J~6sPU_=m{dV$j zBz45>9K7%x4h(O?C_jk{PP` z?M=cpvapsG8QTbdOLDd^5{8bw-6AmArm7kpr`0VqBurZPH7^w@JE^6%*+o;XGC4>~ z$Htb^zlB^NJOk51wS;Fb=FWwrgoM47 zsj2CQw)bF1_s^m2In*w>uN)~~UtgfQ$MHX{_Wb*_L;nKML>4`4owK6+q<;Z)NHM2- z&+crprkb#!7Br>#X1xR$(t1M-nkw;hlg$Q49yZr*ZvZ$hbv)Ly)KV>|bpC1PDP)=F z7z6OwC{A7_DwLgl1g34fAH-nkxeJrhhmf}<-rhPq(C-@9+y4RZHO$PY|1f|f#_w$* zH^+THqO6Rnj>p%rad&7WcglZtZOyVtiwP6T;%Gd%^_*V2Sx6yDO-KZLf3p8Lx)Vx) zh=3^QiG`Kb(!}AN4FYh}Or$E{#RLu<2wP9r*oK6JyclKyN;cs29vT|@psaKHE3aBr zUcSc-gzKrI+sTu^owsarx8Iu0O8jfL@(in8l=2V1`_KFo+vPLBaoHJHMO>)Tf>0|s zE9fcbzzrW5t4|mCADPF*A|hO?&gFWbbi;1(B`V`KEW1^d!f>QAvKj}0In25}7(5t( zAjvvkhKw&F1z8{uJ{Ad{g-1pycAD>DZFY7RIF83$haDgc|?}W7WYm zcDnLyG@ooArEJt0~vEh!+%a-bg;3|2ZkWH6|S4TFKkY4@;cXvi_8w(>V zO106oopZkVxtalpvK98b+H4ccpe+8S^z5J(J1Lw+aYhfYykP+Il7$t?5`@4vm=mj~j z+6z^TmCs6RZGR^w3dzsh>hkWDkQv>LI7UBNXTn5Xhu9%*^FqV`XY&^s-QPbyKR-Ef z2Y!djhl)983t+)jO!^5)+CR8W*u$1(G==+A+0fKfT~h;UO)YM!cFrmDjr^PgA0PW2$)eEf zMw=}I@R&n-;z0-Wty5c?!ucD^LgTNrx4j>r`+Xb`1?U5L2O&{5Tl2r}Q2qliPEN~` zIo2As#RDrZ_#@mLksneP90-{pZq zkD~rnQMDAcJOuDEq6Z8aJky7pk(vM?m1VGve(rcsd>9Ad@u(3p4Z>0!PXI=+%cI_e ztmfuFILNk`i+p^ER#E9l_y}C%zwTkU<{Pa$?k_i5G7FNaRh#2Vr^QXhMb5>1<)&qt zc_S(-Y0)uMrHs{vKU=K%?O)q5sAZFFfvf}uC1v`6Zg`_?sxzUUw&2@IAtD}!5NHra z`$HzhF8#NW>z;oCckJ^turcVqUh0JV5nv9#iZt%;%_(jWTPi2I`yVZ^`CH@VARC2I z8{gjFm2&i=*p*LazRj1Ix^F@2?)6gnR*!2MK5Qh`HJx_7+t8#te;Y zlhfV&oxL!c;}jAm5RGl#*Ded{L$sf&A}v*r)PMKpr3eF3e%?Os8A!>y5GGw@?tB~r zH5wlq8wReA)wC@}?q}8V)B+;|!xd2HK*C4caSy(L!}Jq?1Cn|nYsRrSo@abt3uJGbis8vL5JkBo_Dec#(QEdADN5tarYz~LG9V*{a> ztT+$*9{clZ3c5zX{<5X!^Qm}8uOZ`6R!$Cai>n4-@TD=SvBR$IeNqgB^lk@ zYKy>jfF>t)j+w2+Q9UO1w2UMQq2#Q^FdSN*We0uNAb@rmldXEPhWWU+uC$?`8>Cn1 zd$mG77+?)@y<8VxwnUFb7~6N_P0;V~yH_;x1e+;J7C@djl5UGdcW#E$s9^>>SO1&RR8ClMQzuL?GLu z*7>w2o2c$1=OfK4d` zbS8%l56M*G$J}pjZWEG`5m4Ud7Uk`wBckp5T=YWr1qMNM^Z4nh4%VB$s z`n#t`&{L0yJeqkVasRCwZnQq4{me4ff6^Wh8h6 zZiaRo2aOIC{-m{?&@9=a3H6D}tgCNHGNOQu3?Bm#($wXZoV^YA_X05S34Gj$;^EayK?CGAXP4B1ZOBV zIQtCQ17iTSP{6my^VCS`*#TMDHIVeTIWxxg5q6;QD+BqsQ68d z`(6kZAt0_@d;jHa#p=ui3-Sj;CpU7DClHcb=Zd)n?es*UOh%kBcV z^>cSm+Yar+ac>hOq3@WLx+hi4nn=-XYkvpytP`+bL%+&}sjOijiL8G85~&8WyhqpE zmoHSee#R^TvqUScj;S^r_TtkmmGF$?Bn|Bhvlr{4CZw@Gcywx71dBz=i=&QJ||_|w6B^#7r^xO zG9qY%?q0fwYp>r*X7>-o)FWf5KpW+^z9KsOUfe{~TmfVtMl{Tyh}1qt#MQobE7POJ zX)jG3M(Wj-VS+H-HwM=$o}D%uyP4UR4k*Uw8Jm{|JeW8;xt`ExZC@C8%3oWN3P=()GWR0AB$_v@ZG zH_t1o_0`pvTE9n@z(mdUGIH{a z&9VTrbXcRcA9(8_HGas07|xY5!&=>_R|7M$1qKuYcKie2A*{b+AUyHTHdz6KpC#T! z9ssq;uCEZwOgtyQRP);H1??ZiocMeFHB~TO>0#2q%DX9thuE zWn@ZZfHm)<4jlN#*9kUD9Ji8~krByCL3UDQaY7pnW)Z}IjN#CJm^_rD{16M2iNsC; z_C!h)&ugG6aK$c}q2d1-&F>(BplyB7pMU?MCV|dloy(_?)sD6+eHIGVQm#0`*hi<#)LE8@;DFEmu3(J%oaOskF+uu}jaAWW zQc|?C%`e*|R}9^B7<{@K4`U@$QA2T`zKlh#bouYcW!GktN()Ny8GVF^ie5lEj&B=1 zKhorg6Mb2~)AS@T=JT(7{Vx8Rm2+HTN=gdw0eo*oef_w&FWYu@(wa9RtfKz>=2`%~ z3)rTC#^~(p{d%QxX}9cU=`=mL+-e*I|F*oXPTHzEl@Z#07xx8yhWEM?eAiz>n4-=8 z`xXE&M&`Tm59Q{2E3Khc(9=z9Eg+`x#h_RFoQv~)ShuQ8_}d4#M(p(j1)t1_(2^Tj zN>j?ErK_Q&Z)p^x`RLVa%{E4Yew<(kTAGrqo7C6GqwE1*lTQHd%7*s6YPvG4YTR_P z&p&7#!rmka4C~9!%N&eQ!{O-N>QcF-dAYm!$yU1BXUB9*i+(H-s~6rETMA6J7loKC zo}|hU(EtV_`VXu@1B5XiLNLU(NxCd13#;@f)BV&0@H0g^UFXd<8JUUUSLt-u($ceQ zi&jc?%0G3;%l@tNPksbKo=!fPZCg{jW7H1(*`3-a~N5EhWgtwXihLT{;sFf}IouC|; z@P0~c)4q#msnS?~hPc=~VEr6y+41G|C40eI>1-^maUeJec%~Z}A}8|2Ju%pE5Ph~m z&UM*cVkLansfyZku3?)eWtC;hJL$-TXSNBHm#ooo;Gc+8wyu9x<(-9; zG^gL+{ z`rFyK&f7FTAe|w5UPi#KKbGZH>B;%c?M}vY%$!F<~{Cw(?p8lcb_!A<+k$)2p=M*Pft%G2@T~t3E2a#A)DXLy}{_w*4kYvRm*hbPaaF7 z+w!yezY`8lIGO((yRAT>`YN~^_cn($H~k^+U}EZ(u|g3^^3K`wDyR1s2M;Uk&F(zY z=6pj@?^1eZQl@bY4efV9a&i{Hp9O@%WnhNAud1TUUw2ZHQn*(%)Py85sRe`XmMP-S zU^kk$0TZx;d=27WMIK0N%8$V7WQ2MnHcDe;WPXWKuMRV1uQ&%>Nh_solvIw94%F2r1-6*NzYtQ@EwQcvS*)m)Ze-n#? zw-FlmbFxMtiILG*;eHI~b}LZlUbUm?JSbH%`4NxmN=rnZ(KS?$xPN?0Oe`oUXt7?q z0|v#=hndHfdl_gbB!fHP3@!X`nAoYOB%K$%7Qr*DnvBxP+ujD6ZGb58M`UWcbndm; zW+N}=s`UWrQ+9P0L7q(vQ&Q~H{yq>_QTe7U@cFQyDoAZP>jwtI zQDpvBwFj}I z=rq{VLCVKz#nV6I<;2N=&LS_!zfhQv7F@<)cOf_z(I2GvZFNMTB!Zs#Y(ugmbovl{ zzGCpzqZQr*ZWnui_xsw%#|KbC08aQj$j}gF04Xp*X29C5q-4mq|4TQ|`47s>33mgp z2$`qaqA}x?a-&PtGn#8w^>nrM9>VA?JY9Qqc$gOqtZ#^F5ha}N3rG$J_{g@n7TaZ{ zrC+z7yPp?wzt|WUrp*+3RMR-c{(bj9s4y3Be+6|tIO%p_Oe39;`zC~lh}dZ(8&Wxt zMw>7)OsJ0J!fWmA0uk>p@VoX;a4NUR1%I{ANno}a%DvqQl;IlNUUjb2c~$%}=+D*K z)%xS|%Id(Eqmfv(IUb5GqHyRGLOZC~tGxzd^<96XG8;V@E)FCYcC~X)HWF&umcgP` z!1E2nIKhkWfICH$8A@ioyEswq?(c!2)cS-*&+P`dQNnnY=K06!tQ4oO#TLcaPetX} z0IoPO%T!3Y_vM!E5Tz=Y5{XcRAxl;H@+$2XBr0Nh{ERlV&prQqTwBKItDKh}Z<=#1?mRYZT5i9-Q=hH@!(Cq3^I*R!NPK(Rw}ZRe+uP^C zX5G%QXJ9J1nQhtjoH#8qH$B3bJuT_N)AB4)x(E&q{!d<`)qfoaFwd-nd7_V=sdLAN zBDAUS;sD=NOXsxzGQ8(*oHhXsA0Q)AJQEFw|M)QhWb^^y^|uP^`a9?N!FbVb8_H)P zA5(Kpg1_ib;$Y^y*cP#Y_kCR;;}vfHxsTP;+eBdj{;R|3GNmS;b@L6i)foYAXLXSq zme`W`mZWRvS#xmsxJr=a7`>6_8CPx^aEMwPcRtJj1cPQoL`Y z^becL@mF6%;oE>h9#4LQ%HC!shpvLo1TRR>z5%cufO{A=435Ueq`j-0-6CGmpBjm6 zrMUmq9O||_@3{SWu9>;udRV&5E$-sHX&4E*VI6qP5c3M3#-T;zTHOB4JFECME5v^q z_TtR4>{E#E&%+Cfzo=|^-oX0bl6E8O$=czNGbdp;mN&zn~C{$q0kV%gU~*#C>xzcB^h{sr3R zq{Xt66F@Vk5?@|ZgqoF@b+X>`Uk)$}T<$q3h{^*CknC`~PVwyol<+E*p4%9^8+0hB z+1XzxC3Wmp%LXvh&2Kgv&3mMb;Wv1zdk265^$JL0w50hk#Y?IJ?Qfq2A7`n(0bRq=+}4g_E^;#rtF&siNMnOI{6O*A+bBHsbdy-p@z zw)|qog?t5Rc%a79kn`CHpUO$e%KA8B^us~^59WhJzyr}NN=wA=i5?86_yZIAKJw!{ zBRGUqoDON9ef8gy-9HXNK|kP=U%SwPLf;M|__)<{bPy7qxbQ*5Ed3J%rvbq1-&{XJ zg~8hJI6OM4s;}NFpH!cRcwyu)m2JP7*^h)KWC7lr^3t~}kIv`caZj6dj2vUJS;DM# z-LDi^kunp^bl>5_;qYl=xKmccwB8qlj5~JG@?)gVcdt27Ov*wL3LWJO7~ejll8iIa{Egkt3>XL5)KhX!@rmnV%|d>>N%o;NpkyuX0QVyJR>=CC%B zreb_3P`1trOtWW!)lz6@W8)pj3uHW5x&zd5ccMShS$qO2gaapuiHTgs$+Z;I>0W^H z&FtBI)qd{Y_ru!y;y+9dJNOZV98~asT|qwle{9p7d?^=`r1lCt3(H|_bjs_<(C4it zE3Cu-mqnX~PpEA}-EVp@Lf_CMoaCKM0*ha=oIxa=o}GOiA|9U>AF`seHpkncq+z9Y z=2^jYCw!4RA9*9^78VL^1Ls#({5*CRa33a@0)IGuv))Z~X<=cRzZeN#GizOuO#% zmDYU?5_2^n7i;c;^Z%edF~uCrX~uvqD3se6O$UVwg=C(b$+}Z#483#L56_qv@j9ue zEd%$DkPDrwvdx->f@TdA3X<9X#$BRheyQzXQvvs$I;`ygZ~I^W?8jUaG6Aml?&+5o z^265W&uiUWheh{$;j$cV+M`dezz5-ZCDr1XWCVQ5W@JQNljP9PWQ~NZ#OeX2y_L?s z_`X1stl?k+L%SrVW_jW+zq|dZ-Z^e(vr88g5CQ(ABx6@q z7S1r{{3@ek6OLXqJZHMbtl%v518aK_%Of*8JH!#43atE>JX$~Szex#UFM(G1iYCOApbOU$su%y zR+yC#w&dRCnFgU7=OzJdG{nXTC((L0%k(n4$pgCMGeK^4e%c;?Z*)&Htv55vjKZ7` zW?kz5rul}~($;y?AJQ>O@{Y_QVwqjtKIpOrpZUb|xQzbBKRW(+{~-zR;W7ywvpmg< zpdQF$z+c&O)rc zGv@60EU})c<4_Z|x@~sX)gT@#3R9;JG=n_nxLVeOO)+7zwdC9t{`h#_yWJh4x`%_W%!r<y{n-Cw`;<$YUP#1_05&&ElJBVf)QH-PGJmNu~9AhetRwdZsxChKHC6f)oUf? z1MBt$HI9vsQ#A_nTUd83rNS7h!i2rAgNv3#4m~%4k%9v;IT<-UZSAVK=&xSk5i!ws zuF#3^pFEq&8+=JQ=|sqiG6DTj!#(brCgHX57~9`DI0&&cJ;7F%D$B-IU#|9ZMQ zSeyn-vbiZRyP{+@#TJ<#4h@kP6`B9VXmjr`?zTa|*>7{_p=6c*=3yaELaXYo{ZGg1 zpM>M12#Y&il%4Vmt$&IVN(CZc>6kVy`y-(n^{s!~dulJ{F2EH0S4Sz8rmt#iE$@ zb#VOq<2SFq1Y`5n92P9s6TdVh@e8;GFVX^EPo8mUz&%St%k zTVLcNM*nC$vb0Qp_k90GgX{7sY+}I5V}u*(3b$)9+JJ+`&bQ3m3WN09Ep*W0-e`VqiFT`=vkk->Dj7Hyg4j za>8^F$623{M`WYY2v;ShZpZnXi_FUGtWCS8sL}FZAm93sZaa45S`=gzj5O9hwVvq? z@5cBb_>kEwNb#xB-OuX~SaQyC_38qHLHyI6FF86M`x6D!0zseV7!|ZsYcta|`N%9= zRH{G1jEPFvw-3~{DUg^CQC^Tv!F1y)haK>J-`cb~i|@uXl~DuG4MD5B)76B>Rbks7 zPEAO0k*fJfG7;!&IO}dDbX*Foc}h-*sWLj|gcu5`lfhKftP=(Q%vFa;Out>Uv*v)A zJnVSwZqE3GSs0(^*If!Uf|A@rfscG)jgH>lBs6*Df}5P&&5{V?N&1sY8ABo&KzxHT zEeIb(Y7=`}1dkmWm&uE1*^nW(-!(S%pdK8=OcYsk$54@%hW&9K4Dd@WgM7FS1u_k5 z+mEcXhnycNe@?2puCuON9Cgo?fb4!FG z<_+%#=f#Y1Yf01gxNz3c)6ve*x|$tfjk2z-=^n({d4J99y!Y#Woi15XJPxcf71*3+ zF6hDy@`)7Nisb&f(3)AmHwuIGv4Je#-bPd-JbHOtf4f`fA+tTnI(&H3H99Iah_VzY z(B)6*N>BQv>riMP^akzVZ3LTmJ06W@j3g4#JanIemT3%Fg>^Z$z-+nKe$}<>X7@8rmGe_pRajJ=3pm$k>a>%jgT1 zN8KjZw<-gf3b;m-Y2-u6U}Sb6O!_zuW@Gri7nQ6zXUISt@tbSf(;>|J9N`|?8qdT% zSF_1aQXHNu{pU|7Qn5otVqb64sx^thac$8 z0)y~OP)t)-pL`sreX)8L>VYQBk!8fBR9PI*(ca10Xvt!r`In{Vn|sIB^bj8qd^WO> z*N^}aD`3anbyWIATnZiu8kmHj@Z20##<{b^`9N%o)kJX`*9QarMBu)kKuMVE zhrbHi?{9zrVcWWE=NEq`z@rjl8AOkQwX%IDHG=1qxDDbdG@0Y2VkOnxf$C{dDC9G097<}JT zF<%6)C3^F7y6#-TzFV_h3sUXIIIsnJ{Ooi7YAAbjGs4u?tS> z;+EM*UR0!kmSB*oeUqS|(oDaYY;Hni@RZ|~Loi-pbV#A}L%KpWbb-TaRq?OR$JGq# z6P!-YGHjEeVETVwH2FdoEZ1m~?hdo&28)OaO@II107`eIs%q${TS}-c5_Rp>>^&o0 zq}p9-ufxwHTk^H@MxqLf;~fZQ z>;=9Hc@ahPLwIbgylg%By40u(8_#e`md;s4NnZ;}+i5yQGyQWpCn)}LBqkj4K1XEf z;{C9?ADmvbpG&_K)dgZ($WVD~bYrw^Jbn*LS1p!vC%jsQmwBd-K1IEEG>Lb5w2@PT? zo8EZn%?%~xUZI?-N8^Su8+7Qb8c|xvZ6Ruky#gxYIypi|s=_jxfuR!FdGYRI$$P(r zySZG7*ENIIhwvJ+N%J*$y9^SzAnix~xDJCj#zvrGHvQoIh3Dn5RHx_21Wmu8w=>JE zsji!ul|f-+SLbkxvnCFL1u681^*7{48IHhc=s=$jH1d@ob|kk3Vu>BOiI8k>AC`BF zA9vp^sN`x)(_r8SrqL}RlGhU9$oAp7Sp4*bONc=s#Tc{Zbq;!QO1a?1KA?dCq%APL zdoBlmz{0NkQ|_wx?7m>+@WP095hM`1ccp&&8a1u2vzF2t_(X+!Zf|6QvF+S*y4$^M zQZ_ydTqjpsHR=1Rzwc-3z4}Qu>M5wIqVxVfv%Bqi7x z{2F4{#BDbt##SpeH5;O&F!YY&AyGWZ33&lU2aa}R8yLHh&?jlhls~n6cO;j6TQ7p_ zqz&WlH4g|=2F<+Ys^^sxj5W)N`%UN5%k#gLxU=wjAvNnp$n}J+s0uk_A_Jd>G$Oy5 z{%#Ea88C*6ydM9krK*0t6~HDS{G-9j?qcbVwb3u9^v;^-uH2;OZgYfveNq&A`0LcL zx=AL}dd1^Ng=kSg${f;)UHEO5oxS7V>Lb`ahrwN@r2(ciz0{z8_7jGu; zt;Oo*p*k``yZSX8&tHK#eEIbUIesr-h zW|tFHbLk2x&Ut~zEJ9TKu>Gf|w{==&J?^%g<}cbc_X9zi+VsjbU2tJIit)@BZxV;) zs}uY_nqY&&bH*fK*`!ni9q+86+qk~QCJTu%CUQQfRmSV?*QI2f)jPuq$D_y69OpHu zPbkwuF+uyXq{?2UoJbzIM5;9&>jM0O9Vvggv( zaLuVRlW=B~3dQD^#)sPU2coo_Ue%6(gk*41`+EG(WQvq492k&-a_vr$6;;uZx3?$Q z#hy}^MG~Y8${4Sa_ZvS~J#HgK-Po#vw`SM`Yd&(hi!s*+&&&B3XGBQk6q*t#k(k)A zwN&9{^x_$*O+k6=G;^=>o>6#Q- z{BuyGouM4+;NOF4m8V0o`fEeS5@G2w!lWu@v+b2^+n>rhGzsA2mHnc4S|_ zIMp&t!Lt3jT@XtdT4Sz@cr()Q0W$^FJ_;7cCRH8XUBg6bRo?>-s3ss;=O(l1bXx#_ zNi8S8fZ8~!gJRtH_IXuSN9+Vqiip9rI)k2G`O5UGs-1v0rN^bJe)W-h`Jt1A<09GP zPK)x7FLIp46u%QFL}Oikol|?aPkpoL;uh0Sy#h+7Asz$}rt3V#lFfglxRolXM<@MIr;I;P_hOgT$Izp%?iN)lT1!c9Nr z{sxg;Lr;09n~*0{mRQgm0m$`+&uqgldHGCE{Z-lT>B-e3p{+$|I-@;T+6|2@51pn) zC!81RCDY4ysk$k|GUtD}P0O4vl+7cCydCu2|9rU3u+cL64+-6Pfd)*W?Edjl9Pc$K>xquuKF#?sN0g#BMrjP-7Q0RcQ-gRNDM7QcStu# zH$x*LrF0`*qTrCyjSL}v^WA&@hkKs$`+44XKhHjUueHuz`!td)_&_L1>CLhWoy>>L zNH;P9!JYOaHvz~H(C@9u&-sWSz zdTyZ~tWL~ZL*(UwI7f9#n4ySVmG*y+z%S!Zaq*w$aARUkba78{oBRBfq=`m1H4e$X zLhAo)3AKOsfYtZ)sA#Z-74_N%`0eP%wl)^hddS%H1X4WnHGV(voi$u4TJAVw9RLnI z7dN&GFtBDD6}N~-t0UlV{q|XgC$bi?K!fG8l-PzFv+s2yEkN?^?g&hPwJdd6@(y8j zT$S6sA50uFzJk;6bBJ}HBiqrNvryz)P1bw@ZHU7eAe5jqR-KX?Xy?7d&RJg?!+9@_ zHLb3k&ba8r@z&W0&Yv%AxDOY`g-i?2lPYIQzNU$(F|a?L8m|l+$og|)^LX$fh8yUG zgL6M47*hSOJ|L5-!hJHsWtxZ8`QXjMI`qIB`(E=+_;a5p1=W(ZwE@<4o%<_>-!Cx^ z1|<$FAKR0rnS;8G4h!VvGa74q+Zxt)I&aITvHpo4#rmiQ{(B^;^qLrEq~Eu>v(u!b zrckkn>Tz|>!Pv^SXus20&!7>9VB=wFRTu`rKE%pWXT{#7j#>2iX!bzNCA?`kf-H9$ zBj{h+RL_fjPSKrA5cM-Q`b|o{C4#3eDNEN{1x@~_4+4j~=*Dty=oMAcm7;B!XUqPcsGTZ|c3Aail_~$F zI=>n=Dgd?5njOx}@Lik@0tg4J@<*)^vN_%ln8ZF9ue}jf1SF7Xkka525hEmA=&S!G z84BQOii8V%zOL<`+VzzB`jr@>ViI_~nj%N8NRU6RNKFiS=P}YPwl6fUP&vAkeURe*Z{>Pa95eUnLV$G4aYZiBaOF=<_xiooS_cwpy%?bTCJl@w zsfG4)*BJ5{%9e42v4k_r3ShB@oVV>C;XT@KbN5{5S|Xz*%3!J4$RHJD;dm|{Dk zVvqN%=q|(|Pe*3@Up!|NVicNHelfG6@%NtH%HFduCk!p~=Ce?%S-J&BCfni)POO)? z=-Ik!7<-txPdS%=t44__omM|@J-%1vo zB_uO6r`X6$1=Fi}4TPh$^x!yGR0l>Mssx<&I)3;=WrF>e_Mj9P#F(C3sEn!{yss|B zgbs3>C{IKt_m{b#j87IbRVI!@69y)kw~<3Nd|((oIY#i)9@*OG#ROr{!rimEc`IRrSCL@&raLmP641gm*bxoo( zbJdRb2g&jX2PZ@|3hVsy0KV7M-ynvFmZ%-AiH3d#pOm@L1s279>|HQaeIeE)6>H%f zoG6N}Vt4lfNvX_zM@hle(MhOJwi!JixXJu#U6}AkxUwch;-FWw2D%gE`E_)kFqUl5 z*5npn2#~?k4-768{~&C*G>05uR**#a=%ZSrC$6z#m3cJ&{=H6HO(mn5t8(?-Yk?|x zip3)PP&&7G8uwJQRr$n=lHaJn2egekfWEnpl<r1JUQrXbL_wBbqx}26wT3%HeHl>$g zf1+p)NU1SFx-WV))S&<~X{f6jc!%u8QAoAnwr!n!zxCYD3ES_G@x9&kCYM*Jc3UI! zXYEbQoa&DgsNUzLBXUaO5N0-)zN)yRnwug~?KcB*nsq23TicOYxDD;)OmTSHMd`En zRlWnf(;H8w01ed8rQbKY^ZXooX`vpkLAZ7~YVGb*a;8s3SHIz#^5+kD5*YJuCTjiH z&oZkXg<}{4q7y=;W*+Bxfd?FLiDJ2F6p=49+HxT^qLe_$pYrOUVx;#C?*-Qu9`cuk zD`I3b&`bCi)m%k$t_T-uI*y!_FN|`crL?qbL(C?%D{Au43-gGmUmDny@>xlDKRkbbKBmivxlE>6gSs75U#P8A0>!!zM+jfoDFkObz z`z9#X1rUR-yf(vWexEQX>N|trz9jSq1njibht8QDM$T|?^90yC9PfCd0u3e6LA{LO zQ456vvaZiHI>i1jv^>|6%cCP1&v{w@=Ye*VHF|DnboQdV^vexlW0tIBtfFs%U zF-ZHd*(uG(SJTbGz1ezD2^A|o@h#;ig5J)5QSF1qKQ&KnNn})?-mkV(<5{L!&&DP$ z-QZur;1H_nW=xynfG!V{Dvdg*=&ZDrWahur*Q2IW==77DwGy% zX^PH6>*9|87c*R-Fw4NIHC>9Uj!{ThpjLptT)NB35LKy5sfnwFGSXHBT=^dSxpi%M z3K(>fPuiN}83W2Mt@>y7OxPYhuOJyjyt{pndIXlr5%98L(q6h;C>|mSc2)QHlen zd|P!3c=KK-G`yWJcIMZQdZ}xHZo&@KM4KP7Q_eNwy)S2c=9Z#}1>4@cz?4t{>?evA zoQg;f&i=ATRo)9%U+)k#qfck+`e|xEnX032icBji+GW0IQkJ>E(RE3cI(pd6+>%~_ zE_i?aY7TKWaI=)xGsC2cxsgJsp<#I|NMZYZu-H|ss3@1`a4L895(wIpV{zKgzIvuJ zY(4)vJY{xTmv7`3f)F?`;Ec~r`3y%#x>jZ-Qh=Cw{yvz|fTTN;{deBk@qH^ZBxnA9 zib40zp=QmvQaE?6G7-VeWz!HpGh6y9N3it`h^>fqP#;4zVmZ1*C9$ILD~z{#5(6iq z`(TrNIe8~~G4^PPXghgfi6KH^LnkRBYG-KkFHhAN{?wutc|5$GC|c-AKOX5`n8|UJ z&LyYLE_wkXuo!C&r(8qd0XavVi#zyJWjF5pZ{|!uW=@6Q_``U>!AIim;pG0H7&{7VyC6RKNd`UVoIzVqHQ%@(X$p#Z3BZmqI7$U5kwyM_<8D`?fU=sPp zWc&N&OGY`jhrcj=u7LwCi?HFfa>RW3z6%$8z- zWs9-VNpmK3dErstBO?@EbcwT`P@`}=%!c#l$c;pfEGR>8>^EDq8%#AE*4dLpIUU3r z&BvHE$_SRNZb;W|HIOW@)YtOuPY*MPvihq6doCq6?OIF7iT0w6O#8LewHG%ztADbV zeH9=Pso8#in_}ex79m{UtLWgMGLsdmtf> z;e1%9T~~Ztp8S(k7|aviB<_^eL;$Bxjp$r6jMKfxg)qxDLL-=7q@w_KHA9QeKU9ho zhTeUAm}PqfN~82V@-Sz6W|6xsZ!#={IRhs-d=DLZ?ijso$9)h>XvHyZO6~_!YSj{l zhi0*6kr6wW_3^KhHdJucrIsR>cWdR21^FLlwXgSIQD_u1es@v(BdnLkET`mHL?=6zWZUh4a2}q*2BD z1flSqB-D`Y7tXcXb&yWq3hQ^wh@Gh$U3k2uUnCUtHkmk!T5C z%|xKFo1%q@#pgi(>xd96@>?f52!mGx7kDmbGqczus~n$=}pw_W2`; zYV;{Xt4FBL4|{hmp)u@0d13snBdq%9&ZE_BCPo*_O+i-Y|H2PaXM=sdc2n;N1jhJ@ zO`s24u0c}~9L!RkFXHL3{{C?+>o2(HppPnpi3e)DtZA-2&HQ|U{bNyFPN%Ynp_&|u znPs1)k&)wK7CdjNtzljA2-0CEgcQm>DyLDa$XmKumIHtWG`sl+t1e4c7#puj-mLN# zuonGZT}3rFMp04L#`)5mnxu!>k>tg)giUtlLCMI4Iq1~HT%+pmp%h-71^8e)h?ZI{ zM#LOWOLi?CDHF}JrNfswQkB6@Kfm!;_CbP1NXAE zoh-43U0gg?(pto(Mh{N2h6ZO@{aW4{`V_sdy7G-di_G3Sk;LQUDeoy)z`W$t*C{`l zms%QA-iu)lfxBPybVkNGjw&VT*0neS@R?Yp>K)yFq$kjft+_0nFD10w#|q{T{%#yM zFws0VlP@EfAU7V@bzwU3-(WG1LdN@6GZT4{%Q7g!`OP>eDadcAMP9vL`a54$w}a&Q z>ub}zg8RXr3x#{AM0YP1l=)e{whc>GF$&*hiH_#wU9_jHcBEXs{&7`nv_*|NA_H?v zXe=3)o1T}hd#88cgMnuJVhvWRZ*4U^NQEsY2UqFDC~ERz~M3Md_!rRy&F9z*6!vI+I(e5VB>?aoU2 zM6wJrQ9@f+h#Ui%+vF3|cu{|A6}zg-b-G>nf{ENUgHLd6B0QTYlp~9I!ck{-TKQE* zVBDNabLo2QO4v3hk2vQ<@d-Nc4JbJ1L^)B+CtQ>0r}+8TN*&s&svU>#nAw1!p`a1P z#c9>V&+9>~=kC;BX(fqhNJc3&$rDPRURz*asCaygK20 z>wW^ZEWsld^j4P@ssog2 zqJ_s6(MEGP^AwN&UaWR<+{?|P+AC=<)|0>eF4)x6jOxQ&Q=L%pRw!|@-WgT3+$5EC zeL;PLM%CEz5X~pNia$N0@F04Uz3m}pQ(bq8sNXz%9P6OlBA8+G=Ouw?Qi_>I zLAl?nRSvnVNqnuk%L8*q9TJL608vt8-|HH#n=(Si(a#$D2P~2=ljT}=c2URv8{xFB=U@qN^2T*Vz~VTm@gV|Vr!tl%^{ zJ7?WwMq5XFeJW<=z@gZ9|CvuP$8UtoRXuQ5g7Z zRbN}@STWn%jr#YY2c@?N{)8LR5IL(i45dHtoA#)W3+%0GWRbn%)fawl0yGKLeg($A zE&8f1byp@cqvZ2vBtILn)%BDDl{t^8f@dSp-y}Skpv1gCg3(QL_+Co0yj@ZJZlE6# z(0;Dr?x_ydcC##$5=q{WCz)W+sA?*ZGr@Z^$-({l=zC45ecKifRtzv4-#ygU`Fcm; z1MQ;2HOZ$_3i7O%LE?P08&GGr4|3G+1w30!^M@3vkAf#7yCx+6t_vAUxN0`xhp>wE zcRzyARgjjNgdj*yw-A&be(`oQEr7@QH|SM=E3x?)Cu?tKL$ij6HU=u-*u=GR5?GH0 zvOmUHUgZ+r#0Sz|eYx-%BHjs6zGx(ocKU=hsiGtE%Jrf2vM^QhbYm{?c8~=#ak3&_ zH@XrYM+Tkq6H2Yz+f4xnxYT-3#ayIU!m#gR^u*{GY#82&?G;!DmUmm2vi9cCUh4K@ zn}rvQC1oXFb$LL~;)SsfyZgSXeHLaH>5rUFw^l00JbtBgTh1(Fm4$U*?|g9OqOuXp zf(K`8E(H(h_;J=7Eoa7YXd!*EHDZt&Byq5SV46mwQ*YZ7`#)Bd8L0nK8d1hb_HHjXQA9k^yDUa+E)nYW@*wHkw#~38f zw+>h8kPBy;3r_6LhZ4d;AnB0f zIM3c+MAvFzO=@y&DOrh$eqDyYy9ZyB<_R;TMGAA1TTh{KUFCSWB%}{s9z~p&W5)ENXRIMLBVTY-7{l&U;U69mTC7RWsVd_b&xO^!vZl$L?hx4 zl<-(j`vNXCBdZT&QkC|8OHeGTSEFY-xOrTZM(cBE#*?#Y2&TfW9MS3r6E9X%MP%fM z5Ape6TyA0es-LQ1reteU!%!#y=LO){v=u<#?-?I;ZEhTNig@t8u9#iS4}eyCD=~^~ zT|a|zd1yGCG{NL|RJ39hKr+!~#q^~G(sbM}h7Qwgf?a!KGb(inC z`Z!AVy|8t3RQ(06N=)HhlNIS}s^>%OXdrDxF{Qu;12u6l$Bd+_tvbe;pNtxuFi)2++kF4#=uTyH(oZjQ zg?8@viMT-b@fm+T;Onv1UH^K+0od(O}-ZzR|J?dC}8H`Zq(C+LxCZXTw zAfpvA*J4aZs6MHu$f!vBappxfjDGfFvx9ssWG?DI~O~a+s|V(bf_t+Pq0*(I;s6jfwAa8pxZ3}=|Po$DeFG}H<)UD zEG|&8m3Z=JqBt+UXKJ7z)gI`~h=D%7Y#R}7H^4!5Z%N{gY!q{+ynBDOHSVs6wc3^^ z!;xQ*ge)0by`TM!4a0h}5ZDmKZIghfi8BEOEC82}DqOav&Z7)`B>PtosR(G8CJOe5 zk(i{{F`J>iX8ts8dw#2dVw?+)!w&;VULSm!TTnY03mjN1iXQG%9O znpuC(5k{cr_g=rJ+p*z-G}QJLkuCq?6+mX?<=tvgk1q_wbO|;Qms5*&yoq9(=DNu9 z1Pw2Hc9(@eGe%7Ukv4owR6CX?+4Qq##Ajz1~&R+ge%}K#!mR%fc|W?P>G>+B_XUn+iql?AP<^A zK|0#Jf%2nbjqzcEjMsn7Bp!L{s3ISL{rqOfoI}lcnT{YM>zkI^w~bIBGpI?hKL7H8 z7R3h{DRIBS>4>IeCvZbQ*cPCjI?OHCt---Q+jg7B*26&V=b85HD;jFt#CU6M2uO1p zY(+&foGF~;z)>ATUDiX@fK+MVqX0SGRpBV^Eqe-A(b+PZ{Sg?P5PqMA!vFcL#TTIx h#EcC8Z`;@lK{t1A7Q5HXl8=I1YD(IQP4aId{{s%i5uE@4 literal 0 HcmV?d00001 diff --git a/public/images/events/september-update-ko.png b/public/images/events/september-update-ko.png new file mode 100644 index 0000000000000000000000000000000000000000..13585327fced331ecd36eface22bab0e6512cff1 GIT binary patch literal 37600 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

($RZZr7#cKVWb%mki7Xg#7L%F# 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

<kQYozxTH{9 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%0D|cpZ@My~0Y_?jR=QlM8Ffen zTJTE$TzgL_9!($Dw+(nAfg@-D2gpVP4%LAb(CA%2uAv*K1ew+}C;|1*czHO#sEUF` z9a1R)bBwK{K1G#|u7Tl1mG;iGbY2G)1)F=FfFn6I!<*ytH~>fEl@VkELTIG|N1&<4 z2{=?ogG3r|*j798-*-LqcJbp;J00M~=+{3|v4buS+IhY9#urIWvd4_tb#m{icA!ze z%v2)>T{CC!k=!I|FR5NLd8pUy6MO4CA9B2{bD&RW+tyJfw3*cj(guq;hxCMj<4m{C zF{)7~(T7y%dsLag(e7^+6aAoany!o%RaEi08|s;D>ZYO|!?`bxJvwlx^G3D&AHtvZ zis%|z!N)xfTa?!Z$rKOe^!D3tt2=T+-Cn$uq^hf*a-HH(RVR)wDfb6W;JB2WlAID@ zEFsPJ{qKLDlOx>m=Hyx#3qbFBqRrtjhg6bN(`XtjlK$kAPt+1UdGZ8z`3zWT;h3+I z!$7Eq!m@J8+AE#ozTd_q3-f>&>oYRgRn!j zdBomlfir&RPyc}=Ud-{j+;708_oNP#`%tI8(iS-QJZ^#v^PBASd_A99Ij+`;{k!?B zw9bWvK2s8{%h@Fx&es*4!N=b-{sJ4=+N_vODs^}1L*5)$5YgKh)!FM zMg5#2m}Z%c}N*M!$093Q@v8{nI}U zDvp*s*Z_x&u<`OphBS?Q``h3C)nENpgn{BDR^?2HRY74!nnOUv|r z>Qm=3vkKBOa;S=UJ~F>-F%FJUFa{2mg969TeE5eX@nwz}drz|ujoN9tn15q82*0qj zk!T%T0a&EHvGP;j{;VnRKY8pp6RmR$dNVeE9XNVM)*&Wvw02E4v_}UH9#6THlv+?! ztpbO3#+!;J>g)}Vah3|7YtPt0VJL8gKVp@NmjA=}%P;cI!R4z0IGU`F`#@=RZHBct zg`K)e#df8G-K0^mA{6xID+%pXuPvA0r6o>7D!$S(0*so|)5vpXPOh1&jI3<4PRQ}_Q&w&sV(T2Z0d@hviEP*Sk)^`23OC@$ zasv(o;{rwn4lQHmDizT#!3H!9n)^!MJU~;O@yZX9p#sUd^ej%OaR}x(ZNQ=Sp45TH z(uX?rq)`W(Ppv*X0IxISB77E$79$ z8gMvSIL!4RwyRVSKQfb@Ul2NNRW65V@0kH>=J*QJGBVTB($qPXDQTI2u+pj;Fb66} zNOH26n3Sk`cS+DjqIHB}*a0$B!v+OYL&gz1PF3qX zBd~}SIJ$?|Ad$e)R?{df8~_e<=mjOEe58fR9Lx}@YDpavXT{txFbfMY;dICz&Tb<%)PqB(gcaKt)?Ljew;fG0K! zM{Czqd(W)grL>uWqr5gyrvQi39F7=)qpf>dDBaK*@nTIZ5<)OwWAWF4qicAr%K#2^$542Umq$w~t9_+qS-Ihz@ST7o zDJ8u!a5+~w9YY&`(SRe+++W+!?JFtE%FAcF2r-8V9Q>5OxlIEOE&qq}N1PpENM(tX zZdI^BQ=+sbsK)^~e5GRHWz6@0`# z998;09N+*0IMV5uG{=p<#NJ}HRdtQc9pm1dLbZUJBin}Q9|n#bal{&E$rEimvM_L1 zb#jawf1Nvjo^F{@iGykIBFT5Db7-Y=Xf>#eq#%Bt_~~Njur+VkGKUjz*mB010}hv- zlsnU-_ov)CaW5LlPf2I%Uyz>{_v}6Qt-}V4sG?#Ak;kcGj+1PiW7nIp_^%~2J;g^*>{E!xykrx~WzbsdPjroOYhwl&|H z{J}#iw&snrj2z?*Idm_=!DWR?eN`^dXz!V6>71lpA8a?trmfA@WwAB&Hp^n2cmA$V zNfYx77&tB^rB>9odtA3RPfO2k>6k!^G_>ohRO;n4QdPABO7wj=vcmgtIBjh%lIWa7 z5)2%leDaAI(&rP0mDtt{6|gFJ1+;%>KX z5gV!J)Ssh6JrJ;k7R>ZKTXI%fM`Z|iu?-2&xL5TFx6W}Z%~-_)gnL=~O_f7K=7!TDzwF zO}$w;MP^iF!ts^Vg0yT8Z%a2 zi0ZFm%5y1kX`R^38!Bzk91h-RGwxM)lC5*>8Z&m$hg3SCZU0Iu)62@feoo(!E*b{-EuHXsil;)-hM z(X8B}bLY;dq@{tGDgt$4Rg2Vua{F_8otNvYKuuQFiI}1Oq2MoGO3KMEZMrfh*2Pp* zsobEt(8+3z&2qW&RG_(!W`N>vX>|>MMb|%E-zFT|p4Wrd=wlajT}GTf3E+ol{U!hWD8Ul|uV%IMW6R zGlxnHJeic?fIpaG2aZ^HB>@~Co;YoMXom>!`JDnUc@k|9XMif;iCb*dAmCujhiz;m z6jj`-_iVL}x;P~&aM;ob|BQRpon-4Amwr67zYZMuvWM7MIJ%}AuUNoQB7lQ?e-|T1 zVOfQ04)M6sNkjVxl$?yeEKB+RR@cO;nxn0ImL`p=%wgvLaQ;{NC2&~VQPA2D=<=qk z;}9rLDUH=~^9BgCDTKlZh6suczQ7F)mq!6om13KR1`13oO;Dc@y0!$jL_EzM6GS0$ zbBNIX5C9A4$XdBzHMDG1W=xD$bkBq%X$*;7{LK;Z2ODH2L#e>CrE^LcBtolHLZxo* zm=xuu;s^heoR^D4&gp1nGwIiP{q)Vr!M7D&hK(LKYgUyf*#_Tpf7}iAw(_ zOByMR<=?2?67k4<@-15a+SW7M-aGHNmcOdBF}3rroGiD3IsWuN@*E4A)xjj88fKX} zc-099!~4dbv0F!8@KF_|bxtl(LIiC91yn)I0Rc%6Y7lMEg-RPN2&uvfCxL7D;8xsg z_{_CV?1l|>%*A$pj<{Fg$+XTf>c>O->%ej4+KnqZa0sQ_+&R^7c`RgsC@ytk2yN{N zKJ;TZhg8dDmSo|$pv2F>!E;E-;UgX&`p{;A zTD*-i*4i_Ns3=`OiB$Fo91*`f`c>wC8u`~1KNNH46mIeAP?3<#QcL$tO9&Jqq#5AS zIZ2RYi3FYQ*$@b_$o#;+rE5k6t5>9-F|2Sxoz;2`GUmuhnRBgoYDzY58Y6ziv07JKi%efYophmic~e;obVcQw?Q zl5;XxzW2TV3G&G&pQxUnSdKv?!5p#ln9n*P8WT}}GDeUcf@p(8wP6rv*rEmrKgGa- zzeF4GJk!7t7uuMzrf$TD9ojq(6FcHwjnBGu4ygx^+ur~V@nydhVcw9-VwquryGZ_MZ86C|cn|im)Z52&LtNRh{3`=1O z?YBPs+J_7o5Dhr!g0AtG0vrxF;%=lpd28?qq{Zt>R38Qf6*x?i(EObO5N8l-5N!}} z#J!$Rf9sf{t#Lijf>@0_p3AWnjW!OfAD@B00UUixkO<(ATbnmtzFyZdSW;P&>nq~@ zKy43<)qulSdVqPOC6(2Ah2i+&+LnePv;&yO+Tff#ZJ9&Me`L892{Kf$Xzy77D+F`} zDFLEqK1>^73&c!Y*Q|vat@IIZg`Z&LE9BqU5_yZ#ov|qw<)?`rZwUiO#}p)-VmO|e zw$2&kli#0T|D|95>MwuwtH1Kqul>r`zW$Z3|HfB-<2U|=C13ds_CcN%oj0lbj21xPXNdYS=Od8Bt8ypsA*D zukh2{I<|748KcA;<|Fjw5cm3gMy=zb-%sA(L!bC|ve4eUfUi}2;5JsEuZvRzX*HvEIR#aZE0f+ja3Mf^<4vwE_vd$ zb7ZR^1>a^pj)FjcSJbxW`YKQZh@qgkhMuLzL*eBkG7r-n0I47?8nehRu1-zQh7Wln z9*VP~whebH16T5ks_Cx?mX7R&1hG+s_$!s}WO+?%Zb5ljO)G_zk_E}k_7#=aWq9-C z<2fuol(B23MM_~=Aj6wqSQ?O3A=53ct_oa*5B$S*A_J4Lp(RuzD@*Cw$YgWJBxjW+ zzo-TbgujYUb(0Yi0V)Gm5wg5S)Bx2|m7t|i1Idsmi?1|L;lE;+R<-KMZ%#$s zLRMa#CG}bP^_BHEf|vJwWxe=2w*KD>S^J%_wcj3H`|Zm5MG=OAHQczq`9D-Ou4ET9 zc69dt(I5R=6*6eFg&eL`_<$p8M~rq3rj4iX|1$m(wZz?EdotGG6HC!{M~$e=;Z7SW zaL_zcM6Sj|sBz|Y>^S+>G3B7^Q_S$RGB)m&`RrQ9S-;0eJng-U4g%VkZ|#~z7vFIC zdaz}%y1x5TavIYH&8Ya>Z@o*Rl7|8u-B1rjB^^qFe*!f~fD|fT z&;<$npFVxcPy#0`7PiIdL2(w^xEhwl-v&KA;`H%G113QJRsI_UJlFDY=OxlT4I= zK-K-U2*usP5u++g5ny8UeP$>49z=IqhEg30h zX5}Dc*t4ccEPq|@7jepyT0>dIgME$RVE=!6XBH#ZaUIaML~*vBo?d3tti7*qx@TV~ zk(_-aDN2-VQX(n95CS_u0xOAQXmMgePAmhCkw8Ff$IxO&)@I3;L{jtuHx4M}Xu{xmEYQ`|hi^baNJV52r3J2Hn-Ss_uJly6)*(QNcH?QSPWAj4@-l zL$#FG7`pXMHC?X1HD))vd-_6?8DT)T$ht;H#^)}BeWHI1vSiAJxMNTwFYsYQ`0wQ^ z?z3*E{J}-BmQ`_8*4R6kH18@VzV^o&<4|1%#k(qR zPT%mHC=D_~6)4QrXkXEEbueD7*07VK!66dlj|PDQIOCt5`6>Vh{KbKlrZ;Ve-D2MT zs+CR-e9M{R+{zYcUDO~mg*FH{aBRiBIaup!E6@fietq^v8=N`rrA`h;8y<0x$M>eB ztH3cOdjib44l+DvD-)?=Iahg@e!gSh20{kH2fkJ3a9EQ-`2n+N$zO0lIoZ}8Vge)q z6!Z43qdx;bf<#m>U^RxPmM)t9J9TpDk(!))0kn}RPnb0D(siN#^8L_nUKKAeoIHEU zOebwWDZ-DEI2aH8=&Km}qlsQ)cDpjOCAa}T`uHV`&1PhR0wK;R*|$Xu8yFc&^ovu< zLRXemgXDm)Q4*mXDDB_hvR(bR*G2lHr$Ybzk;4*F!1%LYqpMugV>GO~_vP~;v2odGs#p=LrqNYy z0Ob@%&DT&M)(Eb`%~Xnl8xG}z|8R#X5nY9ASBycRY9$e}<6Q-4pqoQ?^#@-uZw}to z#gcgO?Pu&7!Bub!{1=;##ZAfqhXY(qipkD`Hr~9|AaLN2O5IKlzzd`e0uE#j(55$V zhu31>wHo>26b>BJ;eq>YAVa+Jw?72+!wyVW%-q01C2QK)zc$Dmeltw(N!qaExLEXzyUD{u!e}r&X_Q{ z1hTwz9kQ6^gC|fvMmRbv4oZM>pfso*A}G3wQPT>ICxqV}=FXc49Ox?23HDobMyN&` zjG(|}F-8M-rlYe9{zemhsX{ql6{pdPkFY2iQ_X9H*N_qoV=lVJwhr+iY{ZeC5927#l&Q576U;fmOSFL-l#4K>petTi#6{W_u_9$gM*&ekYhXXj$Zs1sZ{l*@EBX|^s_i&Ixin7%hg2>Tj4th9u zziOrXfo~YfF@p01M~b>1ao|vBgIK4rhKY@cvKnna7(+~6}vLCS)N``70Y9}g06kcQiJZEo4fIf(hUwLL8{8 z4sdjt2cy`)(LpuBZP^2G2-Ir;ICyS6)P@6x_st1~<~P1Izy6m>jVB$z(PKXjma#jQ z@&b-e8Xr=ryA`@;R|f$H-%kvI1Jj${{Oza3Y)b7)4@59+1aO8Yg($S445siSR{}hw z4LpwF)A3Xw2AqMh2im|~_smYC^mIJqxL)~Mq4O}N21_n&KZ;rztB*r&lf7^PT=MB{!Xi_nNa=qXSkH;_1i1GphSaW-e1 z?qI;-$mkCovEF{u5;9_?Rum`TFgr_vfrIjbqN~2ZVfS!2fP=DIuEK*z73LcQjy4V) zKq`#`hskhwS5dLUiA8ZC!N7rc6|l+1$Rmt!Rpt&;T~9Vd!=j?h8vZl z9;>IL=zeH}PZzxhcKxEK;}^$UDm_$Pyx^x33+IjbU1M&iJhN4rS{KYQaW-o_oT)sN zE}sI07w|SWai&mPE>5kLXErLc+hC8m;B{$wqd2(=xxg}2TpUUow6Io@j&L+pT7*KN zmV8yzk}fZ$iVMlY+|YQ%oeO9qU0MXDsmyIdbrTEcz+3-oIgi&;!D|s-iHf2L0W>}F z2V;FB5Qd|P;VyY-d&o$N5R20WX%5G4-?Y~zIDsSDI}A4=TX{G!FfO9bm(SZvKOhW` z^x43H{AABI9fmuT=pXM4$3#Y~6!e$ha?at9Y{a?YgoJ?hlQwYt?tMG^NS`C7&gMl? z=)V&S-3j{$--l#JQIUW^kx2zMCnzXLcHOJceugkdLe2rgvT2>%}%1BgHg zX7=e#D4{%!wE*0#<|io2Luj9^oTe;LY-MK4nB5UI&Y!D_4J`sL3oQz57T1kl0+1vnDJPy%?EE-g7C9EC=I;DB6%qotn2 zQ2%hw<|!QD2mlU@@m3UP(-cn1kHTs&#$W%zzyYq_k5fRxfMR$#$-EOdLRR-rFmRNX z8V8P4VWB5JWcPD~LXId-t5mKm^PA%aj&Q`9m&3w8e;jQcv8CIdxM+k13%N`j(`I| zp+VqKdMOYW>dqTgIyU(J=+xD5&p#cva>&>laD-ha%^t-KIc(YpjD0Po>X3?z+~@i1 zhk{(LB9?v5Zsn9SJ}Oli_&0GY>jItKTALQkF~7@BTgB7DDiT)C;)$blbSDnM7;`&x zQktwqWGU2uX_oOkQaWuFvS3$=`*?cQe>+`Z5Ic;`+>HafI#R`QGG7$CXoTdC_+INM zc4xe?!@O%q1>y`l?&&meI{ zaVViH(&OPO@5LFk#>jleVgNWIvGnBWuQ@Wp*LCUH?&!FZF&rHiJb}xUw&%oyc;a+o zu%=EoL07GHG0}X50|y=_OA1&(z@d;wFlq!S+BCiG+h>c}L?4JYIB+!By-^o9h&HHy z!jn1tXoEwBTMzrB*;aTuZuO%LKl1QQ_hgQv1swEreBzy79BgvB3LLU0K+OPg+L+rl zW_S77A9yTCWp)P?Cv5WA4}}8 zn~(*MTsQ3{+<-Gse$h!Ae*RnO=d2@C=t#C2cH02WqzYwo_33*rh%piOkjk@{>76waD=Q?Din;-94F{^w^2)L~+ZU=P|E(bvb7<`A zPuVvo8Wu}SoWLQ#Vx&)edVWD9LYeS7IS__)#zw+2mh^Vj8sX~6miQ`_Mu1~SHXl(h z;m5KlN)t|--tg_e#cZMv${}jR8~_}Ci%>Xi>=QWXfO|J^;8tUpF#tOb4>(%k>A02C zgR-xN-)6D1TL2r)=bI{WXjCZY=?gkFg6X2DBfWV;$3SNQVET>@gksz#8X0|}- zgfQw9ks~9!#Yuj+nzWZ2YSCF@PJ2&3{rtDmo#mGW(5z?56X{|lj(c#0d?$^zwYz|W zPt^paQ>%upiUYEbxv>Oi&V|6 zKHQ5`l@g?6%BMJRfN>-mb4-k-jIuK(Bq%C3o-3NJx^IrBt8`a=CXJ5gi{rUMG|^{2 z4mQ8l6xXCt`#F+&?fl{4>Sw>kMML+WXg9BMxdyL?($;1({;saQVFHIj8+<&4qeg(b zyEizFG`-b3kQTFvJ`e}EcOOUK2xgADzyaC$&gg!?;n}@Gx$5?F90qW-!qai9f){^u zdWm;V1OSKoBc8~a<46DpJ)MT)U5llwz+s5F7ake*nNEOW^@!NW;#-bszuTz&9j0Sx z<(ci$)Fv)nNfpaBb9hN47WbRdqXNq zfG2tfA9NMoL9Zh*HA{d?J#62Rc;6Vk7W=z*`K|+kjM>WR&al0l2aL^4T79H{IG;7n z$c?``+@H32CDs*iLyUP9O38dN-aqa(=#EC+iGI?P$b!<_NIV^hd7s-7iDzQ{2EC2- zmzQ?_dN{KlP3Iy#5O(?iKLPXufjNoCsQF2ik9E?E{B zfs0ZS(be9;A)XE__25_qdt%THBr_-$XeQP-inli;C$d1ja4Y(Tvfa^srR4ZPRY~bd zNOaTs0<_MU>;de^yp#sMNKAl5Vz=e;#_y{rt^>%okJCBxVOoRb1AO)F& zb4H8z9n#Zj9e~&`aL6774*LLleN#kjS8`>0Uy`qG=rkN-MI7z=uInd4yN+5UkefH@jLjbP?*pET=98+!(hV@n&m7I08+2hoEcZJ?430tab} zbB6MCnjbg!ksiWV$5zWTJIEZRsZAh&f>@Ee=1@qn5+Rgg;Ky(-bro&IBHKy95J(c1 zt`{sd4W>4rB2k^tO;PETWv0~Ya>J@(o!PJ2E^&X{E(zVV)bh=~s8x0$rg6z(?CWHa zWl>7D+#_}PX;r%FU#9S(M4os)9a}|d^qmA0kP49TmL!aK1QuL=f8+8`H?Djj{$73` zQXn1S1C?8@U-`h+%kQs&@fY4jdrRM06P7>SeDY^V8#~u-?OgwK_vzc%e(~e!-M|4U z@bBktRyc5gB5(je z0uCB3A#UJ9B%qus(4O!@NpJcUHTZOz9x?Z+q4Mm`@z(7U0LRQ$ae7ne)JA|7rjQ=i zn65*jX@Dgt%1e+b0ySo&PWx6WDxzYY*?AVrpLN?Ae}62>+2Vz;66#%u(^ZFiUS@a+ zg-N$ESFL(U8@y3G3n_gkfe%oLFgCAz2w1TB)X#woP~o*mx$@zL&<`w?W>1pY$D5`K z`;8}mCiKdO>r&<0pKl7(_+i|* z%yHy^nj9e%jrrj3Ao&9M--hsTXJ=(~gJ2^^d`6r`X}-HE?_ z?}Ziz4thGxj+FX3^3#lPe361k_-x7nmrxe%s0RhrrYbuP&f>DWm?t7goFGhi=c zxqB6lXL?bjZ-e^QYZWV3gs?OsJO?*V}JF}*m^4M3-9FMz@ZGU z9HIFfheR8D0}g@!Ph6-wsuDmUN_s&5gc~?;TMorlT%zLX;Q<0i>(j>2&O7jBAq778 z$D8j40EZ`7cmfB|25QSPhfNzT7dQ8ku7QK4v+#z2)?V&wedHB@nZ2ugyBz1rVWr-H z0FQZria_lW9QNKoj4VeR9(=0W5DEfT>%2=7KA-K?|!yZv`|kPd}ZsYkB_KKP7x& zqPIBM`1a@Z>}7O+T~i*VWGCmci;Zt?-ImL5#XkSajjz2G|2o1cWOuCp-pBInd>JM` z#iYELU!9c6dsATS{^16f*%ZdDcg~7^W;mTwqb$6=N~pnlk@E)rcTX||ET)8Nd6jY% zT-YYFLs~*rYiFNm?weoC?D3yg`S9fmSS*Gyti)u?Gp~XMM%GN z?z+p-nt$JInKAEnGn>YF?=uhEc-GDHj+?qsROp;c-GPNB(|t3|`Cq=2u_)NF@v%e0 z;mwns6{Y#awtUoBE};6paB*+kD^4r7h6QKwmtY-e*T@-mc|fAXB88r!|6pAzQrFr@bF*ZwJC0&Kg>I)2s~Zt zQkzj}3IFec9oCkAmi1Jui!RLfD!T(L6WA>p%qGZ*JUH;>FN6E)+VZGXdu=C_0DIg? zt_P-BH~U?GsXMi9dh{7H}x>6EYXJJk;oswh(#dP;KDG zo1y1IWBa9(h3>x#G|oJXlM*(Vyk%ml=BY!y$CgXUh~B#K zm66X+nnlJz`o?ERn}^T%SuGAUFtZzhBNFJ04`tEaV!BaVGA=H1r3J%1;-CDy&c6#S Sg`HFwfWXt$&t;ucLK6U+)k9DK literal 0 HcmV?d00001 diff --git a/public/images/events/september-update-zh_CN.png b/public/images/events/september-update-zh_CN.png new file mode 100644 index 0000000000000000000000000000000000000000..ee56d644d244c8ca71b1c6e196b638e552caecef GIT binary patch literal 38689 zcmc#)1y_`9w55lTp^+H6yJ6@Uy1OK#q+tjNMY_ABK|)G81?jE)}K ziUR7=1a}DV3l3b>%m)PpkL15kRFu2|3KW#AQ8h(*!+?V0LQs&!NZZq5I!}%3_qS)3 z%??Y4J%85oSzfe9QIA$oJY!wJKr3NRmBVI`BSs4(okt5KG#^J-uwqvWg@$haLq}C0 zKwdsgOLvvct#;KIwHW`N`4x2CDJkiHx|;i4dgJXLg0gTX%WdNS?L#{>GquS)b6S!w zR5iCf=tVEjQzYWo*D%o2HDA7IKEl^mziYes!_;1Q%9|c5?qZW~U44g9$QS9?M=c$( zbb9&^E}mSH7eAkGY=%Ry-)HhNTk5SfDxIxt%Sy1NCngQUbImH%2#U2N`F?)9dD*=C z)${Q-*;AhTtE}FNv-_X7`ny+bdwcl=%frj|6=h7EuNCmCQB?5NVyQcv&_J*xyRSk- zp%HeV7_!*vy||w?6+iWfxSlo`NKK1f7*u4rwo4z&bC1OC23ogY{8 zX=c&zCv|%fUYyQUmiP*%V`H z4DSz%m%6aY?{Zr^+qmIoR!+Y>YYT4T zPZn=DFBnoMMjcVuGrg{t0hhI~Gop?`a)+ec5oFL&{{n(J-KzGWmOJXtXB&;vP7JyW zesD$7r`KN&r2mC0*rppW)SuFhH?_3j;o{m_2kz$%8nRdS3~$5Y7LY!{VW2-(KTV%TAEs>tA?gi5^& zqA9dgeLxFmcqpq5Vk^4^MJvcXBXoRjvPvWXx_4yKYNH^Gv3x#FK_y$boTBclfQyX_ z3t`n1$uQmQ;Ol%~xfqsmb|5c9|Lzejs;ZceLCLH+{V~>~gcuHQmrIY=qnsEQ;PK%W zH{*PgbV25b_~cY3g*^TM2?`;LC*I~G^h7-*J%>1cC3}cF+RvN8sCDQlRtocSBR=ds z{`>3W?Y-}q*H-_rJ#cnzqO+;#;_3112}~ogb8ry%aQ*#m4YtyS^%*lt5xM>D&)T1x zMeCH56m<3Iv9FORm{?-RsIcogS&_dG!sMD zyUwhSh+4F~4VxB?%0?X09~$|8!0uA$&rfK?-=EU3z+kWx4(A(}isyQXTC?mvI)>=t zz1;Vve3qLL&HG;!^Q(XZfbAtYf4D_KyVo$4^WjQA2+xSbAlXup5h?TArjN~?8=m}@ zUVhVuu8V?;C=}O31#vzF`!m~DWO1%3vuordv_#!jWZQ4L=L~+!r+||`pbG9&ij&Ds zH#G@-E0+Ctpfgdlc|>=-zq56E3SO3b1Ry;D5sEzDt4|^XfmDJX7W*Ef8V-++yjI1& z)OcPCKb%l5Es3;BOEwG=(-7!$v_r+k#Y>FVh9o7h+UvQh1`qPZJcHeeh-W$J*@ONK zi>IdXIF^M(ixo!kQvGbK^#8}Zs`vIu(e*3qY8Mq$_gRz|uJ-Uj8Oh(#elB`~mt(dm zxB8@yS5BS3i?wRCUWrNUFuJIzdGr^H6Sch$f5FF0D6q@^$(f4b%rH)zyvH-;*S>wq zE2sFVs9!Y$6qvK2!;s<_N+UrYcS1O#mTk8h)m*xyNU(7?f11t!LG32U!XhofA;Kvz zGB>d_FtCXb`ugy2^|eH??{+Jp?#1UVwuGRElY;|>T?r^OHih?;wq&jes;Z+?8RY5d ziNmxi-MuPx4edDna+I8_-Q|Dg=jA0}AgAu-<#j#cIwY6_^@BjXl{d?Rp zTV@@6=MWHZ3t-v)ufH2l|2D>hZoZp%bq9^$PD%m)k#_gvg=e)Ek?W7z5-S@!q zHEdb5tWJc)hs)X8dR_|o$y9fI@Zx-kVEgBa*vpDGt?H#E7H(E@nr{N|_!Q5V3JT$r z5_hNmeH#Apy@Cd{t*xXYG1?Ab*T2%HIx=(#?y{0jB(53Tq7pkV1x_Af-$*Bnlkee? zz|Xnj5l#F5y5VJI%1P;kffkA_AXF8Fpzd+XAi=0fjh_P9qa*@OZ@f)|zi=!g`vtan z-_x1K`xlKyxTRf=k&3}MI5WxGeSE{k6-KquK>2*w2}upkRM;u;mDcWBT1kO+LwnQt z(?J^jO}0@HEj83nI=2TpA@L3M9b34C&E!}iCK3|zulg~xXXH22Uh@nY;rFzLE2DvT zKq|`UMY`Pl+-SKqCJhy=QIU~IJ5x=I0Jk7T3kAg>+qWBvzxvzvnTNhn$h=jsqMDwb z&dRk!l;iPrr-~r>`l&|OCa>IEZKl0fm1AD%$BHA0BcK|LRQ$r*87|7)@9Q;6hO*e< zh*(iT5OQk|Tt`Ppb^5WE>3t}A{D+Ud z?jL(!W3ba>PkA1$&VK9R;AEhLg!&QVM~<;9h!Pktymm!Zd1+*4J#L5`|N50}?QC~9 zDy2YF*J!N&M}5gjfoLgyFBOi{Gf?u=!!Ox9+KR7ISI><8uKIj+CcgzS(&&{DHeEc zLB1a~adzifQ_eV~r58_&2_!g1@<8uto&Jd>BtZciRH%J^#_O^drfQ$l-4b48Z#&WZEIFY#d3 zgp4%A`oX_&*sacw?^*=v^p@HOFE;MUN!hNys1n=Q*jR`B6S<6uiMg1wDKCpCV-hlf z3S7*-ZF#dQU3{yB8q>9&!4a%PwW7kX*@UBvF@QSdd9eI*xy1}6d1w5VnY7B|n6Ker z0V_G$3PmN=d#%3_Zf|U8NJt5lkWlZRTk30jfdXDgdEhq=p#vq0Z3G!)lvmtr25iN# zVc^9)m8Nuw{917u%GqW_pJ$L~)Gia-Gt2lL0ijntZIF$aCUgRE7XEI?)9;y*51N?lyGl zulv-}b*@e-+Vc439p1Z>Tn*iVTwDoM$47J!$_z!T+>N^#|6*tu4HS$U=j-E`+jsxH zA@vS`ABU*9FvG$@CXz`P3EZjtEA>OY5)6o5(?k-D-99-sm}*%?siYyVOSJvk&EqV8 ze}7|HppgtTy|#Vh&SZrDu1Z{3$`~JV_=->rBJPbbwhA&<@0cIY*~vQ9>hMUim6_AR z1UHhhPg7Xt0`AoN)7m*x>fT#+dwqV@G#4#0Wt#-{is&d+l#VII zfy@hzSqP`LO>jF!P$+ORF<=II=GYQl?Ud99DM#>bg-5l@_YdgofW`~9O^=k>W(w14 zH<~@ABc4^6Vo}1j9q~P+d|nP6&__JZNdukXPo3;EeOXtU5Wk-UZZQRJgcRx2n9S7; z*ZVV?RX7&s0qrvCcT=mClasQ|o~oB)(8>G;ANeS%MC#$f-^s^^ke{>}smblAXsYiX z0Ze0*RbhUT+nWoV7FnbZ`C25s)wA>K*MB|Sf8*WfJ-0!huhQA6sVHmRqJ6|~@;qu-`w5i_mgEzjEV6}@V2#nVPck279)cS8-#?&;s%`$faZTdXy5;w6*XU*wKiU> zHb7Mg_JVoXoGd?lI<_FURzyo4Y_16ZHu{i`^-%tz2n~|kdCSA|qxeP3`Hc0o<7cgf z=8m!nW-m(W9G?6bV(5y;%qCwFyqIiCIqOw<&CzKe>00WHJH zP}BK!7Y5|_RJLTTFNQ+r+kkqwDNY&>1Ig!;! z!rfLhF1ab-{TXH-uVr{QUm0;a_41;L*l(ZZfWv-FW=20kpVWJS`Nya!$Nr{^#K*a{ zAgx;K)PWc#W@d~kRFS*Kzh@u}jGs$O2Z=3g`c%}^^IDdd@vZJFqW6B=%I%X8SsxTt zRPyJp(b3U`q9Rmi12Mk8d2`p<(YcKTz(H{joj|JpzWcL(MVsFJ5Z$93z9@>y`)80t zVLLi75tQ6+wT@>){W@1mc;u6^itOvpZzh)IC8Fsg%A)O0Os`*<*3K~?XFuXkzqHOX zU|t<$Fc(yG)Ia6=v+y=> zbN@IcbAM}Fv`RqpUk|L@`~0iu?Ww?aVq!)D9(wZr&u@p|wTF8B3p~OwJH64hPnUJ- zAC?q}xgaz$pG%7v)6Nxm*eKu#Ctu;P2*L8#jfWylTMA^hL?W40xpt?6)70`^MMCJ1 z3S92uC_8(htFOAU$mr2OU=Qd#g<3}4>u0zrnOoAwbth4THm&VHh#k+-IlL58>!(78 zoYq6@IcpBQ|D12NqK+f`z0BI{)oul;li&|3TI5J8{3L6;(#8g=DdU| z@8%FwSlCmRL83(Z@9M)-kfwlnD&;mo$St~z0_Ap1TcFWW;CrZ(t1HvV+wVpuX?Cxa zjcrs7pE>fWmlDKCq_u62Jh$Ev@4K7!O!b)&|5b%oX}_ZznL_Q^P2>=KQ)7KVYHjj* z0z?~tg2~%;EC@-c@nqL~sP8)cqA@1g{TeSt0|g!{1M$(!t1%?^3#ya(;Qv@E+vQ$L z?n+B@vt>%{p7XqILO%WeC}#H1KMP_5D0bb9jpmpW{`ii2t+1suhG{| zZhH7LE)DGk+}Cn}5o|-~JRdC%oMwZDDMR{R^C?ymVnz0DjTI;;PGcw{`KlkjxNUo5 zL8@n$Yy`YU$m$GpRz#Wi2u~oh7yoq$_vM;kIoFNFhh2i?4@-TU*QT_~1zGu{EQVtE zh6^{kgbAUu@Ry)v0H_{G;)SH73i7lBW@>6`UQcd;#r$<*-gEgM{|rO?J?r~08E^+k z4T^{Ff+848A(_)h9C7{fUp^GjuHGbmV`XJMKiN)^trwy)QAEOh{rr4ww<`WN%*$$L8Se+(~z4N>ZPje*Pw?PJAQpCRZzK zbzgG|!bS|Rwf)%sk|I-7IHBXJ-<$`rEjUk;C>JK2ieQ3=iV8EJ-ysRKZjm+SeJ+T<_UWbvyhs!2K>e1HLwuFCI!?U zHJ9(}>qUA0uIF{O?ez50ehLB7tl}PU>^^G?AOHNe@q#K0LX5ni7Vp_T&`ULDL*(TkQfRxtCo3!KA{%HP zsXU@<%8z|dC+@%M1?v4bZWa_2)c?{pI;vc7J1w@6 zWA38CA@1%DxA%Rxps}u*w)Vb1{+P}pA+Z_*+j-`_*Eko=Ozd7|7vi{H>4s6#u%hNgdB# z|3Fkr6b7YK#;>cidQWTFs-Mh}u7&GD%{4tCuCTwRO7A@7%`$58*QI=7mB9rol3%(2 zJUpcQ888Yk>yi8C+Hf)!@L17lnt>!%d)sdh=fhRgMG1u_nBVcwv>Ye;y39<{s_%VI z|IQ@JNcMr@DYRf~%XZFs6Ofox_THZLjQM!<+!)imFr_xuUCuEuJUSX<56G71(pc{!OJQov7IQC%#lBO@Uxk9 zF>jB-mwsl1ucX=)Vi})&LMubIoj|v9L21mD&GPB1HnG`ZS=oWun?aPZpd@h2Gx~6e zb@u*nA1tt{B9h->haM@%;^PPwffM@ZcI(9o$22$g3qX4p6Q8+ZpcX7ieyMcbU-+?Z za7c#D&h1%ZYJ>s#4{kogtHfa$QnxSv-p3ScTSQscdmdk(Zd$s(gFy2P1idXR*2I0B zY(WjPV`5d!C3JNswBmLC|7aJmb|YQxSjbf~lhLx8l3mU=eysLTp2SSHTKBF_OdQPX z$V$Jtc6#}e-sIM|=o*dz~;r)z)QVA`j>1HD_AW&`M(U2-)tVVbe zK%m8Ty!9n*JWTs=7Z`0SchrE5MITm_TrL;wcNi)&h>QEG z;N#=h+N?jm(IHIu|R*fbnInh$ZQR(W8_4{4Be;s$8%qi-eMR)nvyl}G= z$HO+dA1dUL$1Z-s4Y|^$&g*9YBvn7KP=bNto+%W`&*XwcNjvxIds&(?<@Ux(@H==* zy!WDZ0>aW8VBw;y^3+~2<0YC)Oi4pXHRHTJ*HgBtx1fMbO@!=B2%wNPZ)y$^zhCgp z)5l4O~TNdWoICHzw3*6X02*OEee&H6r zo=^FVJri?*UnFkOWiAoD4p-cFpU``2dwT@4snu}jbKgInuV!6-JcXqQkI4ClC~Qb( zX=$nNWGm*kZ0q1SPm?0yBQWM7P%Fs&bM9de1w?5?)yzVPE667G`hk=$m?zl7*p%OdwHF z6LJK-frn^;*--b+?(G&^_F4rYoYbhbmaEEY6WN~&*hM&?WW*2sSe#>covYTY&1Lgjn6#xJ5Z%RiOT%EiU#r+oOZA$ivAqiI&G zAr}1i(EO9d^i=hNJpr6Kb?>Rm<$fr z2$iD_P;+;puBko4OOCz7!QMHvMoV7)p?@mJ8Na{6fZKp!azH6w=NOPpu@fOKq&!CU z{__s$0-Bd`ZB93PikLbAb%vtn1}pZujv{qoQIS8bHH}y0%LQ4=T zNVSNMjSYQs&2Gp+Nh>8Kl?)MQ+=}Yyk>&_^K4RNcU;L`DnJfVV(l$NxJt?9$EF;0N zr@K4gqn<#|)8k*m?|*v#^w^EwS|)4H0Jqv*6D)7LN5#?$wZUCJE>83|f`tUS6JQmx zZ~ljK6&Ru;W5`)21+HdzBxmsO=H})?Vn+uQ4Cx=c|Dk7yi9~7qhMQ+pV@#9>k?`FI z$aqOhUS3X0V@;RJ+l?PHVKfF#5utXzI#2rtK6DM``61y4EhL)S-E%~aMp+U*h`;;i z=hPKW5$GTqSjPZ5=E9VIEdL%FgdU|BMIbDeW*9PW3v}rUC%g4f^oEoGvur0OL59vx zO(98yp$WuV)r0^qQe27V*wf7ygA`g0+HGA(tgQDXWs)r2p${?MPQEaROGT@aZ^v&F zs*a_32^P2n^;u7g?d9$Q)X6Nw{MW2@L?Fxz`>>WDb*C7C0wwhF%$564|jCz+#l zAN^DIyB;?)Z9Pj5uO2LT>oXHEe0}Do1is$eT*o4Y$oaQo<*~HJ6-Ni7 z%$A~xgL>2hGd9#o0d%cvYC8T>^($*=yT@8Q8eh+Kx;BocmDOTKL9e#+vLJ5X#di~H zBB^rwy>IFTjTA$fxPU~&RW03$N%I-L(4K6_ZooN-yTWfmuy-;yKMzC5AF#>Z;gsPM z^yII%biVa@`(!*aC@?Y}7JN#xR+nrjDZA}-bH`RBlVA8y`#D=tsv;$Uoo#1dwZF-C z4N7k7iw#ypA{it)0?{J}oMHCBVA(M?`hW%+OD0E!zT$+YiF&@EKvGDSd0zW!Q@cg6 z;q|{yEi{=xhaV*NmJ*(h%J-KzZ-y2#e}L<~fIoA69ANQEUAa{p$EH{aE!-_ z%1WkRb)VP2ajYclWD6_UBjNrHu4dNr!ivEZDbl|woSpbV(CzN4ne8IN%;S?2j+}!j zzP`lmT`ovCQ|W>XWXJmgV3>?-qM}(d<#NY>P$(3pt>{a8!Gaf}AQvCBDEppc!3KE6K=QdMe%0BX#kfXn;eS6U61%6xIVK z+Op{TP$3W>H>J3o$vbn_d&*tdojg(djk`!k(eUUt4b7s9rze|{`jLTC`xbC)*H>3e zXZRoM>v`>Et`I^JEV?lNIBR(MvK)sh&&4dm zpp&(-V411n?`apo$Z5wm*ri=iGAsOp?n^lHhP&fZvqO1#x&PYhMS;5O|I|;ws5xY( z(f{`LFIJQi;tXo;Bhz=G6ynEMN@zuB^zbiQEp2@JR%k3vS|YE7Ghv<6m4e12Nf%uu zI!*jzCz%31Cr3CYTS_N-jD2dqiaCfY9m6{muQVr5hbRmt;Xp2nZh5v(tM}%|*(sF_ z8Q&344+;JW^`|^6fE+6>ryi4!Zw^iT7^9VB)vgT{k5#~i!fTcBnF&}PA~HSdct*sp zv%$9lYy{?vT$@p?9$Ck9tK*y7bgM$%dA^H2MAxQ&#_N*@XzJco3j2A~I#bqH9hD#8 zEW0HdrvmlVcR9&*dwb#;@}gTSeoCzc$Cem91T#ii%-5~TmAcNEHaT94D510SEmq9P zFta_yLZg+AO;<8y_FI(gc&-(^sTa~cxr^9=jo2SS7Mm#)<3`o=cxlIJa92Sn?(GO;yJ^Dw&zV8^| zi<(?CP-Iqy+&Gv)+_6e;Na2`1W7NVa0$=6qUfSY~vY$V}e*+i^-;q|~Hqgi%MAmA4 zWX*=gwd40#v?5h?z(P`P1tiy^??M-8b?q=GI;PF~_X z4}PClVY6BtuAOS(EcF)=V^ ziFJ#dh^qVgWC^Zr_VPU$pMXCta!`+n`MZ1APQILFpPl<@#2=rc0eu z@&SFwt25uTH@857fJVa5*jTwW&15xH9>eDr)SR>ta0?fh^Jr4-`*-4baS`(LC*(C^ zWEh=Up0|E16JEZPMU>s~sXdUHGfQcq<9rZLM2nOj-9${9>e(x$h{6I3xo4z=g~T3o z`w?AM9tBnQTKZ;bO0E%z1q1;xeZ>e=9`5r`z^=>E|;Nb^Wmke?fFj` z_P$w87>(Qf5{z&sauj%we^tEaN5)_WT0DAv*8o~mwAk~2+N@71J!I(WwTraG8 zmiiJhY4O{CziT(}_41n?GwD9`;uc~d=|iFb5%E&Kx~eMl^dpk|_3PJkLFcIJ+tv90 zO}w3_80>&zI;YGGG*!m0G2hDH!O#>2&EK+_ziFo!GUx9zzx1zm+vjUIGTTHV4-fAz zr}#pyro~LG0$GCbC0P87Rqda-9}tt1s9Z4tj&z#uT?}2YsfC4R9U3ZfyFx497ZEi` z#1nFVPzl(6KNlBO{5MbNRI{ym>Jwei3%mcUzcu_mMi&wUmz(nQb6#JrI;+x-x>@B7^Q_dgd- zp?X=f`-JeEC3)KZi*f%yq2kz*!wpcQSdYrB(d(AvA+G^Ny3g)_QOa$T-1)5M8Kf|x zvYn$w$*INId_^q|E-&n<3!cu0Bk9`-3#9@CPA9?!d%8S2uKH221uz1(`omOM8tIR9 zSH!WQvEtZ*`+Q=~=LzvmgNjTbYq}NbX6n-5*{|%@sL3>SJufH;nZFr-!D7==Z~YPp z4P~^hCQ%Y|c6O$urmm^3M#Yd*JIcg2+13~0XLo?wivf(y^jNF@pEV$jkY7W{FH5!_Hx?P zK&V0nHLQx?e4r2*Y!PlJRcwl??35V=pRSdg6Pjx*{QUgXCwGEUGZGTkS3Z~aHgwk$ z^a-m{Fte@?O|8sLTkr8z*B z&mlwyyC-}H-mSQKT^*mwK7Jy}Hjw!eH9EXWx*x2=C+p}ahJw#2F#OMuzcedsrZ~SS zihjFmc4=uzX_PtQ_0M=>m>xcI8L`KMu@325JoEXcQ~b#0JQVfM4SoK zOsFLxt`Z{zGLzf`Ll|BD?EvpE#qWncA=jTm%>@h_P2Z!rBi$RhDpN8e3Jd zzyklSSpWR~1+18>Ff{N`Yr-J8y|K+~#78*-v4BtoW;_rmxqj1ypZ7!|@Ky>QIIli}0UjZ8h& zu0D3Zpj}zEdc`fFOccZIy>;EvSXl8opWG;_-1cLv9AAu3wFcuZn{CKo=^d&G;MTM> z`PdmOvVIaWMxh~9mSjp2i=zH0itcOvRwvGY(GlBn;O~I0kO*1$Ypr{Z8^eKM$P??wx38fuL0h$p0B0(-AkO;}(%^}y2x`U`IUq0~MQFfL$&vUt zaoEs+zavhNLRc5Q3nu^kL-Ii3z65!mG*5(XX!S~F>!>#Sf>s8$ZRUMD{>=$BX-__9 zaMVNe?ABUmC~n*ic6TV6^T`Uhv)L!4ocygO2Lxm8k=x~w~i z>+C>7qF8ko7`%1U;Cmh?u8Z}uM2(vHs^ilZGab!M(M`+g3pDVMXS zt}y~ZT_Aoc1xGP0CJ9eH%v>T*6B_RxpbXC!ixnO3W0=xKZkjf+{8pM>;X##SlSB?@Ksxl9Fhs?eL=s z3U0B&e7zzseRZla(ob~%iop*e^B2v_L0mz$yrrpu=sFTaQ1~;VUk1Qii-wRn(1s0( zN_@NjX+|v`D~kBQl@5~4!iBpuEzhCq|3_&;Vbc&FvqzVb*-|p0ej6;Az4^Bh#8%Tv z&UF3x7wvmRINd2fT5B7s&bU6gedVaPE;OLc@0greG8zOY6A7CDNY5aqy3i`$Te>$5 zh@d3~;XbjsL3Q!_)0}l>;(o_Ds?_T;VLUyR>_Xs`9JW_ae%Pm9-o1=jAQK{6c$s-( z$P@TR!93T^VbE${hhaeAZt%KgFM9Qb_9y&Ki|?-tz8OE)H*&qK34Fz92Uh5zVZGNn zW>Fwqw~H3M64W}6)GgicfYd|4a`2c?*3`b zHUoERWsz(FGcs~+qSPjWPil@bEFwYpg93}A<9cyWp)-A66dr$VXi^}0-OaPV_WUn0zt z4nP;Me)m3i&KL?kPruC)9ofaRuw0YY7rgv==DzuNDeo%q`C9P&30q~A7)-$KGjg5U za1WqNS3jv=MNWpAAcP}ABXS}fmz7lv_;I&}aX%~5OaC2)G5fE*5s_sL3vO!+zUr3` z$({tPW_g6bJQX%;?*@%{9sCkGB;408Q1(jaTl7UI8@h@sUnne)p4f*S4|3l7LjQZA z$trX2xc6SM-P|Ap8i) z`jobsn-HH^Au$%g@F$}BF*iF1^_cx7RuucYUxof3RoDNE3c0&K{ilV5M-#|CoR3m_ zE^zE&JS4@%3DA*RXhLZ!QTjNkqxm7%6!HgG;Y0X`4ZtqKY|m6SA0Ib&5TNou zU02E~DJoh3QG$l<%lL)Q5a>sYJ=62x_O1Wc1}t>-T1Hx1m;=t!%GjNTG&h+PwnT}q zk~WpW2XUSIJ@!$9Cy zjKr3Y4pws3x;xLPnD+KCu8?=;_upihpD|Sw)ojFlCs%P%L6PX710h?m*O3UW^h~?) z#Pml@j`=(>-$})|8K@=WeZ020h_}#$%6lkmc?VPN?4YZ@v1l;N;HQ@UiG*FKp;da8 zZ0x_6pF;K+K7_ll8>(b6_l4@Nrxz4Jt~bBDKHA^z??;ijza6Ju>$w=EmIcb{HR5Hl zb@lQ(!f;S01|2ZG1V^8P%*@QPhH%Rt9)b!5HNyKs35q9X3MFx%pFVv;e0U2aYLK;| z$Z^awN7rdpE8Vh#QPRy7Ih*2xxK&ZW_$jRqtle}8w%UA8Nx`S0&ztc zCionk^$lT<`uFpa-bj}IxnSoAcVBKIEl04IXk@-bM;kgwdYYvoleZ9W!8E?rt7}qW zRH?wIWTfd8C&yAQsB=w~TBvXw34_I%+MM>wYnNqNa+7-0sN%hG~#@M)B}N(?9!hF$BB-oGZ00`(sZK|`<(Y!?l(|k%yIM& zq!e0M0GkB^sQR)whaWokbWoFbu=fg9n(K?#r(tJ}-{umdwx9Rij+CWP(Z{`jTCA?g zM?%kUZj>fyB>j*S;w5@b6e8)XrK}bTKqL}HB5D`GmWe)gxjXd%h~NIFd7+>kTz!?T z#5Z5dq_IiO%g^tOvMVP-9v>ec9v(ja{@mAd{Y~Sx!(!=WR{C-?AyTb8}Bp*$6pdHj7pRA_)O*gynD1TJy7*`Czds?vZ#T^N-H>zS{O>MyBC z;`rLb+D`lJW8>=-n*5_>QDd2I- z()81(wwoIJDUo0SoDR}ZG3fOZG(=xlLchr>6cp3_SB zVmtQy`@Mnz0j#`wk2gU0yz%N9e13^Dd{$ZFWn&%9|{TUeZ^gLjSQ(D z8GW4Ru;N&K&UGPDR55#PEY&0U(OjUMhLzK86mM z_%%B}XV#KA?&hY%@IOy+A3!=6`0r%**YAI8?XOIZZhp&K55N3fP^!%SXxZf_4XDz5 z-REfcgdtu9A3pGDS3dv=`;eV9m8!NNb0z`jbg8lvdd)3QZ zTCObY?$^$OV+4QU;*1mLcYN9G@NK(^y^$42NdYDnX24}MXdTEM@SpMNpa9kc$GX($`P#^{3=O*6U z|3#IiAwuQ&24ze*j$nbvDoPbSgBK&Ev|r+@f1l3@{JGB1>`f{pN#)3$RFD7Cev!8) z;AQX`NW^XQBWKSs>W^{ghwn(|<`q8T7uu%kmPPNc51@NGp~Watr<;H8hqt(1U zhDJh!7ZEoo89<7sJ}tJ@%+H>LU+$sTE$?^u;@I}O6Yj%0>U_wo7hKl60iHJ=&EURS zfd$SRWwjqcNY z!7`L?_xMzSdoOZ7VEBY!u*QeTGt4bu%{h|-W#@GC!lM%yU70?A40N~Y>0%QyskQEV z1oCf#Ea4Fm2gD8z4(t{{{57nsv6QK=mWP`a+=ua$s>>hK@h<4~>ziSWx9|O5zaDA( zeYVjclx9n8OlIOw7Zcnb{lIcPT+kLvFy>4bHH~Gm0aytBi5JA zJqB)0fG>xpegIL~QPXHO(h~`laIhc=N2K7fBew_XHWBmD>_4O=B1zMcl_RL(!Oj>E zMQUQ7;%-%H3K}p(Xaw&H;q@*U!=AhqpnTxRyBBoWUpLEyPOfyZ!0hI+_ZaAKb`ARy z&vPqkQrd&vUtcQ?&0n~d#}Ug6Ff>Q`axaN8UtziXc;Z4$L-__I2CqhPAQIn+%>+GF zuQ<{JhbBha>fdF&`mZ&a{le=XQ1!6XvorP(5l;dxPy~p;3O;}dfc!%yZb|?7d1G0N z5PIQO#eSsb!pr?~1j5An-A!o%Z)wVZk;EtD#Ic%M?7Uu#;eosolrZwuJMa~1wc#wG zkjMHENYsfT7W?=6G05Pb&{2@Umpn8GJ_@+Mz~fWY(8N*_W73;|fYgLh=|8KmBNI;` zKo~E4xO?=Rcm$%YM3)S#{FQbb^{m~|Wa;=aNfdmowiBgtsm4#53*9{z>%-u!&=$uJ=1e#Zv ztIcBes`RLcO27@G0YZR4P~i)(?K%ALK3V%w{Wx%LkcgI=PhDHjN88IMz%4u`Tg+xm zo#E4@$fAXiffGuClV2^6O(HX~xVZcE;m@BxeE==`&r}`pyt=xQSMsfO-pu(EY&9Gd zyqNH4T2RK?q8OvLoX{6m{UOu^$uGpicpvQDf&l_MOPWph*efBCuBO@)%Q=7MHr?b6 zIH9aj_Be1L$!?CMUy$3?rv?lq6g(#_kvXiF;Xb2^W?ycJ5c1-{mb*_emY_2-=j*2& zwr6n^iUR16yjGid@eUltkNDVhG*cg9T!5maSwuvp#zH^X| zM~%&2tZ1L5**-?50B5srlZX`Yv*Oo3D4%vGF;~HNW@v1HRm1_Dw@Brj5Wu1?YkEJoL+DN*_&7{6|F|o5B98}jm0ni?h|1xqXTVuJ|*pTS)z~Bw2 zpy1{8vI|CJj@Odo_|Z{U05T4T7iR44Wl@$(MmjhV=wqcq_D#s$2wXA8V0!gl>sXF z+?=f3aAXAOs6N1B!Xknay2tU9E+_f?I*e%nNNmL9MF`bUm6Iz_S*OM_mU^OS;RAqC z;D^D>(p^^sBD+_I&b?dCpa?Hg16P*&eNxf9+bV%$=;?|AxsXuEM(xd;mfE6%E|etm z#XQ5MER(s9==S6bw%Z1q)t5r0uA}cvO(hqa3vbRt`Oyva+uqk#nCx(V#~#ub#7$qk zCfD~YZaJY@b5M42Iv5xj(AAWbr@jS(7;AoqH47syL4TJ4q1uE2_L7N-e*XLS)Uil- zVnSM|(;F#PvqF&Kd`D5)(MLbyANN14;{lO7NY`TU*YIxwqt)eU1ozVFYHSsE_pOz^ z{Vt%jp2mu-L3eZ9L3o#3*3_Ck1v4-F{rywA?sl>PrwNnOMJWEOy^?`9=3kQ@fzjoT zPy6Zt(72y~e{O%eKSV+P$^31tTP9T<@G}oP#TiD>+OJF1$p5Z$BeQy&oY{7wGN$%O zkdjsrInS`7RrterY0NRygiVc0kI)gYnwi&roOdo}j0JlWeqS(|UipiHi2Jh1adB*p&gg2t=xYC24NP!!m0tqZ?Fff+Xswya z&wAz_ZjL%;QAYF6qU(h>qf>Ppb+lCu5KH*1gq?QV#G4mGLN&vlNRY5pP+Y6+c$!R$ ztOzYIsYY4yS3132yu5_XLHuH3(Ru$;$}yYD2uw^4R@Pe}=I+TkQ!e==CMHHBP%F)s z4`7pLAdoU+aK6^v3lN4J1}`|JPfkw$rMnNl0(?U+v6yWX=YgDW^D$r-+4_m(hhicD zxZo7yAa_@FL1x<8A+4){f43UnlarH^bOV+K?d5;bCQXlvGwc`@u{`QP3EQYwe89Q# zGt67;;5ZP_omLcrWn_^hIshaLz{EVHWs8iohCr70l#2Uh-)X(n()}r;0H(=^d8%rV zr4CHlO)z1llkI}wqqUYeTBm~`cJ-kqP)w*CV}ufw9M*=$`!o|FsPl}u6=rbX?DQDj z3JQwZQXNFIW)Q8T9*K zlK+RPJDyhmcQaw~ZvYqRum*5KE?TnqKz(yTE6pK z0yJZrgpj z%5zmRY*H5S(iW~!IAJ(i$1kDWwI^IP$MM-JRCf24c^7xrmzDclLy2EolQLw>p&=cI zl7*>^jEn$H*+2d2@0YsxOhyT^^aS7-**KuLWeJklKAk{TU=0`E!$d=7%fXTEreC?ke?3r;#9HvwJt0INa0 zTWvrE!Vw$kYFJQ=K*5kZ?&y_N03zFwlvxut^tiDyZ2*J0?b!3eTeS>>8F@MTL|8LiCgtHWR-fVr04p@6 zuMdIqo}L2O?I~d`{%djgiyT=&7q!w@XtC=@LKKJMBG*To@z^cxw^F7CQa1IzC1ogD zKY!~5kATkiO;ztLckT}9?Z${<0~DNmm1x_!zNO9+xWwr%XwnI2s7|-~Bm{so4IwqP zdK-j*QbUiPiAT=V zwek9QYfDSRp_pi4uH~$2cgUCUj*bq1Wl)w82MJbI$C$0G9H;Y?=PWEN=vV)wJgKiJ zx!bdUH@e%_wKv@>dLW=sB={iymw^%D9S zi~)|L_V^s2oUc49fA!iFPaSAaH{Fr)Jx*`Bw^ z;8(wUNBdK>_$*Kd`FC@A6W}mDIjIeFsOeo54vdVpU{pJzoIvM=pQ)qLHMj>8s z7#pA*S)k(&a>`Iu&6?*TLpmx?iUNk@P;nB42Lfi$^*p;Qa(KT#orhm--q*kH3D+ngUKHx^U<;gK z`z-wWJ~=*3`@5FozfrdTv^6yUoSnZ>ek#$JDoj+~qfLIS91{`hHb|Nl_nO^J+TA0j z>lVv4mKeR@Qp8ig1>wCvq7fM+2pINdn|E8FTY@vaFSbU9LhU2P^Ul84n;!r9MeMi^ zFkLeXQTHZ^q8S{cj3P1`pJ!#_kr<)wS_r(+Dte@d?PpGiIMm&UK>!)-Nx{xMH)NWZ z%nx&r+M72_T?CWr-|!)L(bvx|uQuUGeRQoes9zS;LjDUci&zAfq$FWpq!AD%^5dkO=oH(3ws*M5pFj6y zFtT;lvvn3|^Qk5Py--*rLH{YgOKC8^HcVWZyIz?SMn>K?$#PTS_;SSdcnl7)wJZl%vU3Yn!kkuT|e&9rd_eoCO^N~he5;|dj{+gXlT=$f^JMu#a^=O2c* zNW*Ltf*E$H6!CJW?}HYv9JcdcXsTU=`|-6GQrHR~Lj=f+@cNL&!qs938DKMPFS}^o zQq|21i|r^zWB~T%EMX|DB3D?6P$jQWA}yT~IzX)Xa;X4NofF`%bp;)*m!7E)jvEqR z;4}ab;Z`ZLB0@YuCyqHqshKZ*7r4;{Y4&_h(igxa`d9UI5LYapVmwT|T}uV|i*T!H zrLCYz5QeV{V31oP2mxI0iNbP-;GrasB*(Cl59ZiLxY#KcXTn^y`w_5R-Ov)-l!eP; z4ml6H5ox<9oi$!t*`%bmdf!d-R#oRkhE#rr6*&Czj19KR*;D4IIO6`YcaDSYYJI3K zOM;e9R-@J;jl0J3@f&@4Nh;E(q9xK8CI0o1rM{sSG(7a*MuU=R77TS?BzwC03$A*x z(Y?vi@-YxfYJaXTyuCaxuJK>8m}=R%s?#o!r6p_c?fw?Af zs^$RAK4B7MEGi-9JohQNxvZcIC&_$v5*5QX*VmT%Yw5A*pz~q0@yGs+Rmp&rt5-*L z5pCINFR*znCoyByiu?=rv%4BK1_SyO7ROl<%*7bUF8fbXRxLbfiM_HV(NZN!V0IRkC z7DX)-?k5(K6N_*%$^m*MifUm-n)dD?^0ww)PNhp@c~9+~eU^cb1-_6@B#vf9aEc(K z*BPYVewO@H1WDLsnG{QJO!~btW>N?En$ZqlOV+!KAQA<6EK8?^>c7&+&;$6#1EY+=td7%cjr0E>_%EaeS4;G22ln|JG_eh*vN3DwY7rD+N^Xf zJM6WJre+VYTT)R{N}%0hf;E-KSS^~h*CrE@c~NU$mvfn)Aoi(W(BzI~89KG6-!A09 zXN-y<+FGQ4@PK$Y`ttJfZ{OWqpycTK8i&tA-f=kV!O!Kl1wMW}ke0{cl0lhk9K!{+ z0*V4u!#{YK?pj6BA?uAeStQn}5{qNf_~#+aCs^?s>uu=gT5wyk9){4fDzep~P6D#O zUnMXcL$P!xEP=a5f98Fp68?rq6x$MA_0ZhaGW1ok0L~KKEJx>r>a0-v*N^JktW7U< zEH9e*4&N>{`I?ecQ&Nvw*{t~q#up3Bi<0a1DcUbiE5w$U+T2_41hmLjRYpwoMbk)Z zd>yVx&$q1OQ7=KH;p%cSC@|~S=>TzuWKkbw7IMQ;_S#>8p52y%@0}Eo7VI4(sxe|- zHn{IWiA;AY^;pc6MZSP4V<+H+1EnZ>dL3bhd_F;;iLNK;J^Sx-0S`E zQp-d4M@H*_RMH>id4BBOVgQWxjDS@Ie`?IZrXF82559F908JS74EV;g9hdbz~q9WJ9Y-ZRilb%4yJdG?6eT^7l*b$@%Xi+FICWOizK}8jJ z^{uzGh+HuR?K|Zl>lO4%!giMu%`eT-RWOg<} zhHP#1CbyHugu&@4MPDMc+RPdABbHT^Bd+^Cd~NSMys&?ewcW6ZQ-Tk8< zuO)xgTcSi$Tob$ItkBWW%FqMSMCueKB>vU?o|?>VWqIBlMVk}xJhk`ApY3#Woh>aD zdU|>gWo1TrJkKop2Q@Xde?>#u#{fS}Z>6rRjD-o1pxuSR6i9`ZGnaBy0H>KBc+Zvr zns5bzX&YX!`!p_-v()NNax|pBKvhh^e|G}|sAiWyV}N1MxH`4eZ7)9D2B;qd5{GmD z+8T0+PB;a{yqvXFy)1Qs!#NTOwD>@|t7sC?sf$gGzGE1a6*wjSQ3lyIKl~&7xY|~b zHD2S)-U7`@756z0j!UY-#|$)Uy( zhYRn#5^H?rFK1GndHy=JH7bGt;Oaq?uwaPmEBR#M1;FJBp{DenU2v7yHTdG>v5-JN z@J!wAA15K6M4TJ2WcX9lHstubEL|wyS1h>u1 z&ll_Mz2@*VtUuf5F!$X~9p~izum2-Q$lMtU9lnRi%C(LQ}kf3Vv95HNB$DxjxJj{@fzLT+$f8B$zO#8USq zS-lLAwn+py#Y|02VTu4X!AU;_NH?ZNMv=nFVf{tFr{_$Q`El@}s(Gm-Q4|ur-d$VM z>O`|6g?BW}ND<7I6(OPaRlBu5xAIV%tjWcn;Q7UmQ$|!<3q39LWG{${Q#v2?jYKv;azsx|4wf zE3q3WDd9tmyu*x-9j^H^il!SSSc(auBh66?zfVdc+S>G_7{0!~7A!5=$90{RC;!7n z>aEGc@2~Z`1sZc5Ad*@@nOd>?mOgQ|8;P@k1%Ut}H-k|d&jO`zINUzZ7v0Lu_C7ylXos#=GapA#7sgVn|4=Og5Y31JCgvM#3F z+Z!h`uUHLDUD0ZhEsCxYrx-vysq^=v#(vuXpw8n8W^Na3BtD0Jm(&?fx<)w z4~WnXFdZLmH{)GTYR!%?!VBY-HJZ+D`cG|V^=Ds8iP(Rl2Apdw%m7WmcraXQGnddM zQwm|g^`t-s1Ms_OnRC{D2k9frq@lgG13kLs*z3<=Cv?kIMa9>6jvkkNYwvd) zH+?{gmikgQ{EDu%pVgJ8?GAOFCd6Tp$!rqp@3s(~-LqLnDt1MI4K;{Q$9g%Yrt*k{ zWfz8g6pWL1`u|ZQVSGz}-sTCK%^5`CXaaHJ=3a05-hU*5&3f>V{$IX-Z2d}K2sd6_ zq#IBeqog#ln;#T7&eeu!@9thpDQ7=!J=mnhM8I4xOo2?OdL%I53ef9c+u7L#2EG!B zNJ&rc0j54H?3Zo&EY~eY1Sl2LqwCu@He%+eub6uKM~6fkQTg!(Q;Vh+%H1=w^$EGB=Z5;NpJbGv~^l zgP8lwWwf)$#07(<(^9=@zHwe1uuTdu-jRO$YHM~Fz1(4 zzIDDsRvfD$682p`dH}j@rFH))JE)LD+3(LbccoBolS5)mFOFeEcd(jIIKFOLuiOY-myZ_ss_zVC0u@Yul#NiwtacQ$EvO4K@MKGc|g zb%Vjq03+}x{#O8ALt<#B7W_WW5*e>54fF8m%hDHZx#cUE*D*{l{lYG31FpqRuVW`?=hDAchWMX7Ty1+!0h@^hFcz_}uvjy*vapTsf&Uw> zu)4ZxGi@>M(4RpD^i`uoP`?U*vaw;|X^gXbUs&XLJU`xSuE3=gBz(7l-R#?(^lqy6 zZi-hem(!qhC@0b+lyDo#W+4L@x)>N3n)!69f%0h*d?A!3fzQI9tcQ~}@h_+frqQ6d z%mj>1kx#TmyZhC;xe_n?W?m){=LwVj=V9ku+C~KA%4#Zw-QGvxH^s(n7Yi_|i{Z>} z8(wE6c154$G)}dQ1*jN%$-nlK@pzp^36)zS*wvljjToVr8~f=fslbF7sovuYB4^*% zzSP1v;ixX)6DVi)RQElvvI0Z?Z|)pZQLU1akXRvsAvn9n0Z)hwxt+cJzgT+&n3@4W za5^$OOIV&jM4H@Gt*F=MWKS-f+T?xuHlhu7~KWT9Y=7)fdg8)@DM1_ys_-_3MK+U}e}$)_mpa=GNF`txK=1t=*mr zz#yf8T=A236cOZ9e20TfVIGm&c?3tZ z6eFW-xfW&ZVd0nY$3dRJ5cg3?lF3?ZV($Inu?+KHr1a(*w)g0Qbz{}Cc3QlXAP@(LxaK`}8y68DQ3*MwA zrKSGJXsBi8WafU!92=1BB>}5DL_+qQmEVg%nU)LjWMk7=6Zde zKy0x35;#o(K;m_jenI_opXvoknHmaH2`R9*ihnW1dV}O@@sS_!@~$w(OB8KBRgE1* zb#{u2Dzy9iF#=Tx*MEj-0ea9AfRFpYA^{ZK?31+N2P_CCm;y%GFZNwsz=SEUsg&zk ze<7Nhn%bply86v@MG}Pc18{%=b-8fqc5dT;^7(}$VXo_AeaeV$7z&1toE$1In)&x1 zKXkYMu=%!oXE}WZw4yW8)CrD5gLv@~{Y5%+7fA%|$y@1kqvE8#QpZ>R z#;3)>$%hU=fDWL^{&RaW=w|wKmujQYM1yLSh{evnGQQRmuF%z&1ypc1t%ywceeQ(c zT3(I8&N~mzAeXo7#Z5(`=3Ia)SwJjpZ}RKzI6ToXuI-uT*AIG8E`f4kTTe$VpAvIe zBq7Ny`ejts1>5C@>Zsm`_NoWqdzTUa7B$b&RZsF))v4#}U!7oU&$lQZT@c2cxJmLjwYg0!X_S|LLiK+J=DBGZpmbKR?(HSH@V#;35^S zuRSf%x8?;s-TkXPyx@4YX#LIkHP7_J)pv2PBgEg?!xXmgf9f}IH1P{mM6_&Gm~w#T2kk{55g;78Xhhj{8&jbuAF-;7~z9A@K3)2g%IDTA=8O zq=0}s5C8|_lBMrzzoI+CAB*f?0oou>&%=4+IJY|tMmM88U5gv94*SuhMGGLCK_K1y zMfW}Z*HW_s*J-Xpg>FlMw`k%@jWNbQ$lCapGCJ<^cTOWjCi+GR*@r?x$JIhMAC_qu z-k9zH*tIe+T;uPIp!HMB3f+XFz3bm$VKD=KF%Zs=d9k#|2hJ9{=UZS_zM#gr+F7}< zMOffFtg9!YC=PXGZRyXWVB~AQ+27lsC7C=`T+xdWK%UDgs32sc3ArS1}31$=%e#uX{x={%ggW+H_w{Ic8{#Us|`b{<` zH+O!1J~0S*Nr9J^5a#3WuL}GW_#iMF@x4!J@xMW6WR$VQL+W=AMCEmM?QLzpcKFK= zu-v1f?w6G%BqW$W9vA|W^}ljI=tmzvfg4OM%=1|#hQIAt)F# z=W{y31;A_x2zx?xZ*TYa0owf)6=Wd>jo-z9zyY>O5;fW-$OtvHDg@=lr|}Tcgy-eo zPh^jpcTc^R*f2fInX9$W->0OW0}fyd$+}CGLMLXTrDo0c%Ue$Yjuh`=fKZCJ+R6R9 z`y0kN^a7+}mz_~7Y$3Z|$RavqV?LRtAWcG6T~fI`_kFAJ2fJ;z#@INUe%>(3nE#G} zWLATz%ar7AWQ10k9{-Q;Wgw`YE_)IT0T5xhF)F0i#ud)=No^6u$vEcEeTMM!Z%6Up z&RMZ6F-YCrToX576R1F;AQd{~UA6r;l`u6%AjymhS?RO1H=V=c^f{<3U;A)lmU9j` zW&UkJ%|oAv)Q8`%bx}BpOG)Ji7Xyfo=uk;c?vutJl9MTFyGo z?Row%y8%$@Wsdt4Jt8<|b2wg8O-+lYAlWW`nHIC}h9CnavOHBjKeQDeyuoP~-y@3w zg(-#knd*&vzSHjG^J`14vwehH0DWE|cY z^UfDWulE&eZy4(f(!*)q;XZj7qCAH*Eu+Oh2IVi*3x_+IsUJk01oBP5xgDIQ|R( z&|95Yp!YyF**8*$Art`IAIrjTmyo5YLZ+ZSX_M=pUWGL|+?|{T-iX5~jmh1IDC}2& z8n54vC*A<1qW_u|+79^Un1oBt=kuRZRCwQTYShJ(W13g375Y{L@j^nf737h;ckat0 zyz^Tfdfchk9?{jM2`?^U&ZF{YuKbGG&k_Np$vyJfz#jZcTdyQG78g?e7q`aD_jKXg zXtt8($QpgdjE4(>O~Py8v0`{!hqnr~zkQ{b`}V#H;zgds2cvP`8!(SewExFKrFV+u z<0f&R>M$V8F_I)ae#^+wIng06o*X4aXjJ3j?>M?3?md`%fZyx(jbtjy*}*-}T-4# z7znh*e^{a&uxe^U6<_y&)}lcN2rNO^A+;wqry6ZiKW+GhoJD3Aw4);jLr@wEjiqY} zq^V}!qC-Zf9J&}G@4S3{G9RW;@csqRfXjk^;ThPYnL1C-@8y=DUPmux6|8OFFWRN| z6c(;0D$*22R-4v#9I%gQYAZ;01GX+Hz>Niq0Zfmz|DT-kG%cw+qvy)SaAz$|@$6cp zJ(L!!n=S&461JtE0B#6Q<0Ok&U8i2EK_UW= zdXAjE-Sz%b6-2N`nCcGU#sHTtnT`Mub%~(?0Pl zP>Xhb-r^;T;`s6-O2pvKr>Y|Glr4sxai}(Lvlg_7GX35&-`R-8ATnH}cPF$WU->CP!IeSq`U>S7V zPYY5csii}N*VfhofrcOdx>WwH3Ywal`JRh!;7ke6KtEy)v`CI&Y8}=NYu*OF+3^9O zC73MVaE|5N zAY$-J{i=zTTX zA8{@NGKP|i%c)D?1(i}^B@qnk);l2J;YtU=`KL@77wXU^T)q0s1UYUojz;M#Fmr^8 z6aP8cr2hVz7L-EHOW?gW^i`?*eF}u*;Q;IU43Mx13L-SVTZ9|*V-#^WyXba=Q0$+! zf-we~thk1B1fY>yz*RRfpYMMn${?EEzj@vwAkm1V2ec8l5z_4dHE`d6zki4OOIJfQ z?4uXF9FPk^7&#i^gYX)3g_TCzL&TKr2V%XdKr6Q$z%x2?a1tvYg2MYc$C-Tx@H?s6 zXi6ZAs{TV=x{VJZzyRM0kYR2I%} zmpmTO!EQ<$dUnuLZN-^GR&^P7G~U>b)2vlGCJ0_*=f$e&)o>O11nBV(mEDzbN}tDe zlch-D^z9-mgMa#6zn4gPK2|q#CWkmXNCd3uq9H|V-2V|Dsi_w72% z!GMiZ4w^WGl_7~0PrIu#!%ph6_%E*ci}OAN(_jD!A*#(~OY=sv<|VZ)zkDO0&K-d8y>#dNLqkP!j`MJyty$TR8zTcrc2kq}Kklg1nql zbA6@bcbn%)E|Vm_p`;laZts&nUaSALI@ln4-Z)fsRhItRl$Y8Wx3nb_Fj*cN#>p1AnUv%2*TBy3CwP>{>mgjBw*MCM&g3YITbITWg zp8D-Supi`e*n<;a+}h}XF&@Gyy$}^)hPVhHhgHW-dM>%(ln9d?z!f5sgQSNPbw+sO zL;!p_Lc zpn}1u`Z*Bi+|?p+xhfTw{cbi8*dVZ6)hL6mHj30))6zytosu+D*6jIU9}}_}u_;PZ zg2X7t2Va{0eY76CQnGaU{e6R11D+nEvPB&3N=~gqUH|dw;tXh!vI2S1i6NCuLvfz* z6Q`Dv;!84hdx{y(tq3wih6GuHMtc2{X~QLE&Yq)Vn43dc`M?mRSifjV(fho=*1@8P z$u%eM^&Bntu#fZ+MYpEf?#jSD(%FA_-Qx2z?p=|fpkT;0`eH~@VSo*fa3z@_v*N)( zXK#+!sGcPeNhDG`(q4!VnG!?paejyi5&`qvP^b}+lbuX#+Xr=ghT}!S54a?Jeith7FrXUc& zbPLZfvQ87gF!$_h>h<)sI$ldm4$!lmU3-JWB&UU20MaLL4@Ooda3XM?2~nalr7y?i zcp!q|vYlzKo}QH*<}OiFZDhpQ1;lmyhF|UH+Ws8Y*EB>{d>&wXR6$5nE;UR(xKh%ZLSFNb*N4xjq=kcMP^`Bc2o%MB)A^HW0eQn?fvcAgr# z^d(>ES%dOYbI^C{g^O8G&dZTV(Cv`&piTsVSFzN{sf?a!4-go4FbQiX_gbbB5s4-8 zf5?I|6%uBY5fyIzIEgv}#cq**aI5im;(3{LkjRutZ{RmvpP20F1gdptWMIQcGkHW# zbk6lW(ym9mm)1r6(d4J*qGq>xe?CR@S}?M3=Wh>uJe&^h2I>W@HaM8p z>8yAaxilwQx(Q;VB7@vM(@CMuqF3(q(@o9D;pqgD0ar)50}7Fd5Nsh#m`p`i#AyIL zD1k5JweToh>v_s)h4F&}7+af)(r8Nw>4Q7yJBZk{9ixPPbE0dP`On+7t%Av&eapsy znYF?$3kO;$bs(@j7&bkv;MzDM=g0hDG|E+M{v#+?B*<6 z1Ni0&LV{H@YD`!tCfo~_N3jIqQ{fDa!)EOw4@TLiCnwGbg_q*87Gy|i%2G+hB>iPZwQyeC6`6rd@3ndzeHvz&^7131Xr>GZcNa z$zEC=Y<-03fCj6d*~#2czcJ--FU~5j;{md$5J7L zm*@n$t1Q@n^fLpE%J5!QC5?u*xcedF#m2VU*+cWN%eM?+K_)+)yfedOuzf4~ zPS8E?9zG5;kgJsBoU{&=9k<#kvgY+&s!bhVWY-wf^;8S!NG|~|5&Y6?aDy!S!{MT{ zS411fVraUmy-hqOX!z_EL?t0YZ|l65=B8x$i!d(8snN)_3+NG^fa9k~v!q^OeDo?G zr*%k|BzSB}m^&JP=Q16^A2Pcgv-^L|%m5<}FT8k51o@pAM3VJHo*|TwWR5H(TyF(~ zqZ5DfzdanScB%n_?pCk%%=df4RWCLg8vllG8`WsUx3v_jUSD2L^CL#QHY}1;uj*Pj z()OrCwO)wQ8KO6!tkMABCBCOgV2&dc)0&WVZ2gay;$K!NHa(jE&^)S_sg9_Z+HjXD zYKsg}Nb+0{tiiO=vuTten`OB;9tNwl_J?-^rupOgNO9~Ig%N-yT1JCJ$azL@zT@{< z?233+M+rso0OUYd@Ha%bv&zw$PrRLGpXk1*<%*z-zi-(l(1)jsqZ~U~@>hceYtyO? z@L8WKyW2V?w{{K#Opj6kMdh&~t3dfi##w-G%&_^cp}V4MN}YyuVv0{e`NuAnvm|d7 zs+Sq4SCP0RF}aQheX0JQzwfA+*S#KtuGC~c?R&V2&AcIuG1Gkr!Sto(e-wZf3F@X` z&+5=yl>GAh@#l-jo%U^yK$0S|MP~2Y4Mhxvk_xwUVj|w3e~zFQp8`}|(W`74L`&^r zF5B!?m#KOOcF}h->TKhv3z|?n)F@SyF#d4MD7JUWuwuk4OL4~9!q-Ay=gLYx!WA;s z*z2Am%M?a(gT)&0u|0g3vs<%~sOLT;M~8L#ZM=(#{AM2GA&>J}7{-msDm-I1gl?>^ z_5JM*#R2u&xZM@Ev?iMD8^@ROc%Q6Y-iZjayaLrEU*pZH+lguyotoNtcw7{{YjJ_b4eoOqC)D0y&gb$jMNrC|a^FadlL*)i(Dq6)6+4=`1S4S8k@-tIZaaFHO1Yn zF|O9mJ3Py9oAS%$X;l%6V7A39`}d9P##`rwzrRy0NxXZACS2};-$pE#DV88Nm245ym-%B|je3#9(p z_JYi{5cR)r*WFDe&yQ%$YR?z$bK8pagH8af_-Uq&RQ%L{vmVqr&on4b7F5U*>pf!0 zb#FEI&RiiLbHw|Sw$$1InDuG!^Nv(ZZK2tw+A#cksMvhz1ZWLCixdc{S@XK zs?)Ac4t?uqN;&=CuZ|W0O7FV|VT_n9bjUT&jf!TsxfAQ4ZqO0s{z21hQ(x<+t2T^3 zMlx<9dGUA;BPJ>P%c_aSa`+gaVb7otjIH&N@RGmW$uy59QGJzv{(D^AEv=q<|GsfL z|8XHHaM};(n<&2K-3>U{E7AbNaf*PS1o+UcXArz*mDqi?mX%urcoW1WSl7_`2JqT` zV^u{^r__!B#R_j5WvDoQP-e=ygzsZ1Q*~U|t^w@k9e67B7;LnJd#W)fd-dSLj!G?s3G8`L3g}j0e^zozhqSPwG zmOG}Yz6u8@S1aCe|(wEDAsDLHZ1#0=7 z2!G;ruqbGMiKx(^Drt#WtZ>x}3)hxoIx0Z<W%dY&LQUo#@lpzuq$#3!N zZj=Oll^DM5raWP1WOGAQa548cT{A->$4k^~c&~qX*0*Z!4s7UIEU;^GA}f*@nv_^m zKy=n=FlV_6$#8o!AhZiM#ISk@@e*=Z!sQvsFMJ_O-^+w6 zIqK70XBza)i)}6fe=Fi9T@r!|osk||Dpg!#ab9KruJe*(7f@?E-7n62k;awq zW~IuIj0@r5)pEaV4HjXhVWfnExjf&g4l5nQwQ-y|9mz!oDbpw=A*S^5gifEOZ7%pRPN%PWn)@E< z&~ZumUTIKedO~W_3e_7rr$`{(IJxP;l^^t1noQe?B=ovP9wW zn3|HgP$yVetXOh_w1*`{$#ZC-kVWRVmV;0;2~Z|ZS1ka9Ds_;z`hiW-@!y`TbL7XPDr{5Y6aq88Ncj*k0BF$17uFNWg5`{}o z(i10VUmv;1vRAjSyydJGvqJipRz5dLgP?&|1U74Kc-jA98RVcS))PS)kR1O5bK3sP=4;{~S3-3f#+Zpof`w+~d zU%+A0@N3K+y5{>LQ#Pj`30cDX!S8KIfN;>#`ux4$-?%)l%csuMpfg?k+OeveCC5-% zh2v^H61dEJ;9IO=b#aycpy1R2+zM-IIZh*XXFWs7n{Yo1c{2|A0$yxA6+fM;xYvfS zsWv=jiRli=Pje}c%|6VRuABu*PJ)leak*{KcXS7T*;wN9D|*=r3XmzEVwNk&tb?9D z+p=ujnML*KRY7x4@=ZcU(Z)OjSCLA6>`{D}UxbIWJSbLyHS%cEITXK7am})fXz=VO;WT zA-aB?lNd2i9L(%JjFIhF=-7_8%SvMH@WG5zxOzU^w%b<5O1wgOj%>g0!(8?7tZ~qV zbvyUw$8Q~hk+Q|xs>CojA80t;rC@I26VEro%0b(f&TO+U;2+&sScu6cs1nfVEBuP8 z?~c{{Z$h&zPV?0KTx^tV6#olq3f0jXrkU^W^!tAAC7+JwypTyG<2Tc4M^U6IPbSYM!v8;GFf|x^!lWd!m3@q@WG#x3 zB_z9uDZ^N@Whm>sk=AITn4ZC{X@_W2k78I^pq_u}9&etPRZ=n#bU(jmb6uxE7TbyMADskM|!x}2uR z8a#wT;EaM*w}k2DtYMQ>w?bhhzhR zKyDTP_7ds1)8gEV$xq8M#O?2nLGvuyjsdIg^v0v@z#8Kq8N7DzBPUDg_}@+5xS^~+ zN2k+<)e2SPDc!E{tfIRg=~!wPVT<0{RoMlXW@s34ICDJm=l0|?vLYqco9$5Ef&&W@ z9lL;lNii&Sfau9;!;k$;?}o-`n8kyN{l@IeVW|0x;p9YeFifo59gBQJFSEY z*k=3$I3N$-sJ0Q1+72F+RpWn?a~HC$EzZ+N!v<$zY7GnWvc2*q*MNWH;SCo-8$A1B)4?ks zrFugxQ23Ujw_niGH>`AK;&-f-7us6bt!7EICvH2JjSGRoKDDe-8_sICOX9%NuBRtN zK)$bb0cM^n;cxREQ&+I{eVWK??o&~#=O+;J*g6s8Lu4W;!5YAAwhN#T_^JFqgBpIa?^ua0zyCKfvHUY4g9$}HV;hJ&I1*PVr*lf zGlN=$s1U4PY|i@vi|yUp5~d{<_}9NI17nyCar9b6&<0k;N? z#y?jY@>V0}Ym{lF!xr8_=pfco+aKLEK1}E#6Nfl2qKe3Dy0s3CPMEHhZct#UDY`rqQWb2?88MkV&$CX6f2^zTRPO;h`r z!{{6gVjY!6)^q#quNYV*)TqSiD@%lE`aF9NvStL6e|);U*Cyz-m;&6;iVJdz(P+IJdHu&TG&Y-Bl5TL@8Y zOS;QeO5(iqVhrO=`J1I`s2>pVX&Q`X*xGxXKPE9mjTT!QIooh1sSKFi9q!33s;bnQ zxn?RC5sK{EP14q1adJJDL#nt+VweMZl+>>TW#aRcalmT9HeTj^#)<+UjMFmhzX)I^ z|NnBK5`5$0B8Q^HspPZ!54ngA#vtggtnq5!4PrTcEb~yyFv>3M2Li1p5HDN3o+9+! zrbyvj{6mfZhvVlj!VFMEc(<_=tw?Z0w7eIraya)g4KDI$I%9b2>H)b8JRmpq0_O9h z{XfZPRqvP)ZGmhut8s=)l150W$8dL8-Rab<$H%_cW_*z=mtmxyn+s8LYW)0t-0QE} z)s|?M=RQ}^@n1>C0iVUcq!{8awn%#WFMtUSIf0h+U5v5-o-oN|_%|oSmPT-a0t8RB3$Au=063 zTMMNG`!i@J;jbdlX4a6N+Wjidagnkv-Pd97X7k^WB^Qbk;P8Nzr+cBsJ9z5jHfK%i zI2+WMOC%E#A>b1^DkX0O2>o7~HUq<3cDZEI`~fR(KbN;jqsU?46gAzXy@B3j3r^PZ zc<*E^4an-ay@F0&3(CUh$p+a$7A}NU`&HvKu(7rErU9H!J{>`}E@QYPuRhfX{XHUF zfl78r(@-WsG+~56xCm#j+vcTAq@auxUGk{FW^}jHaQqERxH$h_0>;gydPePbjt!hM z_Y&pOZ25#^9X0Iw51C;6cu8kOQF}9w2!VmwPhO6F9iB1uo<)aOY73tywlERdy=D(l zEYn7hVH4JSU3~+d&XQ)-jb7#49p;XH?zwwvqN*4bVwK3N4l9HfzNIvu+2+5O9N1x3 z%%pVMR|tX%dK&{0E`Ka7X76{$NL!Sl4RU=;6pqJ-6ua@vD>?bq zw&#Qc_?YXVPO|4~7ZyH6_6Vc<8)surlW(r|5iG@9qV(iR&fVNpGFltW(t?4}h8<(Y zai{~I;%CM*^X>%;V+O0EDARIET}Zy zdyoqTbq6LMcg7VXY7F1e5UmsV`RQe*E{$Ci3r^CD-~hv#QtnMJ{YuED@C{_s+#`|1 z&MR2|x3&uPn0Z)TgAfAJK`Q2$ty7>A_Uh(9J-U%nDa-T{XG_wQEWFZBp8ljRfF4S@ zWlk4%+1NBAt9fk7s85PQ77c z6N$4d10k)M^o_XTmu!Zie?>~z2J1dfU)Ern^PLSRQ`ut47G};2(fYrbDUf({z0?Y#fwChGDCJ-4#WtUx)j54zesvmi>| zbxJU8($G(R9{hXz-pQ?v?2*Ez;vu84i^F~CsS?ItmH#v*4nV4)X&~p5--C3uAS|=aLe7rZ`(qL53~1(#iIgAlkM4mM4u9? zk6yzjE%A9Ud6YzbApk_@QzswpTfq?|dW8DruB%>^4~P!qFC3<+Z(OxUq%-oF6X zU>mEQ+U=TBsY9)ba&aKjBLXS!aBopsbmEU0R=>X{->(QDxNc_oXLKi*B+>P|7Nv-^ z(_i{pB0LO}EuByqhrp7qxk{ODi~TMxvQ#n>tGRw|!tJyw8f`D;>7QI$*})X>Z%-#! zyiK$~bCj}&w7=No&`^Ed&cr0!v}}1~kK2#h<@c-mJ z7#{B!jz``7d(y9n!tN{-H$Ady5RWjyijq+kYF${44^Qa7s|yFK``Jmy@Tn`ewtm?e zmk)IMHL~~J-}J|-U{o|vzv7zoWxvLAIaIv7KlKzZ>mCAB!sL>>Wc}7`r#MT?ntOtP zArM3-Dc^zNYzLB^&k{<01v>?qvoI}N4DdW2`f_)efd+`)lKri8MR77fi@fyw=YaMR-Nhrr?BbV}uVksde9DF4Z> zAyA~*;VD|8r*9(fMv10Y?Y5e-Expv4zLT#Nh>v913pRsw{vSQ1&koTi+47}T{OXnTC0>1g^jxS z0B3L0d;H@enqOk7RB2PFwk#GqC=0DfS9u6I{Geh$>hhjefwxpk@kX*-q3Dg6j^^cSO;gcZ6gcX1y(v?tHs-`hBnfw~>DjUJ4 zGB#iogb5Q!GA*ypHXJaO#61{&&0X>U zK4U%%g?oH1wfA(1p@PGjPnW+e*(hK!MTwQm8U#6P_6zT$|Yt^X?L{)=1B!feg} znJ_yBC0vo9rpcgiMRXPS?d!O8aKy5QMe6r8zUdlMC|tp(42E@4R^oCL3T0qb6@MJL zJeL@QY$iIS*LwVTDrJ6)1~Nq{A;;XEHPzgoWWNGM#J5_EPVPrFVAj&48YGS!m}1>$ z8b~CTT-Y704qeACB0}}_i8l@1mN~vkZt!WT(V?~{yJ*UId+~ap#th&sVnXQ~W@Gn0 z8z6x`f#JZLPzEgeSP$=z_tytGw(ny)l1z=KzBsS>$@!0$P>^Op#Xcvlm?~JZOulH? zGFhR*IMCk0w>*4N2C6#a!llE4fUS{E-xF*5RuUw}oaeLC+~(Q!mFx8?rPOF>lu`;; zgl0S9XMv3A^Mr|NN$o0Z-tS_@3;-ta!UH}LaD+Plw?8yh@)|3UI5V;XhIGiG|LyPJ lhL@3o;g{|I?;DK$pYt2F+}(Z_Cubnwd7y2eRjy$h`akwtI&%O3 literal 0 HcmV?d00001 diff --git a/src/data/biomes.ts b/src/data/biomes.ts index d9ea22f50f2..721231f9cb0 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -7666,7 +7666,7 @@ export function initBiomes() { if (biome === Biome.END) { const biomeList = Object.keys(Biome).filter(key => !isNaN(Number(key))); biomeList.pop(); // Removes Biome.END from the list - const randIndex = Utils.randInt(biomeList.length, 2); // Will never be Biome.TOWN or Biome.PLAINS + const randIndex = Utils.randInt(biomeList.length, 1); // Will never be Biome.TOWN biome = Biome[biomeList[randIndex]]; } const linkedBiomes: (Biome | [ Biome, integer ])[] = Array.isArray(biomeLinks[biome]) diff --git a/src/loading-scene.ts b/src/loading-scene.ts index b086b0cb002..e4a73414cd1 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -41,8 +41,6 @@ export class LoadingScene extends SceneBase { this.loadImage("loading_bg", "arenas"); this.loadImage("logo", ""); - // this.loadImage("pride-update", "events"); - this.loadImage("august-variant-update", "events"); // Load menu images this.loadAtlas("bg", "ui"); @@ -246,7 +244,12 @@ export class LoadingScene extends SceneBase { } else { this.loadAtlas("types", ""); } - + const availableLangs = ["en", "de", "it", "fr", "ja", "ko", "es", "pt_BR", "zh_CN"]; + if (lang && availableLangs.includes(lang)) { + this.loadImage("september-update-"+lang, "events"); + } else { + this.loadImage("september-update-en", "events"); + } this.loadAtlas("statuses", ""); this.loadAtlas("categories", ""); diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts index 18de67bfa86..7d9d71a8d68 100644 --- a/src/timed-event-manager.ts +++ b/src/timed-event-manager.ts @@ -1,35 +1,39 @@ -import BattleScene from "#app/battle-scene.js"; -import { TextStyle, addTextObject } from "#app/ui/text.js"; +import BattleScene from "#app/battle-scene"; +import { TextStyle, addTextObject } from "#app/ui/text"; +import i18next from "i18next"; export enum EventType { - SHINY + SHINY, + GENERIC } -interface TimedEvent { - name: string; - eventType: EventType; - shinyMultiplier?: number; - startDate: Date; - endDate: Date; - bannerFilename?: string +interface EventBanner { + bannerKey?: string; + xPosition?: number; + yPosition?: number; + scale?: number; + availableLangs?: string[]; +} + +interface TimedEvent extends EventBanner { + name: string; + eventType: EventType; + shinyMultiplier?: number; + startDate: Date; + endDate: Date; } const timedEvents: TimedEvent[] = [ { - name: "Pride Update", - eventType: EventType.SHINY, - shinyMultiplier: 2, - startDate: new Date(Date.UTC(2024, 5, 14, 0)), - endDate: new Date(Date.UTC(2024, 5, 23, 0)), - bannerFilename: "pride-update" - }, - { - name: "August Variant Update", - eventType: EventType.SHINY, - shinyMultiplier: 2, - startDate: new Date(Date.UTC(2024, 7, 16, 0)), - endDate: new Date(Date.UTC(2024, 7, 22, 0)), - bannerFilename: "august-variant-update" + name: "September Update", + eventType: EventType.GENERIC, + startDate: new Date(Date.UTC(2024, 7, 28, 0)), + endDate: new Date(Date.UTC(2024, 8, 15, 0)), + bannerKey: "september-update", + xPosition: 19, + yPosition: 115, + scale: 0.30, + availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es", "pt_BR", "zh_CN"] } ]; @@ -67,7 +71,7 @@ export class TimedEventManager { } getEventBannerFilename(): string { - return timedEvents.find((te: TimedEvent) => this.isActive(te))?.bannerFilename!; // TODO: is this bang correct? + return timedEvents.find((te: TimedEvent) => this.isActive(te))?.bannerKey!; // TODO: is this bang correct? } } @@ -85,38 +89,36 @@ export class TimedEventDisplay extends Phaser.GameObjects.Container { } setup() { - console.log(this.event?.bannerFilename); - this.banner = new Phaser.GameObjects.Image(this.scene, 29, 64, this.event!.bannerFilename!); // TODO: are the bangs correct here? - this.banner.setName("img-event-banner"); - this.banner.setOrigin(0.08, -0.35); - this.banner.setScale(0.18); - // this.bannerShadow = new Phaser.GameObjects.Rectangle( - // this.scene, - // this.banner.x - 2, - // this.banner.y + 2, - // this.banner.width, - // this.banner.height, - // 0x484848 - // ); - // this.bannerShadow.setName("rect-event-banner-shadow"); - // this.bannerShadow.setScale(0.07); - // this.bannerShadow.setAlpha(0.5); - // this.bannerShadow.setOrigin(0,0); - this.eventTimerText = addTextObject( - this.scene, - this.banner.x + 8, - this.banner.y + 100, - this.timeToGo(this.event!.endDate), // TODO: is the bang correct here? - TextStyle.WINDOW - ); - this.eventTimerText.setName("text-event-timer"); - this.eventTimerText.setScale(0.15); - this.eventTimerText.setOrigin(0, 0); + const lang = i18next.resolvedLanguage; + if (this.event && this.event.bannerKey) { + if (lang && this.event.availableLangs && this.event.availableLangs.length > 0) { + if (this.event.availableLangs.includes(lang)) { + this.event.bannerKey += "-"+lang; + } else { + this.event.bannerKey += "-en"; + } + } + console.log(this.event.bannerKey); + this.banner = new Phaser.GameObjects.Image(this.scene, this.event.xPosition ?? 29, this.event.yPosition ?? 64, this.event.bannerKey); + this.banner.setName("img-event-banner"); + this.banner.setOrigin(0.08, -0.35); + this.banner.setScale(this.event.scale ?? 0.18); + if (this.event.eventType !== EventType.GENERIC) { + this.eventTimerText = addTextObject( + this.scene, + this.banner.x + 8, + this.banner.y + 100, + this.timeToGo(this.event.endDate), + TextStyle.WINDOW + ); + this.eventTimerText.setName("text-event-timer"); + this.eventTimerText.setScale(0.15); + this.eventTimerText.setOrigin(0, 0); - this.add([ - this.eventTimerText, - // this.bannerShadow, - this.banner]); + this.add(this.eventTimerText); + } + this.add(this.banner); + } } show() { @@ -157,6 +159,8 @@ export class TimedEventDisplay extends Phaser.GameObjects.Container { } updateCountdown() { - this.eventTimerText.setText(this.timeToGo(this.event!.endDate)); // TODO: is the bang correct here? + if (this.event && this.event.eventType !== EventType.GENERIC) { + this.eventTimerText.setText(this.timeToGo(this.event.endDate)); + } } } From 95a02a96a710d89b0cbc228f650c263c1a92d7ff Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:11:23 -0700 Subject: [PATCH 036/116] Fixing banner error upon refresh (#3956) --- src/timed-event-manager.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts index 7d9d71a8d68..13b4a85a2b8 100644 --- a/src/timed-event-manager.ts +++ b/src/timed-event-manager.ts @@ -91,15 +91,16 @@ export class TimedEventDisplay extends Phaser.GameObjects.Container { setup() { const lang = i18next.resolvedLanguage; if (this.event && this.event.bannerKey) { + const key = this.event.bannerKey; if (lang && this.event.availableLangs && this.event.availableLangs.length > 0) { if (this.event.availableLangs.includes(lang)) { - this.event.bannerKey += "-"+lang; + key += "-"+lang; } else { - this.event.bannerKey += "-en"; + key += "-en"; } } console.log(this.event.bannerKey); - this.banner = new Phaser.GameObjects.Image(this.scene, this.event.xPosition ?? 29, this.event.yPosition ?? 64, this.event.bannerKey); + this.banner = new Phaser.GameObjects.Image(this.scene, this.event.xPosition ?? 29, this.event.yPosition ?? 64, key); this.banner.setName("img-event-banner"); this.banner.setOrigin(0.08, -0.35); this.banner.setScale(this.event.scale ?? 0.18); From e80b4fe1223a57586c2c1ca3bd4e9ab767a89869 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Sun, 1 Sep 2024 21:16:20 +0100 Subject: [PATCH 037/116] feat: Update banner key assignment in TimedEventDisplay setup method --- src/timed-event-manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts index 13b4a85a2b8..abdb2db232a 100644 --- a/src/timed-event-manager.ts +++ b/src/timed-event-manager.ts @@ -91,7 +91,7 @@ export class TimedEventDisplay extends Phaser.GameObjects.Container { setup() { const lang = i18next.resolvedLanguage; if (this.event && this.event.bannerKey) { - const key = this.event.bannerKey; + let key = this.event.bannerKey; if (lang && this.event.availableLangs && this.event.availableLangs.length > 0) { if (this.event.availableLangs.includes(lang)) { key += "-"+lang; From 69a9e6a365745ea536c6c3c64a142d4c469254ae Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:21:48 -0700 Subject: [PATCH 038/116] Localization: remove all `"_female": null` entries in /en (#3918) --- src/locales/en/achv.json | 36 +-- src/locales/en/dialogue-double-battle.json | 4 +- src/locales/en/dialogue-final-boss.json | 2 +- src/locales/en/dialogue.json | 252 ++++++++++----------- 4 files changed, 147 insertions(+), 147 deletions(-) diff --git a/src/locales/en/achv.json b/src/locales/en/achv.json index 0ed746c77b3..fae786e034a 100644 --- a/src/locales/en/achv.json +++ b/src/locales/en/achv.json @@ -10,19 +10,19 @@ }, "10K_MONEY": { "name": "Money Haver", - "name_female": null + "name_female": "Money Haver" }, "100K_MONEY": { "name": "Rich", - "name_female": null + "name_female": "Rich" }, "1M_MONEY": { "name": "Millionaire", - "name_female": null + "name_female": "Millionaire" }, "10M_MONEY": { "name": "One Percenter", - "name_female": null + "name_female": "One Percenter" }, "DamageAchv": { "description": "Inflict {{damageAmount}} damage in one hit" @@ -32,11 +32,11 @@ }, "1000_DMG": { "name": "Harder Hitter", - "name_female": null + "name_female": "Harder Hitter" }, "2500_DMG": { "name": "That's a Lotta Damage!", - "name_female": null + "name_female": "That's a Lotta Damage!" }, "10000_DMG": { "name": "One Punch Man", @@ -47,19 +47,19 @@ }, "250_HEAL": { "name": "Novice Healer", - "name_female": null + "name_female": "Novice Healer" }, "1000_HEAL": { "name": "Big Healer", - "name_female": null + "name_female": "Big Healer" }, "2500_HEAL": { "name": "Cleric", - "name_female": null + "name_female": "Cleric" }, "10000_HEAL": { "name": "Recovery Master", - "name_female": null + "name_female": "Recovery Master" }, "LevelAchv": { "description": "Level up a Pokémon to Lv{{level}}" @@ -69,7 +69,7 @@ }, "LV_250": { "name": "Elite", - "name_female": null + "name_female": "Elite" }, "LV_1000": { "name": "To Go Even Further Beyond" @@ -79,23 +79,23 @@ }, "10_RIBBONS": { "name": "Pokémon League Champion", - "name_female": null + "name_female": "Pokémon League Champion" }, "25_RIBBONS": { "name": "Great League Champion", - "name_female": null + "name_female": "Great League Champion" }, "50_RIBBONS": { "name": "Ultra League Champion", - "name_female": null + "name_female": "Ultra League Champion" }, "75_RIBBONS": { "name": "Rogue League Champion", - "name_female": null + "name_female": "Rogue League Champion" }, "100_RIBBONS": { "name": "Master League Champion", - "name_female": null + "name_female": "Master League Champion" }, "TRANSFER_MAX_BATTLE_STAT": { "name": "Teamwork", @@ -147,7 +147,7 @@ }, "SHINY_PARTY": { "name": "That's Dedication", - "name_female": null, + "name_female": "That's Dedication", "description": "Have a full party of shiny Pokémon" }, "HATCH_MYTHICAL": { @@ -176,7 +176,7 @@ }, "CLASSIC_VICTORY": { "name": "Undefeated", - "name_female": null, + "name_female": "Undefeated", "description": "Beat the game in classic mode" }, "UNEVOLVED_CLASSIC_VICTORY": { diff --git a/src/locales/en/dialogue-double-battle.json b/src/locales/en/dialogue-double-battle.json index 9484aa2edcc..4190af49d15 100644 --- a/src/locales/en/dialogue-double-battle.json +++ b/src/locales/en/dialogue-double-battle.json @@ -58,7 +58,7 @@ "iris_alder_double": { "encounter": { "1": "Iris: Welcome Challenger! I am THE Unova Champion!\n$Alder: Iris, aren't you a bit too excited?", - "1_female": null + "1_female": "Iris: Welcome Challenger! I am THE Unova Champion!\n$Alder: Iris, aren't you a bit too excited?" }, "victory": { "1": "Iris: A loss like this is not easy to take...\n$Alder: But we will only get stronger with every loss!" @@ -75,7 +75,7 @@ "marnie_piers_double": { "encounter": { "1": "Piers: Ready for a concert?\n$Marnie: Brother... They are here to fight, not to sing...", - "1_female": null + "1_female": "Piers: Ready for a concert?\n$Marnie: Brother... They are here to fight, not to sing..." }, "victory": { "1": "Piers: Now that was a great concert!\n$Marnie: Brother..." diff --git a/src/locales/en/dialogue-final-boss.json b/src/locales/en/dialogue-final-boss.json index 3abe4cd8831..6f99aae3e0c 100644 --- a/src/locales/en/dialogue-final-boss.json +++ b/src/locales/en/dialogue-final-boss.json @@ -1,6 +1,6 @@ { "encounter": "It appears the time has finally come once again.\nYou know why you have come here, do you not?\n$You were drawn here, because you have been here before.\nCountless times.\n$Though, perhaps it can be counted.\nTo be precise, this is in fact your {{cycleCount}} cycle.\n$Each cycle your mind reverts to its former state.\nEven so, somehow, remnants of your former selves remain.\n$Until now you have yet to succeed, but I sense a different presence in you this time.\n\n$You are the only one here, though it is as if there is… another.\n$Will you finally prove a formidable challenge to me?\nThe challenge I have longed after for millennia?\n$We begin.", - "encounter_female": null, + "encounter_female": "It appears the time has finally come once again.\nYou know why you have come here, do you not?\n$You were drawn here, because you have been here before.\nCountless times.\n$Though, perhaps it can be counted.\nTo be precise, this is in fact your {{cycleCount}} cycle.\n$Each cycle your mind reverts to its former state.\nEven so, somehow, remnants of your former selves remain.\n$Until now you have yet to succeed, but I sense a different presence in you this time.\n\n$You are the only one here, though it is as if there is… another.\n$Will you finally prove a formidable challenge to me?\nThe challenge I have longed after for millennia?\n$We begin.", "firstStageWin": "I see. The presence I felt was indeed real.\nIt appears I no longer need to hold back.\n$Do not disappoint me.", "secondStageWin": "…Magnificent.", "key_ordinal_one": "st", diff --git a/src/locales/en/dialogue.json b/src/locales/en/dialogue.json index e96a42daf1d..1f8919f11b5 100644 --- a/src/locales/en/dialogue.json +++ b/src/locales/en/dialogue.json @@ -3,31 +3,31 @@ "encounter": { "1": "Hey, wanna battle?", "2": "Are you a new trainer too?", - "2_female": null, + "2_female": "Are you a new trainer too?", "3": "Hey, I haven't seen you before. Let's battle!", "4": "I just lost, so I'm trying to find more Pokémon.\nWait! You look weak! Come on, let's battle!", - "4_female": null, + "4_female": "I just lost, so I'm trying to find more Pokémon.\nWait! You look weak! Come on, let's battle!", "5": "Have we met or not? I don't really remember. Well, I guess it's nice to meet you anyway!", "6": "All right! Let's go!", "7": "All right! Here I come! I'll show you my power!", "8": "Haw haw haw... I'll show you how hawesome my Pokémon are!", "9": "No need to waste time saying hello. Bring it on whenever you're ready!", - "9_female": null, + "9_female": "No need to waste time saying hello. Bring it on whenever you're ready!", "10": "Don't let your guard down, or you may be crying when a kid beats you.", "11": "I've raised my Pokémon with great care. You're not allowed to hurt them!", "12": "Glad you made it! It won't be an easy job from here.", - "12_female": null, + "12_female": "Glad you made it! It won't be an easy job from here.", "13": "The battles continue forever! Welcome to the world with no end!", - "13_female": null + "13_female": "The battles continue forever! Welcome to the world with no end!" }, "victory": { "1": "Wow! You're strong!", - "1_female": null, + "1_female": "Wow! You're strong!", "2": "I didn't stand a chance, huh?", "3": "I'll find you again when I'm older and beat you!", "4": "Ugh. I don't have any more Pokémon.", "5": "No way… NO WAY! How could I lose again…", - "5_female": null, + "5_female": "No way… NO WAY! How could I lose again…", "6": "No! I lost!", "7": "Whoa! You are incredible! I'm amazed and surprised!", "8": "Could it be… How… My Pokémon and I are the strongest, though…", @@ -42,12 +42,12 @@ "encounter": { "1": "Let's have a battle, shall we?", "2": "You look like a new trainer. Let's have a battle!", - "2_female": null, + "2_female": "You look like a new trainer. Let's have a battle!", "3": "I don't recognize you. How about a battle?", "4": "Let's have a fun Pokémon battle!", "5": "I'll show you the ropes of how to really use Pokémon!", "6": "A serious battle starts from a serious beginning! Are you sure you're ready?", - "6_female": null, + "6_female": "A serious battle starts from a serious beginning! Are you sure you're ready?", "7": "You're only young once. And you only get one shot at a given battle. Soon, you'll be nothing but a memory.", "8": "You'd better go easy on me, OK? Though I'll be seriously fighting!", "9": "School is boring. I've got nothing to do. Yawn. I'm only battling to kill the time." @@ -55,15 +55,15 @@ "victory": { "1": "That was impressive! I've got a lot to learn.", "2": "I didn't think you'd beat me that bad…", - "2_female": null, + "2_female": "I didn't think you'd beat me that bad…", "3": "I hope we get to have a rematch some day.", "4": "That was pretty amazingly fun! You've totally exhausted me…", "5": "You actually taught me a lesson! You're pretty amazing!", "6": "Seriously, I lost. That is, like, seriously depressing, but you were seriously cool.", - "6_female": null, + "6_female": "Seriously, I lost. That is, like, seriously depressing, but you were seriously cool.", "7": "I don't need memories like this. Deleting memory…", "8": "Hey! I told you to go easy on me! Still, you're pretty cool when you're serious.", - "8_female": null, + "8_female": "Hey! I told you to go easy on me! Still, you're pretty cool when you're serious.", "9": "I'm actually getting tired of battling… There's gotta be something new to do…" } }, @@ -154,7 +154,7 @@ "ace_trainer": { "encounter": { "1": "You seem quite confident.", - "1_female": null, + "1_female": "You seem quite confident.", "2": "Your Pokémon… Show them to me…", "3": "Because I'm an Ace Trainer, people think I'm strong.", "4": "Are you aware of what it takes to be an Ace Trainer?" @@ -163,9 +163,9 @@ "1": "Yes… You have good Pokémon…", "2": "What?! But I'm a battling genius!", "3": "Of course, you are the main character!", - "3_female": null, + "3_female": "Of course, you are the main character!", "4": "OK! OK! You could be an Ace Trainer!", - "4_female": null + "4_female": "OK! OK! You could be an Ace Trainer!" }, "defeat": { "1": "I am devoting my body and soul to Pokémon battles!", @@ -187,7 +187,7 @@ "1": "Get ready, because when we team up, it's double the trouble!", "2": "Two hearts, one strategy – let's see if you can keep up with our twin power!", "3": "Hope you're ready for double trouble, because we're about to bring the heat!", - "3_female": null + "3_female": "Hope you're ready for double trouble, because we're about to bring the heat!" }, "victory": { "1": "We may have lost this round, but our bond remains unbreakable!", @@ -216,7 +216,7 @@ "encounter": { "1": "I praise your courage in challenging me! For I am the one with the strongest kick!", "2": "Oh, I see. Would you like to be cut to pieces? Or do you prefer the role of punching bag?", - "2_female": null + "2_female": "Oh, I see. Would you like to be cut to pieces? Or do you prefer the role of punching bag?" }, "victory": { "1": "Oh. The Pokémon did the fighting. My strong kick didn't help a bit.", @@ -328,7 +328,7 @@ "defeat": { "1": "New age simply refers to twentieth century classical composers, right?", "2": "Don't get hung up on sadness or frustration. You can use your grudges to motivate yourself.", - "2_female": null + "2_female": "Don't get hung up on sadness or frustration. You can use your grudges to motivate yourself." } }, "psychic": { @@ -360,7 +360,7 @@ "baker": { "encounter": { "1": "Hope you're ready to taste defeat!", - "1_female": null + "1_female": "Hope you're ready to taste defeat!" }, "victory": { "1": "I'll bake a comeback." @@ -391,7 +391,7 @@ "1": "Matey, you're walking the plank if you lose!", "2": "Come on then! My sailor's pride is at stake!", "3": "Ahoy there! Are you seasick?", - "3_female": null + "3_female": "Ahoy there! Are you seasick?" }, "victory": { "1": "Argh! Beaten by a kid!", @@ -419,7 +419,7 @@ }, "victory": { "1": "Tch, you really are strong. It's too bad.\n$If you were to join Team Rocket, you could become an Executive.", - "1_female": null, + "1_female": "Tch, you really are strong. It's too bad.\n$If you were to join Team Rocket, you could become an Executive.", "2": "I... I'm shattered...", "3": "Aaaieeeee! This can't be happening! I fought hard, but I still lost…" } @@ -458,7 +458,7 @@ "1": "Hehehe! You might have beaten me, but you don't stand a chance against the boss!\n$If you get lost now, you won't have to face a sound whipping!", "2": "Hehehe... So, I lost, too...", "3": "Ahya! How could this be? For an Admin like me to lose to some random trainer...", - "3_female": null + "3_female": "Ahya! How could this be? For an Admin like me to lose to some random trainer..." } }, "courtney": { @@ -478,13 +478,13 @@ "1": "Ahahahaha! You're going to meddle in Team Aqua's affairs?\n$You're either absolutely fearless, simply ignorant, or both!\n$You're so cute, you're disgusting! I'll put you down", "2": "What's this? Who's this spoiled brat?", "3": "Cool your jets. Be patient. I'll crush you shortly.", - "3_female": null + "3_female": "Cool your jets. Be patient. I'll crush you shortly." }, "victory": { "1": "Ahahahaha! We got meddled with unexpectedly! We're out of options.\n$We'll have to pull out. But this isn't the last you'll see of Team Aqua!\n$We have other plans! Don't you forget it!", "2": "Ahhh?! Did I go too easy on you?!", "3": "Uh. Are you telling me you've upped your game even more during the fight?\n$You're a brat with a bright future… My Pokémon and I don't have any strength left to fight…\n$Go on… Go and be destroyed by Archie.", - "3_female": null + "3_female": "Uh. Are you telling me you've upped your game even more during the fight?\n$You're a brat with a bright future… My Pokémon and I don't have any strength left to fight…\n$Go on… Go and be destroyed by Archie." } }, "matt": { @@ -497,7 +497,7 @@ "1": "Muwuhahaha! That battle was fun even though I lost!", "2": "I can feel it! I can feel it, all right! The strength coming offa you!\n$More! I still want more! But looks like we're outta time...", "3": "Oho! That's a loss I can be proud of!", - "3_female": null + "3_female": "Oho! That's a loss I can be proud of!" } }, "mars": { @@ -505,7 +505,7 @@ "1": "I'm Mars, one of Team Galactic's top Commanders.", "2": "Team Galactic's vision for the future is unwavering. Opposition will be crushed without mercy!", "3": "Feeling nervous? You should be!", - "3_female": null + "3_female": "Feeling nervous? You should be!" }, "victory": { "1": "This can't be happening! How did I lose?!", @@ -540,25 +540,25 @@ "zinzolin": { "encounter": { "1": "You could become a threat to Team Plasma, so we will eliminate you here and now!", - "1_female": null, + "1_female": "You could become a threat to Team Plasma, so we will eliminate you here and now!", "2": "You don't have the sense to know when to quit, it seems. It's an act of mercy on my part to bring an end to this now!", "3": "You're an impressive Trainer to have made it this far. But it ends here.", - "3_female": null + "3_female": "You're an impressive Trainer to have made it this far. But it ends here." }, "victory": { "1": "Ghetsis... I have failed you...", "2": "It's bitter cold. I'm shivering. I'm suffering. Yet, we will stand victorious.", "3": "Hmph. You're a smarter Trainer than I expected, but not smart enough.", - "3_female": null + "3_female": "Hmph. You're a smarter Trainer than I expected, but not smart enough." } }, "rood": { "encounter": { "1": "You are a threat to Team Plasma. We cannot let you walk away from here and now!", - "1_female": null, + "1_female": "You are a threat to Team Plasma. We cannot let you walk away from here and now!", "2": "It seems you don't know when to give up. I'll make sure no one interferes with our plans!", "3": "You are a remarkable Trainer to have made it this far. But this is where it ends.", - "3_female": null + "3_female": "You are a remarkable Trainer to have made it this far. But this is where it ends." }, "victory": { "1": "Ghetsis... I have failed my mission...", @@ -569,15 +569,15 @@ "xerosic": { "encounter": { "1": "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!", - "1_female": null, + "1_female": "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!", "2": "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.", - "2_female": null, + "2_female": "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.", "3": "I've been waiting for you! I need to do a little research on you! Come, let us begin!" }, "victory": { "1": "Ah, you're quite strong. Oh yes—very strong, indeed.", "2": "Ding-ding-ding! You did it! To the victor go the spoils!", - "2_female": null, + "2_female": "Ding-ding-ding! You did it! To the victor go the spoils!", "3": "Wonderful! Amazing! You have tremendous skill and bravery!" } }, @@ -585,7 +585,7 @@ "encounter": { "1": "I am Bryony, and it would be my pleasure to battle you. Show me what you've got.", "2": "Impressive... You're more powerful than you appear. Let's see the true extent of your energy.", - "2_female": null, + "2_female": "Impressive... You're more powerful than you appear. Let's see the true extent of your energy.", "3": "I've anticipated your arrival. It's time for a little test. Shall we begin?" }, "victory": { @@ -598,11 +598,11 @@ "encounter": { "1": "Prepare for trouble!", "2": "We're pulling a big job here! Get lost, kid!", - "2_female": null, + "2_female": "We're pulling a big job here! Get lost, kid!", "3": "Hand over your Pokémon, or face the wrath of Team Rocket!", "4": "You're about to experience the true terror of Team Rocket!", "5": "Hey, kid! Me am a Team Rocket member kind of guy!", - "5_female": null + "5_female": "Hey, kid! Me am a Team Rocket member kind of guy!" }, "victory": { "1": "Team Rocket blasting off again!", @@ -624,7 +624,7 @@ "1": "Huh? I lost?!", "2": "I can't believe I lost! I even skipped lunch for this", "3": "No way! You're just a kid!", - "3_female": null, + "3_female": "No way! You're just a kid!", "4": "Urrrgh... I should've ducked into our hideout right away...", "5": "You beat me... Do you think the boss will dock my pay for this?" } @@ -652,7 +652,7 @@ "3": "In the name of Team Galactic, I'll eliminate anyone who stands in our way!", "4": "Get ready to lose!", "5": "Hope you're ready for a cosmic beatdown!", - "5_female": null + "5_female": "Hope you're ready for a cosmic beatdown!" }, "victory": { "1": "Shut down...", @@ -682,7 +682,7 @@ "encounter": { "1": "Your Pokémon are no match for the elegance of Team Flare.", "2": "Hope you brought your sunglasses, because things are about to get bright!", - "2_female": null, + "2_female": "Hope you brought your sunglasses, because things are about to get bright!", "3": "Team Flare will cleanse the world of imperfection!", "4": "Prepare to face the brilliance of Team Flare!", "5": "Fashion is most important to us!" @@ -784,7 +784,7 @@ }, "defeat": { "1": "Mark my words. Not being able to measure your own strength shows that you are still a child.", - "1_female": null + "1_female": "Mark my words. Not being able to measure your own strength shows that you are still a child." } }, "rocket_boss_giovanni_2": { @@ -845,7 +845,7 @@ "galactic_boss_cyrus_1": { "encounter": { "1": "You were compelled to come here by such vacuous sentimentality.\n$I will make you regret paying heed to your heart!", - "1_female": null + "1_female": "You were compelled to come here by such vacuous sentimentality.\n$I will make you regret paying heed to your heart!" }, "victory": { "1": "Interesting. And quite curious." @@ -995,7 +995,7 @@ "misty": { "encounter": { "1": "My policy is an all out offensive with Water-type Pokémon!", - "1_female": null, + "1_female": "My policy is an all out offensive with Water-type Pokémon!", "2": "Hiya, I'll show you the strength of my aquatic Pokémon!", "3": "My dream was to go on a journey and battle powerful trainers…\nWill you be a sufficient challenge?" }, @@ -1013,14 +1013,14 @@ "lt_surge": { "encounter": { "1": "My Electric Pokémon saved me during the war! I'll show you how!", - "1_female": null, + "1_female": "My Electric Pokémon saved me during the war! I'll show you how!", "2": "Ten-hut! I'll shock you into surrender!", "3": "I'll zap you just like I do to all my enemies in battle!" }, "victory": { "1": "Whoa! Your team's the real deal, kid!", "2": "Aaargh, you're strong! Even my electric tricks lost against you.", - "2_female": null, + "2_female": "Aaargh, you're strong! Even my electric tricks lost against you.", "3": "That was an absolutely shocking loss!" }, "defeat": { @@ -1045,7 +1045,7 @@ "defeat": { "1": "I was afraid I would doze off…", "2": "Oh my, it seems my Grass Pokémon overwhelmed you.", - "2_female": null, + "2_female": "Oh my, it seems my Grass Pokémon overwhelmed you.", "3": "That battle was such a soothing experience.", "4": "Oh… Is that all?" } @@ -1106,7 +1106,7 @@ "1": "I, the leader of Team Rocket, will make you feel a world of pain!", "2": "My training here will be vital before I am to face my old associates again.", "3": "I do not think you are prepared for the level of failure you are about to experience!", - "3_female": null + "3_female": "I do not think you are prepared for the level of failure you are about to experience!" }, "victory": { "1": "WHAT! Me, lose?! There is nothing I wish to say to you!", @@ -1139,7 +1139,7 @@ "brawly": { "encounter": { "1": "Oh man, a challenger!\nLet's see what you can do!", - "1_female": null, + "1_female": "Oh man, a challenger!\nLet's see what you can do!", "2": "You seem like a big splash.\nLet's battle!", "3": "Time to create a storm!\nLet's go!" }, @@ -1167,7 +1167,7 @@ }, "defeat": { "1": "Recharge your batteries and challenge me again sometime!\nWahahahaha!", - "1_female": null, + "1_female": "Recharge your batteries and challenge me again sometime!\nWahahahaha!", "2": "I hope you found our battle electrifying!\nWahahahaha!", "3": "Aren't you shocked I won?\nWahahahaha!" } @@ -1214,7 +1214,7 @@ }, "victory": { "1": "You're the first Trainer I've seen with more grace than I.\nExcellently played.", - "1_female": null, + "1_female": "You're the first Trainer I've seen with more grace than I.\nExcellently played.", "2": "Oh, my Flying Pokémon have plummeted!\nVery well.", "3": "Though I may have fallen, my Pokémon will continue to fly!" }, @@ -1227,7 +1227,7 @@ "tate": { "encounter": { "1": "Hehehe…\nWere you surprised to see me without my sister?", - "1_female": null, + "1_female": "Hehehe…\nWere you surprised to see me without my sister?", "2": "I can see what you're thinking…\nYou want to battle!", "3": "How can you defeat someone…\nWho knows your every move?" }, @@ -1245,7 +1245,7 @@ "liza": { "encounter": { "1": "Fufufu…\nWere you surprised to see me without my brother?", - "1_female": null, + "1_female": "Fufufu…\nWere you surprised to see me without my brother?", "2": "I can determine what you desire…\nYou want to battle, don't you?", "3": "How can you defeat someone…\nWho's one with their Pokémon?" }, @@ -1317,10 +1317,10 @@ "nessa": { "encounter": { "1": "No matter what kind of plan your refined mind may be plotting, my partner and I will be sure to sink it.", - "1_female": null, + "1_female": "No matter what kind of plan your refined mind may be plotting, my partner and I will be sure to sink it.", "2": "I'm not here to chat. I'm here to win!", "3": "This is a little gift from my Pokémon… I hope you can take it!", - "3_female": null + "3_female": "This is a little gift from my Pokémon… I hope you can take it!" }, "victory": { "1": "You and your Pokémon are just too much…", @@ -1341,7 +1341,7 @@ }, "victory": { "1": "You… You're pretty good, huh?", - "1_female": null, + "1_female": "You… You're pretty good, huh?", "2": "If you find Gordie around, be sure to give him a right trashing, would you?", "3": "I think you took breaking the ice a little too literally…" }, @@ -1355,12 +1355,12 @@ "encounter": { "1": "You look strong! Shoots! Let's start!", "2": "I'm strong like the ocean's wide. You're gonna get swept away, fo' sho'.", - "2_female": null, + "2_female": "I'm strong like the ocean's wide. You're gonna get swept away, fo' sho'.", "3": "Oh ho, so I'm facing you! That's off the wall." }, "victory": { "1": "You totally rocked that! You're raising some wicked Pokémon. You got this Trainer thing down!", - "1_female": null, + "1_female": "You totally rocked that! You're raising some wicked Pokémon. You got this Trainer thing down!", "2": "You don't just look strong, you're strong fo' reals! Eh, I was swept away, too!", "3": "You're strong as a gnarly wave!" }, @@ -1373,7 +1373,7 @@ "shauntal": { "encounter": { "1": "Excuse me. You're a challenger, right?\nI'm the Elite Four's Ghost-type Pokémon user, Shauntal, and I shall be your opponent.", - "1_female": null, + "1_female": "Excuse me. You're a challenger, right?\nI'm the Elite Four's Ghost-type Pokémon user, Shauntal, and I shall be your opponent.", "2": "I absolutely love writing about Trainers who come here and the Pokémon they train.\nCould I use you and your Pokémon as a subject?", "3": "Every person who works with Pokémon has a story to tell.\nWhat story is about to be told?" }, @@ -1391,7 +1391,7 @@ "marshal": { "encounter": { "1": "My mentor, Alder, sees your potential as a Trainer and is taking an interest in you.\nIt is my intention to test you--to take you to the limits of your strength. Kiai!", - "1_female": null, + "1_female": "My mentor, Alder, sees your potential as a Trainer and is taking an interest in you.\nIt is my intention to test you--to take you to the limits of your strength. Kiai!", "2": "Victory, decisive victory, is my intention! Challenger, here I come!", "3": "In myself, I seek to develop the strength of a fighter and shatter any weakness in myself!\nPrevailing with the force of my convictions!" }, @@ -1411,7 +1411,7 @@ "1": "You remind me of an old friend. That makes me excited about this Pokémon battle!", "2": "Pokémon battles have no meaning if you don't think why you battle.\n$Or better said, it makes battling together with Pokémon meaningless.", "3": "My name's Cheren! I'm a Gym Leader and a teacher! Pleasure to meet you.", - "3_female": null + "3_female": "My name's Cheren! I'm a Gym Leader and a teacher! Pleasure to meet you." }, "victory": { "1": "Thank you! I saw what was missing in me.", @@ -1427,65 +1427,65 @@ "chili": { "encounter": { "1": "Yeeeeooow! Time to play with FIRE!! I'm the strongest of us brothers!", - "1_female": null, + "1_female": "Yeeeeooow! Time to play with FIRE!! I'm the strongest of us brothers!", "2": "Ta-da! The Fire-type scorcher Chili--that's me--will be your opponent!", - "2_female": null, + "2_female": "Ta-da! The Fire-type scorcher Chili--that's me--will be your opponent!", "3": "I'm going to show you what me and my blazing Fire types can do!", - "3_female": null + "3_female": "I'm going to show you what me and my blazing Fire types can do!" }, "victory": { "1": "You got me. I am… burned… out…", - "1_female": null, + "1_female": "You got me. I am… burned… out…", "2": "Whoa ho! You're on fire!", - "2_female": null, + "2_female": "Whoa ho! You're on fire!", "3": "Augh! You got me!" }, "defeat": { "1": "I'm on fire! Play with me, and you'll get burned!", - "1_female": null, + "1_female": "I'm on fire! Play with me, and you'll get burned!", "2": "When you play with fire, you get burned!", "3": "I mean, c'mon, your opponent was me! You didn't have a chance!", - "3_female": null + "3_female": "I mean, c'mon, your opponent was me! You didn't have a chance!" } }, "cilan": { "encounter": { "1": "Nothing personal... No hard feelings... Me and my Grass-type Pokémon will...\n$Um... We're gonna battle come what may.", - "1_female": null, + "1_female": "Nothing personal... No hard feelings... Me and my Grass-type Pokémon will...\n$Um... We're gonna battle come what may.", "2": "So, um, if you're OK with me, I'll, um, put everything I've got into being, er, you know, your opponent.", - "2_female": null, + "2_female": "So, um, if you're OK with me, I'll, um, put everything I've got into being, er, you know, your opponent.", "3": "OK… So, um, I'm Cilan, I like Grass-type Pokémon.", - "3_female": null + "3_female": "OK… So, um, I'm Cilan, I like Grass-type Pokémon." }, "victory": { "1": "Er… Is it over now?", - "1_female": null, + "1_female": "Er… Is it over now?", "2": "…What a surprise. You are very strong, aren't you? \n$I guess my brothers wouldn't have been able to defeat you either…", - "2_female": null, + "2_female": "…What a surprise. You are very strong, aren't you? \n$I guess my brothers wouldn't have been able to defeat you either…", "3": "…Huh. Looks like my timing was, um, off?" }, "defeat": { "1": "Huh? Did I win?", - "1_female": null, + "1_female": "Huh? Did I win?", "2": "I guess… \n$I suppose I won, because I've been competing with my brothers Chili and Cress, and we all were able to get tougher.", - "2_female": null, + "2_female": "I guess… \n$I suppose I won, because I've been competing with my brothers Chili and Cress, and we all were able to get tougher.", "3": "It…it was quite a thrilling experience…", - "3_female": null + "3_female": "It…it was quite a thrilling experience…" } }, "roark": { "encounter": { "1": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", - "1_female": null, + "1_female": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", "2": "Here goes! These are my rocking Pokémon, my pride and joy!", "3": "Rock-type Pokémon are simply the best!", "4": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", - "4_female": null + "4_female": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!" }, "victory": { "1": "W-what? That can't be! My buffed-up Pokémon!", "2": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.", - "2_female": null, + "2_female": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.", "3": "With skill like yours, it's natural for you to win.", "4": "Wh-what?! It can't be! Even that wasn't enough?", "5": "I blew it." @@ -1508,7 +1508,7 @@ "victory": { "1": "I'm not good enough yet…", "2": "I see… Your journey has taken you to far-away places and you have witnessed much more than I.\n$I envy you for that…", - "2_female": null, + "2_female": "I see… Your journey has taken you to far-away places and you have witnessed much more than I.\n$I envy you for that…", "3": "How is this possible…", "4": "I don't think our potentials are so different.\n$But you seem to have something more than that… So be it.", "5": "Guess I need more training.", @@ -1568,13 +1568,13 @@ }, "defeat": { "1": "Heh heh! Don't mind me, just scooping up a W over here. I get it if you're upset, but don't go full Kieran on me, OK?", - "1_female": null + "1_female": "Heh heh! Don't mind me, just scooping up a W over here. I get it if you're upset, but don't go full Kieran on me, OK?" } }, "ramos": { "encounter": { "1": "Did yeh enjoy the garden playground I made with all these sturdy plants o' mine?\n$Their strength is a sign o' my strength as a gardener and a Gym Leader! Yeh sure yer up to facing all that?", - "1_female": null + "1_female": "Did yeh enjoy the garden playground I made with all these sturdy plants o' mine?\n$Their strength is a sign o' my strength as a gardener and a Gym Leader! Yeh sure yer up to facing all that?" }, "victory": { "1": "Yeh believe in yer Pokémon… And they believe in yeh, too… It was a fine battle, sprout." @@ -1605,7 +1605,7 @@ "victory": { "1": "I must say, I'm warmed up to you! I might even admire you a little.", "2": "Wow! You're great! You've earned my respect! \n$I think your focus and will bowled us over totally. ", - "2_female": null + "2_female": "Wow! You're great! You've earned my respect! \n$I think your focus and will bowled us over totally. " }, "defeat": { "1": "I sensed your will to win, but I don't lose!", @@ -1618,7 +1618,7 @@ }, "victory": { "1": "Amazing! You're very good, aren't you?", - "1_female": null + "1_female": "Amazing! You're very good, aren't you?" }, "defeat": { "1": "Yes! My Pokémon and I are perfectly good!" @@ -1660,7 +1660,7 @@ "clay": { "encounter": { "1": "Harrumph! Kept me waitin', didn't ya, kid? All right, time to see what ya can do!", - "1_female": null + "1_female": "Harrumph! Kept me waitin', didn't ya, kid? All right, time to see what ya can do!" }, "victory": { "1": "Man oh man… It feels good to go all out and still be defeated!" @@ -1675,7 +1675,7 @@ }, "victory": { "1": "Vaultin' Veluza! Yer a lively one, aren't ya! A little TOO lively, if I do say so myself!", - "1_female": null + "1_female": "Vaultin' Veluza! Yer a lively one, aren't ya! A little TOO lively, if I do say so myself!" }, "defeat": { "1": "You come back to see me again now, ya hear?" @@ -1742,7 +1742,7 @@ }, "victory": { "1": "Bravo. I realize now your authenticity and magnificence as a Pokémon Trainer. \n$I find much joy in having met you and your Pokémon. You have proven yourself worthy.", - "1_female": null + "1_female": "Bravo. I realize now your authenticity and magnificence as a Pokémon Trainer. \n$I find much joy in having met you and your Pokémon. You have proven yourself worthy." }, "defeat": { "1": "A grand illusion!" @@ -1751,14 +1751,14 @@ "lorelei": { "encounter": { "1": "No one can best me when it comes to icy Pokémon! Freezing moves are powerful!\n$Your Pokémon will be at my mercy when they are frozen solid! Hahaha! Are you ready?", - "1_female": null + "1_female": "No one can best me when it comes to icy Pokémon! Freezing moves are powerful!\n$Your Pokémon will be at my mercy when they are frozen solid! Hahaha! Are you ready?" }, "victory": { "1": "How dare you!" }, "defeat": { "1": "There's nothing you can do once you're frozen.", - "1_female": null + "1_female": "There's nothing you can do once you're frozen." } }, "will": { @@ -1775,11 +1775,11 @@ "malva": { "encounter": { "1": "I feel like my heart might just burst into flames. \n$I'm burning up with my hatred for you, runt!", - "1_female": null + "1_female": "I feel like my heart might just burst into flames. \n$I'm burning up with my hatred for you, runt!" }, "victory": { "1": "What news… So a new challenger has defeated Malva!", - "1_female": null + "1_female": "What news… So a new challenger has defeated Malva!" }, "defeat": { "1": "I am delighted! Yes, delighted that I could squash you beneath my heel." @@ -1802,7 +1802,7 @@ }, "victory": { "1": "I certainly found an interesting Trainer to face!", - "1_female": null + "1_female": "I certainly found an interesting Trainer to face!" }, "defeat": { "1": "Ahaha. What an interesting battle." @@ -1814,11 +1814,11 @@ }, "victory": { "1": "Not bad, kiddo.", - "1_female": null + "1_female": "Not bad, kiddo." }, "defeat": { "1": "Nahahaha! You really are something else, kiddo!", - "1_female": null + "1_female": "Nahahaha! You really are something else, kiddo!" } }, "bruno": { @@ -1838,7 +1838,7 @@ }, "victory": { "1": "Whoa, amazing! You're an expert on Pokémon!\nMy research isn't complete yet. OK, you win.", - "1_female": null + "1_female": "Whoa, amazing! You're an expert on Pokémon!\nMy research isn't complete yet. OK, you win." }, "defeat": { "1": "Thanks! Thanks to our battle, I was also able to make progress in my research!" @@ -1869,11 +1869,11 @@ "lenora": { "encounter": { "1": "Well then, challenger, I'm going to research how you battle with the Pokémon you've so lovingly raised!", - "1_female": null + "1_female": "Well then, challenger, I'm going to research how you battle with the Pokémon you've so lovingly raised!" }, "victory": { "1": "My theory about you was correct. You're more than just talented… You're motivated! I salute you!", - "1_female": null + "1_female": "My theory about you was correct. You're more than just talented… You're motivated! I salute you!" }, "defeat": { "1": "Ah ha ha! If you lose, make sure to analyze why, and use that knowledge in your next battle!" @@ -1899,7 +1899,7 @@ }, "defeat": { "1": "Hey, c'mon! Get serious! You gotta put more out there!", - "1_female": null + "1_female": "Hey, c'mon! Get serious! You gotta put more out there!" } }, "olivia": { @@ -1938,7 +1938,7 @@ "flint": { "encounter": { "1": "Hope you're warmed up, cause here comes the Big Bang!", - "1_female": null + "1_female": "Hope you're warmed up, cause here comes the Big Bang!" }, "victory": { "1": "Incredible! Your moves are so hot, they make mine look lukewarm!" @@ -1961,7 +1961,7 @@ "caitlin": { "encounter": { "1": "It's me who appeared when the flower opened up. You who have been waiting…\n$You look like a Pokémon Trainer with refined strength and deepened kindness. \n$What I look for in my opponent is superb strength… \n$Please unleash your power to the fullest!", - "1_female": null + "1_female": "It's me who appeared when the flower opened up. You who have been waiting…\n$You look like a Pokémon Trainer with refined strength and deepened kindness. \n$What I look for in my opponent is superb strength… \n$Please unleash your power to the fullest!" }, "victory": { "1": "My Pokémon and I learned so much! I offer you my thanks." @@ -1984,15 +1984,15 @@ "wikstrom": { "encounter": { "1": "Well met, young challenger! Verily am I the famed blade of hardened steel, Duke Wikstrom! \n$Let the battle begin! En garde!", - "1_female": null + "1_female": "Well met, young challenger! Verily am I the famed blade of hardened steel, Duke Wikstrom! \n$Let the battle begin! En garde!" }, "victory": { "1": "Glorious! The trust that you share with your honorable Pokémon surpasses even mine!", - "1_female": null + "1_female": "Glorious! The trust that you share with your honorable Pokémon surpasses even mine!" }, "defeat": { "1": "What manner of magic is this? My heart, it doth hammer ceaselessly in my breast! \n$Winning against such a worthy opponent doth give my soul wings--thus do I soar!", - "1_female": null + "1_female": "What manner of magic is this? My heart, it doth hammer ceaselessly in my breast! \n$Winning against such a worthy opponent doth give my soul wings--thus do I soar!" } }, "acerola": { @@ -2024,14 +2024,14 @@ }, "victory": { "1": "You got me. You are magnificent!", - "1_female": null, + "1_female": "You got me. You are magnificent!", "2": "I never expected another trainer to beat me… I'm surprised.", - "2_female": null + "2_female": "I never expected another trainer to beat me… I'm surprised." }, "defeat": { "1": "That was close. Want to try again?", "2": "It's not that you are weak. Don't let it bother you.", - "2_female": null + "2_female": "It's not that you are weak. Don't let it bother you." } }, "karen": { @@ -2057,7 +2057,7 @@ }, "victory": { "1": "The power of Grass has wilted… What an incredible Challenger!", - "1_female": null + "1_female": "The power of Grass has wilted… What an incredible Challenger!" }, "defeat": { "1": "This'll really leave you in shock and awe." @@ -2077,7 +2077,7 @@ "drasna": { "encounter": { "1": "You must be a strong Trainer. Yes, quite strong indeed…\n$That's just wonderful news! Facing opponents like you and your team will make my Pokémon grow like weeds!", - "1_female": null + "1_female": "You must be a strong Trainer. Yes, quite strong indeed…\n$That's just wonderful news! Facing opponents like you and your team will make my Pokémon grow like weeds!" }, "victory": { "1": "Oh, dear me. That sure was a quick battle… I do hope you'll come back again sometime!" @@ -2111,7 +2111,7 @@ "blue": { "encounter": { "1": "You must be pretty good to get this far.", - "1_female": null + "1_female": "You must be pretty good to get this far." }, "victory": { "1": "I've only lost to him and now to you… Him? Hee, hee…" @@ -2159,7 +2159,7 @@ }, "victory": { "1": "This is the emergence of a new Champion.", - "1_female": null + "1_female": "This is the emergence of a new Champion." }, "defeat": { "1": "I successfully defended my Championship." @@ -2248,7 +2248,7 @@ }, "victory": { "1": "Waaah! Waaah! You're so mean!", - "1_female": null + "1_female": "Waaah! Waaah! You're so mean!" }, "defeat": { "1": "And that's that!" @@ -2257,7 +2257,7 @@ "chuck": { "encounter": { "1": "Hah! You want to challenge me? Are you brave or just ignorant?", - "1_female": null + "1_female": "Hah! You want to challenge me? Are you brave or just ignorant?" }, "victory": { "1": "You're strong! Would you please make me your apprentice?" @@ -2269,7 +2269,7 @@ "katy": { "encounter": { "1": "Don't let your guard down unless you would like to find yourself knocked off your feet!", - "1_female": null + "1_female": "Don't let your guard down unless you would like to find yourself knocked off your feet!" }, "victory": { "1": "All of my sweet little Pokémon dropped like flies!" @@ -2303,7 +2303,7 @@ "maylene": { "encounter": { "1": "I've come to challenge you now, and I won't hold anything back. \n$Please prepare yourself for battle!", - "1_female": null + "1_female": "I've come to challenge you now, and I won't hold anything back. \n$Please prepare yourself for battle!" }, "victory": { "1": "I admit defeat…" @@ -2326,7 +2326,7 @@ "byron": { "encounter": { "1": "Trainer! You're young, just like my son, Roark. \n$With more young Trainers taking charge, the future of Pokémon is bright! \n$So, as a wall for young people, I'll take your challenge!", - "1_female": null + "1_female": "Trainer! You're young, just like my son, Roark. \n$With more young Trainers taking charge, the future of Pokémon is bright! \n$So, as a wall for young people, I'll take your challenge!" }, "victory": { "1": "Hmm! My sturdy Pokémon--defeated!" @@ -2349,7 +2349,7 @@ "volkner": { "encounter": { "1": "Since you've come this far, you must be quite strong…\n$I hope you're the Trainer who'll make me remember how fun it is to battle!", - "1_female": null + "1_female": "Since you've come this far, you must be quite strong…\n$I hope you're the Trainer who'll make me remember how fun it is to battle!" }, "victory": { "1": "You've got me beat…\n$Your desire and the noble way your Pokémon battled for you… \n$I even felt thrilled during our match. That was a very good battle." @@ -2452,7 +2452,7 @@ "valerie": { "encounter": { "1": "Oh, if it isn't a young Trainer… It is lovely to get to meet you like this. \n$Then I suppose you have earned yourself the right to a battle, as a reward for your efforts. \n$The elusive Fairy may appear frail as the breeze and delicate as a bloom, but it is strong.", - "1_female": null + "1_female": "Oh, if it isn't a young Trainer… It is lovely to get to meet you like this. \n$Then I suppose you have earned yourself the right to a battle, as a reward for your efforts. \n$The elusive Fairy may appear frail as the breeze and delicate as a bloom, but it is strong." }, "victory": { "1": "I hope that you will find things worth smiling about tomorrow…" @@ -2500,7 +2500,7 @@ }, "victory": { "1": "Your pink is still lacking, but you're an excellent Trainer with excellent Pokémon.", - "1_female": null + "1_female": "Your pink is still lacking, but you're an excellent Trainer with excellent Pokémon." }, "defeat": { "1": "Too bad for you, I guess." @@ -2509,7 +2509,7 @@ "bede": { "encounter": { "1": "I suppose I should prove beyond doubt just how pathetic you are and how strong I am.", - "1_female": null + "1_female": "I suppose I should prove beyond doubt just how pathetic you are and how strong I am." }, "victory": { "1": "I see… Well, that's fine. I wasn't really trying all that hard anyway." @@ -2554,7 +2554,7 @@ "brassius": { "encounter": { "1": "I assume you are ready? Let our collaborative work of art begin!", - "1_female": null + "1_female": "I assume you are ready? Let our collaborative work of art begin!" }, "victory": { "1": "Ahhh…vant-garde!" @@ -2566,11 +2566,11 @@ "iono": { "encounter": { "1": "How're ya feelin' about this battle?\n$...\n$Let's get this show on the road! How strong is our challenger? \n$I 'unno! Let's find out together!", - "1_female": null + "1_female": "How're ya feelin' about this battle?\n$...\n$Let's get this show on the road! How strong is our challenger? \n$I 'unno! Let's find out together!" }, "victory": { "1": "You're as flashy and bright as a 10,000,000-volt Thunderbolt, friendo!", - "1_female": null + "1_female": "You're as flashy and bright as a 10,000,000-volt Thunderbolt, friendo!" }, "defeat": { "1": "Your eyeballs are MINE!" @@ -2593,7 +2593,7 @@ }, "victory": { "1": "You're cool, my friend—you move my SOUL!", - "1_female": null + "1_female": "You're cool, my friend—you move my SOUL!" }, "defeat": { "1": "Later, baby!" @@ -2627,9 +2627,9 @@ "nessa_elite": { "encounter": { "1": "The tides are turning in my favor. Ready to get swept away?", - "1_female": null, + "1_female": "The tides are turning in my favor. Ready to get swept away?", "2": "Let's make some waves with this battle! I hope you're prepared!", - "2_female": null + "2_female": "Let's make some waves with this battle! I hope you're prepared!" }, "victory": { "1": "You navigated those waters perfectly... Well done!", @@ -2657,7 +2657,7 @@ "allister_elite": { "encounter": { "1": "Shadows fall... Are you ready to face your fears?", - "1_female": null, + "1_female": "Shadows fall... Are you ready to face your fears?", "2": "Let's see if you can handle the darkness that I command." }, "victory": { @@ -2681,7 +2681,7 @@ "defeat": { "1": "Another storm weathered, another victory claimed! Well fought!", "2": "You got caught in my storm! Better luck next time!", - "2_female": null + "2_female": "You got caught in my storm! Better luck next time!" } }, "alder": { From 55e0d65ac8055b9b3fb6748289ae44796956b32c Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:23:25 -0700 Subject: [PATCH 039/116] [Refactor] Improvements on getOrder() (#3547) * Moved getOrder() into TurnStartPhase * Cleaned up bypass speed checks * Revert "Cleaned up bypass speed checks" This reverts commit 11150254f568b8575211693919c9c5deeb3d8dcd. * Added comments. * Fixed up some inconsistencies * changed isSameBracket check * changed isSameBracket check p2 * changed isSameBracket check p3 * changed isSameBracket check p3 * Fixed up conditionals + stall/M.m * Seems OK * Update battle-spec.ts * Updated tests to use new functions introduced. Less intuitive, but faster. * Update src/phases.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Moved getOrder() into TurnStartPhase * Cleaned up bypass speed checks * Revert "Cleaned up bypass speed checks" This reverts commit 11150254f568b8575211693919c9c5deeb3d8dcd. * Added comments. * Fixed up some inconsistencies * changed isSameBracket check * changed isSameBracket check p2 * changed isSameBracket check p3 * changed isSameBracket check p3 * Fixed up conditionals + stall/M.m * Seems OK * Update battle-spec.ts * Updated tests to use new functions introduced. Less intuitive, but faster. * Removed import * i hate git * Moved getOrder() into TurnStartPhase * Seems OK * missing import * Added Snooze's review * Added test fixes and removed unwanted edit. * fixed dynamax cannon test * typedocs fixes * Updating battle-order.test.ts * merge fixes * ughhh * Update src/test/abilities/mycelium_might.test.ts Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> * tsdocs :) * Fixed tests * Update src/phases/turn-start-phase.ts Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> * Update src/phases/turn-start-phase.ts Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> * innerthunder's fixes * commas * Mocked stats instead of directly changing them --------- Co-authored-by: Frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> --- src/data/ability.ts | 4 +- src/phases/field-phase.ts | 35 +------ src/phases/turn-start-phase.ts | 110 ++++++++++++++++------ src/test/abilities/mycelium_might.test.ts | 51 +++++----- src/test/abilities/stall.test.ts | 48 +++++----- src/test/battle/battle-order.test.ts | 105 +++++++++++++-------- src/test/utils/gameManager.ts | 4 +- 7 files changed, 203 insertions(+), 154 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index 8b7a7772efe..3d5b32f4ce8 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -5025,7 +5025,7 @@ export function initAbilities() { .attr(AlwaysHitAbAttr) .attr(DoubleBattleChanceAbAttr), new Ability(Abilities.STALL, 4) - .attr(ChangeMovePriorityAbAttr, (pokemon, move: Move) => true, -0.5), + .attr(ChangeMovePriorityAbAttr, (pokemon, move: Move) => true, -0.2), new Ability(Abilities.TECHNICIAN, 4) .attr(MovePowerBoostAbAttr, (user, target, move) => { const power = new Utils.NumberHolder(move.power); @@ -5713,7 +5713,7 @@ export function initAbilities() { .partial() // Healing not blocked by Heal Block .ignorable(), new Ability(Abilities.MYCELIUM_MIGHT, 9) - .attr(ChangeMovePriorityAbAttr, (pokemon, move) => move.category === MoveCategory.STATUS, -0.5) + .attr(ChangeMovePriorityAbAttr, (pokemon, move) => move.category === MoveCategory.STATUS, -0.2) .attr(PreventBypassSpeedChanceAbAttr, (pokemon, move) => move.category === MoveCategory.STATUS) .attr(MoveAbilityBypassAbAttr, (pokemon, move: Move) => move.category === MoveCategory.STATUS), new Ability(Abilities.MINDS_EYE, 9) diff --git a/src/phases/field-phase.ts b/src/phases/field-phase.ts index a9622271f14..02d1f1395d3 100644 --- a/src/phases/field-phase.ts +++ b/src/phases/field-phase.ts @@ -1,42 +1,9 @@ -import { BattlerIndex } from "#app/battle.js"; -import { TrickRoomTag } from "#app/data/arena-tag.js"; -import { Stat } from "#app/enums/stat.js"; -import Pokemon from "#app/field/pokemon.js"; import { BattlePhase } from "./battle-phase"; -import * as Utils from "#app/utils.js"; +import Pokemon from "#app/field/pokemon"; type PokemonFunc = (pokemon: Pokemon) => void; export abstract class FieldPhase extends BattlePhase { - getOrder(): BattlerIndex[] { - const playerField = this.scene.getPlayerField().filter(p => p.isActive()) as Pokemon[]; - const enemyField = this.scene.getEnemyField().filter(p => p.isActive()) as Pokemon[]; - - // We shuffle the list before sorting so speed ties produce random results - let orderedTargets: Pokemon[] = playerField.concat(enemyField); - // We seed it with the current turn to prevent an inconsistency where it - // was varying based on how long since you last reloaded - this.scene.executeWithSeedOffset(() => { - orderedTargets = Utils.randSeedShuffle(orderedTargets); - }, this.scene.currentBattle.turn, this.scene.waveSeed); - - orderedTargets.sort((a: Pokemon, b: Pokemon) => { - const aSpeed = a?.getBattleStat(Stat.SPD) || 0; - const bSpeed = b?.getBattleStat(Stat.SPD) || 0; - - return bSpeed - aSpeed; - }); - - const speedReversed = new Utils.BooleanHolder(false); - this.scene.arena.applyTags(TrickRoomTag, speedReversed); - - if (speedReversed.value) { - orderedTargets = orderedTargets.reverse(); - } - - return orderedTargets.map(t => t.getFieldIndex() + (!t.isPlayer() ? BattlerIndex.ENEMY : 0)); - } - executeForAll(func: PokemonFunc): void { const field = this.scene.getField(true).filter(p => p.summonData); field.forEach(pokemon => func(pokemon)); diff --git a/src/phases/turn-start-phase.ts b/src/phases/turn-start-phase.ts index e4064fc784a..b2545e9ee30 100644 --- a/src/phases/turn-start-phase.ts +++ b/src/phases/turn-start-phase.ts @@ -1,12 +1,12 @@ -import BattleScene from "#app/battle-scene.js"; -import { applyAbAttrs, BypassSpeedChanceAbAttr, PreventBypassSpeedChanceAbAttr, ChangeMovePriorityAbAttr } from "#app/data/ability.js"; -import { allMoves, applyMoveAttrs, IncrementMovePriorityAttr, MoveHeaderAttr } from "#app/data/move.js"; -import { Abilities } from "#app/enums/abilities.js"; -import { Stat } from "#app/enums/stat.js"; -import { PokemonMove } from "#app/field/pokemon.js"; -import { BypassSpeedChanceModifier } from "#app/modifier/modifier.js"; -import { Command } from "#app/ui/command-ui-handler.js"; -import * as Utils from "#app/utils.js"; +import BattleScene from "#app/battle-scene"; +import { applyAbAttrs, BypassSpeedChanceAbAttr, PreventBypassSpeedChanceAbAttr, ChangeMovePriorityAbAttr } from "#app/data/ability"; +import { allMoves, applyMoveAttrs, IncrementMovePriorityAttr, MoveHeaderAttr } from "#app/data/move"; +import { Abilities } from "#app/enums/abilities"; +import { Stat } from "#app/enums/stat"; +import Pokemon, { PokemonMove } from "#app/field/pokemon"; +import { BypassSpeedChanceModifier } from "#app/modifier/modifier"; +import { Command } from "#app/ui/command-ui-handler"; +import * as Utils from "#app/utils"; import { AttemptCapturePhase } from "./attempt-capture-phase"; import { AttemptRunPhase } from "./attempt-run-phase"; import { BerryPhase } from "./berry-phase"; @@ -17,18 +17,59 @@ import { PostTurnStatusEffectPhase } from "./post-turn-status-effect-phase"; import { SwitchSummonPhase } from "./switch-summon-phase"; import { TurnEndPhase } from "./turn-end-phase"; import { WeatherEffectPhase } from "./weather-effect-phase"; +import { BattlerIndex } from "#app/battle"; +import { TrickRoomTag } from "#app/data/arena-tag"; export class TurnStartPhase extends FieldPhase { constructor(scene: BattleScene) { super(scene); } - start() { - super.start(); + /** + * This orders the active Pokemon on the field by speed into an BattlerIndex array and returns that array. + * It also checks for Trick Room and reverses the array if it is present. + * @returns {@linkcode BattlerIndex[]} the battle indices of all pokemon on the field ordered by speed + */ + getSpeedOrder(): BattlerIndex[] { + const playerField = this.scene.getPlayerField().filter(p => p.isActive()) as Pokemon[]; + const enemyField = this.scene.getEnemyField().filter(p => p.isActive()) as Pokemon[]; - const field = this.scene.getField(); - const order = this.getOrder(); + // We shuffle the list before sorting so speed ties produce random results + let orderedTargets: Pokemon[] = playerField.concat(enemyField); + // We seed it with the current turn to prevent an inconsistency where it + // was varying based on how long since you last reloaded + this.scene.executeWithSeedOffset(() => { + orderedTargets = Utils.randSeedShuffle(orderedTargets); + }, this.scene.currentBattle.turn, this.scene.waveSeed); + orderedTargets.sort((a: Pokemon, b: Pokemon) => { + const aSpeed = a?.getBattleStat(Stat.SPD) || 0; + const bSpeed = b?.getBattleStat(Stat.SPD) || 0; + + return bSpeed - aSpeed; + }); + + // Next, a check for Trick Room is applied. If Trick Room is present, the order is reversed. + const speedReversed = new Utils.BooleanHolder(false); + this.scene.arena.applyTags(TrickRoomTag, speedReversed); + + if (speedReversed.value) { + orderedTargets = orderedTargets.reverse(); + } + + return orderedTargets.map(t => t.getFieldIndex() + (!t.isPlayer() ? BattlerIndex.ENEMY : BattlerIndex.PLAYER)); + } + + /** + * This takes the result of getSpeedOrder and applies priority / bypass speed attributes to it. + * This also considers the priority levels of various commands and changes the result of getSpeedOrder based on such. + * @returns {@linkcode BattlerIndex[]} the final sequence of commands for this turn + */ + getCommandOrder(): BattlerIndex[] { + let moveOrder = this.getSpeedOrder(); + // The creation of the battlerBypassSpeed object contains checks for the ability Quick Draw and the held item Quick Claw + // The ability Mycelium Might disables Quick Claw's activation when using a status move + // This occurs before the main loop because of battles with more than two Pokemon const battlerBypassSpeed = {}; this.scene.getField(true).filter(p => p.summonData).map(p => { @@ -42,8 +83,9 @@ export class TurnStartPhase extends FieldPhase { battlerBypassSpeed[p.getBattlerIndex()] = bypassSpeed; }); - const moveOrder = order.slice(0); - + // The function begins sorting orderedTargets based on command priority, move priority, and possible speed bypasses. + // Non-FIGHT commands (SWITCH, BALL, RUN) have a higher command priority and will always occur before any FIGHT commands. + moveOrder = moveOrder.slice(0); moveOrder.sort((a, b) => { const aCommand = this.scene.currentBattle.turnCommands[a]; const bCommand = this.scene.currentBattle.turnCommands[b]; @@ -55,37 +97,50 @@ export class TurnStartPhase extends FieldPhase { return -1; } } else if (aCommand?.command === Command.FIGHT) { - const aMove = allMoves[aCommand.move!.move];//TODO: is the bang correct here? - const bMove = allMoves[bCommand!.move!.move];//TODO: is the bang correct here? + const aMove = allMoves[aCommand.move!.move]; + const bMove = allMoves[bCommand!.move!.move]; + // The game now considers priority and applies the relevant move and ability attributes const aPriority = new Utils.IntegerHolder(aMove.priority); const bPriority = new Utils.IntegerHolder(bMove.priority); - applyMoveAttrs(IncrementMovePriorityAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === a)!, null, aMove, aPriority); //TODO: is the bang correct here? - applyMoveAttrs(IncrementMovePriorityAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === b)!, null, bMove, bPriority); //TODO: is the bang correct here? + applyMoveAttrs(IncrementMovePriorityAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === a)!, null, aMove, aPriority); + applyMoveAttrs(IncrementMovePriorityAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === b)!, null, bMove, bPriority); - applyAbAttrs(ChangeMovePriorityAbAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === a)!, null, false, aMove, aPriority); //TODO: is the bang correct here? - applyAbAttrs(ChangeMovePriorityAbAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === b)!, null, false, bMove, bPriority); //TODO: is the bang correct here? + applyAbAttrs(ChangeMovePriorityAbAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === a)!, null, false, aMove, aPriority); + applyAbAttrs(ChangeMovePriorityAbAttr, this.scene.getField().find(p => p?.isActive() && p.getBattlerIndex() === b)!, null, false, bMove, bPriority); + // The game now checks for differences in priority levels. + // If the moves share the same original priority bracket, it can check for differences in battlerBypassSpeed and return the result. + // This conditional is used to ensure that Quick Claw can still activate with abilities like Stall and Mycelium Might (attack moves only) + // Otherwise, the game returns the user of the move with the highest priority. + const isSameBracket = Math.ceil(aPriority.value) - Math.ceil(bPriority.value) === 0; if (aPriority.value !== bPriority.value) { - const bracketDifference = Math.ceil(aPriority.value) - Math.ceil(bPriority.value); - const hasSpeedDifference = battlerBypassSpeed[a].value !== battlerBypassSpeed[b].value; - if (bracketDifference === 0 && hasSpeedDifference) { + if (isSameBracket && battlerBypassSpeed[a].value !== battlerBypassSpeed[b].value) { return battlerBypassSpeed[a].value ? -1 : 1; } return aPriority.value < bPriority.value ? 1 : -1; } } + // If there is no difference between the move's calculated priorities, the game checks for differences in battlerBypassSpeed and returns the result. if (battlerBypassSpeed[a].value !== battlerBypassSpeed[b].value) { return battlerBypassSpeed[a].value ? -1 : 1; } - const aIndex = order.indexOf(a); - const bIndex = order.indexOf(b); + const aIndex = moveOrder.indexOf(a); + const bIndex = moveOrder.indexOf(b); return aIndex < bIndex ? -1 : aIndex > bIndex ? 1 : 0; }); + return moveOrder; + } + + start() { + super.start(); + + const field = this.scene.getField(); + const moveOrder = this.getCommandOrder(); let orderIndex = 0; @@ -150,10 +205,9 @@ export class TurnStartPhase extends FieldPhase { } } - this.scene.pushPhase(new WeatherEffectPhase(this.scene)); - for (const o of order) { + for (const o of moveOrder) { if (field[o].status && field[o].status.isPostTurn()) { this.scene.pushPhase(new PostTurnStatusEffectPhase(this.scene, o)); } diff --git a/src/test/abilities/mycelium_might.test.ts b/src/test/abilities/mycelium_might.test.ts index 83396f7950f..d5bea185f59 100644 --- a/src/test/abilities/mycelium_might.test.ts +++ b/src/test/abilities/mycelium_might.test.ts @@ -1,6 +1,6 @@ import { BattleStat } from "#app/data/battle-stat"; -import { MovePhase } from "#app/phases/move-phase"; import { TurnEndPhase } from "#app/phases/turn-end-phase"; +import { TurnStartPhase } from "#app/phases/turn-start-phase"; import { Abilities } from "#enums/abilities"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; @@ -8,7 +8,6 @@ import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; - describe("Abilities - Mycelium Might", () => { let phaserGame: Phaser.Game; let game: GameManager; @@ -35,7 +34,7 @@ describe("Abilities - Mycelium Might", () => { }); /** - * Bulbapedia References: + * References: * https://bulbapedia.bulbagarden.net/wiki/Mycelium_Might_(Ability) * https://bulbapedia.bulbagarden.net/wiki/Priority * https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/page-24 @@ -44,22 +43,22 @@ describe("Abilities - Mycelium Might", () => { it("will move last in its priority bracket and ignore protective abilities", async () => { await game.startBattle([Species.REGIELEKI]); - const leadIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); const enemyPokemon = game.scene.getEnemyPokemon(); + const playerIndex = game.scene.getPlayerPokemon()?.getBattlerIndex(); const enemyIndex = enemyPokemon?.getBattlerIndex(); game.move.select(Moves.BABY_DOLL_EYES); - await game.phaseInterceptor.to(MovePhase, false); + await game.phaseInterceptor.to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; + const speedOrder = phase.getSpeedOrder(); + const commandOrder = phase.getCommandOrder(); // The opponent Pokemon (without Mycelium Might) goes first despite having lower speed than the player Pokemon. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(enemyIndex); - - await game.phaseInterceptor.run(MovePhase); - await game.phaseInterceptor.to(MovePhase, false); - // The player Pokemon (with Mycelium Might) goes last despite having higher speed than the opponent. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(leadIndex); + expect(speedOrder).toEqual([playerIndex, enemyIndex]); + expect(commandOrder).toEqual([enemyIndex, playerIndex]); await game.phaseInterceptor.to(TurnEndPhase); + // Despite the opponent's ability (Clear Body), its attack stat is still reduced. expect(enemyPokemon?.summonData.battleStats[BattleStat.ATK]).toBe(-1); }, 20000); @@ -67,39 +66,41 @@ describe("Abilities - Mycelium Might", () => { game.override.enemyMoveset([Moves.TACKLE, Moves.TACKLE, Moves.TACKLE, Moves.TACKLE]); await game.startBattle([Species.REGIELEKI]); - const leadIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); const enemyPokemon = game.scene.getEnemyPokemon(); + const playerIndex = game.scene.getPlayerPokemon()?.getBattlerIndex(); const enemyIndex = enemyPokemon?.getBattlerIndex(); game.move.select(Moves.BABY_DOLL_EYES); - await game.phaseInterceptor.to(MovePhase, false); + await game.phaseInterceptor.to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; + const speedOrder = phase.getSpeedOrder(); + const commandOrder = phase.getCommandOrder(); // The player Pokemon (with M.M.) goes first because its move is still within a higher priority bracket than its opponent. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(leadIndex); - - await game.phaseInterceptor.run(MovePhase); - await game.phaseInterceptor.to(MovePhase, false); // The enemy Pokemon goes second because its move is in a lower priority bracket. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(enemyIndex); + expect(speedOrder).toEqual([playerIndex, enemyIndex]); + expect(commandOrder).toEqual([playerIndex, enemyIndex]); await game.phaseInterceptor.to(TurnEndPhase); + // Despite the opponent's ability (Clear Body), its attack stat is still reduced. expect(enemyPokemon?.summonData.battleStats[BattleStat.ATK]).toBe(-1); }, 20000); it("will not affect non-status moves", async () => { await game.startBattle([Species.REGIELEKI]); - const leadIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); + const playerIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); const enemyIndex = game.scene.getEnemyPokemon()!.getBattlerIndex(); game.move.select(Moves.QUICK_ATTACK); - await game.phaseInterceptor.to(MovePhase, false); + await game.phaseInterceptor.to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; + const speedOrder = phase.getSpeedOrder(); + const commandOrder = phase.getCommandOrder(); // The player Pokemon (with M.M.) goes first because it has a higher speed and did not use a status move. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(leadIndex); - - await game.phaseInterceptor.run(MovePhase); - await game.phaseInterceptor.to(MovePhase, false); // The enemy Pokemon (without M.M.) goes second because its speed is lower. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(enemyIndex); + // This means that the commandOrder should be identical to the speedOrder + expect(speedOrder).toEqual([playerIndex, enemyIndex]); + expect(commandOrder).toEqual([playerIndex, enemyIndex]); }, 20000); }); diff --git a/src/test/abilities/stall.test.ts b/src/test/abilities/stall.test.ts index d8dbe9d0e06..7baf7c846f0 100644 --- a/src/test/abilities/stall.test.ts +++ b/src/test/abilities/stall.test.ts @@ -1,11 +1,10 @@ -import { MovePhase } from "#app/phases/move-phase"; import { Abilities } from "#enums/abilities"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; - +import { TurnStartPhase } from "#app/phases/turn-start-phase"; describe("Abilities - Stall", () => { let phaserGame: Phaser.Game; @@ -32,7 +31,7 @@ describe("Abilities - Stall", () => { }); /** - * Bulbapedia References: + * References: * https://bulbapedia.bulbagarden.net/wiki/Stall_(Ability) * https://bulbapedia.bulbagarden.net/wiki/Priority **/ @@ -40,55 +39,56 @@ describe("Abilities - Stall", () => { it("Pokemon with Stall should move last in its priority bracket regardless of speed", async () => { await game.startBattle([Species.SHUCKLE]); - const leadIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); + const playerIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); const enemyIndex = game.scene.getEnemyPokemon()!.getBattlerIndex(); game.move.select(Moves.QUICK_ATTACK); - await game.phaseInterceptor.to(MovePhase, false); + await game.phaseInterceptor.to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; + const speedOrder = phase.getSpeedOrder(); + const commandOrder = phase.getCommandOrder(); // The player Pokemon (without Stall) goes first despite having lower speed than the opponent. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(leadIndex); - - await game.phaseInterceptor.run(MovePhase); - await game.phaseInterceptor.to(MovePhase, false); // The opponent Pokemon (with Stall) goes last despite having higher speed than the player Pokemon. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(enemyIndex); + expect(speedOrder).toEqual([enemyIndex, playerIndex]); + expect(commandOrder).toEqual([playerIndex, enemyIndex]); }, 20000); it("Pokemon with Stall will go first if a move that is in a higher priority bracket than the opponent's move is used", async () => { await game.startBattle([Species.SHUCKLE]); - const leadIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); + const playerIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); const enemyIndex = game.scene.getEnemyPokemon()!.getBattlerIndex(); game.move.select(Moves.TACKLE); - await game.phaseInterceptor.to(MovePhase, false); + await game.phaseInterceptor.to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; + const speedOrder = phase.getSpeedOrder(); + const commandOrder = phase.getCommandOrder(); // The opponent Pokemon (with Stall) goes first because its move is still within a higher priority bracket than its opponent. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(enemyIndex); - - await game.phaseInterceptor.run(MovePhase); - await game.phaseInterceptor.to(MovePhase, false); // The player Pokemon goes second because its move is in a lower priority bracket. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(leadIndex); + expect(speedOrder).toEqual([enemyIndex, playerIndex]); + expect(commandOrder).toEqual([enemyIndex, playerIndex]); }, 20000); it("If both Pokemon have stall and use the same move, speed is used to determine who goes first.", async () => { game.override.ability(Abilities.STALL); await game.startBattle([Species.SHUCKLE]); - const leadIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); + const playerIndex = game.scene.getPlayerPokemon()!.getBattlerIndex(); const enemyIndex = game.scene.getEnemyPokemon()!.getBattlerIndex(); game.move.select(Moves.TACKLE); - await game.phaseInterceptor.to(MovePhase, false); - // The opponent Pokemon (with Stall) goes first because it has a higher speed. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(enemyIndex); + await game.phaseInterceptor.to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; + const speedOrder = phase.getSpeedOrder(); + const commandOrder = phase.getCommandOrder(); - await game.phaseInterceptor.run(MovePhase); - await game.phaseInterceptor.to(MovePhase, false); + // The opponent Pokemon (with Stall) goes first because it has a higher speed. // The player Pokemon (with Stall) goes second because its speed is lower. - expect((game.scene.getCurrentPhase() as MovePhase).pokemon.getBattlerIndex()).toBe(leadIndex); + expect(speedOrder).toEqual([enemyIndex, playerIndex]); + expect(commandOrder).toEqual([enemyIndex, playerIndex]); }, 20000); }); diff --git a/src/test/battle/battle-order.test.ts b/src/test/battle/battle-order.test.ts index 0129ecad254..e19168962dc 100644 --- a/src/test/battle/battle-order.test.ts +++ b/src/test/battle/battle-order.test.ts @@ -1,4 +1,3 @@ -import { Stat } from "#app/data/pokemon-stat"; import { EnemyCommandPhase } from "#app/phases/enemy-command-phase"; import { SelectTargetPhase } from "#app/phases/select-target-phase"; import { TurnStartPhase } from "#app/phases/turn-start-phase"; @@ -7,8 +6,7 @@ import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; -import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; - +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; describe("Battle order", () => { let phaserGame: Phaser.Game; @@ -37,30 +35,42 @@ describe("Battle order", () => { await game.startBattle([ Species.BULBASAUR, ]); - game.scene.getParty()[0].stats[Stat.SPD] = 50; - game.scene.currentBattle.enemyParty[0].stats[Stat.SPD] = 150; + + const playerPokemon = game.scene.getPlayerPokemon()!; + const enemyPokemon = game.scene.getEnemyPokemon()!; + vi.spyOn(playerPokemon, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 50]); // set playerPokemon's speed to 50 + vi.spyOn(enemyPokemon, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 150]); // set enemyPokemon's speed to 150 game.move.select(Moves.TACKLE); await game.phaseInterceptor.run(EnemyCommandPhase); + + const playerPokemonIndex = playerPokemon.getBattlerIndex(); + const enemyPokemonIndex = enemyPokemon.getBattlerIndex(); const phase = game.scene.getCurrentPhase() as TurnStartPhase; - const order = phase.getOrder(); - expect(order[0]).toBe(2); - expect(order[1]).toBe(0); + const order = phase.getCommandOrder(); + expect(order[0]).toBe(enemyPokemonIndex); + expect(order[1]).toBe(playerPokemonIndex); }, 20000); it("Player faster than opponent 150 vs 50", async () => { await game.startBattle([ Species.BULBASAUR, ]); - game.scene.getParty()[0].stats[Stat.SPD] = 150; - game.scene.currentBattle.enemyParty[0].stats[Stat.SPD] = 50; + + const playerPokemon = game.scene.getPlayerPokemon()!; + const enemyPokemon = game.scene.getEnemyPokemon()!; + vi.spyOn(playerPokemon, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 150]); // set playerPokemon's speed to 150 + vi.spyOn(enemyPokemon, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 50]); // set enemyPokemon's speed to 50 game.move.select(Moves.TACKLE); await game.phaseInterceptor.run(EnemyCommandPhase); + + const playerPokemonIndex = playerPokemon.getBattlerIndex(); + const enemyPokemonIndex = enemyPokemon.getBattlerIndex(); const phase = game.scene.getCurrentPhase() as TurnStartPhase; - const order = phase.getOrder(); - expect(order[0]).toBe(0); - expect(order[1]).toBe(2); + const order = phase.getCommandOrder(); + expect(order[0]).toBe(playerPokemonIndex); + expect(order[1]).toBe(enemyPokemonIndex); }, 20000); it("double - both opponents faster than player 50/50 vs 150/150", async () => { @@ -69,20 +79,25 @@ describe("Battle order", () => { Species.BULBASAUR, Species.BLASTOISE, ]); - game.scene.getParty()[0].stats[Stat.SPD] = 50; - game.scene.getParty()[1].stats[Stat.SPD] = 50; - game.scene.currentBattle.enemyParty[0].stats[Stat.SPD] = 150; - game.scene.currentBattle.enemyParty[1].stats[Stat.SPD] = 150; + + const playerPokemon = game.scene.getPlayerField(); + const enemyPokemon = game.scene.getEnemyField(); + + playerPokemon.forEach(p => vi.spyOn(p, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 50])); // set both playerPokemons' speed to 50 + enemyPokemon.forEach(p => vi.spyOn(p, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 150])); // set both enemyPokemons' speed to 150 + const playerIndices = playerPokemon.map(p => p?.getBattlerIndex()); + const enemyIndices = enemyPokemon.map(p => p?.getBattlerIndex()); game.move.select(Moves.TACKLE); game.move.select(Moves.TACKLE, 1); await game.phaseInterceptor.runFrom(SelectTargetPhase).to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; - const order = phase.getOrder(); - expect(order.indexOf(0)).toBeGreaterThan(order.indexOf(2)); - expect(order.indexOf(0)).toBeGreaterThan(order.indexOf(3)); - expect(order.indexOf(1)).toBeGreaterThan(order.indexOf(2)); - expect(order.indexOf(1)).toBeGreaterThan(order.indexOf(3)); + const order = phase.getCommandOrder(); + expect(order.slice(0, 2).includes(enemyIndices[0])).toBe(true); + expect(order.slice(0, 2).includes(enemyIndices[1])).toBe(true); + expect(order.slice(2, 4).includes(playerIndices[0])).toBe(true); + expect(order.slice(2, 4).includes(playerIndices[1])).toBe(true); }, 20000); it("double - speed tie except 1 - 100/100 vs 100/150", async () => { @@ -91,19 +106,25 @@ describe("Battle order", () => { Species.BULBASAUR, Species.BLASTOISE, ]); - game.scene.getParty()[0].stats[Stat.SPD] = 100; - game.scene.getParty()[1].stats[Stat.SPD] = 100; - game.scene.currentBattle.enemyParty[0].stats[Stat.SPD] = 100; - game.scene.currentBattle.enemyParty[1].stats[Stat.SPD] = 150; + + const playerPokemon = game.scene.getPlayerField(); + const enemyPokemon = game.scene.getEnemyField(); + playerPokemon.forEach(p => vi.spyOn(p, "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 100])); //set both playerPokemons' speed to 100 + vi.spyOn(enemyPokemon[0], "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 100]); // set enemyPokemon's speed to 100 + vi.spyOn(enemyPokemon[1], "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 150]); // set enemyPokemon's speed to 150 + const playerIndices = playerPokemon.map(p => p?.getBattlerIndex()); + const enemyIndices = enemyPokemon.map(p => p?.getBattlerIndex()); game.move.select(Moves.TACKLE); game.move.select(Moves.TACKLE, 1); await game.phaseInterceptor.runFrom(SelectTargetPhase).to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; - const order = phase.getOrder(); - expect(order.indexOf(3)).toBeLessThan(order.indexOf(0)); - expect(order.indexOf(3)).toBeLessThan(order.indexOf(1)); - expect(order.indexOf(3)).toBeLessThan(order.indexOf(2)); + const order = phase.getCommandOrder(); + expect(order[0]).toBe(enemyIndices[1]); + expect(order.slice(1, 4).includes(enemyIndices[0])).toBe(true); + expect(order.slice(1, 4).includes(playerIndices[0])).toBe(true); + expect(order.slice(1, 4).includes(playerIndices[1])).toBe(true); }, 20000); it("double - speed tie 100/150 vs 100/150", async () => { @@ -112,19 +133,25 @@ describe("Battle order", () => { Species.BULBASAUR, Species.BLASTOISE, ]); - game.scene.getParty()[0].stats[Stat.SPD] = 100; - game.scene.getParty()[1].stats[Stat.SPD] = 150; - game.scene.currentBattle.enemyParty[0].stats[Stat.SPD] = 100; - game.scene.currentBattle.enemyParty[1].stats[Stat.SPD] = 150; + + const playerPokemon = game.scene.getPlayerField(); + const enemyPokemon = game.scene.getEnemyField(); + vi.spyOn(playerPokemon[0], "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 100]); // set one playerPokemon's speed to 100 + vi.spyOn(playerPokemon[1], "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 150]); // set other playerPokemon's speed to 150 + vi.spyOn(enemyPokemon[0], "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 100]); // set one enemyPokemon's speed to 100 + vi.spyOn(enemyPokemon[1], "stats", "get").mockReturnValue([20, 20, 20, 20, 20, 150]); // set other enemyPokemon's speed to 150 + const playerIndices = playerPokemon.map(p => p?.getBattlerIndex()); + const enemyIndices = enemyPokemon.map(p => p?.getBattlerIndex()); game.move.select(Moves.TACKLE); game.move.select(Moves.TACKLE, 1); await game.phaseInterceptor.runFrom(SelectTargetPhase).to(TurnStartPhase, false); + const phase = game.scene.getCurrentPhase() as TurnStartPhase; - const order = phase.getOrder(); - expect(order.indexOf(1)).toBeLessThan(order.indexOf(0)); - expect(order.indexOf(1)).toBeLessThan(order.indexOf(2)); - expect(order.indexOf(3)).toBeLessThan(order.indexOf(0)); - expect(order.indexOf(3)).toBeLessThan(order.indexOf(2)); + const order = phase.getCommandOrder(); + expect(order.slice(0, 2).includes(playerIndices[1])).toBe(true); + expect(order.slice(0, 2).includes(enemyIndices[1])).toBe(true); + expect(order.slice(2, 4).includes(playerIndices[0])).toBe(true); + expect(order.slice(2, 4).includes(enemyIndices[0])).toBe(true); }, 20000); }); diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index 60d07065090..5818244db8f 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -381,7 +381,7 @@ export default class GameManager { } /** - * Intercepts `TurnStartPhase` and mocks the getOrder's return value {@linkcode TurnStartPhase.getOrder} + * Intercepts `TurnStartPhase` and mocks the getSpeedOrder's return value {@linkcode TurnStartPhase.getSpeedOrder} * Used to modify the turn order. * @param {BattlerIndex[]} order The turn order to set * @example @@ -392,7 +392,7 @@ export default class GameManager { async setTurnOrder(order: BattlerIndex[]): Promise { await this.phaseInterceptor.to(TurnStartPhase, false); - vi.spyOn(this.scene.getCurrentPhase() as TurnStartPhase, "getOrder").mockReturnValue(order); + vi.spyOn(this.scene.getCurrentPhase() as TurnStartPhase, "getSpeedOrder").mockReturnValue(order); } /** From 335d32e0d7afd9c4baab6eb3c837bf9b704647f1 Mon Sep 17 00:00:00 2001 From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Sun, 1 Sep 2024 18:24:37 -0400 Subject: [PATCH 040/116] [UI] [QoL] [Enhancement] Exclude redundant species from certain filters in starter select (#3910) * Exclude species without HA from HA filters in starter select * Remove candyless starters from passive/cost reduction filters --- src/ui/dropdown.ts | 8 +++++++ src/ui/starter-select-ui-handler.ts | 33 ++++++++++++++++------------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/ui/dropdown.ts b/src/ui/dropdown.ts index 1fef7259108..08d55b03cdb 100644 --- a/src/ui/dropdown.ts +++ b/src/ui/dropdown.ts @@ -23,6 +23,14 @@ export enum SortDirection { DESC = 1 } +export enum SortCriteria { + NUMBER = 0, + COST = 1, + CANDY = 2, + IV = 3, + NAME = 4 +} + export class DropDownLabel { public state: DropDownState; public text: string; diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 267a62104e3..ff76a467d25 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -39,12 +39,13 @@ import { Species } from "#enums/species"; import {Button} from "#enums/buttons"; import { EggSourceType } from "#app/enums/egg-source-types.js"; import AwaitableUiHandler from "./awaitable-ui-handler"; -import { DropDown, DropDownLabel, DropDownOption, DropDownState, DropDownType } from "./dropdown"; +import { DropDown, DropDownLabel, DropDownOption, DropDownState, DropDownType, SortCriteria } from "./dropdown"; import { StarterContainer } from "./starter-container"; import { DropDownColumn, FilterBar } from "./filter-bar"; import { ScrollBar } from "./scroll-bar"; import { SelectChallengePhase } from "#app/phases/select-challenge-phase.js"; import { TitlePhase } from "#app/phases/title-phase.js"; +import { Abilities } from "#app/enums/abilities"; export type StarterSelectCallback = (starters: Starter[]) => void; @@ -501,11 +502,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler { // sort filter const sortOptions = [ - new DropDownOption(this.scene, 0, new DropDownLabel(i18next.t("filterBar:sortByNumber"), undefined, DropDownState.ON)), - new DropDownOption(this.scene, 1, new DropDownLabel(i18next.t("filterBar:sortByCost"))), - new DropDownOption(this.scene, 2, new DropDownLabel(i18next.t("filterBar:sortByCandies"))), - new DropDownOption(this.scene, 3, new DropDownLabel(i18next.t("filterBar:sortByIVs"))), - new DropDownOption(this.scene, 4, new DropDownLabel(i18next.t("filterBar:sortByName"))) + new DropDownOption(this.scene, SortCriteria.NUMBER, new DropDownLabel(i18next.t("filterBar:sortByNumber"), undefined, DropDownState.ON)), + new DropDownOption(this.scene, SortCriteria.COST, new DropDownLabel(i18next.t("filterBar:sortByCost"))), + new DropDownOption(this.scene, SortCriteria.CANDY, new DropDownLabel(i18next.t("filterBar:sortByCandies"))), + new DropDownOption(this.scene, SortCriteria.IV, new DropDownLabel(i18next.t("filterBar:sortByIVs"))), + new DropDownOption(this.scene, SortCriteria.NAME, new DropDownLabel(i18next.t("filterBar:sortByName"))) ]; this.filterBar.addFilter(DropDownColumn.SORT, i18next.t("filterBar:sortFilter"), new DropDown(this.scene, 0, 0, sortOptions, this.updateStarters, DropDownType.SINGLE)); this.filterBarContainer.add(this.filterBar); @@ -2363,6 +2364,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { // First, ensure you have the caught attributes for the species else default to bigint 0 const caughtAttr = this.scene.gameData.dexData[container.species.speciesId]?.caughtAttr || BigInt(0); const starterData = this.scene.gameData.starterData[container.species.speciesId]; + const isStarterProgressable = speciesEggMoves.hasOwnProperty(container.species.speciesId); // Gen filter const fitsGen = this.filterBar.getVals(DropDownColumn.GEN).includes(container.species.generation); @@ -2398,7 +2400,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (unlocks.val === "PASSIVE" && unlocks.state === DropDownState.ON) { return isPassiveUnlocked; } else if (unlocks.val === "PASSIVE" && unlocks.state === DropDownState.EXCLUDE) { - return !isPassiveUnlocked; + return isStarterProgressable && !isPassiveUnlocked; } else if (unlocks.val === "PASSIVE" && unlocks.state === DropDownState.UNLOCKABLE) { return isPassiveUnlockable; } else if (unlocks.val === "PASSIVE" && unlocks.state === DropDownState.OFF) { @@ -2413,7 +2415,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.ON) { return isCostReduced; } else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.EXCLUDE) { - return !isCostReduced; + return isStarterProgressable && !isCostReduced; } else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.UNLOCKABLE) { return isCostReductionUnlockable; } else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.OFF) { @@ -2450,12 +2452,13 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); // HA Filter + const speciesHasHiddenAbility = container.species.abilityHidden !== container.species.ability1 && container.species.abilityHidden !== Abilities.NONE; const hasHA = starterData.abilityAttr & AbilityAttr.ABILITY_HIDDEN; const fitsHA = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { if (misc.val === "HIDDEN_ABILITY" && misc.state === DropDownState.ON) { return hasHA; } else if (misc.val === "HIDDEN_ABILITY" && misc.state === DropDownState.EXCLUDE) { - return !hasHA; + return speciesHasHiddenAbility && !hasHA; } else if (misc.val === "HIDDEN_ABILITY" && misc.state === DropDownState.OFF) { return true; } @@ -2467,7 +2470,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (misc.val === "EGG" && misc.state === DropDownState.ON) { return isEggPurchasable; } else if (misc.val === "EGG" && misc.state === DropDownState.EXCLUDE) { - return !isEggPurchasable; + return isStarterProgressable && !isEggPurchasable; } else if (misc.val === "EGG" && misc.state === DropDownState.OFF) { return true; } @@ -2498,19 +2501,19 @@ export default class StarterSelectUiHandler extends MessageUiHandler { switch (sort.val) { default: break; - case 0: + case SortCriteria.NUMBER: return (a.species.speciesId - b.species.speciesId) * -sort.dir; - case 1: + case SortCriteria.COST: return (a.cost - b.cost) * -sort.dir; - case 2: + case SortCriteria.CANDY: const candyCountA = this.scene.gameData.starterData[a.species.speciesId].candyCount; const candyCountB = this.scene.gameData.starterData[b.species.speciesId].candyCount; return (candyCountA - candyCountB) * -sort.dir; - case 3: + case SortCriteria.IV: const avgIVsA = this.scene.gameData.dexData[a.species.speciesId].ivs.reduce((a, b) => a + b, 0) / this.scene.gameData.dexData[a.species.speciesId].ivs.length; const avgIVsB = this.scene.gameData.dexData[b.species.speciesId].ivs.reduce((a, b) => a + b, 0) / this.scene.gameData.dexData[b.species.speciesId].ivs.length; return (avgIVsA - avgIVsB) * -sort.dir; - case 4: + case SortCriteria.NAME: return a.species.name.localeCompare(b.species.name) * -sort.dir; } return 0; From a41133a55a60d84d73faca460d9b9ec8e57ce448 Mon Sep 17 00:00:00 2001 From: cadi Date: Mon, 2 Sep 2024 07:26:45 +0900 Subject: [PATCH 041/116] blocking inputs while showing texts to prevent moveing cursor (#2371) Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/ui/party-ui-handler.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index e7c4069c16e..a61037548e6 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -166,6 +166,8 @@ export default class PartyUiHandler extends MessageUiHandler { private iconAnimHandler: PokemonIconAnimHandler; + private blockInput: boolean; + private static FilterAll = (_pokemon: PlayerPokemon) => null; public static FilterNonFainted = (pokemon: PlayerPokemon) => { @@ -317,7 +319,7 @@ export default class PartyUiHandler extends MessageUiHandler { processInput(button: Button): boolean { const ui = this.getUi(); - if (this.pendingPrompt) { + if (this.pendingPrompt || this.blockInput) { return false; } @@ -485,7 +487,9 @@ export default class PartyUiHandler extends MessageUiHandler { this.clearOptions(); ui.playSelect(); if (this.cursor >= this.scene.currentBattle.getBattlerCount() || !pokemon.isAllowedInBattle()) { + this.blockInput = true; this.showText(i18next.t("partyUiHandler:releaseConfirmation", { pokemonName: getPokemonNameWithAffix(pokemon) }), null, () => { + this.blockInput = false; ui.setModeWithoutClear(Mode.CONFIRM, () => { ui.setMode(Mode.PARTY); this.doRelease(this.cursor); From d7cc8a6e5cc4afdaa9fe0327d221fa6f4ef70c95 Mon Sep 17 00:00:00 2001 From: frutescens Date: Sun, 1 Sep 2024 15:33:10 -0700 Subject: [PATCH 042/116] Fixed pt-BR and zh-CN --- ...-update-pt_BR.png => september-update-pt-BR.png} | Bin ...-update-zh_CN.png => september-update-zh-CN.png} | Bin src/loading-scene.ts | 2 +- src/timed-event-manager.ts | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) rename public/images/events/{september-update-pt_BR.png => september-update-pt-BR.png} (100%) rename public/images/events/{september-update-zh_CN.png => september-update-zh-CN.png} (100%) diff --git a/public/images/events/september-update-pt_BR.png b/public/images/events/september-update-pt-BR.png similarity index 100% rename from public/images/events/september-update-pt_BR.png rename to public/images/events/september-update-pt-BR.png diff --git a/public/images/events/september-update-zh_CN.png b/public/images/events/september-update-zh-CN.png similarity index 100% rename from public/images/events/september-update-zh_CN.png rename to public/images/events/september-update-zh-CN.png diff --git a/src/loading-scene.ts b/src/loading-scene.ts index e4a73414cd1..f5b44f03458 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -244,7 +244,7 @@ export class LoadingScene extends SceneBase { } else { this.loadAtlas("types", ""); } - const availableLangs = ["en", "de", "it", "fr", "ja", "ko", "es", "pt_BR", "zh_CN"]; + const availableLangs = ["en", "de", "it", "fr", "ja", "ko", "es", "pt-BR", "zh-CN"]; if (lang && availableLangs.includes(lang)) { this.loadImage("september-update-"+lang, "events"); } else { diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts index abdb2db232a..874bf6a8b46 100644 --- a/src/timed-event-manager.ts +++ b/src/timed-event-manager.ts @@ -33,7 +33,7 @@ const timedEvents: TimedEvent[] = [ xPosition: 19, yPosition: 115, scale: 0.30, - availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es", "pt_BR", "zh_CN"] + availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es", "pt-BR", "zh-CN"] } ]; From ac1c29facaedc572f7cdcf2c69aeb3a379c0c153 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Mon, 2 Sep 2024 00:03:51 +0100 Subject: [PATCH 043/116] fix: Fix missing comma in biomeLinks array --- src/data/biomes.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 721231f9cb0..0e37cc94ff5 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -1,6 +1,6 @@ import { Type } from "./type"; import * as Utils from "../utils"; -import {pokemonEvolutions, SpeciesFormEvolution} from "./pokemon-evolutions"; +import { pokemonEvolutions, SpeciesFormEvolution } from "./pokemon-evolutions"; import i18next from "i18next"; import { Biome } from "#enums/biome"; import { Species } from "#enums/species"; @@ -46,7 +46,7 @@ export const biomeLinks: BiomeLinks = { [Biome.SEABED]: [ Biome.CAVE, [ Biome.VOLCANO, 3 ] ], [Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.WASTELAND, 2 ], [ Biome.SPACE, 3 ] ], [Biome.BADLANDS]: [ Biome.DESERT, Biome.MOUNTAIN ], - [Biome.CAVE]: [ Biome.BADLANDS, Biome.LAKE [ Biome.LABORATORY, 2 ] ], + [Biome.CAVE]: [ Biome.BADLANDS, Biome.LAKE, [ Biome.LABORATORY, 2 ] ], [Biome.DESERT]: [ Biome.RUINS, [ Biome.CONSTRUCTION_SITE, 2 ] ], [Biome.ICE_CAVE]: Biome.SNOWY_FOREST, [Biome.MEADOW]: [ Biome.PLAINS, Biome.FAIRY_CAVE ], From 7755f798fd0f88f5fffc2451e558882ecf27cd93 Mon Sep 17 00:00:00 2001 From: innerthunder <168692175+innerthunder@users.noreply.github.com> Date: Sun, 1 Sep 2024 18:21:11 -0700 Subject: [PATCH 044/116] [Ability] Implement Tera Shell (#3856) * Implement Tera Shell * Apply suggestions from code review Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Update src/data/ability.ts Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com> * Add comments and fixed damage condition to `applyPreDefend` * Fix speed tie breaking things in tera shell test * Change deprecated `startBattle` calls --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com> --- src/data/ability.ts | 47 ++++++++++- src/field/pokemon.ts | 7 +- src/locales/en/ability-trigger.json | 1 + src/test/abilities/tera_shell.test.ts | 111 ++++++++++++++++++++++++++ 4 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 src/test/abilities/tera_shell.test.ts diff --git a/src/data/ability.ts b/src/data/ability.ts index 3d5b32f4ce8..e40a88a04b2 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -8,7 +8,7 @@ import { Weather, WeatherType } from "./weather"; import { BattlerTag, GroundedTag, GulpMissileTag, SemiInvulnerableTag } from "./battler-tags"; import { StatusEffect, getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect"; import { Gender } from "./gender"; -import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr, MoveAttr, MultiHitAttr, ChargeAttr, SacrificialAttr, SacrificialAttrOnHit, NeutralDamageAgainstFlyingTypeMultiplierAttr } from "./move"; +import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr, MoveAttr, MultiHitAttr, ChargeAttr, SacrificialAttr, SacrificialAttrOnHit, NeutralDamageAgainstFlyingTypeMultiplierAttr, FixedDamageAttr } from "./move"; import { ArenaTagSide, ArenaTrapTag } from "./arena-tag"; import { Stat, getStatName } from "./pokemon-stat"; import { BerryModifier, PokemonHeldItemModifier } from "../modifier/modifier"; @@ -475,6 +475,47 @@ export class NonSuperEffectiveImmunityAbAttr extends TypeImmunityAbAttr { } } +/** + * Attribute implementing the effects of {@link https://bulbapedia.bulbagarden.net/wiki/Tera_Shell_(Ability) | Tera Shell} + * When the source is at full HP, incoming attacks will have a maximum 0.5x type effectiveness multiplier. + * @extends PreDefendAbAttr + */ +export class FullHpResistTypeAbAttr extends PreDefendAbAttr { + /** + * Reduces a type multiplier to 0.5 if the source is at full HP. + * @param pokemon {@linkcode Pokemon} the Pokemon with this ability + * @param passive n/a + * @param simulated n/a (this doesn't change game state) + * @param attacker n/a + * @param move {@linkcode Move} the move being used on the source + * @param cancelled n/a + * @param args `[0]` a container for the move's current type effectiveness multiplier + * @returns `true` if the move's effectiveness is reduced; `false` otherwise + */ + applyPreDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move | null, cancelled: Utils.BooleanHolder | null, args: any[]): boolean | Promise { + const typeMultiplier = args[0]; + if (!(typeMultiplier && typeMultiplier instanceof Utils.NumberHolder)) { + return false; + } + + if (move && move.hasAttr(FixedDamageAttr)) { + return false; + } + + if (pokemon.isFullHp() && typeMultiplier.value > 0.5) { + typeMultiplier.value = 0.5; + return true; + } + return false; + } + + getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]): string { + return i18next.t("abilityTriggers:fullHpResistType", { + pokemonNameWithAffix: getPokemonNameWithAffix(pokemon) + }); + } +} + export class PostDefendAbAttr extends AbAttr { applyPostDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean | Promise { return false; @@ -5761,10 +5802,10 @@ export function initAbilities() { .attr(NoTransformAbilityAbAttr) .attr(NoFusionAbilityAbAttr), new Ability(Abilities.TERA_SHELL, 9) + .attr(FullHpResistTypeAbAttr) .attr(UncopiableAbilityAbAttr) .attr(UnswappableAbilityAbAttr) - .ignorable() - .unimplemented(), + .ignorable(), new Ability(Abilities.TERAFORM_ZERO, 9) .attr(UncopiableAbilityAbAttr) .attr(UnswappableAbilityAbAttr) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 9fcbdd8dc6c..457ff874095 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -22,7 +22,7 @@ import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoo import { WeatherType } from "../data/weather"; import { TempBattleStat } from "../data/temp-battle-stat"; import { ArenaTagSide, NoCritTag, WeakenMoveScreenTag } from "../data/arena-tag"; -import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldBattleStatMultiplierAbAttrs, FieldMultiplyBattleStatAbAttr, AddSecondStrikeAbAttr, IgnoreOpponentEvasionAbAttr, UserFieldStatusEffectImmunityAbAttr, UserFieldBattlerTagImmunityAbAttr, BattlerTagImmunityAbAttr, MoveTypeChangeAbAttr } from "../data/ability"; +import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldBattleStatMultiplierAbAttrs, FieldMultiplyBattleStatAbAttr, AddSecondStrikeAbAttr, IgnoreOpponentEvasionAbAttr, UserFieldStatusEffectImmunityAbAttr, UserFieldBattlerTagImmunityAbAttr, BattlerTagImmunityAbAttr, MoveTypeChangeAbAttr, FullHpResistTypeAbAttr } from "../data/ability"; import PokemonData from "../system/pokemon-data"; import { BattlerIndex } from "../battle"; import { Mode } from "../ui/ui"; @@ -1276,6 +1276,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } } + // Apply Tera Shell's effect to attacks after all immunities are accounted for + if (!ignoreAbility && move.category !== MoveCategory.STATUS) { + applyPreDefendAbAttrs(FullHpResistTypeAbAttr, this, source, move, cancelledHolder, simulated, typeMultiplier); + } + return (!cancelledHolder.value ? typeMultiplier.value : 0) as TypeDamageMultiplier; } diff --git a/src/locales/en/ability-trigger.json b/src/locales/en/ability-trigger.json index 307ab70b85c..4f1d4dac766 100644 --- a/src/locales/en/ability-trigger.json +++ b/src/locales/en/ability-trigger.json @@ -12,6 +12,7 @@ "blockItemTheft": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents item theft!", "typeImmunityHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!", "nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}} avoided damage\nwith {{abilityName}}!", + "fullHpResistType": "{{pokemonNameWithAffix}} made its shell gleam!\nIt's distorting type matchups!", "moveImmunity": "It doesn't affect {{pokemonNameWithAffix}}!", "reverseDrain": "{{pokemonNameWithAffix}} sucked up the liquid ooze!", "postDefendTypeChange": "{{pokemonNameWithAffix}}'s {{abilityName}}\nmade it the {{typeName}} type!", diff --git a/src/test/abilities/tera_shell.test.ts b/src/test/abilities/tera_shell.test.ts new file mode 100644 index 00000000000..f9cb2935619 --- /dev/null +++ b/src/test/abilities/tera_shell.test.ts @@ -0,0 +1,111 @@ +import { Abilities } from "#app/enums/abilities"; +import { Moves } from "#app/enums/moves"; +import { Species } from "#app/enums/species"; +import { HitResult } from "#app/field/pokemon.js"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; + +const TIMEOUT = 10 * 1000; // 10 second timeout + +describe("Abilities - Tera Shell", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .ability(Abilities.TERA_SHELL) + .moveset([Moves.SPLASH]) + .enemySpecies(Species.SNORLAX) + .enemyAbility(Abilities.INSOMNIA) + .enemyMoveset(Array(4).fill(Moves.MACH_PUNCH)) + .startingLevel(100) + .enemyLevel(100); + }); + + it( + "should change the effectiveness of non-resisted attacks when the source is at full HP", + async () => { + await game.classicMode.startBattle([Species.SNORLAX]); + + const playerPokemon = game.scene.getPlayerPokemon()!; + vi.spyOn(playerPokemon, "getMoveEffectiveness"); + + game.move.select(Moves.SPLASH); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(playerPokemon.getMoveEffectiveness).toHaveLastReturnedWith(0.5); + + await game.toNextTurn(); + + game.move.select(Moves.SPLASH); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(playerPokemon.getMoveEffectiveness).toHaveLastReturnedWith(2); + }, TIMEOUT + ); + + it( + "should not override type immunities", + async () => { + game.override.enemyMoveset(Array(4).fill(Moves.SHADOW_SNEAK)); + + await game.classicMode.startBattle([Species.SNORLAX]); + + const playerPokemon = game.scene.getPlayerPokemon()!; + vi.spyOn(playerPokemon, "getMoveEffectiveness"); + + game.move.select(Moves.SPLASH); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(playerPokemon.getMoveEffectiveness).toHaveLastReturnedWith(0); + }, TIMEOUT + ); + + it( + "should not override type multipliers less than 0.5x", + async () => { + game.override.enemyMoveset(Array(4).fill(Moves.QUICK_ATTACK)); + + await game.classicMode.startBattle([Species.AGGRON]); + + const playerPokemon = game.scene.getPlayerPokemon()!; + vi.spyOn(playerPokemon, "getMoveEffectiveness"); + + game.move.select(Moves.SPLASH); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(playerPokemon.getMoveEffectiveness).toHaveLastReturnedWith(0.25); + }, TIMEOUT + ); + + it( + "should not affect the effectiveness of fixed-damage moves", + async () => { + game.override.enemyMoveset(Array(4).fill(Moves.DRAGON_RAGE)); + + await game.classicMode.startBattle([Species.CHARIZARD]); + + const playerPokemon = game.scene.getPlayerPokemon()!; + vi.spyOn(playerPokemon, "apply"); + + game.move.select(Moves.SPLASH); + + await game.phaseInterceptor.to("BerryPhase", false); + expect(playerPokemon.apply).toHaveLastReturnedWith(HitResult.EFFECTIVE); + expect(playerPokemon.hp).toBe(playerPokemon.getMaxHp() - 40); + }, TIMEOUT + ); +}); From 97e3250f62d956268a0076ade875e5bb9cd38af1 Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:31:25 -0400 Subject: [PATCH 045/116] [Sprite] Chien-Pao sprite cleanup (#3961) * Delete public/images/pokemon/exp/shiny/1002b.png * Delete public/images/pokemon/exp/shiny/1002s.png * Delete public/images/pokemon/exp/shiny/1002sb.png --- public/images/pokemon/exp/shiny/1002b.png | Bin 3018 -> 0 bytes public/images/pokemon/exp/shiny/1002s.png | Bin 4517 -> 0 bytes public/images/pokemon/exp/shiny/1002sb.png | Bin 2924 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/images/pokemon/exp/shiny/1002b.png delete mode 100644 public/images/pokemon/exp/shiny/1002s.png delete mode 100644 public/images/pokemon/exp/shiny/1002sb.png diff --git a/public/images/pokemon/exp/shiny/1002b.png b/public/images/pokemon/exp/shiny/1002b.png deleted file mode 100644 index 85dfb1c4bd6b6b3fb8312e71372bf37f6758c24e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3018 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 diff --git a/public/images/pokemon/exp/shiny/1002s.png b/public/images/pokemon/exp/shiny/1002s.png deleted file mode 100644 index 835b3dcd73bde83d1eb1492aec1c6bd61a6a9608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4517 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 diff --git a/public/images/pokemon/exp/shiny/1002sb.png b/public/images/pokemon/exp/shiny/1002sb.png deleted file mode 100644 index f87e2fc42397c82c99e00917b9c5dbd2e973ec67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2924 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 L+Y{<>-q-&N5*a0} From 3bcee779e296be330ba3c6168ff462d8f7f38d23 Mon Sep 17 00:00:00 2001 From: "Adrian T." <68144167+torranx@users.noreply.github.com> Date: Mon, 2 Sep 2024 10:39:12 +0800 Subject: [PATCH 046/116] [Move] Fully implement dragon cheer (#3959) --- src/data/battler-tags.ts | 21 +++++++++++++++++++++ src/data/move.ts | 5 ++--- src/enums/battler-tag-type.ts | 3 ++- src/field/pokemon.ts | 13 ++++++++++--- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 8c05d296e76..38db36e86f6 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -1507,6 +1507,25 @@ export class CritBoostTag extends BattlerTag { } } +/** + * Tag for the effects of Dragon Cheer, which boosts the critical hit ratio of the user's allies. + * @extends {CritBoostTag} + */ +export class DragonCheerTag extends CritBoostTag { + /** The types of the user's ally when the tag is added */ + public typesOnAdd: Type[]; + + constructor() { + super(BattlerTagType.CRIT_BOOST, Moves.DRAGON_CHEER); + } + + onAdd(pokemon: Pokemon): void { + super.onAdd(pokemon); + + this.typesOnAdd = pokemon.getTypes(true); + } +} + export class SaltCuredTag extends BattlerTag { private sourceIndex: number; @@ -1923,6 +1942,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source return new TypeBoostTag(tagType, sourceMove, Type.FIRE, 1.5, false); case BattlerTagType.CRIT_BOOST: return new CritBoostTag(tagType, sourceMove); + case BattlerTagType.DRAGON_CHEER: + return new DragonCheerTag(); case BattlerTagType.ALWAYS_CRIT: case BattlerTagType.IGNORE_ACCURACY: return new BattlerTag(tagType, BattlerTagLapseType.TURN_END, 2, sourceMove); diff --git a/src/data/move.ts b/src/data/move.ts index d50dc7e2074..bbc33241454 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -9143,9 +9143,8 @@ export function initMoves() { new AttackMove(Moves.HARD_PRESS, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 9) .attr(OpponentHighHpPowerAttr, 100), new StatusMove(Moves.DRAGON_CHEER, Type.DRAGON, -1, 15, -1, 0, 9) - .attr(AddBattlerTagAttr, BattlerTagType.CRIT_BOOST, false, true) - .target(MoveTarget.NEAR_ALLY) - .partial(), + .attr(AddBattlerTagAttr, BattlerTagType.DRAGON_CHEER, false, true) + .target(MoveTarget.NEAR_ALLY), new AttackMove(Moves.ALLURING_VOICE, Type.FAIRY, MoveCategory.SPECIAL, 80, 100, 10, -1, 0, 9) .soundBased() .partial(), diff --git a/src/enums/battler-tag-type.ts b/src/enums/battler-tag-type.ts index b133b442801..73580a107b2 100644 --- a/src/enums/battler-tag-type.ts +++ b/src/enums/battler-tag-type.ts @@ -69,5 +69,6 @@ export enum BattlerTagType { GULP_MISSILE_ARROKUDA = "GULP_MISSILE_ARROKUDA", GULP_MISSILE_PIKACHU = "GULP_MISSILE_PIKACHU", BEAK_BLAST_CHARGING = "BEAK_BLAST_CHARGING", - SHELL_TRAP = "SHELL_TRAP" + SHELL_TRAP = "SHELL_TRAP", + DRAGON_CHEER = "DRAGON_CHEER", } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 457ff874095..00d5f5d3dd2 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -18,7 +18,7 @@ import { Status, StatusEffect, getRandomStatus } from "../data/status-effect"; import { pokemonEvolutions, pokemonPrevolutions, SpeciesFormEvolution, SpeciesEvolutionCondition, FusionSpeciesFormEvolution } from "../data/pokemon-evolutions"; import { reverseCompatibleTms, tmSpecies, tmPoolTiers } from "../data/tms"; import { BattleStat } from "../data/battle-stat"; -import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoostTag, TypeImmuneTag, getBattlerTag, SemiInvulnerableTag, TypeBoostTag, ExposedTag } from "../data/battler-tags"; +import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoostTag, TypeImmuneTag, getBattlerTag, SemiInvulnerableTag, TypeBoostTag, ExposedTag, DragonCheerTag, CritBoostTag } from "../data/battler-tags"; import { WeatherType } from "../data/weather"; import { TempBattleStat } from "../data/temp-battle-stat"; import { ArenaTagSide, NoCritTag, WeakenMoveScreenTag } from "../data/arena-tag"; @@ -2069,9 +2069,16 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { critLevel.value += 1; } } - if (source.getTag(BattlerTagType.CRIT_BOOST)) { - critLevel.value += 2; + + const critBoostTag = source.getTag(CritBoostTag); + if (critBoostTag) { + if (critBoostTag instanceof DragonCheerTag) { + critLevel.value += critBoostTag.typesOnAdd.includes(Type.DRAGON) ? 2 : 1; + } else { + critLevel.value += 2; + } } + console.log(`crit stage: +${critLevel.value}`); const critChance = [24, 8, 2, 1][Math.max(0, Math.min(critLevel.value, 3))]; isCritical = critChance === 1 || !this.scene.randBattleSeedInt(critChance); From 64368b62bc983ad6a475a021cfd22b372ab274ee Mon Sep 17 00:00:00 2001 From: "Adrian T." <68144167+torranx@users.noreply.github.com> Date: Mon, 2 Sep 2024 10:39:42 +0800 Subject: [PATCH 047/116] [Ability] Add form change support for Flower Gift (#3941) * add form change support for flower gift * fix nits --- src/data/ability.ts | 34 ++++-- src/data/move.ts | 4 +- src/data/pokemon-forms.ts | 9 +- src/field/arena.ts | 10 +- src/test/abilities/flower_gift.test.ts | 154 +++++++++++++++++++++++++ 5 files changed, 193 insertions(+), 18 deletions(-) create mode 100644 src/test/abilities/flower_gift.test.ts diff --git a/src/data/ability.ts b/src/data/ability.ts index e40a88a04b2..4d3d32e22fa 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2428,7 +2428,7 @@ export class PostSummonWeatherSuppressedFormChangeAbAttr extends PostSummonAbAtt /** * Triggers weather-based form change when summoned into an active weather. - * Used by Forecast. + * Used by Forecast and Flower Gift. * @extends PostSummonAbAttr */ export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr { @@ -2451,7 +2451,10 @@ export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr { * @returns whether the form change was triggered */ applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean { - if (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST) { + const isCastformWithForecast = (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST); + const isCherrimWithFlowerGift = (pokemon.species.speciesId === Species.CHERRIM && this.ability === Abilities.FLOWER_GIFT); + + if (isCastformWithForecast || isCherrimWithFlowerGift) { if (simulated) { return simulated; } @@ -3124,37 +3127,41 @@ export class PostWeatherChangeAbAttr extends AbAttr { /** * Triggers weather-based form change when weather changes. - * Used by Forecast. + * Used by Forecast and Flower Gift. * @extends PostWeatherChangeAbAttr */ export class PostWeatherChangeFormChangeAbAttr extends PostWeatherChangeAbAttr { private ability: Abilities; + private formRevertingWeathers: WeatherType[]; - constructor(ability: Abilities) { + constructor(ability: Abilities, formRevertingWeathers: WeatherType[]) { super(false); this.ability = ability; + this.formRevertingWeathers = formRevertingWeathers; } /** * Calls {@linkcode Arena.triggerWeatherBasedFormChangesToNormal | triggerWeatherBasedFormChangesToNormal} when the * weather changed to form-reverting weather, otherwise calls {@linkcode Arena.triggerWeatherBasedFormChanges | triggerWeatherBasedFormChanges} - * @param {Pokemon} pokemon the Pokemon that changed the weather + * @param {Pokemon} pokemon the Pokemon with this ability * @param passive n/a * @param weather n/a * @param args n/a * @returns whether the form change was triggered */ applyPostWeatherChange(pokemon: Pokemon, passive: boolean, simulated: boolean, weather: WeatherType, args: any[]): boolean { - if (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST) { + const isCastformWithForecast = (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST); + const isCherrimWithFlowerGift = (pokemon.species.speciesId === Species.CHERRIM && this.ability === Abilities.FLOWER_GIFT); + + if (isCastformWithForecast || isCherrimWithFlowerGift) { if (simulated) { return simulated; } - const formRevertingWeathers: WeatherType[] = [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG ]; const weatherType = pokemon.scene.arena.weather?.weatherType; - if (weatherType && formRevertingWeathers.includes(weatherType)) { + if (weatherType && this.formRevertingWeathers.includes(weatherType)) { pokemon.scene.arena.triggerWeatherBasedFormChangesToNormal(); } else { pokemon.scene.arena.triggerWeatherBasedFormChanges(); @@ -4744,7 +4751,8 @@ function setAbilityRevealed(pokemon: Pokemon): void { */ function getPokemonWithWeatherBasedForms(scene: BattleScene) { return scene.getField(true).filter(p => - p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM + (p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM) + || (p.hasAbility(Abilities.FLOWER_GIFT) && p.species.speciesId === Species.CHERRIM) ); } @@ -4943,7 +4951,7 @@ export function initAbilities() { .attr(UncopiableAbilityAbAttr) .attr(NoFusionAbilityAbAttr) .attr(PostSummonFormChangeByWeatherAbAttr, Abilities.FORECAST) - .attr(PostWeatherChangeFormChangeAbAttr, Abilities.FORECAST), + .attr(PostWeatherChangeFormChangeAbAttr, Abilities.FORECAST, [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG ]), new Ability(Abilities.STICKY_HOLD, 3) .attr(BlockItemTheftAbAttr) .bypassFaint() @@ -5136,8 +5144,10 @@ export function initAbilities() { .conditionalAttr(getWeatherCondition(WeatherType.SUNNY || WeatherType.HARSH_SUN), BattleStatMultiplierAbAttr, BattleStat.SPDEF, 1.5) .attr(UncopiableAbilityAbAttr) .attr(NoFusionAbilityAbAttr) - .ignorable() - .partial(), + .attr(PostSummonFormChangeByWeatherAbAttr, Abilities.FLOWER_GIFT) + .attr(PostWeatherChangeFormChangeAbAttr, Abilities.FLOWER_GIFT, [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG, WeatherType.HAIL, WeatherType.HEAVY_RAIN, WeatherType.SNOW, WeatherType.RAIN ]) + .partial() // Should also boosts stats of ally + .ignorable(), new Ability(Abilities.BAD_DREAMS, 4) .attr(PostTurnHurtIfSleepingAbAttr), new Ability(Abilities.PICKPOCKET, 5) diff --git a/src/data/move.ts b/src/data/move.ts index bbc33241454..2ffa8a36de9 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -5888,9 +5888,9 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr { target.summonData.ability = tempAbilityId; user.scene.queueMessage(i18next.t("moveTriggers:swappedAbilitiesWithTarget", {pokemonName: getPokemonNameWithAffix(user)})); - // Swaps Forecast from Castform + // Swaps Forecast/Flower Gift from Castform/Cherrim user.scene.arena.triggerWeatherBasedFormChangesToNormal(); - // Swaps Forecast to Castform (edge case) + // Swaps Forecast/Flower Gift to Castform/Cherrim (edge case) user.scene.arena.triggerWeatherBasedFormChanges(); return true; diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index e4417f8e8bb..1420d8800aa 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -359,7 +359,7 @@ export class SpeciesDefaultFormMatchTrigger extends SpeciesFormChangeTrigger { /** * Class used for triggering form changes based on weather. - * Used by Castform. + * Used by Castform and Cherrim. * @extends SpeciesFormChangeTrigger */ export class SpeciesFormChangeWeatherTrigger extends SpeciesFormChangeTrigger { @@ -392,7 +392,7 @@ export class SpeciesFormChangeWeatherTrigger extends SpeciesFormChangeTrigger { /** * Class used for reverting to the original form when the weather runs out * or when the user loses the ability/is suppressed. - * Used by Castform. + * Used by Castform and Cherrim. * @extends SpeciesFormChangeTrigger */ export class SpeciesFormChangeRevertWeatherFormTrigger extends SpeciesFormChangeTrigger { @@ -930,6 +930,11 @@ export const pokemonFormChanges: PokemonFormChanges = { new SpeciesFormChange(Species.CASTFORM, "rainy", "", new SpeciesFormChangeActiveTrigger(), true), new SpeciesFormChange(Species.CASTFORM, "snowy", "", new SpeciesFormChangeActiveTrigger(), true), ], + [Species.CHERRIM]: [ + new SpeciesFormChange(Species.CHERRIM, "overcast", "sunshine", new SpeciesFormChangeWeatherTrigger(Abilities.FLOWER_GIFT, [ WeatherType.SUNNY, WeatherType.HARSH_SUN ]), true), + new SpeciesFormChange(Species.CHERRIM, "sunshine", "overcast", new SpeciesFormChangeRevertWeatherFormTrigger(Abilities.FLOWER_GIFT, [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG, WeatherType.HAIL, WeatherType.HEAVY_RAIN, WeatherType.SNOW, WeatherType.RAIN ]), true), + new SpeciesFormChange(Species.CHERRIM, "sunshine", "overcast", new SpeciesFormChangeActiveTrigger(), true), + ], }; export function initPokemonForms() { diff --git a/src/field/arena.ts b/src/field/arena.ts index 7622b9a014f..e8defbd1a8e 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -339,7 +339,10 @@ export class Arena { */ triggerWeatherBasedFormChanges(): void { this.scene.getField(true).forEach( p => { - if (p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM) { + const isCastformWithForecast = (p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM); + const isCherrimWithFlowerGift = (p.hasAbility(Abilities.FLOWER_GIFT) && p.species.speciesId === Species.CHERRIM); + + if (isCastformWithForecast || isCherrimWithFlowerGift) { new ShowAbilityPhase(this.scene, p.getBattlerIndex()); this.scene.triggerPokemonFormChange(p, SpeciesFormChangeWeatherTrigger); } @@ -351,7 +354,10 @@ export class Arena { */ triggerWeatherBasedFormChangesToNormal(): void { this.scene.getField(true).forEach( p => { - if (p.hasAbility(Abilities.FORECAST, false, true) && p.species.speciesId === Species.CASTFORM) { + const isCastformWithForecast = (p.hasAbility(Abilities.FORECAST, false, true) && p.species.speciesId === Species.CASTFORM); + const isCherrimWithFlowerGift = (p.hasAbility(Abilities.FLOWER_GIFT, false, true) && p.species.speciesId === Species.CHERRIM); + + if (isCastformWithForecast || isCherrimWithFlowerGift) { new ShowAbilityPhase(this.scene, p.getBattlerIndex()); return this.scene.triggerPokemonFormChange(p, SpeciesFormChangeRevertWeatherFormTrigger); } diff --git a/src/test/abilities/flower_gift.test.ts b/src/test/abilities/flower_gift.test.ts new file mode 100644 index 00000000000..f8c1141386d --- /dev/null +++ b/src/test/abilities/flower_gift.test.ts @@ -0,0 +1,154 @@ +import { BattlerIndex } from "#app/battle"; +import { Abilities } from "#app/enums/abilities"; +import { Stat } from "#app/enums/stat"; +import { WeatherType } from "#app/enums/weather-type"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import GameManager from "#test/utils/gameManager"; +import { SPLASH_ONLY } from "#test/utils/testUtils"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; + +describe("Abilities - Flower Gift", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + const OVERCAST_FORM = 0; + const SUNSHINE_FORM = 1; + + /** + * Tests reverting to normal form when Cloud Nine/Air Lock is active on the field + * @param {GameManager} game The game manager instance + * @param {Abilities} ability The ability that is active on the field + */ + const testRevertFormAgainstAbility = async (game: GameManager, ability: Abilities) => { + game.override.starterForms({ [Species.CASTFORM]: SUNSHINE_FORM }).enemyAbility(ability); + await game.classicMode.startBattle([Species.CASTFORM]); + + game.move.select(Moves.SPLASH); + + expect(game.scene.getPlayerPokemon()?.formIndex).toBe(OVERCAST_FORM); + }; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .moveset([Moves.SPLASH, Moves.RAIN_DANCE, Moves.SUNNY_DAY, Moves.SKILL_SWAP]) + .enemySpecies(Species.MAGIKARP) + .enemyMoveset(SPLASH_ONLY) + .enemyAbility(Abilities.BALL_FETCH); + }); + + // TODO: Uncomment expect statements when the ability is implemented - currently does not increase stats of allies + it("increases the Attack and Special Defense stats of the Pokémon with this Ability and its allies by 1.5× during Harsh Sunlight", async () => { + game.override.battleType("double"); + await game.classicMode.startBattle([Species.CHERRIM, Species.MAGIKARP]); + + const [ cherrim ] = game.scene.getPlayerField(); + const cherrimAtkStat = cherrim.getBattleStat(Stat.ATK); + const cherrimSpDefStat = cherrim.getBattleStat(Stat.SPDEF); + + // const magikarpAtkStat = magikarp.getBattleStat(Stat.ATK);; + // const magikarpSpDefStat = magikarp.getBattleStat(Stat.SPDEF); + + game.move.select(Moves.SUNNY_DAY, 0); + game.move.select(Moves.SPLASH, 1); + + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.PLAYER_2, BattlerIndex.ENEMY, BattlerIndex.ENEMY_2]); + await game.phaseInterceptor.to("TurnEndPhase"); + + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + expect(cherrim.getBattleStat(Stat.ATK)).toBe(Math.floor(cherrimAtkStat * 1.5)); + expect(cherrim.getBattleStat(Stat.SPDEF)).toBe(Math.floor(cherrimSpDefStat * 1.5)); + // expect(magikarp.getBattleStat(Stat.ATK)).toBe(Math.floor(magikarpAtkStat * 1.5)); + // expect(magikarp.getBattleStat(Stat.SPDEF)).toBe(Math.floor(magikarpSpDefStat * 1.5)); + }); + + it("changes the Pokemon's form during Harsh Sunlight", async () => { + game.override.weather(WeatherType.HARSH_SUN); + await game.classicMode.startBattle([Species.CHERRIM]); + + const cherrim = game.scene.getPlayerPokemon()!; + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + + game.move.select(Moves.SPLASH); + }); + + it("reverts to Overcast Form if a Pokémon on the field has Air Lock", async () => { + await testRevertFormAgainstAbility(game, Abilities.AIR_LOCK); + }); + + it("reverts to Overcast Form if a Pokémon on the field has Cloud Nine", async () => { + await testRevertFormAgainstAbility(game, Abilities.CLOUD_NINE); + }); + + it("reverts to Overcast Form when the Pokémon loses Flower Gift, changes form under Harsh Sunlight/Sunny when it regains it", async () => { + game.override.enemyMoveset(Array(4).fill(Moves.SKILL_SWAP)).weather(WeatherType.HARSH_SUN); + + await game.classicMode.startBattle([Species.CHERRIM]); + + const cherrim = game.scene.getPlayerPokemon()!; + + game.move.select(Moves.SKILL_SWAP); + + await game.phaseInterceptor.to("TurnStartPhase"); + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(cherrim.formIndex).toBe(OVERCAST_FORM); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + }); + + it("reverts to Overcast Form when the Flower Gift is suppressed, changes form under Harsh Sunlight/Sunny when it regains it", async () => { + game.override.enemyMoveset(Array(4).fill(Moves.GASTRO_ACID)).weather(WeatherType.HARSH_SUN); + + await game.classicMode.startBattle([Species.CHERRIM, Species.MAGIKARP]); + + const cherrim = game.scene.getPlayerPokemon()!; + + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + + game.move.select(Moves.SPLASH); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.phaseInterceptor.to("TurnEndPhase"); + + expect(cherrim.summonData.abilitySuppressed).toBe(true); + expect(cherrim.formIndex).toBe(OVERCAST_FORM); + + await game.toNextTurn(); + + game.doSwitchPokemon(1); + await game.toNextTurn(); + + game.doSwitchPokemon(1); + await game.phaseInterceptor.to("MovePhase"); + + expect(cherrim.summonData.abilitySuppressed).toBe(false); + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + }); + + it("should be in Overcast Form after the user is switched out", async () => { + game.override.weather(WeatherType.SUNNY); + + await game.classicMode.startBattle([Species.CASTFORM, Species.MAGIKARP]); + const cherrim = game.scene.getPlayerPokemon()!; + + expect(cherrim.formIndex).toBe(SUNSHINE_FORM); + + game.doSwitchPokemon(1); + await game.toNextTurn(); + + expect(cherrim.formIndex).toBe(OVERCAST_FORM); + }); +}); From 0c28da75b4a57236fae46e2ade4a95cbc8d09f02 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Sun, 1 Sep 2024 19:42:23 -0700 Subject: [PATCH 048/116] [Bug] Fix Opponent pokemon sprite disappears after using Roar and Dragon Tail #481 (#3927) --- src/data/battle-anims.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/battle-anims.ts b/src/data/battle-anims.ts index a2f6e41f4ae..da4e7f6a33b 100644 --- a/src/data/battle-anims.ts +++ b/src/data/battle-anims.ts @@ -788,10 +788,10 @@ export abstract class BattleAnim { targetSprite.pipelineData["tone"] = [ 0.0, 0.0, 0.0, 0.0 ]; targetSprite.setAngle(0); if (!this.isHideUser() && userSprite) { - userSprite.setVisible(true); + this.user?.getSprite().setVisible(true); // using this.user to fix context loss due to isOppAnim swap (#481) } if (!this.isHideTarget() && (targetSprite !== userSprite || !this.isHideUser())) { - targetSprite.setVisible(true); + this.target?.getSprite().setVisible(true); // using this.target to fix context loss due to isOppAnim swap (#481) } for (const ms of Object.values(spriteCache).flat()) { if (ms) { From c070f110e5ebc2f53362ebe7dd3adb1a7d1d80bb Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:44:58 -0400 Subject: [PATCH 049/116] [Localization(fr)] Additional nature entries in pokemon-summary (#3869) Co-authored-by: Lugiad --- src/locales/fr/pokemon-summary.json | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/locales/fr/pokemon-summary.json b/src/locales/fr/pokemon-summary.json index f0b4f5a474f..01e712c8468 100644 --- a/src/locales/fr/pokemon-summary.json +++ b/src/locales/fr/pokemon-summary.json @@ -13,5 +13,32 @@ "metFragment": { "normal": "rencontré au N.{{level}},\n{{biome}}.", "apparently": "apparemment rencontré au N.{{level}},\n{{biome}}." + }, + "natureFragment": { + "Hardy": "{{nature}}", + "Lonely": "{{nature}}", + "Brave": "{{nature}}", + "Adamant": "{{nature}}", + "Naughty": "{{nature}}", + "Bold": "{{nature}}", + "Docile": "{{nature}}", + "Relaxed": "{{nature}}", + "Impish": "{{nature}}", + "Lax": "{{nature}}", + "Timid": "{{nature}}", + "Hasty": "{{nature}}", + "Serious": "{{nature}}", + "Jolly": "{{nature}}", + "Naive": "{{nature}}", + "Modest": "{{nature}}", + "Mild": "{{nature}}", + "Quiet": "{{nature}}", + "Bashful": "{{nature}}", + "Rash": "{{nature}}", + "Calm": "{{nature}}", + "Gentle": "{{nature}}", + "Sassy": "{{nature}}", + "Careful": "{{nature}}", + "Quirky": "{{nature}}" } -} \ No newline at end of file +} From 49c3158fd1e5d2ceb53312daf311d23e8a1396a1 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:45:42 -0400 Subject: [PATCH 050/116] [Localization(ko)] Change ghost type challenge acv for achv-female (#3866) Co-authored-by: sodam Co-authored-by: Enoch Co-authored-by: KimJeongSun --- src/locales/ko/achv.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/ko/achv.json b/src/locales/ko/achv.json index 8546dff949c..b9fd327ef3b 100644 --- a/src/locales/ko/achv.json +++ b/src/locales/ko/achv.json @@ -225,7 +225,7 @@ "name": "독침붕처럼 쏴라" }, "MONO_GHOST": { - "name": "누굴 부를 거야?" + "name": "무서운 게 딱 좋아!" }, "MONO_STEEL": { "name": "강철 심장" @@ -265,4 +265,4 @@ "name": "상성 전문가(였던 것)", "description": "거꾸로 배틀 챌린지 모드 클리어." } -} \ No newline at end of file +} From 14e0c66ed9d46f248f26ee7cc0e378e87792cfd1 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:46:53 -0400 Subject: [PATCH 051/116] [Localisation] [ES] Finished and reviewed terrain, modifier, trainer-names, splash messages (#3848) * Translate splash-messages.json via GitLocalize * Translate splash-messages.json via GitLocalize * Translate trainer-names.json via GitLocalize * Translate modifier.json via GitLocalize * Translate modifier.json via GitLocalize * Translate modifier.json via GitLocalize * Translate terrain.json via GitLocalize * Update src/locales/es/trainer-names.json Co-authored-by: Asdar --------- Co-authored-by: LilyAlternis Co-authored-by: Asdar Co-authored-by: Rafa Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/locales/es/modifier.json | 13 ++++++-- src/locales/es/splash-messages.json | 12 ++++---- src/locales/es/terrain.json | 17 +++++++++- src/locales/es/trainer-names.json | 48 ++++++++++++++--------------- 4 files changed, 56 insertions(+), 34 deletions(-) diff --git a/src/locales/es/modifier.json b/src/locales/es/modifier.json index 593b3df2f0f..a94e41a4574 100644 --- a/src/locales/es/modifier.json +++ b/src/locales/es/modifier.json @@ -1,3 +1,12 @@ { - "bypassSpeedChanceApply": "¡Gracias {{itemName}} {{pokemonName}} puede tener prioridad!" -} \ No newline at end of file + "surviveDamageApply": "{{pokemonNameWithAffix}} ha usado {{typeName}} y ha logrado resistir!", + "turnHealApply": "{{pokemonNameWithAffix}} ha recuperado unos pocos PS gracias a {{typeName}}!", + "hitHealApply": "{{pokemonNameWithAffix}} ha recuperado unos pocos PS gracias a {{typeName}}!", + "pokemonInstantReviveApply": "{{pokemonNameWithAffix}} ha sido revivido gracias a su {{typeName}}!", + "pokemonResetNegativeStatStageApply": "Las estadísticas bajadas de {{pokemonNameWithAffix}} fueron restauradas gracias a {{typeName}}!", + "moneyInterestApply": "Recibiste intereses de ₽{{moneyAmount}}\ngracias a {{typeName}}!", + "turnHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} fue absorbido\npor {{pokemonName}}'s {{typeName}}!", + "contactHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} fue robado por {{pokemonName}}'s {{typeName}}!", + "enemyTurnHealApply": "¡{{pokemonNameWithAffix}}\nrecuperó algunos PS!", + "bypassSpeedChanceApply": "¡Gracias a su {{itemName}}, {{pokemonName}} puede tener prioridad!" +} diff --git a/src/locales/es/splash-messages.json b/src/locales/es/splash-messages.json index 90ce3593b89..b1d4820b06e 100644 --- a/src/locales/es/splash-messages.json +++ b/src/locales/es/splash-messages.json @@ -3,12 +3,12 @@ "joinTheDiscord": "¡Únete al Discord!", "infiniteLevels": "¡Niveles infinitos!", "everythingStacks": "¡Todo se acumula!", - "optionalSaveScumming": "¡Trampas guardando (¡opcionales!)!", + "optionalSaveScumming": "¡Trampas de guardado opcionales!", "biomes": "¡35 biomas!", "openSource": "¡Código abierto!", "playWithSpeed": "¡Juega a velocidad 5x!", - "liveBugTesting": "¡Arreglo de bugs sobre la marcha!", - "heavyInfluence": "¡Influencia Alta en RoR2!", + "liveBugTesting": "¡Testeo de bugs en directo!", + "heavyInfluence": "¡Mucha Influencia de RoR2!", "pokemonRiskAndPokemonRain": "¡Pokémon Risk y Pokémon Rain!", "nowWithMoreSalt": "¡Con un 33% más de polémica!", "infiniteFusionAtHome": "¡Infinite Fusion en casa!", @@ -17,16 +17,16 @@ "mubstitute": "¡Mubstituto!", "thatsCrazy": "¡De locos!", "oranceJuice": "¡Zumo de narancia!", - "questionableBalancing": "¡Balance cuestionable!", + "questionableBalancing": "¡Cambios en balance cuestionables!", "coolShaders": "¡Shaders impresionantes!", "aiFree": "¡Libre de IA!", "suddenDifficultySpikes": "¡Saltos de dificultad repentinos!", "basedOnAnUnfinishedFlashGame": "¡Basado en un juego Flash inacabado!", - "moreAddictiveThanIntended": "¡Más adictivo de la cuenta!", + "moreAddictiveThanIntended": "¡Más adictivo de lo previsto!", "mostlyConsistentSeeds": "¡Semillas CASI consistentes!", "achievementPointsDontDoAnything": "¡Los Puntos de Logro no hacen nada!", "youDoNotStartAtLevel": "¡No empiezas al nivel 2000!", - "dontTalkAboutTheManaphyEggIncident": "¡No hablen del incidente del Huevo Manaphy!", + "dontTalkAboutTheManaphyEggIncident": "¡No se habla del Incidente Manaphy!", "alsoTryPokengine": "¡Prueba también Pokéngine!", "alsoTryEmeraldRogue": "¡Prueba también Emerald Rogue!", "alsoTryRadicalRed": "¡Prueba también Radical Red!", diff --git a/src/locales/es/terrain.json b/src/locales/es/terrain.json index 9e26dfeeb6e..912f5186180 100644 --- a/src/locales/es/terrain.json +++ b/src/locales/es/terrain.json @@ -1 +1,16 @@ -{} \ No newline at end of file +{ + "misty": "Niebla", + "mistyStartMessage": "¡La niebla ha envuelto el terreno de combate!", + "mistyClearMessage": "La niebla se ha disipado.", + "mistyBlockMessage": "¡El campo de niebla ha protegido a {{pokemonNameWithAffix}} ", + "electric": "Eléctrico", + "electricStartMessage": "¡Se ha formado un campo de corriente eléctrica en el terreno\nde combate!", + "electricClearMessage": "El campo de corriente eléctrica ha desaparecido.\t", + "grassy": "Hierba", + "grassyStartMessage": "¡El terreno de combate se ha cubierto de hierba!", + "grassyClearMessage": "La hierba ha desaparecido.", + "psychic": "Psíquico", + "psychicStartMessage": "¡El terreno de combate se ha vuelto muy extraño!", + "psychicClearMessage": "Ha desaparecido la extraña sensación que se percibía en el terreno\nde combate.", + "defaultBlockMessage": "¡El campo {{terrainName}} ha protegido a {{pokemonNameWithAffix}} " +} diff --git a/src/locales/es/trainer-names.json b/src/locales/es/trainer-names.json index c6758366db7..ce09a0c9037 100644 --- a/src/locales/es/trainer-names.json +++ b/src/locales/es/trainer-names.json @@ -1,7 +1,7 @@ { "brock": "Brock", "misty": "Misty", - "lt_surge": "Tt. Surge", + "lt_surge": "Teniente Surge", "erika": "Erika", "janine": "Sachiko", "sabrina": "Sabrina", @@ -23,7 +23,7 @@ "winona": "Alana", "tate": "Vito", "liza": "Leti", - "juan": "Galán", + "juan": "Galano", "roark": "Roco", "gardenia": "Gardenia", "maylene": "Brega", @@ -34,7 +34,7 @@ "volkner": "Lectro", "cilan": "Millo", "chili": "Zeo", - "cress": "Maiz", + "cress": "Maíz", "cheren": "Cheren", "lenora": "Aloe", "roxie": "Hiedra", @@ -57,7 +57,7 @@ "nessa": "Cathy", "kabu": "Naboru", "bea": "Judith", - "allister": "Allistair", + "allister": "Alistair", "opal": "Sally", "bede": "Berto", "gordie": "Morris", @@ -123,30 +123,28 @@ "leon": "Lionel", "rival": "Finn", "rival_female": "Ivy", - "archer": "Archer", - "ariana": "Ariana", - "proton": "Proton", + "archer": "Atlas", + "ariana": "Atenea", + "proton": "Protón", "petrel": "Petrel", - "tabitha": "Tabitha", - "courtney": "Courtney", - "shelly": "Shelly", - "matt": "Matt", - "mars": "Mars", - "jupiter": "Jupiter", - "saturn": "Saturn", - "zinzolin": "Zinzolin", - "rood": "Rood", - "xerosic": "Xerosic", - "bryony": "Bryony", + "tabitha": "Tatiano", + "courtney": "Carola", + "shelly": "Silvina", + "matt": "Matías", + "mars": "Venus", + "jupiter": "Ceres", + "saturn": "Saturno", + "zinzolin": "Menek", + "rood": "Ruga", + "xerosic": "Xero", + "bryony": "Begonia", + "maxie": "Magno", + "archie": "Aquiles", + "cyrus": "Helio", + "ghetsis": "Ghechis", + "lysandre": "Lysson", "faba": "Fabio", - - "maxie": "Maxie", - "archie": "Archie", - "cyrus": "Cyrus", - "ghetsis": "Ghetsis", - "lysandre": "Lysandre", "lusamine": "Samina", - "blue_red_double": "Azul y Rojo", "red_blue_double": "Rojo y Azul", "tate_liza_double": "Vito y Leti", From dcb03f4ee99635a56d8b7e9316f2c0f4a29c0b92 Mon Sep 17 00:00:00 2001 From: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com> Date: Mon, 2 Sep 2024 04:47:22 +0200 Subject: [PATCH 052/116] [Test] Add test for final boss fight phase switch (#3847) * implement test for final boss encounter phase switch * Update Eternatus tests & helper function * fix endless_boss test following GameManager update --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/test/endless_boss.test.ts | 10 ++-- src/test/final_boss.test.ts | 98 +++++++++++++++++++++++++++++++---- src/test/utils/gameManager.ts | 29 +++++------ src/ui/ui.ts | 3 +- 4 files changed, 110 insertions(+), 30 deletions(-) diff --git a/src/test/endless_boss.test.ts b/src/test/endless_boss.test.ts index e983be245b6..8a564695e42 100644 --- a/src/test/endless_boss.test.ts +++ b/src/test/endless_boss.test.ts @@ -32,7 +32,7 @@ describe("Endless Boss", () => { it(`should spawn a minor boss every ${EndlessBossWave.Minor} waves in END biome in Endless`, async () => { game.override.startingWave(EndlessBossWave.Minor); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.ENDLESS); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.ENDLESS); expect(game.scene.currentBattle.waveIndex).toBe(EndlessBossWave.Minor); expect(game.scene.arena.biomeType).toBe(Biome.END); @@ -44,7 +44,7 @@ describe("Endless Boss", () => { it(`should spawn a major boss every ${EndlessBossWave.Major} waves in END biome in Endless`, async () => { game.override.startingWave(EndlessBossWave.Major); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.ENDLESS); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.ENDLESS); expect(game.scene.currentBattle.waveIndex).toBe(EndlessBossWave.Major); expect(game.scene.arena.biomeType).toBe(Biome.END); @@ -56,7 +56,7 @@ describe("Endless Boss", () => { it(`should spawn a minor boss every ${EndlessBossWave.Minor} waves in END biome in Spliced Endless`, async () => { game.override.startingWave(EndlessBossWave.Minor); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.SPLICED_ENDLESS); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.SPLICED_ENDLESS); expect(game.scene.currentBattle.waveIndex).toBe(EndlessBossWave.Minor); expect(game.scene.arena.biomeType).toBe(Biome.END); @@ -68,7 +68,7 @@ describe("Endless Boss", () => { it(`should spawn a major boss every ${EndlessBossWave.Major} waves in END biome in Spliced Endless`, async () => { game.override.startingWave(EndlessBossWave.Major); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.SPLICED_ENDLESS); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.SPLICED_ENDLESS); expect(game.scene.currentBattle.waveIndex).toBe(EndlessBossWave.Major); expect(game.scene.arena.biomeType).toBe(Biome.END); @@ -80,7 +80,7 @@ describe("Endless Boss", () => { it(`should NOT spawn major or minor boss outside wave ${EndlessBossWave.Minor}s in END biome`, async () => { game.override.startingWave(EndlessBossWave.Minor - 1); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.ENDLESS); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.ENDLESS); expect(game.scene.currentBattle.waveIndex).not.toBe(EndlessBossWave.Minor); expect(game.scene.getEnemyPokemon()!.species.speciesId).not.toBe(Species.ETERNATUS); diff --git a/src/test/final_boss.test.ts b/src/test/final_boss.test.ts index 0f59572619b..5d006998a0b 100644 --- a/src/test/final_boss.test.ts +++ b/src/test/final_boss.test.ts @@ -1,8 +1,13 @@ +import { StatusEffect } from "#app/data/status-effect"; +import { Abilities } from "#app/enums/abilities"; import { Biome } from "#app/enums/biome"; +import { Moves } from "#app/enums/moves"; import { Species } from "#app/enums/species"; import { GameModes } from "#app/game-mode"; +import { TurnHeldItemTransferModifier } from "#app/modifier/modifier"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; import GameManager from "./utils/gameManager"; +import { SPLASH_ONLY } from "./utils/testUtils"; const FinalWave = { Classic: 200, @@ -20,7 +25,13 @@ describe("Final Boss", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.startingWave(FinalWave.Classic).startingBiome(Biome.END).disableCrits(); + game.override + .startingWave(FinalWave.Classic) + .startingBiome(Biome.END) + .disableCrits() + .enemyMoveset(SPLASH_ONLY) + .moveset([ Moves.SPLASH, Moves.WILL_O_WISP, Moves.DRAGON_PULSE ]) + .startingLevel(10000); }); afterEach(() => { @@ -28,7 +39,7 @@ describe("Final Boss", () => { }); it("should spawn Eternatus on wave 200 in END biome", async () => { - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.CLASSIC); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.CLASSIC); expect(game.scene.currentBattle.waveIndex).toBe(FinalWave.Classic); expect(game.scene.arena.biomeType).toBe(Biome.END); @@ -37,7 +48,7 @@ describe("Final Boss", () => { it("should NOT spawn Eternatus before wave 200 in END biome", async () => { game.override.startingWave(FinalWave.Classic - 1); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.CLASSIC); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.CLASSIC); expect(game.scene.currentBattle.waveIndex).not.toBe(FinalWave.Classic); expect(game.scene.arena.biomeType).toBe(Biome.END); @@ -46,7 +57,7 @@ describe("Final Boss", () => { it("should NOT spawn Eternatus outside of END biome", async () => { game.override.startingBiome(Biome.FOREST); - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.CLASSIC); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.CLASSIC); expect(game.scene.currentBattle.waveIndex).toBe(FinalWave.Classic); expect(game.scene.arena.biomeType).not.toBe(Biome.END); @@ -54,12 +65,81 @@ describe("Final Boss", () => { }); it("should not have passive enabled on Eternatus", async () => { - await game.runToFinalBossEncounter(game, [Species.BIDOOF], GameModes.CLASSIC); + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.CLASSIC); - const eternatus = game.scene.getEnemyPokemon(); - expect(eternatus?.species.speciesId).toBe(Species.ETERNATUS); - expect(eternatus?.hasPassive()).toBe(false); + const eternatus = game.scene.getEnemyPokemon()!; + expect(eternatus.species.speciesId).toBe(Species.ETERNATUS); + expect(eternatus.hasPassive()).toBe(false); + }); + + it("should change form on direct hit down to last boss fragment", async () => { + await game.runToFinalBossEncounter([Species.KYUREM], GameModes.CLASSIC); + await game.phaseInterceptor.to("CommandPhase"); + + // Eternatus phase 1 + const eternatus = game.scene.getEnemyPokemon()!; + const phase1Hp = eternatus.getMaxHp(); + expect(eternatus.species.speciesId).toBe(Species.ETERNATUS); + expect(eternatus.formIndex).toBe(0); + expect(eternatus.bossSegments).toBe(4); + expect(eternatus.bossSegmentIndex).toBe(3); + + game.move.select(Moves.DRAGON_PULSE); + await game.toNextTurn(); + + // Eternatus phase 2: changed form, healed and restored its shields + expect(eternatus.species.speciesId).toBe(Species.ETERNATUS); + expect(eternatus.hp).toBeGreaterThan(phase1Hp); + expect(eternatus.hp).toBe(eternatus.getMaxHp()); + expect(eternatus.formIndex).toBe(1); + expect(eternatus.bossSegments).toBe(5); + expect(eternatus.bossSegmentIndex).toBe(4); + const miniBlackHole = eternatus.getHeldItems().find(m => m instanceof TurnHeldItemTransferModifier); + expect(miniBlackHole).toBeDefined(); + expect(miniBlackHole?.stackCount).toBe(1); + }); + + it("should change form on status damage down to last boss fragment", async () => { + game.override.ability(Abilities.NO_GUARD); + + await game.runToFinalBossEncounter([Species.BIDOOF], GameModes.CLASSIC); + await game.phaseInterceptor.to("CommandPhase"); + + // Eternatus phase 1 + const eternatus = game.scene.getEnemyPokemon()!; + const phase1Hp = eternatus.getMaxHp(); + expect(eternatus.species.speciesId).toBe(Species.ETERNATUS); + expect(eternatus.formIndex).toBe(0); + expect(eternatus.bossSegments).toBe(4); + expect(eternatus.bossSegmentIndex).toBe(3); + + game.move.select(Moves.WILL_O_WISP); + await game.toNextTurn(); + expect(eternatus.status?.effect).toBe(StatusEffect.BURN); + + const tickDamage = phase1Hp - eternatus.hp; + const lastShieldHp = Math.ceil(phase1Hp / eternatus.bossSegments); + // Stall until the burn is one hit away from breaking the last shield + while (eternatus.hp - tickDamage > lastShieldHp) { + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + } + + expect(eternatus.bossSegmentIndex).toBe(1); + + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + // Eternatus phase 2: changed form, healed and restored its shields + expect(eternatus.hp).toBeGreaterThan(phase1Hp); + expect(eternatus.hp).toBe(eternatus.getMaxHp()); + expect(eternatus.status).toBeFalsy(); + expect(eternatus.formIndex).toBe(1); + expect(eternatus.bossSegments).toBe(5); + expect(eternatus.bossSegmentIndex).toBe(4); + const miniBlackHole = eternatus.getHeldItems().find(m => m instanceof TurnHeldItemTransferModifier); + expect(miniBlackHole).toBeDefined(); + expect(miniBlackHole?.stackCount).toBe(1); }); - it.todo("should change form on direct hit down to last boss fragment", () => {}); }); diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index 5818244db8f..a9a71d16bf7 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -6,6 +6,7 @@ import { EnemyPokemon, PlayerPokemon } from "#app/field/pokemon"; import Trainer from "#app/field/trainer"; import { GameModes, getGameMode } from "#app/game-mode"; import { ModifierTypeOption, modifierTypes } from "#app/modifier/modifier-type"; +import overrides from "#app/overrides"; import { CommandPhase } from "#app/phases/command-phase"; import { EncounterPhase } from "#app/phases/encounter-phase"; import { FaintPhase } from "#app/phases/faint-phase"; @@ -148,28 +149,26 @@ export default class GameManager { * @param species * @param mode */ - async runToFinalBossEncounter(game: GameManager, species: Species[], mode: GameModes) { + async runToFinalBossEncounter(species: Species[], mode: GameModes) { console.log("===to final boss encounter==="); - await game.runToTitle(); + await this.runToTitle(); - game.onNextPrompt("TitlePhase", Mode.TITLE, () => { - game.scene.gameMode = getGameMode(mode); - const starters = generateStarter(game.scene, species); - const selectStarterPhase = new SelectStarterPhase(game.scene); - game.scene.pushPhase(new EncounterPhase(game.scene, false)); + this.onNextPrompt("TitlePhase", Mode.TITLE, () => { + this.scene.gameMode = getGameMode(mode); + const starters = generateStarter(this.scene, species); + const selectStarterPhase = new SelectStarterPhase(this.scene); + this.scene.pushPhase(new EncounterPhase(this.scene, false)); selectStarterPhase.initBattle(starters); }); - game.onNextPrompt("EncounterPhase", Mode.MESSAGE, async () => { - // This will skip all entry dialogue (I can't figure out a way to sequentially handle the 8 chained messages via 1 prompt handler) - game.setMode(Mode.MESSAGE); - const encounterPhase = game.scene.getCurrentPhase() as EncounterPhase; + // This will consider all battle entry dialog as seens and skip them + vi.spyOn(this.scene.ui, "shouldSkipDialogue").mockReturnValue(true); - // No need to end phase, this will do it for you - encounterPhase.doEncounterCommon(false); - }); + if (overrides.OPP_HELD_ITEMS_OVERRIDE.length === 0) { + this.removeEnemyHeldItems(); + } - await game.phaseInterceptor.to(EncounterPhase, true); + await this.phaseInterceptor.to(EncounterPhase); console.log("===finished run to final boss encounter==="); } diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 7108a8dd480..8ec91b59480 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -317,10 +317,11 @@ export default class UI extends Phaser.GameObjects.Container { if (i18next.exists(keyOrText) ) { const i18nKey = keyOrText; hasi18n = true; + text = i18next.t(i18nKey, { context: genderStr }); // override text with translation // Skip dialogue if the player has enabled the option and the dialogue has been already seen - if (battleScene.skipSeenDialogues && battleScene.gameData.getSeenDialogues()[i18nKey] === true) { + if (this.shouldSkipDialogue(i18nKey)) { console.log(`Dialogue ${i18nKey} skipped`); callback(); return; From 709066bd1ab9619059259348b84515c8e9b9f27e Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 19:57:07 -0700 Subject: [PATCH 053/116] [Move] Finish Alluring Voice, Burning Jealousy and Lash Out (#3508) * Implement Alluring Voice and Burning Jealousy * Fix Alluring Voice and add tests * Replace `BattlerTag.STATS_BOOSTED` with `PokemonTurnData` field * Work around bug with turn data * Remove unused variable * Replace nearby instances of `integer` with `number` * Fix imports * Implement Lash Out * Rename `battleStats(In|De)crease` -> `battleStats(In|De)creased` * Fix copy/paste error Co-authored-by: schmidtc1 <62030095+schmidtc1@users.noreply.github.com> * Update tests --------- Co-authored-by: ElliottSimmonds Co-authored-by: schmidtc1 <62030095+schmidtc1@users.noreply.github.com> Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com> --- src/data/move.ts | 61 ++++++++++++-- src/field/pokemon.ts | 32 ++++---- src/phases/stat-change-phase.ts | 36 ++++++--- src/test/moves/alluring_voice.test.ts | 54 +++++++++++++ src/test/moves/burning_jealousy.test.ts | 103 ++++++++++++++++++++++++ src/test/moves/lash_out.test.ts | 52 ++++++++++++ 6 files changed, 307 insertions(+), 31 deletions(-) create mode 100644 src/test/moves/alluring_voice.test.ts create mode 100644 src/test/moves/burning_jealousy.test.ts create mode 100644 src/test/moves/lash_out.test.ts diff --git a/src/data/move.ts b/src/data/move.ts index 2ffa8a36de9..95d306a61ba 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6037,6 +6037,57 @@ export class DestinyBondAttr extends MoveEffectAttr { } } +/** + * Attribute to apply a battler tag to the target if they have had their stats boosted this turn. + * @extends AddBattlerTagAttr + */ +export class AddBattlerTagIfBoostedAttr extends AddBattlerTagAttr { + constructor(tag: BattlerTagType) { + super(tag, false, false, 2, 5); + } + + /** + * @param user {@linkcode Pokemon} using this move + * @param target {@linkcode Pokemon} target of this move + * @param move {@linkcode Move} being used + * @param {any[]} args N/A + * @returns true + */ + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (target.turnData.battleStatsIncreased) { + super.apply(user, target, move, args); + } + return true; + } +} + +/** + * Attribute to apply a status effect to the target if they have had their stats boosted this turn. + * @extends MoveEffectAttr + */ +export class StatusIfBoostedAttr extends MoveEffectAttr { + public effect: StatusEffect; + + constructor(effect: StatusEffect) { + super(true, MoveEffectTrigger.HIT); + this.effect = effect; + } + + /** + * @param user {@linkcode Pokemon} using this move + * @param target {@linkcode Pokemon} target of this move + * @param move {@linkcode Move} N/A + * @param {any[]} args N/A + * @returns true + */ + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (target.turnData.battleStatsIncreased) { + target.trySetStatus(this.effect, true, user); + } + return true; + } +} + export class LastResortAttr extends MoveAttr { getCondition(): MoveConditionFunc { return (user: Pokemon, target: Pokemon, move: Move) => { @@ -8694,10 +8745,10 @@ export function initMoves() { new AttackMove(Moves.SKITTER_SMACK, Type.BUG, MoveCategory.PHYSICAL, 70, 90, 10, 100, 0, 8) .attr(StatChangeAttr, BattleStat.SPATK, -1), new AttackMove(Moves.BURNING_JEALOUSY, Type.FIRE, MoveCategory.SPECIAL, 70, 100, 5, 100, 0, 8) - .target(MoveTarget.ALL_NEAR_ENEMIES) - .partial(), + .attr(StatusIfBoostedAttr, StatusEffect.BURN) + .target(MoveTarget.ALL_NEAR_ENEMIES), new AttackMove(Moves.LASH_OUT, Type.DARK, MoveCategory.PHYSICAL, 75, 100, 5, -1, 0, 8) - .partial(), + .attr(MovePowerMultiplierAttr, (user, target, move) => user.turnData.battleStatsDecreased ? 2 : 1), new AttackMove(Moves.POLTERGEIST, Type.GHOST, MoveCategory.PHYSICAL, 110, 90, 5, -1, 0, 8) .attr(AttackedByItemAttr) .makesContact(false), @@ -9146,8 +9197,8 @@ export function initMoves() { .attr(AddBattlerTagAttr, BattlerTagType.DRAGON_CHEER, false, true) .target(MoveTarget.NEAR_ALLY), new AttackMove(Moves.ALLURING_VOICE, Type.FAIRY, MoveCategory.SPECIAL, 80, 100, 10, -1, 0, 9) - .soundBased() - .partial(), + .attr(AddBattlerTagIfBoostedAttr, BattlerTagType.CONFUSED) + .soundBased(), new AttackMove(Moves.TEMPER_FLARE, Type.FIRE, MoveCategory.PHYSICAL, 75, 100, 10, -1, 0, 9) .attr(MovePowerMultiplierAttr, (user, target, move) => user.getLastXMoves(2)[1]?.result === MoveResult.MISS || user.getLastXMoves(2)[1]?.result === MoveResult.FAIL ? 2 : 1), new AttackMove(Moves.SUPERCELL_SLAM, Type.ELECTRIC, MoveCategory.PHYSICAL, 100, 95, 15, -1, 0, 9) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 00d5f5d3dd2..b1fcd512e35 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -4286,7 +4286,7 @@ export interface TurnMove { targets?: BattlerIndex[]; result: MoveResult; virtual?: boolean; - turn?: integer; + turn?: number; } export interface QueuedMove { @@ -4298,17 +4298,17 @@ export interface QueuedMove { export interface AttackMoveResult { move: Moves; result: DamageResult; - damage: integer; + damage: number; critical: boolean; - sourceId: integer; + sourceId: number; sourceBattlerIndex: BattlerIndex; } export class PokemonSummonData { - public battleStats: integer[] = [ 0, 0, 0, 0, 0, 0, 0 ]; + public battleStats: number[] = [ 0, 0, 0, 0, 0, 0, 0 ]; public moveQueue: QueuedMove[] = []; public disabledMove: Moves = Moves.NONE; - public disabledTurns: integer = 0; + public disabledTurns: number = 0; public tags: BattlerTag[] = []; public abilitySuppressed: boolean = false; public abilitiesApplied: Abilities[] = []; @@ -4318,14 +4318,14 @@ export class PokemonSummonData { public ability: Abilities = Abilities.NONE; public gender: Gender; public fusionGender: Gender; - public stats: integer[]; + public stats: number[]; public moveset: (PokemonMove | null)[]; // If not initialized this value will not be populated from save data. public types: Type[] = []; } export class PokemonBattleData { - public hitCount: integer = 0; + public hitCount: number = 0; public endured: boolean = false; public berriesEaten: BerryType[] = []; public abilitiesApplied: Abilities[] = []; @@ -4334,21 +4334,23 @@ export class PokemonBattleData { export class PokemonBattleSummonData { /** The number of turns the pokemon has passed since entering the battle */ - public turnCount: integer = 1; + public turnCount: number = 1; /** The list of moves the pokemon has used since entering the battle */ public moveHistory: TurnMove[] = []; } export class PokemonTurnData { - public flinched: boolean; - public acted: boolean; - public hitCount: integer; - public hitsLeft: integer; - public damageDealt: integer = 0; - public currDamageDealt: integer = 0; - public damageTaken: integer = 0; + public flinched: boolean = false; + public acted: boolean = false; + public hitCount: number; + public hitsLeft: number; + public damageDealt: number = 0; + public currDamageDealt: number = 0; + public damageTaken: number = 0; public attacksReceived: AttackMoveResult[] = []; public order: number; + public battleStatsIncreased: boolean = false; + public battleStatsDecreased: boolean = false; } export enum AiType { diff --git a/src/phases/stat-change-phase.ts b/src/phases/stat-change-phase.ts index 856d0a33eea..3116c49e8ef 100644 --- a/src/phases/stat-change-phase.ts +++ b/src/phases/stat-change-phase.ts @@ -1,14 +1,14 @@ -import BattleScene from "#app/battle-scene.js"; -import { BattlerIndex } from "#app/battle.js"; -import { applyPreStatChangeAbAttrs, ProtectStatAbAttr, applyAbAttrs, StatChangeMultiplierAbAttr, StatChangeCopyAbAttr, applyPostStatChangeAbAttrs, PostStatChangeAbAttr } from "#app/data/ability.js"; -import { MistTag, ArenaTagSide } from "#app/data/arena-tag.js"; -import { BattleStat, getBattleStatName, getBattleStatLevelChangeDescription } from "#app/data/battle-stat.js"; -import Pokemon from "#app/field/pokemon.js"; -import { getPokemonNameWithAffix } from "#app/messages.js"; -import { PokemonResetNegativeStatStageModifier } from "#app/modifier/modifier.js"; -import { handleTutorial, Tutorial } from "#app/tutorial.js"; +import { BattlerIndex } from "#app/battle"; +import BattleScene from "#app/battle-scene"; +import { applyAbAttrs, applyPostStatChangeAbAttrs, applyPreStatChangeAbAttrs, PostStatChangeAbAttr, ProtectStatAbAttr, StatChangeCopyAbAttr, StatChangeMultiplierAbAttr } from "#app/data/ability"; +import { ArenaTagSide, MistTag } from "#app/data/arena-tag"; +import { BattleStat, getBattleStatLevelChangeDescription, getBattleStatName } from "#app/data/battle-stat"; +import Pokemon from "#app/field/pokemon"; +import { getPokemonNameWithAffix } from "#app/messages"; +import { PokemonResetNegativeStatStageModifier } from "#app/modifier/modifier"; +import { handleTutorial, Tutorial } from "#app/tutorial"; +import * as Utils from "#app/utils"; import i18next from "i18next"; -import * as Utils from "#app/utils.js"; import { PokemonPhase } from "./pokemon-phase"; export type StatChangeCallback = (target: Pokemon | null, changed: BattleStat[], relativeChanges: number[]) => void; @@ -72,7 +72,7 @@ export class StatChangePhase extends PokemonPhase { } const battleStats = this.getPokemon().summonData.battleStats; - const relLevels = filteredStats.map(stat => (levels.value >= 1 ? Math.min(battleStats![stat] + levels.value, 6) : Math.max(battleStats![stat] + levels.value, -6)) - battleStats![stat]); + const relLevels = filteredStats.map(stat => (levels.value >= 1 ? Math.min(battleStats[stat] + levels.value, 6) : Math.max(battleStats[stat] + levels.value, -6)) - battleStats[stat]); this.onChange && this.onChange(this.getPokemon(), filteredStats, relLevels); @@ -85,6 +85,20 @@ export class StatChangePhase extends PokemonPhase { } for (const stat of filteredStats) { + if (levels.value > 0 && pokemon.summonData.battleStats[stat] < 6) { + if (!pokemon.turnData) { + // Temporary fix for missing turn data struct on turn 1 + pokemon.resetTurnData(); + } + pokemon.turnData.battleStatsIncreased = true; + } else if (levels.value < 0 && pokemon.summonData.battleStats[stat] > -6) { + if (!pokemon.turnData) { + // Temporary fix for missing turn data struct on turn 1 + pokemon.resetTurnData(); + } + pokemon.turnData.battleStatsDecreased = true; + } + pokemon.summonData.battleStats[stat] = Math.max(Math.min(pokemon.summonData.battleStats[stat] + levels.value, 6), -6); } diff --git a/src/test/moves/alluring_voice.test.ts b/src/test/moves/alluring_voice.test.ts new file mode 100644 index 00000000000..e6ece39524a --- /dev/null +++ b/src/test/moves/alluring_voice.test.ts @@ -0,0 +1,54 @@ +import { BattlerIndex } from "#app/battle"; +import { Abilities } from "#app/enums/abilities"; +import { BattlerTagType } from "#app/enums/battler-tag-type"; +import { BerryPhase } from "#app/phases/berry-phase"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; + +const TIMEOUT = 20 * 1000; + +describe("Moves - Alluring Voice", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .disableCrits() + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.ICE_SCALES) + .enemyMoveset(Array(4).fill(Moves.HOWL)) + .startingLevel(10) + .enemyLevel(10) + .starterSpecies(Species.FEEBAS) + .ability(Abilities.BALL_FETCH) + .moveset([Moves.ALLURING_VOICE]); + + }); + + it("should confuse the opponent if their stats were raised", async () => { + await game.classicMode.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.ALLURING_VOICE); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.phaseInterceptor.to(BerryPhase); + + expect(enemy.getTag(BattlerTagType.CONFUSED)?.tagType).toBe("CONFUSED"); + }, TIMEOUT); +}); diff --git a/src/test/moves/burning_jealousy.test.ts b/src/test/moves/burning_jealousy.test.ts new file mode 100644 index 00000000000..2281fe74acb --- /dev/null +++ b/src/test/moves/burning_jealousy.test.ts @@ -0,0 +1,103 @@ +import { BattlerIndex } from "#app/battle"; +import { allMoves } from "#app/data/move"; +import { Abilities } from "#app/enums/abilities"; +import { StatusEffect } from "#app/enums/status-effect"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; +import { SPLASH_ONLY } from "../utils/testUtils"; + +const TIMEOUT = 20 * 1000; + +describe("Moves - Burning Jealousy", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .disableCrits() + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.ICE_SCALES) + .enemyMoveset(Array(4).fill(Moves.HOWL)) + .startingLevel(10) + .enemyLevel(10) + .starterSpecies(Species.FEEBAS) + .ability(Abilities.BALL_FETCH) + .moveset([Moves.BURNING_JEALOUSY, Moves.GROWL]); + + }); + + it("should burn the opponent if their stats were raised", async () => { + await game.classicMode.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.BURNING_JEALOUSY); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.phaseInterceptor.to("BerryPhase"); + + expect(enemy.status?.effect).toBe(StatusEffect.BURN); + }, TIMEOUT); + + it("should still burn the opponent if their stats were both raised and lowered in the same turn", async () => { + game.override + .starterSpecies(0) + .battleType("double"); + await game.classicMode.startBattle([Species.FEEBAS, Species.ABRA]); + + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.BURNING_JEALOUSY); + game.move.select(Moves.GROWL, 1); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER_2, BattlerIndex.PLAYER, BattlerIndex.ENEMY_2]); + await game.phaseInterceptor.to("BerryPhase"); + + expect(enemy.status?.effect).toBe(StatusEffect.BURN); + }, TIMEOUT); + + it("should ignore stats raised by imposter", async () => { + game.override + .enemySpecies(Species.DITTO) + .enemyAbility(Abilities.IMPOSTER) + .enemyMoveset(SPLASH_ONLY); + await game.classicMode.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.BURNING_JEALOUSY); + await game.phaseInterceptor.to("BerryPhase"); + + expect(enemy.status?.effect).toBeUndefined(); + }, TIMEOUT); + + it.skip("should ignore weakness policy", async () => { // TODO: Make this test if WP is implemented + await game.classicMode.startBattle(); + }, TIMEOUT); + + it("should be boosted by Sheer Force even if opponent didn't raise stats", async () => { + game.override + .ability(Abilities.SHEER_FORCE) + .enemyMoveset(SPLASH_ONLY); + vi.spyOn(allMoves[Moves.BURNING_JEALOUSY], "calculateBattlePower"); + await game.classicMode.startBattle(); + + game.move.select(Moves.BURNING_JEALOUSY); + await game.phaseInterceptor.to("BerryPhase"); + + expect(allMoves[Moves.BURNING_JEALOUSY].calculateBattlePower).toHaveReturnedWith(allMoves[Moves.BURNING_JEALOUSY].power * 5461 / 4096); + }, TIMEOUT); +}); diff --git a/src/test/moves/lash_out.test.ts b/src/test/moves/lash_out.test.ts new file mode 100644 index 00000000000..78f4b712cf0 --- /dev/null +++ b/src/test/moves/lash_out.test.ts @@ -0,0 +1,52 @@ +import { BattlerIndex } from "#app/battle"; +import { allMoves } from "#app/data/move"; +import { Abilities } from "#app/enums/abilities"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; + +const TIMEOUT = 20 * 1000; + +describe("Moves - Lash Out", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .disableCrits() + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.FUR_COAT) + .enemyMoveset(Array(4).fill(Moves.GROWL)) + .startingLevel(10) + .enemyLevel(10) + .starterSpecies(Species.FEEBAS) + .ability(Abilities.BALL_FETCH) + .moveset([Moves.LASH_OUT]); + + }); + + it("should deal double damage if the user's stats were lowered this turn", async () => { + vi.spyOn(allMoves[Moves.LASH_OUT], "calculateBattlePower"); + await game.classicMode.startBattle(); + + game.move.select(Moves.LASH_OUT); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.phaseInterceptor.to("BerryPhase"); + + expect(allMoves[Moves.LASH_OUT].calculateBattlePower).toHaveReturnedWith(150); + }, TIMEOUT); +}); From 80828359e2b135e7b6e2c7c2df990fa6b2d9be8a Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:28:10 -0400 Subject: [PATCH 054/116] [Localization(en)] Fix Roark Dialouge (#3873) * Translate dialogue-male.json via GitLocalize * Added female * ! * Update src/locales/en/dialogue-male.json * Remove empty files * Added missing comma --------- Co-authored-by: Jannik Tappert Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> --- src/locales/de/dialogue.json | 8 ++++---- src/locales/en/dialogue.json | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/locales/de/dialogue.json b/src/locales/de/dialogue.json index e5bcb81ce52..8a3dbb8880e 100644 --- a/src/locales/de/dialogue.json +++ b/src/locales/de/dialogue.json @@ -1403,19 +1403,19 @@ "1": "Ich muss dein Potenzial als Trainer und die Stärke der Pokémon sehen, die mit dir kämpfen!", "2": "Los geht's! Dies sind meine Gesteins-Pokémon, mein ganzer Stolz!", "3": "Gesteins-Pokémon sind einfach die besten!", - "4": "Ich muss dein Potenzial als Trainer und die Stärke der Pokémon sehen, die mit dir kämpfen!" + "4": "Tag für Tag grabe ich hier nach Fossilien.\n$Die viele Arbeit hat meine Pokémon felsenfest gemacht\nund das wirst du jetzt im Kampf zu spüren bekommen!" }, "victory": { "1": "W-was? Das kann nicht sein! Meine total tranierten Pokémon!", "2": "…Wir haben die Kontrolle verloren. Beim nächsten Mal fordere ich dich\n$zu einem Fossilien-Ausgrabungswettbewerb heraus.", "3": "Mit deinem Können ist es nur natürlich, dass du gewinnst.", - "4": "W-was?! Das kann nicht sein! Selbst das war nicht genug?", - "5": "Ich habe es vermasselt." + "4": "W-was?! Das kann nicht sein! Selbst das war nicht genug?" }, "defeat": { "1": "Siehst du? Ich bin stolz auf meinen steinigen Kampfstil!", "2": "Danke! Der Kampf hat mir Vertrauen gegeben, dass ich vielleicht meinen Vater besiegen kann!", - "3": "Ich fühle mich, als hätte ich gerade einen wirklich hartnäckigen Felsen durchbrochen!" + "3": "Na, was sagst du jetzt? Meine felsenfesten Pokémon waren hart genug für dich, was?", + "4": "Ich wusste, dass ich gewinnen würde!" } }, "morty": { diff --git a/src/locales/en/dialogue.json b/src/locales/en/dialogue.json index 1f8919f11b5..90b03a176d1 100644 --- a/src/locales/en/dialogue.json +++ b/src/locales/en/dialogue.json @@ -742,7 +742,7 @@ "plumeria": { "encounter": { "1": " ...Hmph. You don't look like anything special to me.", - "2": "It takes these dumb Grunts way too long to deal with you kids..", + "2": "It takes these dumb Grunts way too long to deal with you kids...", "3": "Mess with anyone in Team Skull, and I'll show you how serious I can get." }, "victory": { @@ -1479,21 +1479,21 @@ "1_female": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", "2": "Here goes! These are my rocking Pokémon, my pride and joy!", "3": "Rock-type Pokémon are simply the best!", - "4": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!", - "4_female": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!" + "4": "Every day, I toughened up my Pokémon by digging up Fossils nonstop.\n$Could I show you how tough I made them in a battle?", + "4_female": "Every day, I toughened up my Pokémon by digging up Fossils nonstop.\n$Could I show you how tough I made them in a battle?" }, "victory": { "1": "W-what? That can't be! My buffed-up Pokémon!", "2": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.", "2_female": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.", "3": "With skill like yours, it's natural for you to win.", - "4": "Wh-what?! It can't be! Even that wasn't enough?", - "5": "I blew it." + "4": "Wh-what?! It can't be! Even that wasn't enough?" }, "defeat": { "1": "See? I'm proud of my rocking battle style!", "2": "Thanks! The battle gave me confidence that I may be able to beat my dad!", - "3": "I feel like I just smashed through a really stubborn boulder!" + "3": "See? These are my rocking Pokémon, my pride and joy!", + "4": "I knew I would win!" } }, "morty": { From 56b39032b9cf272e6b63c31eec2b43f834ef85be Mon Sep 17 00:00:00 2001 From: "Adrian T." <68144167+torranx@users.noreply.github.com> Date: Mon, 2 Sep 2024 11:30:27 +0800 Subject: [PATCH 055/116] [Dev] add script to create test boilerplate file (#3954) * add script to create test boilerplate file * add more docs * add timeout to template --- create-test-boilerplate.js | 101 +++++++++++++++++++++++++++++++++++++ package.json | 3 +- 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 create-test-boilerplate.js diff --git a/create-test-boilerplate.js b/create-test-boilerplate.js new file mode 100644 index 00000000000..bf68258f321 --- /dev/null +++ b/create-test-boilerplate.js @@ -0,0 +1,101 @@ +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +/** + * This script creates a test boilerplate file for a move or ability. + * @param {string} type - The type of test to create. Either "move" or "ability". + * @param {string} fileName - The name of the file to create. + * @example npm run create-test move tackle + */ + +// Get the directory name of the current module file +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// Get the arguments from the command line +const args = process.argv.slice(2); +const type = args[0]; // "move" or "ability" +let fileName = args[1]; // The file name + +if (!type || !fileName) { + console.error('Please provide both a type ("move" or "ability") and a file name.'); + process.exit(1); +} + +// Convert fileName from to snake_case if camelCase is given +fileName = fileName.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(); + +// Format the description for the test case +const formattedName = fileName + .replace(/_/g, ' ') + .replace(/\b\w/g, char => char.toUpperCase()); + +// Determine the directory based on the type +let dir; +let description; +if (type === 'move') { + dir = path.join(__dirname, 'src', 'test', 'moves'); + description = `Moves - ${formattedName}`; +} else if (type === 'ability') { + dir = path.join(__dirname, 'src', 'test', 'abilities'); + description = `Abilities - ${formattedName}`; +} else { + console.error('Invalid type. Please use "move" or "ability".'); + process.exit(1); +} + +// Ensure the directory exists +if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); +} + +// Create the file with the given name +const filePath = path.join(dir, `${fileName}.test.ts`); + +if (fs.existsSync(filePath)) { + console.error(`File "${fileName}.test.ts" already exists.`); + process.exit(1); +} + +// Define the content template +const content = `import { Abilities } from "#enums/abilities"; +import GameManager from "#test/utils/gameManager"; +import { SPLASH_ONLY } from "#test/utils/testUtils"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, it } from "vitest"; + +describe("${description}", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + const TIMEOUT = 20 * 1000; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .enemyAbility(Abilities.BALL_FETCH) + .enemyMoveset(SPLASH_ONLY); + }); + + it("test case", async () => { + // await game.classicMode.startBattle(); + // game.move.select(); + }, TIMEOUT); +}); +`; + +// Write the template content to the file +fs.writeFileSync(filePath, content, 'utf8'); + +console.log(`File created at: ${filePath}`); \ No newline at end of file diff --git a/package.json b/package.json index b85ac639a1b..83e82585d1e 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "eslint-ci": "eslint .", "docs": "typedoc", "depcruise": "depcruise src", - "depcruise:graph": "depcruise src --output-type dot | node dependency-graph.js > dependency-graph.svg" + "depcruise:graph": "depcruise src --output-type dot | node dependency-graph.js > dependency-graph.svg", + "create-test": "node ./create-test-boilerplate.js" }, "devDependencies": { "@eslint/js": "^9.3.0", From 1fd662111e0b668e9f98a7b2c333cd67b9f54c37 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 20:32:31 -0700 Subject: [PATCH 056/116] [Test] Tests now default to using "Set" battle style (#3728) * Tests now default to using "Set" battle style * Fix typo --- src/test/abilities/ability_timing.test.ts | 21 +-- src/test/abilities/disguise.test.ts | 42 ++--- src/test/abilities/intimidate.test.ts | 205 ++++++++-------------- src/test/evolution.test.ts | 27 ++- src/test/evolutions/evolutions.test.ts | 48 ----- src/test/{utils => }/misc.test.ts | 6 +- src/test/moves/spikes.test.ts | 96 ++++------ src/test/utils/gameManager.ts | 2 +- src/test/utils/helpers/settingsHelper.ts | 16 +- 9 files changed, 173 insertions(+), 290 deletions(-) delete mode 100644 src/test/evolutions/evolutions.test.ts rename src/test/{utils => }/misc.test.ts (90%) diff --git a/src/test/abilities/ability_timing.test.ts b/src/test/abilities/ability_timing.test.ts index 3238f880992..fb3d3af1a6b 100644 --- a/src/test/abilities/ability_timing.test.ts +++ b/src/test/abilities/ability_timing.test.ts @@ -1,13 +1,11 @@ +import { BattleStyle } from "#app/enums/battle-style"; import { CommandPhase } from "#app/phases/command-phase"; -import { MessagePhase } from "#app/phases/message-phase"; import { TurnInitPhase } from "#app/phases/turn-init-phase"; import i18next, { initI18n } from "#app/plugins/i18n"; import { Mode } from "#app/ui/ui"; import { Abilities } from "#enums/abilities"; -import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import GameManager from "#test/utils/gameManager"; -import { SPLASH_ONLY } from "#test/utils/testUtils"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; @@ -28,19 +26,18 @@ describe("Ability Timing", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.PIDGEY); - game.override.enemyAbility(Abilities.INTIMIDATE); - game.override.enemyMoveset(SPLASH_ONLY); - - game.override.ability(Abilities.BALL_FETCH); - game.override.moveset([Moves.SPLASH, Moves.ICE_BEAM]); + game.override + .battleType("single") + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.INTIMIDATE) + .ability(Abilities.BALL_FETCH); }); - it("should trigger after switch check", async() => { + it("should trigger after switch check", async () => { initI18n(); i18next.changeLanguage("en"); + game.settings.battleStyle = BattleStyle.SWITCH; await game.classicMode.runToSummon([Species.EEVEE, Species.FEEBAS]); game.onNextPrompt("CheckSwitchPhase", Mode.CONFIRM, () => { @@ -48,7 +45,7 @@ describe("Ability Timing", () => { game.endPhase(); }, () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase)); - await game.phaseInterceptor.to(MessagePhase); + await game.phaseInterceptor.to("MessagePhase"); const message = game.textInterceptor.getLatestMessage(); expect(message).toContain("Attack fell"); }, 5000); diff --git a/src/test/abilities/disguise.test.ts b/src/test/abilities/disguise.test.ts index 85141fdb491..bbb0a20dc1a 100644 --- a/src/test/abilities/disguise.test.ts +++ b/src/test/abilities/disguise.test.ts @@ -1,11 +1,5 @@ import { BattleStat } from "#app/data/battle-stat"; import { StatusEffect } from "#app/data/status-effect"; -import { CommandPhase } from "#app/phases/command-phase"; -import { MoveEffectPhase } from "#app/phases/move-effect-phase"; -import { MoveEndPhase } from "#app/phases/move-end-phase"; -import { TurnEndPhase } from "#app/phases/turn-end-phase"; -import { TurnInitPhase } from "#app/phases/turn-init-phase"; -import { Mode } from "#app/ui/ui"; import { toDmgValue } from "#app/utils"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; @@ -33,13 +27,12 @@ describe("Abilities - Disguise", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - - game.override.enemySpecies(Species.MIMIKYU); - game.override.enemyMoveset(SPLASH_ONLY); - - game.override.starterSpecies(Species.REGIELEKI); - game.override.moveset([Moves.SHADOW_SNEAK, Moves.VACUUM_WAVE, Moves.TOXIC_THREAD, Moves.SPLASH]); + game.override + .battleType("single") + .enemySpecies(Species.MIMIKYU) + .enemyMoveset(SPLASH_ONLY) + .starterSpecies(Species.REGIELEKI) + .moveset([Moves.SHADOW_SNEAK, Moves.VACUUM_WAVE, Moves.TOXIC_THREAD, Moves.SPLASH]); }, TIMEOUT); it("takes no damage from attacking move and transforms to Busted form, takes 1/8 max HP damage from the disguise breaking", async () => { @@ -53,7 +46,7 @@ describe("Abilities - Disguise", () => { game.move.select(Moves.SHADOW_SNEAK); - await game.phaseInterceptor.to(MoveEndPhase); + await game.phaseInterceptor.to("MoveEndPhase"); expect(mimikyu.hp).equals(maxHp - disguiseDamage); expect(mimikyu.formIndex).toBe(bustedForm); @@ -68,7 +61,7 @@ describe("Abilities - Disguise", () => { game.move.select(Moves.VACUUM_WAVE); - await game.phaseInterceptor.to(MoveEndPhase); + await game.phaseInterceptor.to("MoveEndPhase"); expect(mimikyu.formIndex).toBe(disguisedForm); }, TIMEOUT); @@ -87,12 +80,12 @@ describe("Abilities - Disguise", () => { game.move.select(Moves.SURGING_STRIKES); // First hit - await game.phaseInterceptor.to(MoveEffectPhase); + await game.phaseInterceptor.to("MoveEffectPhase"); expect(mimikyu.hp).equals(maxHp - disguiseDamage); expect(mimikyu.formIndex).toBe(disguisedForm); // Second hit - await game.phaseInterceptor.to(MoveEffectPhase); + await game.phaseInterceptor.to("MoveEffectPhase"); expect(mimikyu.hp).lessThan(maxHp - disguiseDamage); expect(mimikyu.formIndex).toBe(bustedForm); }, TIMEOUT); @@ -105,7 +98,7 @@ describe("Abilities - Disguise", () => { game.move.select(Moves.TOXIC_THREAD); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(mimikyu.formIndex).toBe(disguisedForm); expect(mimikyu.status?.effect).toBe(StatusEffect.POISON); @@ -125,7 +118,7 @@ describe("Abilities - Disguise", () => { game.move.select(Moves.SPLASH); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(mimikyu.formIndex).toBe(bustedForm); expect(mimikyu.hp).equals(maxHp - disguiseDamage); @@ -133,7 +126,7 @@ describe("Abilities - Disguise", () => { await game.toNextTurn(); game.doSwitchPokemon(1); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(mimikyu.formIndex).toBe(bustedForm); }, TIMEOUT); @@ -194,15 +187,6 @@ describe("Abilities - Disguise", () => { await game.toNextTurn(); game.move.select(Moves.SPLASH); await game.doKillOpponents(); - game.onNextPrompt("CheckSwitchPhase", Mode.CONFIRM, () => { // TODO: Make tests run in set mode instead of switch mode - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase)); - - game.onNextPrompt("CheckSwitchPhase", Mode.CONFIRM, () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase)); await game.phaseInterceptor.to("PartyHealPhase"); expect(mimikyu1.formIndex).toBe(disguisedForm); diff --git a/src/test/abilities/intimidate.test.ts b/src/test/abilities/intimidate.test.ts index 93b663d06da..bc5b5ab1a7d 100644 --- a/src/test/abilities/intimidate.test.ts +++ b/src/test/abilities/intimidate.test.ts @@ -1,12 +1,8 @@ import { BattleStat } from "#app/data/battle-stat"; import { Status, StatusEffect } from "#app/data/status-effect"; import { GameModes, getGameMode } from "#app/game-mode"; -import { CommandPhase } from "#app/phases/command-phase"; -import { DamagePhase } from "#app/phases/damage-phase"; import { EncounterPhase } from "#app/phases/encounter-phase"; -import { EnemyCommandPhase } from "#app/phases/enemy-command-phase"; import { SelectStarterPhase } from "#app/phases/select-starter-phase"; -import { TurnInitPhase } from "#app/phases/turn-init-phase"; import { Mode } from "#app/ui/ui"; import { Abilities } from "#enums/abilities"; import { Moves } from "#enums/moves"; @@ -33,36 +29,26 @@ describe("Abilities - Intimidate", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.RATTATA); - game.override.enemyAbility(Abilities.INTIMIDATE); - game.override.enemyPassiveAbility(Abilities.HYDRATION); - game.override.ability(Abilities.INTIMIDATE); - game.override.startingWave(3); - game.override.enemyMoveset(SPLASH_ONLY); + game.override + .battleType("single") + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.INTIMIDATE) + .ability(Abilities.INTIMIDATE) + .moveset([Moves.SPLASH, Moves.AERIAL_ACE]) + .enemyMoveset(SPLASH_ONLY); }); it("single - wild with switch", async () => { - await game.classicMode.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]); - game.onNextPrompt( - "CheckSwitchPhase", - Mode.CONFIRM, - () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, - () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase) - ); - await game.phaseInterceptor.to(CommandPhase, false); - expect(game.scene.getParty()[0].species.speciesId).toBe(Species.MIGHTYENA); + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); + game.doSwitchPokemon(1); - await game.phaseInterceptor.run(CommandPhase); - await game.phaseInterceptor.to(CommandPhase); - expect(game.scene.getParty()[0].species.speciesId).toBe(Species.POOCHYENA); + await game.phaseInterceptor.to("CommandPhase"); battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(0); @@ -73,25 +59,16 @@ describe("Abilities - Intimidate", () => { it("single - boss should only trigger once then switch", async () => { game.override.startingWave(10); - await game.classicMode.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]); - game.onNextPrompt( - "CheckSwitchPhase", - Mode.CONFIRM, - () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, - () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase) - ); - await game.phaseInterceptor.to(CommandPhase, false); + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); + game.doSwitchPokemon(1); - await game.phaseInterceptor.run(CommandPhase); - await game.phaseInterceptor.to(CommandPhase); - expect(game.scene.getParty()[0].species.speciesId).toBe(Species.POOCHYENA); + await game.phaseInterceptor.to("CommandPhase"); battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(0); @@ -102,25 +79,16 @@ describe("Abilities - Intimidate", () => { it("single - trainer should only trigger once with switch", async () => { game.override.startingWave(5); - await game.classicMode.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]); - game.onNextPrompt( - "CheckSwitchPhase", - Mode.CONFIRM, - () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, - () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase) - ); - await game.phaseInterceptor.to(CommandPhase, false); + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); + game.doSwitchPokemon(1); - await game.phaseInterceptor.run(CommandPhase); - await game.phaseInterceptor.to(CommandPhase); - expect(game.scene.getParty()[0].species.speciesId).toBe(Species.POOCHYENA); + await game.phaseInterceptor.to("CommandPhase"); battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(0); @@ -130,21 +98,14 @@ describe("Abilities - Intimidate", () => { }, 200000); it("double - trainer should only trigger once per pokemon", async () => { - game.override.battleType("double"); - game.override.startingWave(5); - await game.classicMode.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]); - game.onNextPrompt( - "CheckSwitchPhase", - Mode.CONFIRM, - () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, - () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase) - ); - await game.phaseInterceptor.to(CommandPhase, false); + game.override + .battleType("double") + .startingWave(5); + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-2); + const battleStatsOpponent2 = game.scene.currentBattle.enemyParty[1].summonData.battleStats; expect(battleStatsOpponent2[BattleStat.ATK]).toBe(-2); @@ -157,20 +118,11 @@ describe("Abilities - Intimidate", () => { it("double - wild: should only trigger once per pokemon", async () => { game.override.battleType("double"); - game.override.startingWave(3); - await game.classicMode.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]); - game.onNextPrompt( - "CheckSwitchPhase", - Mode.CONFIRM, - () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, - () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase) - ); - await game.phaseInterceptor.to(CommandPhase, false); + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-2); + const battleStatsOpponent2 = game.scene.currentBattle.enemyParty[1].summonData.battleStats; expect(battleStatsOpponent2[BattleStat.ATK]).toBe(-2); @@ -182,21 +134,14 @@ describe("Abilities - Intimidate", () => { }, 20000); it("double - boss: should only trigger once per pokemon", async () => { - game.override.battleType("double"); - game.override.startingWave(10); - await game.classicMode.runToSummon([Species.MIGHTYENA, Species.POOCHYENA]); - game.onNextPrompt( - "CheckSwitchPhase", - Mode.CONFIRM, - () => { - game.setMode(Mode.MESSAGE); - game.endPhase(); - }, - () => game.isCurrentPhase(CommandPhase) || game.isCurrentPhase(TurnInitPhase) - ); - await game.phaseInterceptor.to(CommandPhase, false); + game.override + .battleType("double") + .startingWave(10); + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-2); + const battleStatsOpponent2 = game.scene.currentBattle.enemyParty[1].summonData.battleStats; expect(battleStatsOpponent2[BattleStat.ATK]).toBe(-2); @@ -208,104 +153,101 @@ describe("Abilities - Intimidate", () => { }, 20000); it("single - wild next wave opp triger once, us: none", async () => { - game.override.startingWave(2); - game.override.moveset([Moves.AERIAL_ACE]); - await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + await game.startBattle([Species.MIGHTYENA]); + let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); game.move.select(Moves.AERIAL_ACE); - await game.phaseInterceptor.runFrom(EnemyCommandPhase).to(DamagePhase); - await game.killPokemon(game.scene.currentBattle.enemyParty[0]); - expect(game.scene.currentBattle.enemyParty[0].isFainted()).toBe(true); + await game.phaseInterceptor.to("DamagePhase"); + await game.doKillOpponents(); await game.toNextWave(); + battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-2); + battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(0); }, 20000); it("single - wild next turn - no retrigger on next turn", async () => { - game.override.startingWave(2); - game.override.moveset([Moves.SPLASH]); - await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + await game.startBattle([Species.MIGHTYENA]); + let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); - game.move.select(Moves.AERIAL_ACE); - console.log("===to new turn==="); + game.move.select(Moves.SPLASH); await game.toNextTurn(); + battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); + battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); }, 20000); it("single - trainer should only trigger once and each time he switch", async () => { - game.override.moveset([Moves.SPLASH]); - game.override.enemyMoveset([Moves.VOLT_SWITCH, Moves.VOLT_SWITCH, Moves.VOLT_SWITCH, Moves.VOLT_SWITCH]); - game.override.startingWave(5); - await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + game.override + .enemyMoveset(Array(4).fill(Moves.VOLT_SWITCH)) + .startingWave(5); + await game.startBattle([Species.MIGHTYENA]); + let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); - game.move.select(Moves.AERIAL_ACE); - console.log("===to new turn==="); + game.move.select(Moves.SPLASH); await game.toNextTurn(); + battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-2); + battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(0); - game.move.select(Moves.AERIAL_ACE); - console.log("===to new turn==="); + game.move.select(Moves.SPLASH); await game.toNextTurn(); + battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-3); + battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(0); }, 200000); it("single - trainer should only trigger once whatever turn we are", async () => { - game.override.moveset([Moves.SPLASH]); - game.override.enemyMoveset(SPLASH_ONLY); game.override.startingWave(5); - await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); - let battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; + await game.startBattle([Species.MIGHTYENA]); + + const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; + const battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; + expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); - let battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); - game.move.select(Moves.AERIAL_ACE); - console.log("===to new turn==="); + game.move.select(Moves.SPLASH); await game.toNextTurn(); - battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; - expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); - battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; - expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); - game.move.select(Moves.AERIAL_ACE); - console.log("===to new turn==="); - await game.toNextTurn(); - battleStatsPokemon = game.scene.getParty()[0].summonData.battleStats; expect(battleStatsPokemon[BattleStat.ATK]).toBe(-1); - battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); }, 20000); it("double - wild vs only 1 on player side", async () => { game.override.battleType("double"); - game.override.startingWave(3); await game.classicMode.runToSummon([Species.MIGHTYENA]); - await game.phaseInterceptor.to(CommandPhase, false); + await game.phaseInterceptor.to("CommandPhase", false); + const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + const battleStatsOpponent2 = game.scene.currentBattle.enemyParty[1].summonData.battleStats; expect(battleStatsOpponent2[BattleStat.ATK]).toBe(-1); @@ -315,7 +257,6 @@ describe("Abilities - Intimidate", () => { it("double - wild vs only 1 alive on player side", async () => { game.override.battleType("double"); - game.override.startingWave(3); await game.runToTitle(); game.onNextPrompt("TitlePhase", Mode.TITLE, () => { @@ -330,9 +271,11 @@ describe("Abilities - Intimidate", () => { await game.phaseInterceptor.run(EncounterPhase); - await game.phaseInterceptor.to(CommandPhase, false); + await game.phaseInterceptor.to("CommandPhase", false); + const battleStatsOpponent = game.scene.currentBattle.enemyParty[0].summonData.battleStats; expect(battleStatsOpponent[BattleStat.ATK]).toBe(-1); + const battleStatsOpponent2 = game.scene.currentBattle.enemyParty[1].summonData.battleStats; expect(battleStatsOpponent2[BattleStat.ATK]).toBe(-1); diff --git a/src/test/evolution.test.ts b/src/test/evolution.test.ts index f9123cf6d9a..5844e92ab8d 100644 --- a/src/test/evolution.test.ts +++ b/src/test/evolution.test.ts @@ -2,9 +2,10 @@ import { pokemonEvolutions, SpeciesFormEvolution, SpeciesWildEvolutionDelay } fr import { Abilities } from "#app/enums/abilities"; import { Moves } from "#app/enums/moves"; import { Species } from "#app/enums/species"; +import * as Utils from "#app/utils"; import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; -import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { SPLASH_ONLY } from "./utils/testUtils"; describe("Evolution", () => { @@ -148,4 +149,28 @@ describe("Evolution", () => { expect(cyndaquil.hp).toBeGreaterThan(hpBefore); expect(cyndaquil.hp).toBeLessThan(cyndaquil.getMaxHp()); }, TIMEOUT); + + it("should handle rng-based split evolution", async () => { + /* this test checks to make sure that tandemaus will + * evolve into a 3 family maushold 25% of the time + * and a 4 family maushold the other 75% of the time + * This is done by using the getEvolution method in pokemon.ts + * getEvolution will give back the form that the pokemon can evolve into + * It does this by checking the pokemon conditions in pokemon-forms.ts + * For tandemaus, the conditions are random due to a randSeedInt(4) + * If the value is 0, it's a 3 family maushold, whereas if the value is + * 1, 2 or 3, it's a 4 family maushold + */ + await game.startBattle([Species.TANDEMAUS]); // starts us off with a tandemaus + const playerPokemon = game.scene.getPlayerPokemon()!; + playerPokemon.level = 25; // tandemaus evolves at level 25 + vi.spyOn(Utils, "randSeedInt").mockReturnValue(0); // setting the random generator to be 0 to force a three family maushold + const threeForm = playerPokemon.getEvolution()!; + expect(threeForm.evoFormKey).toBe("three"); // as per pokemon-forms, the evoFormKey for 3 family mausholds is "three" + for (let f = 1; f < 4; f++) { + vi.spyOn(Utils, "randSeedInt").mockReturnValue(f); // setting the random generator to 1, 2 and 3 to force 4 family mausholds + const fourForm = playerPokemon.getEvolution()!; + expect(fourForm.evoFormKey).toBe(null); // meanwhile, according to the pokemon-forms, the evoFormKey for a 4 family maushold is null + } + }, TIMEOUT); }); diff --git a/src/test/evolutions/evolutions.test.ts b/src/test/evolutions/evolutions.test.ts deleted file mode 100644 index 2028764115c..00000000000 --- a/src/test/evolutions/evolutions.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import * as Utils from "#app/utils"; -import { Species } from "#enums/species"; -import GameManager from "#test/utils/gameManager"; -import Phaser from "phaser"; -import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; - -describe("Evolution tests", () => { - let phaserGame: Phaser.Game; - let game: GameManager; - - beforeAll(() => { - phaserGame = new Phaser.Game({ - type: Phaser.HEADLESS, - }); - }); - - afterEach(() => { - game.phaseInterceptor.restoreOg(); - }); - - beforeEach(() => { - game = new GameManager(phaserGame); - }); - - it("tandemaus evolution form test", async () => { - /* this test checks to make sure that tandemaus will - * evolve into a 3 family maushold 25% of the time - * and a 4 family maushold the other 75% of the time - * This is done by using the getEvolution method in pokemon.ts - * getEvolution will give back the form that the pokemon can evolve into - * It does this by checking the pokemon conditions in pokemon-forms.ts - * For tandemaus, the conditions are random due to a randSeedInt(4) - * If the value is 0, it's a 3 family maushold, whereas if the value is - * 1, 2 or 3, it's a 4 family maushold - */ - await game.startBattle([Species.TANDEMAUS]); // starts us off with a tandemaus - const playerPokemon = game.scene.getPlayerPokemon()!; - playerPokemon.level = 25; // tandemaus evolves at level 25 - vi.spyOn(Utils, "randSeedInt").mockReturnValue(0); // setting the random generator to be 0 to force a three family maushold - const threeForm = playerPokemon.getEvolution()!; - expect(threeForm.evoFormKey).toBe("three"); // as per pokemon-forms, the evoFormKey for 3 family mausholds is "three" - for (let f = 1; f < 4; f++) { - vi.spyOn(Utils, "randSeedInt").mockReturnValue(f); // setting the random generator to 1, 2 and 3 to force 4 family mausholds - const fourForm = playerPokemon.getEvolution()!; - expect(fourForm.evoFormKey).toBe(null); // meanwhile, according to the pokemon-forms, the evoFormKey for a 4 family maushold is null - } - }, 5000); -}); diff --git a/src/test/utils/misc.test.ts b/src/test/misc.test.ts similarity index 90% rename from src/test/utils/misc.test.ts rename to src/test/misc.test.ts index d7c10144ead..1052a282a64 100644 --- a/src/test/utils/misc.test.ts +++ b/src/test/misc.test.ts @@ -30,7 +30,7 @@ describe("Test misc", () => { return response.json(); }).then(data => { spy(); // Call the spy function - expect(data).toEqual({"username":"greenlamp", "lastSessionSlot":0}); + expect(data).toEqual({ "username": "greenlamp", "lastSessionSlot": 0 }); }); expect(spy).toHaveBeenCalled(); }); @@ -43,7 +43,7 @@ describe("Test misc", () => { return response.json(); }).then(data => { spy(); // Call the spy function - expect(data).toEqual({"username":"greenlamp", "lastSessionSlot":0}); + expect(data).toEqual({ "username": "greenlamp", "lastSessionSlot": 0 }); }); expect(spy).toHaveBeenCalled(); }); @@ -54,7 +54,7 @@ describe("Test misc", () => { expect(response.ok).toBe(true); expect(response.status).toBe(200); - expect(data).toEqual({"username":"greenlamp", "lastSessionSlot":0}); + expect(data).toEqual({ "username": "greenlamp", "lastSessionSlot": 0 }); }); it("test apifetch mock sync", async () => { diff --git a/src/test/moves/spikes.test.ts b/src/test/moves/spikes.test.ts index c4096111c6f..05ea717ebbe 100644 --- a/src/test/moves/spikes.test.ts +++ b/src/test/moves/spikes.test.ts @@ -1,10 +1,10 @@ -import { CommandPhase } from "#app/phases/command-phase"; import { Abilities } from "#enums/abilities"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { SPLASH_ONLY } from "../utils/testUtils"; describe("Moves - Spikes", () => { @@ -23,93 +23,61 @@ describe("Moves - Spikes", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.scene.battleStyle = 1; - game.override.battleType("single"); - game.override.enemySpecies(Species.RATTATA); - game.override.enemyAbility(Abilities.HYDRATION); - game.override.enemyPassiveAbility(Abilities.HYDRATION); - game.override.ability(Abilities.HYDRATION); - game.override.passiveAbility(Abilities.HYDRATION); - game.override.startingWave(3); - game.override.enemyMoveset([Moves.SPLASH, Moves.SPLASH, Moves.SPLASH, Moves.SPLASH]); - game.override.moveset([Moves.SPIKES, Moves.SPLASH, Moves.ROAR]); + game.override + .battleType("single") + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.BALL_FETCH) + .ability(Abilities.BALL_FETCH) + .enemyMoveset(SPLASH_ONLY) + .moveset([Moves.SPIKES, Moves.SPLASH, Moves.ROAR]); }); - it("single - wild - stay on field - no damage", async () => { - await game.classicMode.runToSummon([ - Species.MIGHTYENA, - Species.POOCHYENA, - ]); - await game.phaseInterceptor.to(CommandPhase, true); - const initialHp = game.scene.getParty()[0].hp; - expect(game.scene.getParty()[0].hp).toBe(initialHp); + it("should not damage the team that set them", async () => { + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + game.move.select(Moves.SPIKES); await game.toNextTurn(); + game.move.select(Moves.SPLASH); await game.toNextTurn(); - expect(game.scene.getParty()[0].hp).toBe(initialHp); - }, 20000); - - it("single - wild - take some damage", async () => { - // player set spikes on the field and switch back to back - // opponent do splash for 2 turns - // nobody should take damage - await game.classicMode.runToSummon([ - Species.MIGHTYENA, - Species.POOCHYENA, - ]); - await game.phaseInterceptor.to(CommandPhase, false); - - const initialHp = game.scene.getParty()[0].hp; - game.doSwitchPokemon(1); - await game.phaseInterceptor.run(CommandPhase); - await game.phaseInterceptor.to(CommandPhase, false); game.doSwitchPokemon(1); - await game.phaseInterceptor.run(CommandPhase); - await game.phaseInterceptor.to(CommandPhase, false); + await game.toNextTurn(); - expect(game.scene.getParty()[0].hp).toBe(initialHp); + game.doSwitchPokemon(1); + await game.toNextTurn(); + + const player = game.scene.getParty()[0]; + expect(player.hp).toBe(player.getMaxHp()); }, 20000); - it("trainer - wild - force switch opponent - should take damage", async () => { + it("should damage opposing pokemon that are forced to switch in", async () => { game.override.startingWave(5); - // player set spikes on the field and do splash for 3 turns - // opponent do splash for 4 turns - // nobody should take damage - await game.classicMode.runToSummon([ - Species.MIGHTYENA, - Species.POOCHYENA, - ]); - await game.phaseInterceptor.to(CommandPhase, true); - const initialHpOpponent = game.scene.currentBattle.enemyParty[1].hp; + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + game.move.select(Moves.SPIKES); await game.toNextTurn(); + game.move.select(Moves.ROAR); await game.toNextTurn(); - expect(game.scene.currentBattle.enemyParty[0].hp).toBeLessThan(initialHpOpponent); + + const enemy = game.scene.getEnemyParty()[0]; + expect(enemy.hp).toBeLessThan(enemy.getMaxHp()); }, 20000); - it("trainer - wild - force switch by himself opponent - should take damage", async () => { + it("should damage opposing pokemon that choose to switch in", async () => { game.override.startingWave(5); - game.override.startingLevel(5000); - game.override.enemySpecies(0); - // turn 1: player set spikes, opponent do splash - // turn 2: player do splash, opponent switch pokemon - // opponent pokemon should trigger spikes and lose HP - await game.classicMode.runToSummon([ - Species.MIGHTYENA, - Species.POOCHYENA, - ]); - await game.phaseInterceptor.to(CommandPhase, true); - const initialHpOpponent = game.scene.currentBattle.enemyParty[1].hp; + await game.startBattle([Species.MIGHTYENA, Species.POOCHYENA]); + game.move.select(Moves.SPIKES); await game.toNextTurn(); - game.forceOpponentToSwitch(); game.move.select(Moves.SPLASH); + game.forceOpponentToSwitch(); await game.toNextTurn(); - expect(game.scene.currentBattle.enemyParty[0].hp).toBeLessThan(initialHpOpponent); + + const enemy = game.scene.getEnemyParty()[0]; + expect(enemy.hp).toBeLessThan(enemy.getMaxHp()); }, 20000); }); diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index a9a71d16bf7..6724e05521c 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -139,7 +139,7 @@ export default class GameManager { this.scene.hpBarSpeed = 3; this.scene.enableTutorials = false; this.scene.gameData.gender = PlayerGender.MALE; // set initial player gender - + this.scene.battleStyle = this.settings.battleStyle; } /** diff --git a/src/test/utils/helpers/settingsHelper.ts b/src/test/utils/helpers/settingsHelper.ts index 76ffafdbe10..8fca2a34d47 100644 --- a/src/test/utils/helpers/settingsHelper.ts +++ b/src/test/utils/helpers/settingsHelper.ts @@ -1,16 +1,30 @@ import { PlayerGender } from "#app/enums/player-gender"; +import { BattleStyle } from "#app/enums/battle-style"; import { GameManagerHelper } from "./gameManagerHelper"; /** * Helper to handle settings for tests */ export class SettingsHelper extends GameManagerHelper { + private _battleStyle: BattleStyle = BattleStyle.SET; + + get battleStyle(): BattleStyle { + return this._battleStyle; + } + + /** + * Change the battle style to Switch or Set mode (tests default to {@linkcode BattleStyle.SET}) + * @param mode {@linkcode BattleStyle.SWITCH} or {@linkcode BattleStyle.SET} + */ + set battleStyle(mode: BattleStyle.SWITCH | BattleStyle.SET) { + this._battleStyle = mode; + } /** * Disable/Enable type hints settings * @param enable true to enabled, false to disabled */ - typeHints(enable: boolean) { + typeHints(enable: boolean): void { this.game.scene.typeHints = enable; this.log(`Type Hints ${enable? "enabled" : "disabled"}` ); } From e29f1fe5fd5f8aceb0a69ae1b25305ad2267aeaa Mon Sep 17 00:00:00 2001 From: innerthunder <168692175+innerthunder@users.noreply.github.com> Date: Sun, 1 Sep 2024 20:39:26 -0700 Subject: [PATCH 057/116] [Bug] Fix some trapping moves' interactions with Ghost-type Pokemon (#3936) * Fix secondary effects to trapping moves not applying to Ghost types * Docs for `isTrapped` * more `isTrapped` cleanup * Remove .js from imports --- src/data/battler-tags.ts | 23 ++++++++++- src/data/move.ts | 2 +- src/enums/battler-tag-type.ts | 1 + src/field/pokemon.ts | 26 +++++++++++- src/phases/command-phase.ts | 68 ++++++++++++++----------------- src/phases/enemy-command-phase.ts | 14 ++----- 6 files changed, 82 insertions(+), 52 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 38db36e86f6..2e280634d5d 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -212,7 +212,7 @@ export class TrappedTag extends BattlerTag { canAdd(pokemon: Pokemon): boolean { const isGhost = pokemon.isOfType(Type.GHOST); - const isTrapped = pokemon.getTag(BattlerTagType.TRAPPED); + const isTrapped = pokemon.getTag(TrappedTag); return !isTrapped && !isGhost; } @@ -245,6 +245,23 @@ export class TrappedTag extends BattlerTag { } } +/** + * BattlerTag implementing No Retreat's trapping effect. + * This is treated separately from other trapping effects to prevent + * Ghost-type Pokemon from being able to reuse the move. + * @extends TrappedTag + */ +class NoRetreatTag extends TrappedTag { + constructor(sourceId: number) { + super(BattlerTagType.NO_RETREAT, BattlerTagLapseType.CUSTOM, 0, Moves.NO_RETREAT, sourceId); + } + + /** overrides {@linkcode TrappedTag.apply}, removing the Ghost-type condition */ + canAdd(pokemon: Pokemon): boolean { + return !pokemon.getTag(TrappedTag); + } +} + /** * BattlerTag that represents the {@link https://bulbapedia.bulbagarden.net/wiki/Flinch Flinch} status condition */ @@ -864,7 +881,7 @@ export abstract class DamagingTrapTag extends TrappedTag { } canAdd(pokemon: Pokemon): boolean { - return !pokemon.isOfType(Type.GHOST) && !pokemon.findTag(t => t instanceof DamagingTrapTag); + return !pokemon.getTag(TrappedTag); } lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { @@ -1883,6 +1900,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source return new DrowsyTag(); case BattlerTagType.TRAPPED: return new TrappedTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId); + case BattlerTagType.NO_RETREAT: + return new NoRetreatTag(sourceId); case BattlerTagType.BIND: return new BindTag(turnCount, sourceId); case BattlerTagType.WRAP: diff --git a/src/data/move.ts b/src/data/move.ts index 95d306a61ba..3f87fc68b89 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -8553,7 +8553,7 @@ export function initMoves() { .partial(), new SelfStatusMove(Moves.NO_RETREAT, Type.FIGHTING, -1, 5, -1, 0, 8) .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true) - .attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, true, false, 1) + .attr(AddBattlerTagAttr, BattlerTagType.NO_RETREAT, true, false) .condition((user, target, move) => user.getTag(TrappedTag)?.sourceMove !== Moves.NO_RETREAT), // fails if the user is currently trapped by No Retreat new StatusMove(Moves.TAR_SHOT, Type.ROCK, 100, 15, -1, 0, 8) .attr(StatChangeAttr, BattleStat.SPD, -1) diff --git a/src/enums/battler-tag-type.ts b/src/enums/battler-tag-type.ts index 73580a107b2..20ceb1b331f 100644 --- a/src/enums/battler-tag-type.ts +++ b/src/enums/battler-tag-type.ts @@ -71,4 +71,5 @@ export enum BattlerTagType { BEAK_BLAST_CHARGING = "BEAK_BLAST_CHARGING", SHELL_TRAP = "SHELL_TRAP", DRAGON_CHEER = "DRAGON_CHEER", + NO_RETREAT = "NO_RETREAT", } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index b1fcd512e35..d8acddecedf 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -18,11 +18,11 @@ import { Status, StatusEffect, getRandomStatus } from "../data/status-effect"; import { pokemonEvolutions, pokemonPrevolutions, SpeciesFormEvolution, SpeciesEvolutionCondition, FusionSpeciesFormEvolution } from "../data/pokemon-evolutions"; import { reverseCompatibleTms, tmSpecies, tmPoolTiers } from "../data/tms"; import { BattleStat } from "../data/battle-stat"; -import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoostTag, TypeImmuneTag, getBattlerTag, SemiInvulnerableTag, TypeBoostTag, ExposedTag, DragonCheerTag, CritBoostTag } from "../data/battler-tags"; +import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoostTag, TypeImmuneTag, getBattlerTag, SemiInvulnerableTag, TypeBoostTag, ExposedTag, DragonCheerTag, CritBoostTag, TrappedTag } from "../data/battler-tags"; import { WeatherType } from "../data/weather"; import { TempBattleStat } from "../data/temp-battle-stat"; import { ArenaTagSide, NoCritTag, WeakenMoveScreenTag } from "../data/arena-tag"; -import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldBattleStatMultiplierAbAttrs, FieldMultiplyBattleStatAbAttr, AddSecondStrikeAbAttr, IgnoreOpponentEvasionAbAttr, UserFieldStatusEffectImmunityAbAttr, UserFieldBattlerTagImmunityAbAttr, BattlerTagImmunityAbAttr, MoveTypeChangeAbAttr, FullHpResistTypeAbAttr } from "../data/ability"; +import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldBattleStatMultiplierAbAttrs, FieldMultiplyBattleStatAbAttr, AddSecondStrikeAbAttr, IgnoreOpponentEvasionAbAttr, UserFieldStatusEffectImmunityAbAttr, UserFieldBattlerTagImmunityAbAttr, BattlerTagImmunityAbAttr, MoveTypeChangeAbAttr, FullHpResistTypeAbAttr, applyCheckTrappedAbAttrs, CheckTrappedAbAttr } from "../data/ability"; import PokemonData from "../system/pokemon-data"; import { BattlerIndex } from "../battle"; import { Mode } from "../ui/ui"; @@ -1210,6 +1210,28 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return !!this.getTag(GroundedTag) || (!this.isOfType(Type.FLYING, true, true) && !this.hasAbility(Abilities.LEVITATE) && !this.getTag(BattlerTagType.MAGNET_RISEN) && !this.getTag(SemiInvulnerableTag)); } + /** + * Determines whether this Pokemon is prevented from running or switching due + * to effects from moves and/or abilities. + * @param trappedAbMessages `string[]` If defined, ability trigger messages + * (e.g. from Shadow Tag) are forwarded through this array. + * @param simulated `boolean` if `true`, applies abilities via simulated calls. + * @returns + */ + isTrapped(trappedAbMessages: string[] = [], simulated: boolean = true): boolean { + if (this.isOfType(Type.GHOST)) { + return false; + } + + const trappedByAbility = new Utils.BooleanHolder(false); + + this.scene.getEnemyField()!.forEach(enemyPokemon => + applyCheckTrappedAbAttrs(CheckTrappedAbAttr, enemyPokemon, trappedByAbility, this, trappedAbMessages, simulated) + ); + + return (trappedByAbility.value || !!this.getTag(TrappedTag)); + } + /** * Calculates the type of a move when used by this Pokemon after * type-changing move and ability attributes have applied. diff --git a/src/phases/command-phase.ts b/src/phases/command-phase.ts index 68ede826d95..9681a6eeee8 100644 --- a/src/phases/command-phase.ts +++ b/src/phases/command-phase.ts @@ -1,21 +1,18 @@ -import BattleScene from "#app/battle-scene.js"; -import { TurnCommand, BattleType } from "#app/battle.js"; -import { applyCheckTrappedAbAttrs, CheckTrappedAbAttr } from "#app/data/ability.js"; -import { TrappedTag, EncoreTag } from "#app/data/battler-tags.js"; -import { MoveTargetSet, getMoveTargets } from "#app/data/move.js"; -import { speciesStarters } from "#app/data/pokemon-species.js"; -import { Type } from "#app/data/type.js"; -import { Abilities } from "#app/enums/abilities.js"; -import { BattlerTagType } from "#app/enums/battler-tag-type.js"; -import { Biome } from "#app/enums/biome.js"; -import { Moves } from "#app/enums/moves.js"; -import { PokeballType } from "#app/enums/pokeball.js"; -import { FieldPosition, PlayerPokemon } from "#app/field/pokemon.js"; -import { getPokemonNameWithAffix } from "#app/messages.js"; -import { Command } from "#app/ui/command-ui-handler.js"; -import { Mode } from "#app/ui/ui.js"; +import BattleScene from "#app/battle-scene"; +import { TurnCommand, BattleType } from "#app/battle"; +import { TrappedTag, EncoreTag } from "#app/data/battler-tags"; +import { MoveTargetSet, getMoveTargets } from "#app/data/move"; +import { speciesStarters } from "#app/data/pokemon-species"; +import { Abilities } from "#app/enums/abilities"; +import { BattlerTagType } from "#app/enums/battler-tag-type"; +import { Biome } from "#app/enums/biome"; +import { Moves } from "#app/enums/moves"; +import { PokeballType } from "#app/enums/pokeball"; +import { FieldPosition, PlayerPokemon } from "#app/field/pokemon"; +import { getPokemonNameWithAffix } from "#app/messages"; +import { Command } from "#app/ui/command-ui-handler"; +import { Mode } from "#app/ui/ui"; import i18next from "i18next"; -import * as Utils from "#app/utils.js"; import { FieldPhase } from "./field-phase"; import { SelectTargetPhase } from "./select-target-phase"; @@ -77,7 +74,6 @@ export class CommandPhase extends FieldPhase { handleCommand(command: Command, cursor: integer, ...args: any[]): boolean { const playerPokemon = this.scene.getPlayerField()[this.fieldIndex]; - const enemyField = this.scene.getEnemyField(); let success: boolean; switch (command) { @@ -184,14 +180,9 @@ export class CommandPhase extends FieldPhase { this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); }, null, true); } else { - const trapTag = playerPokemon.findTag(t => t instanceof TrappedTag) as TrappedTag; - const trapped = new Utils.BooleanHolder(false); const batonPass = isSwitch && args[0] as boolean; const trappedAbMessages: string[] = []; - if (!batonPass) { - enemyField.forEach(enemyPokemon => applyCheckTrappedAbAttrs(CheckTrappedAbAttr, enemyPokemon, trapped, playerPokemon, trappedAbMessages, true)); - } - if (batonPass || (!trapTag && !trapped.value)) { + if (batonPass || !playerPokemon.isTrapped(trappedAbMessages)) { this.scene.currentBattle.turnCommands[this.fieldIndex] = isSwitch ? { command: Command.POKEMON, cursor: cursor, args: args } : { command: Command.RUN }; @@ -199,14 +190,27 @@ export class CommandPhase extends FieldPhase { if (!isSwitch && this.fieldIndex) { this.scene.currentBattle.turnCommands[this.fieldIndex - 1]!.skip = true; } - } else if (trapTag) { - if (trapTag.sourceMove === Moves.INGRAIN && trapTag.sourceId && this.scene.getPokemonById(trapTag.sourceId)?.isOfType(Type.GHOST)) { - success = true; + } else if (trappedAbMessages.length > 0) { + if (!isSwitch) { + this.scene.ui.setMode(Mode.MESSAGE); + } + this.scene.ui.showText(trappedAbMessages[0], null, () => { + this.scene.ui.showText("", 0); + if (!isSwitch) { + this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); + } + }, null, true); + } else { + const trapTag = playerPokemon.getTag(TrappedTag); + + // trapTag should be defined at this point, but just in case... + if (!trapTag) { this.scene.currentBattle.turnCommands[this.fieldIndex] = isSwitch ? { command: Command.POKEMON, cursor: cursor, args: args } : { command: Command.RUN }; break; } + if (!isSwitch) { this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); this.scene.ui.setMode(Mode.MESSAGE); @@ -224,16 +228,6 @@ export class CommandPhase extends FieldPhase { this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); } }, null, true); - } else if (trapped.value && trappedAbMessages.length > 0) { - if (!isSwitch) { - this.scene.ui.setMode(Mode.MESSAGE); - } - this.scene.ui.showText(trappedAbMessages[0], null, () => { - this.scene.ui.showText("", 0); - if (!isSwitch) { - this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); - } - }, null, true); } } break; diff --git a/src/phases/enemy-command-phase.ts b/src/phases/enemy-command-phase.ts index 5277b2666c7..d9bb08d6fae 100644 --- a/src/phases/enemy-command-phase.ts +++ b/src/phases/enemy-command-phase.ts @@ -1,9 +1,6 @@ -import BattleScene from "#app/battle-scene.js"; -import { BattlerIndex } from "#app/battle.js"; -import { applyCheckTrappedAbAttrs, CheckTrappedAbAttr } from "#app/data/ability.js"; -import { TrappedTag } from "#app/data/battler-tags.js"; -import { Command } from "#app/ui/command-ui-handler.js"; -import * as Utils from "#app/utils.js"; +import BattleScene from "#app/battle-scene"; +import { BattlerIndex } from "#app/battle"; +import { Command } from "#app/ui/command-ui-handler"; import { FieldPhase } from "./field-phase"; /** @@ -45,10 +42,7 @@ export class EnemyCommandPhase extends FieldPhase { if (trainer && !enemyPokemon.getMoveQueue().length) { const opponents = enemyPokemon.getOpponents(); - const trapTag = enemyPokemon.findTag(t => t instanceof TrappedTag) as TrappedTag; - const trapped = new Utils.BooleanHolder(false); - opponents.forEach(playerPokemon => applyCheckTrappedAbAttrs(CheckTrappedAbAttr, playerPokemon, trapped, enemyPokemon, [""], true)); - if (!trapTag && !trapped.value) { + if (!enemyPokemon.isTrapped()) { const partyMemberScores = trainer.getPartyMemberMatchupScores(enemyPokemon.trainerSlot, true); if (partyMemberScores.length) { From 781bfd831f1b137bf2d0834917cd3177c67ae689 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:55:07 -0400 Subject: [PATCH 058/116] [Localization] pokemon names, party-ui-handler, pokemon-info and pokemon-info-container localizations for italian (#3836) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Translate pokemon-info-container.json via GitLocalize * Translate pokemon-info.json via GitLocalize * Translate party-ui-handler.json via GitLocalize * Translate pokemon.json via GitLocalize --------- Co-authored-by: Niccolò --- src/locales/it/party-ui-handler.json | 87 ++++++++++++---------- src/locales/it/pokemon-info-container.json | 5 +- src/locales/it/pokemon.json | 24 +++++- 3 files changed, 72 insertions(+), 44 deletions(-) diff --git a/src/locales/it/party-ui-handler.json b/src/locales/it/party-ui-handler.json index f5582e5b630..95466779727 100644 --- a/src/locales/it/party-ui-handler.json +++ b/src/locales/it/party-ui-handler.json @@ -1,42 +1,47 @@ { - "SEND_OUT": "Manda in campo", - "SUMMARY": "Sommario", - "CANCEL": "Annulla", - "RELEASE": "Rilascia", - "APPLY": "Applica", - "TEACH": "Insegna", - "SPLICE": "Unisci", - "UNSPLICE": "Dividi", - "ACTIVATE": "Attiva", - "DEACTIVATE": "Disattiva", - "TRANSFER": "Trasferisci", - "ALL": "Tutto", - "PASS_BATON": "Staffetta", - "UNPAUSE_EVOLUTION": "Consenti evoluzione", - "REVIVE": "Revitalizza", - "RENAME": "Rinomina", - "choosePokemon": "Scegli un Pokémon.", - "doWhatWithThisPokemon": "Hai selezionato questo Pokémon.", - "noEnergy": "{{pokemonName}} non ha più energie\nper lottare!", - "hasEnergy": "{{pokemonName}} ha ancora energie\nper lottare!", - "cantBeUsed": "{{pokemonName}} non può essere usato\nin questa sfida!", - "tooManyItems": "{{pokemonName}} possiede già\nquest'oggetto in abbondanza!", - "anyEffect": "Non avrebbe alcun effetto.", - "unpausedEvolutions": "{{pokemonName}} può di nuovo evolversi.", - "unspliceConfirmation": "Vuoi davvero dividere {{fusionName}}\nda {{pokemonName}}? {{fusionName}} andrà perduto.", - "wasReverted": "{{fusionName}} è tornato ad essere {{pokemonName}}.", - "releaseConfirmation": "Vuoi davvero liberare {{pokemonName}}?", - "releaseInBattle": "Non puoi liberare un Pokémon che sta combattendo!", - "selectAMove": "Scegli una mossa.", - "changeQuantity": "Scegli un oggetto da trasferire.\nUsa < e > per cambiarne la quantità.", - "selectAnotherPokemonToSplice": "Scegli un altro Pokémon da unire.", - "cancel": "Annulla", - "goodbye": "Addio, {{pokemonName}}!", - "byebye": "Ciao ciao, {{pokemonName}}!", - "farewell": "Arrivederci, {{pokemonName}}!", - "soLong": "È stato bello, {{pokemonName}}!", - "thisIsWhereWePart": "Le nostre strade si dividono, {{pokemonName}}!", - "illMissYou": "Mi mancherai, {{pokemonName}}!", - "illNeverForgetYou": "Non ti dimenticherò, {{pokemonName}}!", - "untilWeMeetAgain": "Alla prossima, {{pokemonName}}!" - } \ No newline at end of file + "SEND_OUT": "Manda in campo", + "SUMMARY": "Sommario", + "CANCEL": "Annulla", + "RELEASE": "Rilascia", + "APPLY": "Applica", + "TEACH": "Insegna", + "SPLICE": "Unisci", + "UNSPLICE": "Dividi", + "ACTIVATE": "Attiva", + "DEACTIVATE": "Disattiva", + "TRANSFER": "Trasferisci", + "ALL": "Tutto", + "PASS_BATON": "Staffetta", + "UNPAUSE_EVOLUTION": "Consenti evoluzione", + "REVIVE": "Revitalizza", + "RENAME": "Rinomina", + "choosePokemon": "Scegli un Pokémon.", + "doWhatWithThisPokemon": "Hai selezionato questo Pokémon.", + "noEnergy": "{{pokemonName}} non ha più energie\nper lottare!", + "hasEnergy": "{{pokemonName}} ha ancora energie\nper lottare!", + "cantBeUsed": "{{pokemonName}} non può essere usato\nin questa sfida!", + "tooManyItems": "{{pokemonName}} possiede già\nquest'oggetto in abbondanza!", + "anyEffect": "Non avrebbe alcun effetto.", + "unpausedEvolutions": "{{pokemonName}} può di nuovo evolversi.", + "unspliceConfirmation": "Vuoi davvero dividere {{fusionName}}\nda {{pokemonName}}? {{fusionName}} andrà perduto.", + "wasReverted": "{{fusionName}} è tornato ad essere {{pokemonName}}.", + "releaseConfirmation": "Vuoi davvero liberare {{pokemonName}}?", + "releaseInBattle": "Non puoi liberare un Pokémon che sta combattendo!", + "selectAMove": "Scegli una mossa.", + "changeQuantity": "Scegli un oggetto da trasferire.\nUsa < e > per cambiarne la quantità.", + "selectAnotherPokemonToSplice": "Scegli un altro Pokémon da unire.", + "cancel": "Annulla", + "able": "Sì!", + "notAble": "No!", + "learned": "La conosce!", + "goodbye": "Addio, {{pokemonName}}!", + "byebye": "Ciao ciao, {{pokemonName}}!", + "farewell": "Arrivederci, {{pokemonName}}!", + "soLong": "È stato bello, {{pokemonName}}!", + "thisIsWhereWePart": "Le nostre strade si dividono, {{pokemonName}}!", + "illMissYou": "Mi mancherai, {{pokemonName}}!", + "illNeverForgetYou": "Non ti dimenticherò, {{pokemonName}}!", + "untilWeMeetAgain": "Alla prossima, {{pokemonName}}!", + "sayonara": "Sayonara, {{pokemonName}}!", + "smellYaLater": "Ci becchiamo, {{pokemonName}}!" +} diff --git a/src/locales/it/pokemon-info-container.json b/src/locales/it/pokemon-info-container.json index c3cc8d49ce1..f3de9081ebc 100644 --- a/src/locales/it/pokemon-info-container.json +++ b/src/locales/it/pokemon-info-container.json @@ -2,5 +2,6 @@ "moveset": "Set di mosse", "gender": "Genere:", "ability": "Abilità:", - "nature": "Natura:" -} \ No newline at end of file + "nature": "Natura:", + "form": "Forma:" +} diff --git a/src/locales/it/pokemon.json b/src/locales/it/pokemon.json index 9e26dfeeb6e..dcc4cc7f310 100644 --- a/src/locales/it/pokemon.json +++ b/src/locales/it/pokemon.json @@ -1 +1,23 @@ -{} \ No newline at end of file +{ + "type_null": "Tipo Zero", + "great_tusk": "Grandizanne", + "scream_tail": "Codaurlante", + "brute_bonnet": "Fungofurioso", + "flutter_mane": "Crinealato", + "slither_wing": "Alirasenti", + "sandy_shocks": "Peldisabbia", + "iron_treads": "Solcoferreo", + "iron_bundle": "Saccoferreo", + "iron_hands": "Manoferrea", + "iron_jugulis": "Colloferreo", + "iron_moth": "Falenaferrea", + "iron_thorns": "Spineferree", + "roaring_moon": "Lunaruggente", + "iron_valiant": "Eroeferreo", + "walking_wake": "Acquecrespe", + "iron_leaves": "Fogliaferrea", + "gouging_fire": "Vampeaguzze", + "raging_bolt": "Furiatonante", + "iron_boulder": "Massoferreo", + "iron_crown": "Capoferreo" +} From 08fe9e1e2134045b1f542875168b0062489410a5 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:57:28 -0400 Subject: [PATCH 059/116] [Localization(fr)] Translate trainer-classes.json (#3882) Co-authored-by: Lugiad --- src/locales/fr/trainer-classes.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/fr/trainer-classes.json b/src/locales/fr/trainer-classes.json index cebdadf09e9..b7027cf544f 100644 --- a/src/locales/fr/trainer-classes.json +++ b/src/locales/fr/trainer-classes.json @@ -101,8 +101,8 @@ "workers": "Ouvriers", "youngster": "Gamin", "rocket_grunt": "Sbire de la Team Rocket", - "rocket_grunt_female": "Sbire de la Team Rocket", "rocket_grunts": "Sbires de la Team Rocket", + "rocket_grunt_female": "Sbire de la Team Rocket", "magma_grunt": "Sbire de la Team Magma", "magma_grunt_female": "Sbire de la Team Magma", "magma_grunts": "Sbires de la Team Magma", @@ -123,6 +123,7 @@ "aether_grunts": "Employés de la Fondation Æther", "skull_grunt": "Sbire de la Team Skull", "skull_grunt_female": "Sbire de la Team Skull", + "skull_grunts": "Sbires de la Team Skull", "macro_grunt": "Employé de Macro Cosmos", "macro_grunt_female": "Employée de Macro Cosmos", "macro_grunts": "Employés de Macro Cosmos" From 8edb9ca65b1b8a02c1a33421cf04605e22891a2a Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:57:48 -0400 Subject: [PATCH 060/116] [Localizaiton(pt_br)] Translate pokemon-summary.json via GitLocalize (#3868) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: José Ricardo --- src/locales/pt_BR/pokemon-summary.json | 29 +++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/locales/pt_BR/pokemon-summary.json b/src/locales/pt_BR/pokemon-summary.json index 62add589847..4c427dbac4f 100644 --- a/src/locales/pt_BR/pokemon-summary.json +++ b/src/locales/pt_BR/pokemon-summary.json @@ -13,5 +13,32 @@ "metFragment": { "normal": "encontrado no Nv.{{level}},\n{{biome}}.", "apparently": "aparentemente encontrado no Nv.{{level}},\n{{biome}}." + }, + "natureFragment": { + "Hardy": "{{nature}}", + "Lonely": "{{nature}}", + "Brave": "{{nature}}", + "Adamant": "{{nature}}", + "Naughty": "{{nature}}", + "Bold": "{{nature}}", + "Docile": "{{nature}}", + "Relaxed": "{{nature}}", + "Impish": "{{nature}}", + "Lax": "{{nature}}", + "Timid": "{{nature}}", + "Hasty": "{{nature}}", + "Serious": "{{nature}}", + "Jolly": "{{nature}}", + "Naive": "{{nature}}", + "Modest": "{{nature}}", + "Mild": "{{nature}}", + "Quiet": "{{nature}}", + "Bashful": "{{nature}}", + "Rash": "{{nature}}", + "Calm": "{{nature}}", + "Gentle": "{{nature}}", + "Sassy": "{{nature}}", + "Careful": "{{nature}}", + "Quirky": "{{nature}}" } -} \ No newline at end of file +} From 51ab51cc645b60b494ed1333c42a260e563145ca Mon Sep 17 00:00:00 2001 From: Blitzy <118096277+Blitz425@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:08:43 -0500 Subject: [PATCH 061/116] [Balance Hotfix] GMax Butterfree tinted lens -> compound eyes (#3967) --- src/data/pokemon-species.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 17f2de794ae..3335f8112f8 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -944,7 +944,7 @@ export function initSpecies() { new PokemonSpecies(Species.METAPOD, 1, false, false, false, "Cocoon Pokémon", Type.BUG, null, 0.7, 9.9, Abilities.SHED_SKIN, Abilities.NONE, Abilities.SHED_SKIN, 205, 50, 20, 55, 25, 25, 30, 120, 50, 72, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.BUTTERFREE, 1, false, false, false, "Butterfly Pokémon", Type.BUG, Type.FLYING, 1.1, 32, Abilities.COMPOUND_EYES, Abilities.NONE, Abilities.TINTED_LENS, 395, 60, 45, 50, 90, 80, 70, 45, 50, 198, GrowthRate.MEDIUM_FAST, 50, true, true, new PokemonForm("Normal", "", Type.BUG, Type.FLYING, 1.1, 32, Abilities.COMPOUND_EYES, Abilities.NONE, Abilities.TINTED_LENS, 395, 60, 45, 50, 90, 80, 70, 45, 50, 198, true, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.BUG, Type.FLYING, 17, 32, Abilities.TINTED_LENS, Abilities.TINTED_LENS, Abilities.TINTED_LENS, 495, 85, 35, 80, 120, 90, 85, 45, 50, 198, true), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.BUG, Type.FLYING, 17, 32, Abilities.COMPOUND_EYES, Abilities.COMPOUND_EYES, Abilities.COMPOUND_EYES, 495, 85, 35, 80, 120, 90, 85, 45, 50, 198, true), ), new PokemonSpecies(Species.WEEDLE, 1, false, false, false, "Hairy Bug Pokémon", Type.BUG, Type.POISON, 0.3, 3.2, Abilities.SHIELD_DUST, Abilities.NONE, Abilities.RUN_AWAY, 195, 40, 35, 30, 20, 20, 50, 255, 70, 39, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.KAKUNA, 1, false, false, false, "Cocoon Pokémon", Type.BUG, Type.POISON, 0.6, 10, Abilities.SHED_SKIN, Abilities.NONE, Abilities.SHED_SKIN, 205, 45, 25, 50, 25, 25, 35, 120, 70, 72, GrowthRate.MEDIUM_FAST, 50, false), From c4c9cf939eaa9118bf0350bae495a6bdd6068401 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:09:46 -0700 Subject: [PATCH 062/116] [Bug] Moved RNG call if the Pokemon's ability hasn't been determined (#3966) Co-authored-by: frutescens --- src/field/pokemon.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index d8acddecedf..16ad96f61cc 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -133,9 +133,6 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.scene.applyModifiers(HiddenAbilityRateBoosterModifier, true, hiddenAbilityChance); } - const hasHiddenAbility = !Utils.randSeedInt(hiddenAbilityChance.value); - const randAbilityIndex = Utils.randSeedInt(2); - this.species = species; this.pokeball = dataSource?.pokeball || PokeballType.POKEBALL; this.level = level; @@ -146,6 +143,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.abilityIndex = abilityIndex; // Use the provided ability index if it is defined } else { // If abilityIndex is not provided, determine it based on species and hidden ability + const hasHiddenAbility = !Utils.randSeedInt(hiddenAbilityChance.value); + const randAbilityIndex = Utils.randSeedInt(2); if (species.abilityHidden && hasHiddenAbility) { // If the species has a hidden ability and the hidden ability is present this.abilityIndex = 2; From 0671a244a86c6f9711c64586d3932f3bc7db9b0b Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:16:54 -0400 Subject: [PATCH 063/116] [Localisation] [ES] Reviewed and finished ability.json and bgm-name.json (#3920) * Translate ability.json via GitLocalize * Translate ability.json via GitLocalize * Translate bgm-name.json via GitLocalize --------- Co-authored-by: Asdar Co-authored-by: LilyAlternis --- src/locales/es/ability.json | 752 +++++++++++++++++------------------ src/locales/es/bgm-name.json | 218 +++++----- 2 files changed, 487 insertions(+), 483 deletions(-) diff --git a/src/locales/es/ability.json b/src/locales/es/ability.json index 807cc755c94..598694f441e 100644 --- a/src/locales/es/ability.json +++ b/src/locales/es/ability.json @@ -1,1242 +1,1242 @@ { "stench": { - "name": "Hedor", + "name": "Hedor", "description": "Puede amedrentar a un Pokémon al atacarlo debido al mal olor que emana." }, "drizzle": { - "name": "Llovizna", + "name": "Llovizna", "description": "Hace que llueva al entrar en combate." }, "speedBoost": { - "name": "Impulso", + "name": "Impulso", "description": "Aumenta su Velocidad en cada turno." }, "battleArmor": { - "name": "Armadura Batalla", + "name": "Armadura Batalla", "description": "La robusta coraza que lo protege bloquea los golpes críticos." }, "sturdy": { - "name": "Robustez", + "name": "Robustez", "description": "El Pokémon no puede debilitarse de un solo golpe cuando tiene los PS al máximo. También evita los movimientos fulminantes." }, "damp": { - "name": "Humedad", + "name": "Humedad", "description": "Aumenta la humedad del entorno y evita que se puedan utilizar movimientos explosivos, tales como Autodestrucción." }, "limber": { - "name": "Flexibilidad", + "name": "Flexibilidad", "description": "Evita ser paralizado gracias a la flexibilidad de su cuerpo." }, "sandVeil": { - "name": "Velo Arena", + "name": "Velo Arena", "description": "Aumenta su Evasión durante las tormentas de arena." }, "static": { - "name": "Elec. Estática", + "name": "Elec. Estática", "description": "La electricidad estática que lo envuelve puede paralizar al Pokémon que lo ataque con un movimiento de contacto." }, "voltAbsorb": { - "name": "Absorbe Elec", + "name": "Absorbe Elec", "description": "Si lo alcanza un movimiento de tipo Eléctrico, recupera PS en vez de sufrir daño." }, "waterAbsorb": { - "name": "Absorbe Agua", + "name": "Absorbe Agua", "description": "Si lo alcanza un movimiento de tipo Agua, recupera PS en vez de sufrir daño." }, "oblivious": { - "name": "Despiste", + "name": "Despiste", "description": "Su indiferencia evita que sea provocado, caiga presa del enamoramiento o sufra los efectos de Intimidación." }, "cloudNine": { - "name": "Aclimatación", + "name": "Aclimatación", "description": "Anula todos los efectos del tiempo atmosférico." }, "compoundEyes": { - "name": "Ojo Compuesto", + "name": "Ojo Compuesto", "description": "Aumenta la precisión de sus movimientos." }, "insomnia": { - "name": "Insomnio", + "name": "Insomnio", "description": "Su resistencia al sueño le impide quedarse dormido." }, "colorChange": { - "name": "Cambio Color", + "name": "Cambio Color", "description": "Adopta el tipo del último movimiento del que es blanco." }, "immunity": { - "name": "Inmunidad", + "name": "Inmunidad", "description": "Su sistema inmunitario evita el envenenamiento." }, "flashFire": { - "name": "Absorbe Fuego", + "name": "Absorbe Fuego", "description": "Si lo alcanza algún movimiento de tipo Fuego, potencia sus propios movimientos de dicho tipo." }, "shieldDust": { - "name": "Polvo Escudo", + "name": "Polvo Escudo", "description": "El polvo de escamas que lo envuelve lo protege de los efectos secundarios de los ataques recibidos." }, "ownTempo": { - "name": "Ritmo Propio", + "name": "Ritmo Propio", "description": "Como le gusta hacer las cosas a su manera, no le afecta la confusión ni sufre los efectos de Intimidación." }, "suctionCups": { - "name": "Ventosas", + "name": "Ventosas", "description": "Sus ventosas se aferran al suelo, con lo cual anula movimientos y objetos que fuercen el cambio de Pokémon." }, "intimidate": { - "name": "Intimidación", + "name": "Intimidación", "description": "Al entrar en combate, amilana al rival de tal manera que reduce su Ataque." }, "shadowTag": { - "name": "Sombra Trampa", + "name": "Sombra Trampa", "description": "Pisa la sombra del rival para impedir que huya o lo cambien por otro." }, "roughSkin": { - "name": "Piel Tosca", + "name": "Piel Tosca", "description": "Hiere con su piel áspera al Pokémon que lo ataque con un movimiento de contacto." }, "wonderGuard": { - "name": "Superguarda", + "name": "Superguarda", "description": "Gracias a un poder misterioso, solo le hacen daño los movimientos supereficaces." }, "levitate": { - "name": "Levitación", + "name": "Levitación", "description": "Su capacidad de flotar sobre el suelo le proporciona inmunidad frente a los movimientos de tipo Tierra." }, "effectSpore": { - "name": "Efecto Espora", + "name": "Efecto Espora", "description": "Puede dormir, envenenar o paralizar al Pokémon que lo ataque con un movimiento de contacto." }, "synchronize": { - "name": "Sincronía", + "name": "Sincronía", "description": "Contagia el envenenamiento, las quemaduras o la parálisis al Pokémon que le cause ese estado." }, "clearBody": { - "name": "Cuerpo Puro", + "name": "Cuerpo Puro", "description": "Evita que se reduzcan sus características a causa de movimientos o habilidades de otros Pokémon." }, "naturalCure": { - "name": "Cura Natural", + "name": "Cura Natural", "description": "Sus problemas de estado desaparecen cuando se retira del combate." }, "lightningRod": { - "name": "Pararrayos", + "name": "Pararrayos", "description": "Atrae y neutraliza los movimientos de tipo Eléctrico, que además le aumentan el Ataque Especial." }, "sereneGrace": { - "name": "Dicha", + "name": "Dicha", "description": "Aumenta la probabilidad de que los movimientos causen efectos secundarios." }, "swiftSwim": { - "name": "Nado Rápido", + "name": "Nado Rápido", "description": "Aumenta su Velocidad cuando llueve." }, "chlorophyll": { - "name": "Clorofila", + "name": "Clorofila", "description": "Aumenta su Velocidad cuando hace sol." }, "illuminate": { - "name": "Iluminación", + "name": "Iluminación", "description": "Al iluminar el entorno, evita que su Precisión se reduzca." }, "trace": { - "name": "Calco", + "name": "Calco", "description": "Copia la habilidad del rival al entrar en combate." }, "hugePower": { - "name": "Potencia", + "name": "Potencia", "description": "Duplica la potencia de sus ataques físicos." }, "poisonPoint": { - "name": "Punto Tóxico", + "name": "Punto Tóxico", "description": "Puede envenenar al Pokémon que lo ataque con un movimiento de contacto." }, "innerFocus": { - "name": "Fuerza Mental", + "name": "Fuerza Mental", "description": "Gracias a su profunda concentración, no se amedrenta ante los ataques de otros Pokémon ni sufre los efectos de Intimidación." }, "magmaArmor": { - "name": "Escudo Magma", + "name": "Escudo Magma", "description": "Gracias al magma candente que lo envuelve, no puede ser congelado." }, "waterVeil": { - "name": "Velo Agua", + "name": "Velo Agua", "description": "Evita las quemaduras gracias a la capa de agua que lo envuelve." }, "magnetPull": { - "name": "Imán", + "name": "Imán", "description": "Su magnetismo atrae a los Pokémon de tipo Acero y les impide huir o ser cambiados por otros." }, "soundproof": { - "name": "Insonorizar", + "name": "Insonorizar", "description": "Su aislamiento acústico lo protege de movimientos que usan sonido." }, "rainDish": { - "name": "Cura Lluvia", + "name": "Cura Lluvia", "description": "Recupera PS de forma gradual cuando llueve." }, "sandStream": { - "name": "Chorro Arena", + "name": "Chorro Arena", "description": "Crea una tormenta de arena al entrar en combate." }, "pressure": { - "name": "Presión", + "name": "Presión", "description": "Presiona al rival de tal manera que este consume más PP al usar sus movimientos." }, "thickFat": { - "name": "Sebo", + "name": "Sebo", "description": "Gracias a la gruesa capa de grasa que lo protege, reduce a la mitad el daño que recibe de ataques de tipo Fuego o Hielo." }, "earlyBird": { - "name": "Madrugar", + "name": "Madrugar", "description": "Si se duerme, tardará la mitad de tiempo en despertarse." }, "flameBody": { - "name": "Cuerpo Llama", + "name": "Cuerpo Llama", "description": "Puede quemar al Pokémon que lo ataque con un movimiento de contacto." }, "runAway": { - "name": "Fuga", + "name": "Fuga", "description": "Puede escapar de cualquier Pokémon salvaje." }, "keenEye": { - "name": "Vista Lince", + "name": "Vista Lince", "description": "Su aguda vista evita que su Precisión se reduzca." }, "hyperCutter": { - "name": "Corte Fuerte", + "name": "Corte Fuerte", "description": "Evita que otros Pokémon le reduzcan el Ataque." }, "pickup": { - "name": "Recogida", - "description": "Puede recoger objetos que otros Pokémon hayan usado, o bien aquellos que encuentre en plena aventura." + "name": "Recogida", + "description": "Puede que recoja un objeto del enemigo tras cada batalla, al azar." }, "truant": { - "name": "Pereza", + "name": "Pereza", "description": "Al ejecutar un movimiento, descansará en el turno siguiente." }, "hustle": { - "name": "Entusiasmo", - "description": "Aumenta su Ataque, pero reduce su Precisión." + "name": "Entusiasmo", + "description": "Aumenta su ataque, pero reduce su precisión." }, "cuteCharm": { - "name": "Gran Encanto", + "name": "Gran Encanto", "description": "Puede causar enamoramiento al Pokémon que lo ataque con un movimiento de contacto." }, "plus": { - "name": "Más", - "description": "Aumenta su Ataque Especial si un Pokémon aliado tiene la habilidad Más o la habilidad Menos." + "name": "Más", + "description": "Aumenta su ataque especial si un Pokémon aliado tiene la habilidad Más o la habilidad Menos." }, "minus": { - "name": "Menos", - "description": "Aumenta su Ataque Especial si un Pokémon aliado tiene la habilidad Más o la habilidad Menos." + "name": "Menos", + "description": "Aumenta su ataque especial si un Pokémon aliado tiene la habilidad Más o la habilidad Menos." }, "forecast": { - "name": "Predicción", + "name": "Predicción", "description": "Cambia a tipo Agua, Fuego o Hielo en función del tiempo atmosférico." }, "stickyHold": { - "name": "Viscosidad", + "name": "Viscosidad", "description": "Los objetos se quedan pegados a su cuerpo, por lo que no pueden robárselos." }, "shedSkin": { - "name": "Mudar", + "name": "Mudar", "description": "Puede curar sus problemas de estado al mudar la piel." }, "guts": { - "name": "Agallas", - "description": "Si sufre un problema de estado, se arma de valor y aumenta su Ataque." + "name": "Agallas", + "description": "Si sufre un problema de estado, se arma de valor y aumenta su ataque." }, "marvelScale": { - "name": "Escama Especial", - "description": "Si sufre un problema de estado, sus escamas especiales reaccionan y aumenta su Defensa." + "name": "Escama Especial", + "description": "Si sufre un problema de estado, sus escamas especiales reaccionan y aumenta su defensa." }, "liquidOoze": { - "name": "Viscosecreción", + "name": "Viscosecreción", "description": "Exuda una secreción viscosa y tóxica de intenso hedor que hiere a quienes intentan drenarle PS." }, "overgrow": { - "name": "Espesura", + "name": "Espesura", "description": "Potencia sus movimientos de tipo Planta cuando le quedan pocos PS." }, "blaze": { - "name": "Mar Llamas", + "name": "Mar Llamas", "description": "Potencia sus movimientos de tipo Fuego cuando le quedan pocos PS." }, "torrent": { - "name": "Torrente", + "name": "Torrente", "description": "Potencia sus movimientos de tipo Agua cuando le quedan pocos PS." }, "swarm": { - "name": "Enjambre", + "name": "Enjambre", "description": "Potencia sus movimientos de tipo Bicho cuando le quedan pocos PS." }, "rockHead": { - "name": "Cabeza Roca", + "name": "Cabeza Roca", "description": "No pierde PS al usar movimientos que también hieren al usuario." }, "drought": { - "name": "Sequía", + "name": "Sequía", "description": "El tiempo pasa a ser soleado al entrar en combate." }, "arenaTrap": { - "name": "Trampa Arena", + "name": "Trampa Arena", "description": "Evita que el rival huya o sea cambiado por otro." }, "vitalSpirit": { - "name": "Espíritu Vital", + "name": "Espíritu Vital", "description": "Su determinación le impide quedarse dormido." }, "whiteSmoke": { - "name": "Humo Blanco", + "name": "Humo Blanco", "description": "El humo blanco que lo protege evita que otros Pokémon le reduzcan las características." }, "purePower": { - "name": "Energía Pura", + "name": "Energía Pura", "description": "Duplica la potencia de sus ataques físicos gracias al yoga." }, "shellArmor": { - "name": "Caparazón", + "name": "Caparazón", "description": "La robusta coraza que lo protege bloquea los golpes críticos." }, "airLock": { - "name": "Esclusa de Aire", + "name": "Esclusa de Aire", "description": "Neutraliza todos los efectos del tiempo atmosférico." }, "tangledFeet": { - "name": "Tumbos", - "description": "Aumenta su Evasión si está confuso." + "name": "Tumbos", + "description": "Aumenta su evasión si está confuso." }, "motorDrive": { - "name": "Electromotor", - "description": "Si lo alcanza un movimiento de tipo Eléctrico, aumenta su Velocidad en vez de sufrir daño." + "name": "Electromotor", + "description": "Si lo alcanza un movimiento de tipo Eléctrico, aumenta su velocidad en vez de sufrir daño." }, "rivalry": { - "name": "Rivalidad", + "name": "Rivalidad", "description": "Si el objetivo es del mismo sexo, su competitividad le lleva a infligir más daño. Si es del sexo contrario, en cambio, el daño será menor." }, "steadfast": { - "name": "Impasible", - "description": "Cada vez que se amedrenta, aumenta su Velocidad debido a su voluntad inquebrantable." + "name": "Impasible", + "description": "Cada vez que se amedrenta, aumenta su velocidad debido a su voluntad inquebrantable." }, "snowCloak": { - "name": "Manto Níveo", - "description": "Aumenta su Evasión cuando nieva." + "name": "Manto Níveo", + "description": "Aumenta su evasión cuando nieva." }, "gluttony": { - "name": "Gula", + "name": "Gula", "description": "Cuando sus PS se ven reducidos a la mitad, engulle la baya que normalmente solo se comería cuando le quedasen pocos PS." }, "angerPoint": { - "name": "Irascible", - "description": "Si recibe un golpe crítico, monta en cólera y su Ataque aumenta al máximo." + "name": "Irascible", + "description": "Si recibe un golpe crítico, monta en cólera y su ataque aumenta al máximo." }, "unburden": { - "name": "Liviano", - "description": "Aumenta su Velocidad si usa o pierde el objeto que lleva." + "name": "Liviano", + "description": "Aumenta su velocidad si usa o pierde el objeto que lleva." }, "heatproof": { - "name": "Ignífugo", + "name": "Ignífugo", "description": "Su cuerpo, resistente al calor, reduce a la mitad el daño recibido por movimientos de tipo Fuego." }, "simple": { - "name": "Simple", + "name": "Simple", "description": "Duplica los cambios en las características." }, "drySkin": { - "name": "Piel Seca", + "name": "Piel Seca", "description": "Pierde PS si hace sol y los recupera si llueve o recibe un movimiento de tipo Agua. Los movimientos de tipo Fuego, por su parte, le hacen más daño de lo normal." }, "download": { - "name": "Descarga", - "description": "Compara la Defensa y la Defensa Especial del rival para ver cuál es inferior y aumenta su propio Ataque o Ataque Especial según sea lo más eficaz." + "name": "Descarga", + "description": "Compara la defensa y la defensa especial del rival para ver cuál es inferior y aumenta su propio ataque o ataque especial según sea lo más eficaz." }, "ironFist": { - "name": "Puño Férreo", + "name": "Puño Férreo", "description": "Aumenta la potencia de los movimientos con los puños." }, "poisonHeal": { - "name": "Antídoto", + "name": "Antídoto", "description": "Si resulta envenenado, recupera PS en vez de perderlos." }, "adaptability": { - "name": "Adaptable", + "name": "Adaptable", "description": "Potencia aún más los movimientos cuyo tipo coincida con el suyo." }, "skillLink": { - "name": "Encadenado", + "name": "Encadenado", "description": "Ejecuta siempre los movimientos de ataque múltiple con el número máximo de golpes." }, "hydration": { - "name": "Hidratación", + "name": "Hidratación", "description": "Cura los problemas de estado si está lloviendo." }, "solarPower": { - "name": "Poder Solar", - "description": "Si hace sol, aumenta su Ataque Especial, pero pierde PS en cada turno." + "name": "Poder Solar", + "description": "Si hace sol, aumenta su ataque especial, pero pierde PS en cada turno." }, "quickFeet": { - "name": "Pies Rápidos", - "description": "Aumenta su Velocidad si sufre problemas de estado." + "name": "Pies Rápidos", + "description": "Aumenta su velocidad si sufre problemas de estado." }, "normalize": { - "name": "Normalidad", + "name": "Normalidad", "description": "Hace que todos sus movimientos se vuelvan de tipo Normal y aumenta ligeramente su potencia." }, "sniper": { - "name": "Francotirador", + "name": "Francotirador", "description": "Potencia los golpes críticos que asesta aún más de lo normal." }, "magicGuard": { - "name": "Muro Mágico", + "name": "Muro Mágico", "description": "Solo recibe daño de ataques." }, "noGuard": { - "name": "Indefenso", + "name": "Indefenso", "description": "Al quedar ambos expuestos, tanto sus movimientos como los del Pokémon que lo ataque acertarán siempre." }, "stall": { - "name": "Rezagado", + "name": "Rezagado", "description": "Ejecuta su movimiento tras todos los demás." }, "technician": { - "name": "Experto", + "name": "Experto", "description": "Aumenta la potencia de sus movimientos débiles." }, "leafGuard": { - "name": "Defensa Hoja", + "name": "Defensa Hoja", "description": "Evita los problemas de estado si hace sol." }, "klutz": { - "name": "Zoquete", + "name": "Zoquete", "description": "No puede usar objetos equipados." }, "moldBreaker": { - "name": "Rompemoldes", + "name": "Rompemoldes", "description": "Sus movimientos no se ven afectados por la habilidad del objetivo." }, "superLuck": { - "name": "Afortunado", + "name": "Afortunado", "description": "Su buena suerte aumenta la probabilidad de asestar golpes críticos." }, "aftermath": { - "name": "Detonación", + "name": "Detonación", "description": "Daña al Pokémon que le ha dado el golpe de gracia con un movimiento de contacto." }, "anticipation": { - "name": "Anticipación", + "name": "Anticipación", "description": "Prevé los movimientos peligrosos del rival." }, "forewarn": { - "name": "Alerta", + "name": "Alerta", "description": "Revela uno de los movimientos del rival al entrar en combate." }, "unaware": { - "name": "Ignorante", + "name": "Ignorante", "description": "Pasa por alto los cambios en las características de un Pokémon al atacarlo o recibir daño." }, "tintedLens": { - "name": "Cromolente", + "name": "Cromolente", "description": "Potencia los movimientos que no son muy eficaces, que infligen ahora un daño normal." }, "filter": { - "name": "Filtro", + "name": "Filtro", "description": "Mitiga el daño que le infligen los movimientos supereficaces." }, "slowStart": { - "name": "Inicio Lento", - "description": "Reduce a la mitad su Ataque y su Velocidad durante cinco turnos." + "name": "Inicio Lento", + "description": "Reduce a la mitad su ataque y su velocidad durante cinco turnos." }, "scrappy": { - "name": "Intrépido", + "name": "Intrépido", "description": "Alcanza a Pokémon de tipo Fantasma con movimientos de tipo Normal o Lucha. Además, no sufre los efectos de Intimidación." }, "stormDrain": { - "name": "Colector", - "description": "Atrae y neutraliza los movimientos de tipo Agua, que además le aumentan el Ataque Especial." + "name": "Colector", + "description": "Atrae y neutraliza los movimientos de tipo Agua, que además le aumentan el ataque especial." }, "iceBody": { - "name": "Gélido", + "name": "Gélido", "description": "Recupera PS de forma gradual cuando nieva." }, "solidRock": { - "name": "Roca Sólida", + "name": "Roca Sólida", "description": "Mitiga el daño que le infligen los movimientos supereficaces." }, "snowWarning": { - "name": "Nevada", + "name": "Nevada", "description": "Invoca una nevada al entrar en combate." }, "honeyGather": { - "name": "Recogemiel", - "description": "The Pokémon gathers Honey after a battle. The Honey is then sold for money." + "name": "Recogemiel", + "description": "El Pokémon recoge miel tras cada batalla. La miel se vende inmediatamente por ₽." }, "frisk": { - "name": "Cacheo", + "name": "Cacheo", "description": "Cuando entra en combate, el Pokémon puede comprobar la habilidad de un Pokémon rival." }, "reckless": { - "name": "Audaz", + "name": "Audaz", "description": "Potencia los movimientos que también dañan al usuario." }, "multitype": { - "name": "Multitipo", + "name": "Multitipo", "description": "Cambia su tipo al de la tabla que lleve." }, "flowerGift": { - "name": "Don Floral", - "description": "Si hace sol, aumenta su Ataque y su Defensa Especial, así como los de sus aliados." + "name": "Don Floral", + "description": "Si hace sol, aumenta su ataque y su defensa Especial, así como los de sus aliados." }, "badDreams": { - "name": "Mal Sueño", + "name": "Mal Sueño", "description": "Inflige daño a cualquier rival que esté dormido." }, "pickpocket": { - "name": "Hurto", + "name": "Hurto", "description": "Roba el objeto del Pokémon que lo ataque con un movimiento de contacto." }, "sheerForce": { - "name": "Potencia Bruta", + "name": "Potencia Bruta", "description": "Aumenta la potencia de sus movimientos en detrimento de los efectos secundarios, que se ven anulados." }, "contrary": { - "name": "Respondón", + "name": "Respondón", "description": "Invierte los cambios en las características: bajan cuando les toca subir y suben cuando les toca bajar." }, "unnerve": { - "name": "Nerviosismo", + "name": "Nerviosismo", "description": "Pone nervioso al rival y le impide comer bayas." }, "defiant": { - "name": "Competitivo", - "description": "Aumenta mucho su Ataque cuando el rival le reduce cualquiera de sus características." + "name": "Competitivo", + "description": "Aumenta mucho su ataque cuando el rival le reduce cualquiera de sus características." }, "defeatist": { - "name": "Flaqueza", - "description": "Cuando sus PS se ven reducidos a la mitad, se cansa tanto que su Ataque y su Ataque Especial también se ven reducidos a la mitad." + "name": "Flaqueza", + "description": "Cuando sus PS se ven reducidos a la mitad, se cansa tanto que su ataque y su ataque Especial también se ven reducidos a la mitad." }, "cursedBody": { - "name": "Cuerpo Maldito", + "name": "Cuerpo Maldito", "description": "Puede anular el movimiento usado en su contra." }, "healer": { - "name": "Alma Cura", + "name": "Alma Cura", "description": "A veces cura los problemas de estado de un aliado." }, "friendGuard": { - "name": "Compiescolta", + "name": "Compiescolta", "description": "Reduce el daño que sufren los aliados." }, "weakArmor": { - "name": "Armadura Frágil", - "description": "Al recibir daño de un ataque físico, se reduce su Defensa, pero aumenta mucho su Velocidad." + "name": "Armadura Frágil", + "description": "Al recibir daño de un ataque físico, se reduce su defensa, pero aumenta mucho su velocidad." }, "heavyMetal": { - "name": "Metal Pesado", + "name": "Metal Pesado", "description": "Duplica su peso." }, "lightMetal": { - "name": "Metal Liviano", + "name": "Metal Liviano", "description": "Reduce a la mitad su peso." }, "multiscale": { - "name": "Multiescamas", + "name": "Multiescamas", "description": "Reduce el daño que sufre si sus PS están al máximo." }, "toxicBoost": { - "name": "Ímpetu Tóxico", + "name": "Ímpetu Tóxico", "description": "Aumenta la potencia de sus ataques físicos cuando está envenenado." }, "flareBoost": { - "name": "Ímpetu Ardiente", + "name": "Ímpetu Ardiente", "description": "Aumenta la potencia de sus ataques especiales cuando sufre quemaduras." }, "harvest": { - "name": "Cosecha", + "name": "Cosecha", "description": "Puede reutilizar varias veces una misma baya." }, "telepathy": { - "name": "Telepatía", + "name": "Telepatía", "description": "Elude los ataques de los aliados durante el combate." }, "moody": { - "name": "Veleta", + "name": "Veleta", "description": "Aumenta mucho una característica en cada turno, pero reduce otra." }, "overcoat": { - "name": "Funda", + "name": "Funda", "description": "No recibe daño de las tormentas de arena ni sufre los efectos causados por polvos o esporas." }, "poisonTouch": { - "name": "Toque Tóxico", + "name": "Toque Tóxico", "description": "Puede envenenar al Pokémon al que ataque con un movimiento de contacto." }, "regenerator": { - "name": "Regeneración", + "name": "Regeneración", "description": "Recupera unos pocos PS cuando se retira del combate." }, "bigPecks": { - "name": "Sacapecho", - "description": "Impide que otros Pokémon le reduzcan la Defensa." + "name": "Sacapecho", + "description": "Impide que otros Pokémon le reduzcan la defensa." }, "sandRush": { - "name": "Ímpetu Arena", - "description": "Aumenta su Velocidad durante las tormentas de arena." + "name": "Ímpetu Arena", + "description": "Aumenta su velocidad durante las tormentas de arena." }, "wonderSkin": { - "name": "Piel Milagro", + "name": "Piel Milagro", "description": "Presenta una mayor resistencia ante los movimientos de estado." }, "analytic": { - "name": "Cálculo Final", + "name": "Cálculo Final", "description": "Aumenta la potencia de su movimiento si es el último en atacar." }, "illusion": { - "name": "Ilusión", + "name": "Ilusión", "description": "Adopta el aspecto del último Pokémon del equipo al entrar en combate para desconcertar al rival." }, "imposter": { - "name": "Impostor", + "name": "Impostor", "description": "Se transforma en el Pokémon que tiene enfrente." }, "infiltrator": { - "name": "Allanamiento", + "name": "Allanamiento", "description": "Ataca sorteando las barreras o el sustituto del objetivo." }, "mummy": { - "name": "Momia", + "name": "Momia", "description": "Contagia la habilidad Momia al Pokémon que lo ataque con un movimiento de contacto." }, "moxie": { - "name": "Autoestima", - "description": "Al debilitar a un objetivo, su confianza se refuerza de tal manera que aumenta su Ataque." + "name": "Autoestima", + "description": "Al debilitar a un objetivo, su confianza se refuerza de tal manera que aumenta su ataque." }, "justified": { - "name": "Justiciero", - "description": "Si lo alcanza un movimiento de tipo Siniestro, aumenta el Ataque debido a su integridad." + "name": "Justiciero", + "description": "Si lo alcanza un movimiento de tipo Siniestro, aumenta el ataque debido a su integridad." }, "rattled": { - "name": "Cobardía", - "description": "Si lo alcanza un ataque de tipo Siniestro, Bicho o Fantasma, o si sufre los efectos de Intimidación, el miedo hace que aumente su Velocidad." + "name": "Cobardía", + "description": "Si lo alcanza un ataque de tipo Siniestro, Bicho o Fantasma, o si sufre los efectos de Intimidación, el miedo hace que aumente su velocidad." }, "magicBounce": { - "name": "Espejo Mágico", + "name": "Espejo Mágico", "description": "Puede devolver los movimientos de estado sin verse afectado por ellos." }, "sapSipper": { - "name": "Herbívoro", - "description": "Si lo alcanza un movimiento de tipo Planta, aumenta su Ataque en vez de sufrir daño." + "name": "Herbívoro", + "description": "Si lo alcanza un movimiento de tipo Planta, aumenta su ataque en vez de sufrir daño." }, "prankster": { - "name": "Bromista", + "name": "Bromista", "description": "Sus movimientos de estado tienen prioridad alta." }, "sandForce": { - "name": "Poder Arena", + "name": "Poder Arena", "description": "Potencia los movimientos de tipo Tierra, Acero y Roca durante las tormentas de arena." }, "ironBarbs": { - "name": "Punta Acero", + "name": "Punta Acero", "description": "Inflige daño con sus púas de acero al Pokémon que lo ataque con un movimiento de contacto." }, "zenMode": { - "name": "Modo Daruma", + "name": "Modo Daruma", "description": "Cambia de forma si sus PS se ven reducidos a la mitad o menos." }, "victoryStar": { - "name": "Tinovictoria", - "description": "Aumenta su Precisión y la de sus aliados." + "name": "Tinovictoria", + "description": "Aumenta su precisión y la de sus aliados." }, "turboblaze": { - "name": "Turbollama", + "name": "Turbollama", "description": "Sus movimientos no se ven afectados por la habilidad del objetivo." }, "teravolt": { - "name": "Terravoltaje", + "name": "Terravoltaje", "description": "Sus movimientos no se ven afectados por la habilidad del objetivo." }, "aromaVeil": { - "name": "Velo Aroma", + "name": "Velo Aroma", "description": "Se protege a sí mismo y a sus aliados de efectos que impiden usar movimientos." }, "flowerVeil": { - "name": "Velo Flor", + "name": "Velo Flor", "description": "Evita que los Pokémon de tipo Planta aliados sufran problemas de estado o que les reduzcan sus características." }, "cheekPouch": { - "name": "Carrillo", + "name": "Carrillo", "description": "Recupera PS al comer cualquier baya." }, "protean": { - "name": "Mutatipo", + "name": "Mutatipo", "description": "Al entrar en combate, cambia su tipo al del primer movimiento que va a usar." }, "furCoat": { - "name": "Pelaje Recio", + "name": "Pelaje Recio", "description": "Reduce a la mitad el daño que recibe de ataques físicos." }, "magician": { - "name": "Prestidigitador", + "name": "Prestidigitador", "description": "Roba el objeto del Pokémon al que alcance con un movimiento." }, "bulletproof": { - "name": "Antibalas", + "name": "Antibalas", "description": "No le afectan las bombas ni algunos proyectiles." }, "competitive": { - "name": "Tenacidad", - "description": "Aumenta mucho su Ataque Especial cuando el rival le reduce cualquiera de sus características." + "name": "Tenacidad", + "description": "Aumenta mucho su ataque especial cuando el rival le reduce cualquiera de sus características." }, "strongJaw": { - "name": "Mandíbula Fuerte", + "name": "Mandíbula Fuerte", "description": "Su robusta mandíbula le confiere una mordedura mucho más potente." }, "refrigerate": { - "name": "Piel Helada", + "name": "Piel Helada", "description": "Convierte los movimientos de tipo Normal en tipo Hielo y aumenta ligeramente su potencia." }, "sweetVeil": { - "name": "Velo Dulce", + "name": "Velo Dulce", "description": "No cae dormido y evita también que sus aliados se duerman." }, "stanceChange": { - "name": "Cambio Táctico", + "name": "Cambio Táctico", "description": "Adopta la Forma Filo al lanzar un ataque, o bien la Forma Escudo si usa el movimiento Escudo Real." }, "galeWings": { - "name": "Alas Vendaval", + "name": "Alas Vendaval", "description": "Da prioridad a los movimientos de tipo Volador si sus PS están al máximo." }, "megaLauncher": { - "name": "Megadisparador", + "name": "Megadisparador", "description": "Aumenta la potencia de algunos movimientos de pulsos y auras." }, "grassPelt": { - "name": "Manto Frondoso", - "description": "Aumenta su Defensa si hay un campo de hierba en el terreno de combate." + "name": "Manto Frondoso", + "description": "Aumenta su defensa si hay un campo de hierba en el terreno de combate." }, "symbiosis": { - "name": "Simbiosis", + "name": "Simbiosis", "description": "Pasa su objeto a un aliado cuando este use el suyo." }, "toughClaws": { - "name": "Garra Dura", + "name": "Garra Dura", "description": "Aumenta la potencia de los movimientos de contacto." }, "pixilate": { - "name": "Piel Feérica", + "name": "Piel Feérica", "description": "Convierte los movimientos de tipo Normal en tipo Hada y aumenta ligeramente su potencia." }, "gooey": { - "name": "Baba", - "description": "Reduce la Velocidad del Pokémon que lo ataque con un movimiento de contacto." + "name": "Baba", + "description": "Reduce la velocidad del Pokémon que lo ataque con un movimiento de contacto." }, "aerilate": { - "name": "Piel Celeste", + "name": "Piel Celeste", "description": "Convierte los movimientos de tipo Normal en tipo Volador y aumenta ligeramente su potencia." }, "parentalBond": { - "name": "Amor Filial", + "name": "Amor Filial", "description": "Une fuerzas con su cría y ataca dos veces." }, "darkAura": { - "name": "Aura Oscura", + "name": "Aura Oscura", "description": "Aumenta la potencia de los movimientos de tipo Siniestro de todos los Pokémon." }, "fairyAura": { - "name": "Aura Feérica", + "name": "Aura Feérica", "description": "Aumenta la potencia de los movimientos de tipo Hada de todos los Pokémon." }, "auraBreak": { - "name": "Rompeaura", + "name": "Rompeaura", "description": "Invierte los efectos de las habilidades de auras, por lo que reduce la potencia de ciertos movimientos en vez de aumentarla." }, "primordialSea": { - "name": "Mar del Albor", + "name": "Mar del Albor", "description": "Altera el clima para anular los ataques de tipo Fuego." }, "desolateLand": { - "name": "Tierra del Ocaso", + "name": "Tierra del Ocaso", "description": "Altera el clima para anular los ataques de tipo Agua." }, "deltaStream": { - "name": "Ráfaga Delta", + "name": "Ráfaga Delta", "description": "Altera el clima para anular las vulnerabilidades del tipo Volador." }, "stamina": { - "name": "Firmeza", - "description": "Aumenta su Defensa al recibir un ataque." + "name": "Firmeza", + "description": "Aumenta su defensa al recibir un ataque." }, "wimpOut": { - "name": "Huida", + "name": "Huida", "description": "Se asusta y abandona el terreno de combate cuando sus PS se ven reducidos a la mitad." }, "emergencyExit": { - "name": "Retirada", + "name": "Retirada", "description": "Abandona el terreno de combate cuando sus PS se ven reducidos a la mitad para evitar males mayores." }, "waterCompaction": { - "name": "Hidrorrefuerzo", - "description": "Aumenta mucho su Defensa si lo alcanza un movimiento de tipo Agua." + "name": "Hidrorrefuerzo", + "description": "Aumenta mucho su defensa si lo alcanza un movimiento de tipo Agua." }, "merciless": { - "name": "Ensañamiento", + "name": "Ensañamiento", "description": "Hace que sus movimientos asesten siempre un golpe crítico si el objetivo está envenenado." }, "shieldsDown": { - "name": "Escudo Limitado", + "name": "Escudo Limitado", "description": "Rompe su coraza cuando sus PS se ven reducidos a la mitad y adopta una forma ofensiva." }, "stakeout": { - "name": "Vigilante", + "name": "Vigilante", "description": "Si el objetivo de su ataque es sustituido por otro, duplica el daño que infligirá." }, "waterBubble": { - "name": "Pompa", + "name": "Pompa", "description": "Reduce el daño que le provocan los movimientos de tipo Fuego y es inmune a las quemaduras." }, "steelworker": { - "name": "Acero Templado", + "name": "Acero Templado", "description": "Potencia los movimientos de tipo Acero." }, "berserk": { - "name": "Cólera", - "description": "Aumenta su Ataque Especial si sus PS se ven reducidos a la mitad debido a algún ataque." + "name": "Cólera", + "description": "Aumenta su ataque especial si sus PS se ven reducidos a la mitad debido a algún ataque." }, "slushRush": { - "name": "Quitanieves", - "description": "Aumenta su Velocidad cuando nieva." + "name": "Quitanieves", + "description": "Aumenta su velocidad cuando nieva." }, "longReach": { - "name": "Remoto", + "name": "Remoto", "description": "Puede usar cualquier movimiento sin entrar en contacto con su objetivo." }, "liquidVoice": { - "name": "Voz Fluida", + "name": "Voz Fluida", "description": "Hace que todos sus movimientos que usan sonido pasen a ser de tipo Agua." }, "triage": { - "name": "Primer Auxilio", + "name": "Primer Auxilio", "description": "Da prioridad a los movimientos que restauran PS." }, "galvanize": { - "name": "Piel Eléctrica", + "name": "Piel Eléctrica", "description": "Convierte los movimientos de tipo Normal en tipo Eléctrico y aumenta ligeramente su potencia." }, "surgeSurfer": { - "name": "Cola Surf", - "description": "Duplica su Velocidad si hay un campo eléctrico en el terreno de combate." + "name": "Cola Surf", + "description": "Duplica su velocidad si hay un campo eléctrico en el terreno de combate." }, "schooling": { - "name": "Banco", + "name": "Banco", "description": "Forma bancos con sus congéneres cuando tiene muchos PS, lo cual le otorga más fuerza. Cuando le quedan pocos PS, el banco se dispersa." }, "disguise": { - "name": "Disfraz", + "name": "Disfraz", "description": "Puede eludir un ataque valiéndose de la tela que le cubre el cuerpo una vez por combate." }, "battleBond": { - "name": "Fuerte Afecto", - "description": "Al derrotar a un Pokémon, los vínculos con su Entrenador se refuerzan y aumentan su Ataque, su Ataque Especial y su Velocidad." + "name": "Fuerte Afecto", + "description": "Al derrotar a un Pokémon, los vínculos con su Entrenador se refuerzan y aumentan su ataque, su ataque especial y su velocidad." }, "powerConstruct": { - "name": "Agrupamiento", + "name": "Agrupamiento", "description": "Cuando sus PS se ven reducidos a la mitad, las células se reagrupan y adopta su Forma Completa." }, "corrosion": { - "name": "Corrosión", + "name": "Corrosión", "description": "Puede envenenar incluso a Pokémon de tipo Acero o Veneno." }, "comatose": { - "name": "Letargo Perenne", + "name": "Letargo Perenne", "description": "No despierta jamás de su profundo letargo e incluso ataca dormido." }, "queenlyMajesty": { - "name": "Regia Presencia", + "name": "Regia Presencia", "description": "Intimida al rival y le impide usar movimientos con prioridad contra él y sus aliados." }, "innardsOut": { - "name": "Revés", + "name": "Revés", "description": "Al caer debilitado, inflige al atacante un daño equivalente a los PS que le quedaran antes de recibir el golpe de gracia." }, "dancer": { - "name": "Pareja de Baile", + "name": "Pareja de Baile", "description": "Puede copiar inmediatamente cualquier movimiento de baile que haya usado otro Pokémon presente en el combate." }, "battery": { - "name": "Batería", + "name": "Batería", "description": "Potencia los ataques especiales de los aliados." }, "fluffy": { - "name": "Peluche", + "name": "Peluche", "description": "Reduce a la mitad el daño recibido por los movimientos de contacto, pero duplica el que le infligen los de tipo Fuego." }, "dazzling": { - "name": "Cuerpo Vívido", + "name": "Cuerpo Vívido", "description": "Desconcierta al rival y le impide usar movimientos con prioridad contra él y sus aliados." }, "soulHeart": { - "name": "Coránima", - "description": "Aumenta su Ataque Especial cada vez que un Pokémon cae debilitado." + "name": "Coránima", + "description": "Aumenta su ataque especial cada vez que un Pokémon cae debilitado." }, "tanglingHair": { - "name": "Rizos Rebeldes", - "description": "Reduce la Velocidad del Pokémon que lo ataque con un movimiento de contacto." + "name": "Rizos Rebeldes", + "description": "Reduce la velocidad del Pokémon que lo ataque con un movimiento de contacto." }, "receiver": { - "name": "Receptor", + "name": "Receptor", "description": "Adquiere la habilidad de un aliado debilitado." }, "powerOfAlchemy": { - "name": "Reacción Química", + "name": "Reacción Química", "description": "Reacciona copiando la habilidad de un aliado debilitado." }, "beastBoost": { - "name": "Ultraimpulso", + "name": "Ultraimpulso", "description": "Al derrotar a un Pokémon, aumenta su característica más fuerte." }, "rksSystem": { - "name": "Sistema Alfa", + "name": "Sistema Alfa", "description": "Cambia su tipo según el disco que lleve instalado." }, "electricSurge": { - "name": "Electrogénesis", + "name": "Electrogénesis", "description": "Crea un campo eléctrico al entrar en combate." }, "psychicSurge": { - "name": "Psicogénesis", + "name": "Psicogénesis", "description": "Crea un campo psíquico al entrar en combate." }, "mistySurge": { - "name": "Nebulogénesis", + "name": "Nebulogénesis", "description": "Crea un campo de niebla al entrar en combate." }, "grassySurge": { - "name": "Herbogénesis", + "name": "Herbogénesis", "description": "Crea un campo de hierba al entrar en combate." }, "fullMetalBody": { - "name": "Guardia Metálica", + "name": "Guardia Metálica", "description": "Evita que se reduzcan sus características a causa de movimientos o habilidades de otros Pokémon." }, "shadowShield": { - "name": "Guardia Espectro", + "name": "Guardia Espectro", "description": "Reduce el daño que sufre si sus PS están al máximo." }, "prismArmor": { - "name": "Armadura Prisma", + "name": "Armadura Prisma", "description": "Mitiga el daño que le infligen los movimientos supereficaces." }, "neuroforce": { - "name": "Fuerza Cerebral", + "name": "Fuerza Cerebral", "description": "Potencia los ataques supereficaces." }, "intrepidSword": { - "name": "Espada Indómita", - "description": "Aumenta su Ataque al entrar en combate por primera vez." + "name": "Espada Indómita", + "description": "Aumenta su ataque al entrar en combate por primera vez." }, "dauntlessShield": { - "name": "Escudo Recio", - "description": "Aumenta su Defensa al entrar en combate por primera vez." + "name": "Escudo Recio", + "description": "Aumenta su defensa al entrar en combate por primera vez." }, "libero": { - "name": "Líbero", + "name": "Líbero", "description": "Al entrar en combate, cambia su tipo al del primer movimiento que va a usar." }, "ballFetch": { - "name": "Recogebolas", - "description": "Si no lleva equipado ningún objeto, recupera la Poké Ball del primer intento de captura fallido." + "name": "Recogebolas", + "description": "Recupera la Poké Ball del primer intento de captura fallido." }, "cottonDown": { - "name": "Pelusa", - "description": "Al ser alcanzado por un ataque, suelta una pelusa de algodón que reduce la Velocidad de todos los demás Pokémon." + "name": "Pelusa", + "description": "Al ser alcanzado por un ataque, suelta una pelusa de algodón que reduce la velocidad de todos los demás Pokémon." }, "propellerTail": { - "name": "Hélice Caudal", + "name": "Hélice Caudal", "description": "Ignora los efectos de las habilidades o los movimientos que permiten a un Pokémon centrar la atención sobre sí." }, "mirrorArmor": { - "name": "Coraza Reflejo", + "name": "Coraza Reflejo", "description": "Refleja los efectos que reducen las características." }, "gulpMissile": { - "name": "Tragamisil", + "name": "Tragamisil", "description": "Tras usar Surf o Buceo, emerge con una presa en la boca. Al recibir daño, ataca escupiéndola." }, "stalwart": { - "name": "Acérrimo", + "name": "Acérrimo", "description": "Ignora los efectos de las habilidades o los movimientos que permiten a un Pokémon centrar la atención sobre sí." }, "steamEngine": { - "name": "Combustible", - "description": "Si lo alcanza un movimiento de tipo Fuego o Agua, aumenta muchísimo su Velocidad." + "name": "Combustible", + "description": "Si lo alcanza un movimiento de tipo Fuego o Agua, aumenta muchísimo su velocidad." }, "punkRock": { - "name": "Punk Rock", + "name": "Punk Rock", "description": "Potencia los movimientos que usan sonido y reduce a la mitad el daño que le infligen dichos movimientos." }, "sandSpit": { - "name": "Expulsarena", + "name": "Expulsarena", "description": "Provoca una tormenta de arena al recibir un ataque." }, "iceScales": { - "name": "Escama de Hielo", + "name": "Escama de Hielo", "description": "Las gélidas escamas que protegen su cuerpo reducen a la mitad el daño que le infligen los ataques especiales." }, "ripen": { - "name": "Maduración", + "name": "Maduración", "description": "Hace madurar las bayas, por lo que duplica sus efectos." }, "iceFace": { - "name": "Cara de Hielo", + "name": "Cara de Hielo", "description": "Absorbe el daño de un ataque físico con el hielo de la cabeza, tras lo cual cambia de forma. El hielo se regenerará la próxima vez que nieve." }, "powerSpot": { - "name": "Fuente Energía", + "name": "Fuente Energía", "description": "Potencia los movimientos de los Pokémon adyacentes." }, "mimicry": { - "name": "Mimetismo", + "name": "Mimetismo", "description": "Cambia su tipo según el campo que haya en el terreno de combate." }, "screenCleaner": { - "name": "Antibarrera", + "name": "Antibarrera", "description": "Anula los efectos de Pantalla de Luz, Reflejo y Velo Aurora tanto de rivales como de aliados al entrar en combate." }, "steelySpirit": { - "name": "Alma Acerada", + "name": "Alma Acerada", "description": "Potencia los movimientos de tipo Acero del Pokémon y sus aliados." }, "perishBody": { - "name": "Cuerpo Mortal", + "name": "Cuerpo Mortal", "description": "Si lo alcanza un movimiento de contacto, se debilitará al cabo de 3 turnos, así como el atacante, a menos que abandonen el terreno de combate." }, "wanderingSpirit": { - "name": "Alma Errante", + "name": "Alma Errante", "description": "Si lo alcanza un movimiento de contacto, intercambia su habilidad con la del atacante." }, "gorillaTactics": { - "name": "Monotema", - "description": "Aumenta su Ataque, pero solo puede usar el primer movimiento escogido." + "name": "Monotema", + "description": "Aumenta su ataque, pero solo puede usar el primer movimiento escogido." }, "neutralizingGas": { - "name": "Gas Reactivo", + "name": "Gas Reactivo", "description": "Anula los efectos de las habilidades de los demás Pokémon presentes mientras esté en el terreno de combate." }, "pastelVeil": { - "name": "Velo Pastel", + "name": "Velo Pastel", "description": "Se protege a sí mismo y a sus aliados del envenenamiento." }, "hungerSwitch": { - "name": "Mutapetito", + "name": "Mutapetito", "description": "Alterna entre su Forma Saciada y Forma Voraz al final de cada turno." }, "quickDraw": { - "name": "Mano Rápida", + "name": "Mano Rápida", "description": "A veces, puede atacar el primero." }, "unseenFist": { - "name": "Puño Invisible", + "name": "Puño Invisible", "description": "Si usa un movimiento de contacto, puede infligir daño al objetivo aunque este se proteja." }, "curiousMedicine": { - "name": "Medicina Extraña", + "name": "Medicina Extraña", "description": "Al entrar en combate, rezuma una substancia medicinal por la caracola que revierte los cambios en las características de los aliados." }, "transistor": { - "name": "Transistor", + "name": "Transistor", "description": "Potencia los movimientos de tipo Eléctrico." }, "dragonsMaw": { - "name": "Mandíbula Dragón", + "name": "Mandíbula Dragón", "description": "Potencia los movimientos de tipo Dragón." }, "chillingNeigh": { - "name": "Relincho Blanco", - "description": "Al derrotar a un objetivo, emite un relincho gélido y aumenta su Ataque." + "name": "Relincho Blanco", + "description": "Al derrotar a un objetivo, emite un relincho gélido y aumenta su ataque." }, "grimNeigh": { - "name": "Relincho Negro", - "description": "Al derrotar a un objetivo, emite un relincho aterrador y aumenta su Ataque Especial." + "name": "Relincho Negro", + "description": "Al derrotar a un objetivo, emite un relincho aterrador y aumenta su ataque especial." }, "asOneGlastrier": { - "name": "Unidad Ecuestre", + "name": "Unidad Ecuestre", "description": "El Pokémon tiene dos habilidades: Relincho Negro de Spectrier y Nerviosismo de Calyrex." }, "asOneSpectrier": { - "name": "Unidad Ecuestre", + "name": "Unidad Ecuestre", "description": "El Pokémon tiene dos habilidades: Relincho Negro de Spectrier y Nerviosismo de Calyrex." }, "lingeringAroma": { - "name": "Olor Persistente", + "name": "Olor Persistente", "description": "Contagia la habilidad Olor Persistente al Pokémon que lo ataque con un movimiento de contacto." }, "seedSower": { - "name": "Disemillar", + "name": "Disemillar", "description": "Crea un campo de hierba al recibir un ataque." }, "thermalExchange": { - "name": "Termoconversión", - "description": "Evita las quemaduras y, si lo alcanza un movimiento de tipo Fuego, aumenta su Ataque." + "name": "Termoconversión", + "description": "Evita las quemaduras y, si lo alcanza un movimiento de tipo Fuego, aumenta su ataque." }, "angerShell": { - "name": "Coraza Ira", - "description": "Cuando un ataque reduce sus PS a la mitad, un arrebato de cólera reduce su Defensa y su Defensa Especial, pero aumenta su Ataque, su Ataque Especial y su Velocidad." + "name": "Coraza Ira", + "description": "Cuando un ataque reduce sus PS a la mitad, un arrebato de cólera reduce su defensa y su defensa especial, pero aumenta su ataque, su ataque especial y su velocidad." }, "purifyingSalt": { - "name": "Sal Purificadora", + "name": "Sal Purificadora", "description": "Su sal pura lo protege de los problemas de estado y reduce a la mitad el daño que recibe de ataques de tipo Fantasma." }, "wellBakedBody": { - "name": "Cuerpo Horneado", - "description": "Si lo alcanza un movimiento de tipo Fuego, aumenta mucho su Defensa en vez de sufrir daño." + "name": "Cuerpo Horneado", + "description": "Si lo alcanza un movimiento de tipo Fuego, aumenta mucho su defensa en vez de sufrir daño." }, "windRider": { - "name": "Surcavientos", - "description": "Si sopla un Viento Afín o lo alcanza un movimiento que usa viento, aumenta su Ataque. Tampoco recibe daño de este último." + "name": "Surcavientos", + "description": "Si sopla un Viento Afín o lo alcanza un movimiento que usa viento, aumenta su ataque. Tampoco recibe daño de este último." }, "guardDog": { - "name": "Perro Guardián", - "description": "Aumenta su Ataque si sufre los efectos de Intimidación. También anula movimientos y objetos que fuercen el cambio de Pokémon." + "name": "Perro Guardián", + "description": "Aumenta su ataque si sufre los efectos de Intimidación. También anula movimientos y objetos que fuercen el cambio de Pokémon." }, "rockyPayload": { - "name": "Transportarrocas", + "name": "Transportarrocas", "description": "Potencia los movimientos de tipo Roca." }, "windPower": { - "name": "Energía Eólica", + "name": "Energía Eólica", "description": "Su cuerpo se carga de electricidad si lo alcanza un movimiento que usa viento, lo que potencia su siguiente movimiento de tipo Eléctrico." }, "zeroToHero": { - "name": "Cambio Heroico", + "name": "Cambio Heroico", "description": "Adopta la Forma Heroica cuando se retira del combate." }, "commander": { - "name": "Comandar", + "name": "Comandar", "description": "Si al entrar en combate coincide con un Dondozo aliado, se cuela en el interior de su boca para tomar el control." }, "electromorphosis": { - "name": "Dinamo", + "name": "Dinamo", "description": "Su cuerpo se carga de electricidad al recibir daño, lo que potencia su siguiente movimiento de tipo Eléctrico." }, "protosynthesis": { - "name": "Paleosíntesis", + "name": "Paleosíntesis", "description": "Si hace sol o lleva un tanque de Energía Potenciadora, aumenta su característica más alta." }, "quarkDrive": { - "name": "Carga Cuark", + "name": "Carga Cuark", "description": "Si hay un campo eléctrico en el terreno de combate o lleva un tanque de Energía Potenciadora, aumenta su característica más alta." }, "goodAsGold": { - "name": "Cuerpo Áureo", + "name": "Cuerpo Áureo", "description": "Su robusto cuerpo de oro inoxidable lo hace inmune frente a movimientos de estado de otros Pokémon." }, "vesselOfRuin": { - "name": "Caldero Debacle", - "description": "Reduce el Ataque Especial de todos los demás Pokémon con el poder de su caldero maldito." + "name": "Caldero Debacle", + "description": "Reduce el ataque especial de todos los demás Pokémon con el poder de su caldero maldito." }, "swordOfRuin": { - "name": "Espada Debacle", - "description": "Reduce la Defensa de todos los demás Pokémon con el poder de su espada maldita." + "name": "Espada Debacle", + "description": "Reduce la defensa de todos los demás Pokémon con el poder de su espada maldita." }, "tabletsOfRuin": { - "name": "Tablilla Debacle", - "description": "Reduce el Ataque de todos los demás Pokémon con el poder de sus tablillas malditas." + "name": "Tablilla Debacle", + "description": "Reduce el ataque de todos los demás Pokémon con el poder de sus tablillas malditas." }, "beadsOfRuin": { - "name": "Abalorio Debacle", - "description": "Reduce la Defensa Especial de todos los demás Pokémon con el poder de sus abalorios malditos." + "name": "Abalorio Debacle", + "description": "Reduce la defensa especial de todos los demás Pokémon con el poder de sus abalorios malditos." }, "orichalcumPulse": { - "name": "Latido Oricalco", - "description": "El tiempo pasa a ser soleado cuando entra en combate. Si hace mucho sol, su Ataque aumenta gracias a su pulso primigenio." + "name": "Latido Oricalco", + "description": "El tiempo pasa a ser soleado cuando entra en combate. Si hace mucho sol, su ataque aumenta gracias a su pulso primigenio." }, "hadronEngine": { - "name": "Motor Hadrónico", - "description": "Crea un campo eléctrico al entrar en combate. Si hay un campo eléctrico, su Ataque Especial aumenta gracias a su motor futurista." + "name": "Motor Hadrónico", + "description": "Crea un campo eléctrico al entrar en combate. Si hay un campo eléctrico, su ataque especial aumenta gracias a su motor futurista." }, "opportunist": { - "name": "Oportunista", + "name": "Oportunista", "description": "Copia las mejoras en las características del rival, aprovechándose de la situación." }, "cudChew": { - "name": "Rumia", + "name": "Rumia", "description": "Cuando ingiere una baya, la regurgita al final del siguiente turno y se la come por segunda vez." }, "sharpness": { - "name": "Cortante", + "name": "Cortante", "description": "Aumenta la potencia de los movimientos cortantes." }, "supremeOverlord": { - "name": "General Supremo", - "description": "Al entrar en combate, su Ataque y su Ataque Especial aumentan un poco por cada miembro del equipo que haya sido derrotado hasta el momento." + "name": "General Supremo", + "description": "Al entrar en combate, su ataque y su ataque especial aumentan un poco por cada miembro del equipo que haya sido derrotado hasta el momento." }, "costar": { - "name": "Unísono", + "name": "Unísono", "description": "Al entrar en combate, copia los cambios en las características de su aliado." }, "toxicDebris": { - "name": "Capa Tóxica", + "name": "Capa Tóxica", "description": "Al recibir daño de un ataque físico, lanza una trampa de púas tóxicas a los pies del rival." }, "armorTail": { - "name": "Cola Armadura", + "name": "Cola Armadura", "description": "La extraña cola que le envuelve la cabeza impide al rival usar movimientos con prioridad contra él y sus aliados." }, "earthEater": { - "name": "Geofagia", + "name": "Geofagia", "description": "Si lo alcanza un movimiento de tipo Tierra, recupera PS en vez de sufrir daño." }, "myceliumMight": { - "name": "Poder Fúngico", + "name": "Poder Fúngico", "description": "El Pokémon siempre actúa con lentitud cuando usa movimientos de estado, pero estos no se ven afectados por la habilidad del objetivo." }, "mindsEye": { - "name": "Ojo Mental", - "description": "Alcanza a Pokémon de tipo Fantasma con movimientos de tipo Normal o Lucha. Su Precisión no se puede reducir e ignora los cambios en la Evasión del objetivo." + "name": "Ojo Mental", + "description": "Alcanza a Pokémon de tipo Fantasma con movimientos de tipo Normal o Lucha. Su precisión no se puede reducir e ignora los cambios en la evasión del objetivo." }, "supersweetSyrup": { - "name": "Néctar Dulce", - "description": "Al entrar en combate por primera vez, esparce un aroma dulzón a néctar que reduce la Evasión del rival." + "name": "Néctar Dulce", + "description": "Al entrar en combate por primera vez, esparce un aroma dulzón a néctar que reduce la evasión del rival." }, "hospitality": { - "name": "Hospitalidad", + "name": "Hospitalidad", "description": "Al entrar en combate, restaura algunos PS de su aliado como muestra de hospitalidad." }, "toxicChain": { - "name": "Cadena Tóxica", + "name": "Cadena Tóxica", "description": "Gracias al poder de su cadena impregnada de toxinas, puede envenenar gravemente al Pokémon al que ataque." }, "embodyAspectTeal": { - "name": "Evocarrecuerdos", - "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la Máscara Cimiento y aumenta su Defensa." + "name": "Evocarrecuerdos", + "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la máscara turquesa y aumenta su velocidad." }, "embodyAspectWellspring": { - "name": "Evocarrecuerdos", - "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la Máscara Cimiento y aumenta su Defensa." + "name": "Evocarrecuerdos", + "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la máscara fuente y aumenta su defensa especial." }, "embodyAspectHearthflame": { - "name": "Evocarrecuerdos", - "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la Máscara Cimiento y aumenta su Defensa." + "name": "Evocarrecuerdos", + "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la máscara horno y aumenta su ataque." }, "embodyAspectCornerstone": { - "name": "Evocarrecuerdos", - "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la Máscara Cimiento y aumenta su Defensa." + "name": "Evocarrecuerdos", + "description": "Al evocar viejos recuerdos, el Pokémon hace brillar la máscara cimiento y aumenta su defensa." }, "teraShift": { - "name": "Teracambio", + "name": "Teracambio", "description": "Al entrar en combate, adopta la Forma Teracristal tras absorber la energía de su alrededor." }, "teraShell": { - "name": "Teracaparazón", + "name": "Teracaparazón", "description": "Su caparazón encierra energía de todos los tipos. Gracias a ello, si sus PS están al máximo, el movimiento que lo alcance no será muy eficaz." }, "teraformZero": { - "name": "Teraformación 0", + "name": "Teraformación 0", "description": "Cuando Terapagos adopta la Forma Astral, anula todos los efectos del tiempo atmosférico y de los campos que haya en el terreno gracias a su poder oculto." }, "poisonPuppeteer": { - "name": "Títere Tóxico", + "name": "Títere Tóxico", "description": "Los rivales que Pecharunt envenene con sus movimientos también sufrirán confusión." } } diff --git a/src/locales/es/bgm-name.json b/src/locales/es/bgm-name.json index be617b79567..f0e0ab7e852 100644 --- a/src/locales/es/bgm-name.json +++ b/src/locales/es/bgm-name.json @@ -1,95 +1,99 @@ { "music": "Música: ", "missing_entries": "{{name}}", - "battle_kanto_champion": "B2W2 - ¡Vs Campeón de Kanto!", - "battle_johto_champion": "B2W2 - ¡Vs Campeón de Johto!", - "battle_hoenn_champion_g5": "B2W2 - ¡Vs Campeón de Hoenn!", - "battle_hoenn_champion_g6": "ORAS - ¡Vs Campeón de Hoenn!", - "battle_sinnoh_champion": "B2W2 - ¡Vs Campeón de Sinnoh!", - "battle_champion_alder": "BW - ¡Vs Campeón de Teselia!", - "battle_champion_iris": "B2W2 - ¡Vs Campeón de Teselia!", - "battle_kalos_champion": "XY - ¡Vs Campeón de Kalos!", - "battle_alola_champion": "USUM - ¡Vs Campeón de Alola!", - "battle_galar_champion": "SWSH - ¡Vs Campeón de Galar!", - "battle_champion_geeta": "SV - ¡Vs Campeona Ságita!", - "battle_champion_nemona": "SV - ¡Vs Campeona Mencía!", - "battle_champion_kieran": "SV - ¡Vs Campeón Cass!", - "battle_hoenn_elite": "ORAS - ¡Vs Alto Mando!", - "battle_unova_elite": "BW - ¡Vs Alto Mando!", - "battle_kalos_elite": "XY - ¡Vs Alto Mando!", - "battle_alola_elite": "SM - ¡Vs Alto Mando!", - "battle_galar_elite": "SWSH - Torneo de Finalistas", - "battle_paldea_elite": "SV - ¡Vs Alto Mando!", - "battle_bb_elite": "SV - ¡Vs Alto Mando de la Academia Arándano!", + "battle_kanto_champion": "B2W2 - ¡Vs. Campeón de Kanto!", + "battle_johto_champion": "B2W2 - ¡Vs. Campeón de Johto!", + "battle_hoenn_champion_g5": "B2W2 - ¡Vs. Campeón de Hoenn!", + "battle_hoenn_champion_g6": "ORAS - ¡Vs. Campeón de Hoenn!", + "battle_sinnoh_champion": "B2W2 - ¡Vs. Campeón de Sinnoh!", + "battle_champion_alder": "BW - ¡Vs. Campeón de Teselia!", + "battle_champion_iris": "B2W2 - ¡Vs. Campeón de Teselia!", + "battle_kalos_champion": "XY - ¡Vs. Campeón de Kalos!", + "battle_alola_champion": "USUM - ¡Vs. Campeón de Alola!", + "battle_galar_champion": "SWSH - ¡Vs. Campeón de Galar!", + "battle_champion_geeta": "SV - ¡Vs. Campeona Ságita!", + "battle_champion_nemona": "SV - ¡Vs. Campeona Mencía!", + "battle_champion_kieran": "SV - ¡Vs. Campeón Cass!", + "battle_hoenn_elite": "ORAS - ¡Vs. Alto Mando!", + "battle_unova_elite": "BW - ¡Vs. Alto Mando!", + "battle_kalos_elite": "XY - ¡Vs. Alto Mando!", + "battle_alola_elite": "SM - ¡Vs. Alto Mando!", + "battle_galar_elite": "SWSH - Torneo de finalistas", + "battle_paldea_elite": "SV - ¡Vs. Alto Mando!", + "battle_bb_elite": "SV - ¡Vs. Alto Mando de la Academia Arándano!", "battle_final_encounter": "PMD RTDX - Dominio de Rayquaza", - "battle_final": "BW - ¡Vs Ghechis!", - "battle_kanto_gym": "B2W2 - ¡Vs Líder de Kanto!", - "battle_johto_gym": "B2W2 - ¡Vs Líder de Johto!", - "battle_hoenn_gym": "B2W2 - ¡Vs Líder de Hoenn!", - "battle_sinnoh_gym": "B2W2 - ¡Vs Líder de Sinnoh!", - "battle_unova_gym": "BW - ¡Vs Líder de Teselia!", - "battle_kalos_gym": "XY - ¡Vs Líder de Kalos!", - "battle_galar_gym": "SWSH - ¡Vs Líder de Galar!", - "battle_paldea_gym": "SV - ¡Vs Líder de Paldea!", - "battle_legendary_kanto": "XY - ¡Vs Legendarios de Kanto!", - "battle_legendary_raikou": "HGSS - ¡Vs Raikou!", - "battle_legendary_entei": "HGSS - ¡Vs Entei!", - "battle_legendary_suicune": "HGSS - ¡Vs Suicune!", - "battle_legendary_lugia": "HGSS - ¡Vs Lugia!", - "battle_legendary_ho_oh": "HGSS - ¡Vs Ho-oh!", - "battle_legendary_regis_g5": "B2W2 - ¡Vs Regis!", - "battle_legendary_regis_g6": "ORAS - ¡Vs Regis!", - "battle_legendary_gro_kyo": "ORAS - ¡Vs Groudon/Kyogre!", - "battle_legendary_rayquaza": "ORAS - ¡Vs Rayquaza!", - "battle_legendary_deoxys": "ORAS - ¡Vs Deoxys!", - "battle_legendary_lake_trio": "ORAS - ¡Vs Trío del Lago!", - "battle_legendary_sinnoh": "ORAS - ¡Vs Legendarios de Sinnoh!", - "battle_legendary_dia_pal": "ORAS - ¡Vs Dialga/Palkia!", - "battle_legendary_giratina": "ORAS - ¡Vs Giratina!", - "battle_legendary_arceus": "HGSS - ¡Vs Arceus!", - "battle_legendary_unova": "BW - ¡Vs Legendarios de Teselia!", - "battle_legendary_kyurem": "BW - ¡Vs Kyurem!", - "battle_legendary_res_zek": "BW - ¡Vs Reshiram/Zekrom!", - "battle_legendary_xern_yvel": "XY - ¡Vs Xerneas/Yveltal!", - "battle_legendary_tapu": "SM - ¡Vs Tapus!", - "battle_legendary_sol_lun": "SM - ¡Vs Solgaleo/Lunala!", - "battle_legendary_ub": "SM - ¡Vs Ultraentes!", - "battle_legendary_dusk_dawn": "USUM - ¡Vs Necrozma Melena Crepuscular/Alas del Alba!", - "battle_legendary_ultra_nec": "USUM - ¡Vs Ultra-Necrozma!", - "battle_legendary_zac_zam": "SWSH - ¡Vs Zacian/Zamazenta!", - "battle_legendary_glas_spec": "SWSH - ¡Vs Glastrier/Spectrier!", - "battle_legendary_calyrex": "SWSH - ¡Vs Calyrex!", - "battle_legendary_birds_galar": "SWSH - ¡Vs Aves Legendarias de Galar!", - "battle_legendary_ruinous": "SV - ¡Vs Tesoros Funestos!", - "battle_legendary_kor_mir": "SV Depths of Area Zero Battle", - "battle_legendary_loyal_three": "SV - ¡Vs Compatrones!", - "battle_legendary_ogerpon": "SV - ¡Vs Ogerpon!", - "battle_legendary_terapagos": "SV - ¡Vs Terapagos!", - "battle_legendary_pecharunt": "SV - ¡Vs Pecharunt!", - "battle_rival": "BW - ¡Vs Rival!", + "battle_final": "BW - ¡Vs. Ghechis!", + "battle_kanto_gym": "B2W2 - ¡Vs. Líder de Kanto!", + "battle_johto_gym": "B2W2 - ¡Vs. Líder de Johto!", + "battle_hoenn_gym": "B2W2 - ¡Vs. Líder de Hoenn!", + "battle_sinnoh_gym": "B2W2 - ¡Vs. Líder de Sinnoh!", + "battle_unova_gym": "BW - ¡Vs. Líder de Teselia!", + "battle_kalos_gym": "XY - ¡Vs. Líder de Kalos!", + "battle_galar_gym": "SWSH - ¡Vs. Líder de Galar!", + "battle_paldea_gym": "SV - ¡Vs. Líder de Paldea!", + "battle_legendary_kanto": "XY - ¡Vs. Legendarios de Kanto!", + "battle_legendary_raikou": "HGSS - ¡Vs. Raikou!", + "battle_legendary_entei": "HGSS - ¡Vs. Entei!", + "battle_legendary_suicune": "HGSS - ¡Vs. Suicune!", + "battle_legendary_lugia": "HGSS - ¡Vs. Lugia!", + "battle_legendary_ho_oh": "HGSS - ¡Vs. Ho-oh!", + "battle_legendary_regis_g5": "B2W2 - ¡Vs. Regis!", + "battle_legendary_regis_g6": "ORAS - ¡Vs. Regis!", + "battle_legendary_gro_kyo": "ORAS - ¡Vs. Groudon/Kyogre!", + "battle_legendary_rayquaza": "ORAS - ¡Vs. Rayquaza!", + "battle_legendary_deoxys": "ORAS - ¡Vs. Deoxys!", + "battle_legendary_lake_trio": "ORAS - ¡Vs. trío del Lago!", + "battle_legendary_sinnoh": "ORAS - ¡Vs. legendarios de Sinnoh!", + "battle_legendary_dia_pal": "ORAS - ¡Vs. Dialga/Palkia!", + "battle_legendary_origin_forme": "LA - ¡Vs. Dialga & Palkia, Forma Origen!", + "battle_legendary_giratina": "ORAS - ¡Vs. Giratina!", + "battle_legendary_arceus": "HGSS - ¡Vs. Arceus!", + "battle_legendary_unova": "BW - ¡Vs. legendarios de Teselia!", + "battle_legendary_kyurem": "BW - ¡Vs. Kyurem!", + "battle_legendary_res_zek": "BW - ¡Vs. Reshiram/Zekrom!", + "battle_legendary_xern_yvel": "XY - ¡Vs. Xerneas/Yveltal!", + "battle_legendary_tapu": "SM - ¡Vs. Tapus!", + "battle_legendary_sol_lun": "SM - ¡Vs. Solgaleo/Lunala!", + "battle_legendary_ub": "SM - ¡Vs. Ultraentes!", + "battle_legendary_dusk_dawn": "USUM - ¡Vs. Necrozma Melena Crepuscular/Alas del Alba!", + "battle_legendary_ultra_nec": "USUM - ¡Vs. Ultra-Necrozma!", + "battle_legendary_zac_zam": "SWSH - ¡Vs. Zacian/Zamazenta!", + "battle_legendary_glas_spec": "SWSH - ¡Vs. Glastrier/Spectrier!", + "battle_legendary_calyrex": "SWSH - ¡Vs. Calyrex!", + "battle_legendary_riders": "SWSH - ¡Vs. Calyrex Jinete!", + "battle_legendary_birds_galar": "SWSH - ¡Vs. Aves Legendarias de Galar!", + "battle_legendary_ruinous": "SV - ¡Vs. Tesoros Funestos!", + "battle_legendary_kor_mir": "SV - ¡Batalla en el área Zero!", + "battle_legendary_loyal_three": "SV - ¡Vs. Compatrones!", + "battle_legendary_ogerpon": "SV - ¡Vs. Ogerpon!", + "battle_legendary_terapagos": "SV - ¡Vs. Terapagos!", + "battle_legendary_pecharunt": "SV - ¡Vs. Pecharunt!", + "battle_rival": "BW - ¡Vs. Rival!", "battle_rival_2": "BW - ¡Vs N!", - "battle_rival_3": "BW - ¡Vs N (Liga Pokémon)!", - "battle_trainer": "BW - ¡Vs Entrenador!", - "battle_wild": "BW - ¡Vs Pokémon Salvaje!", - "battle_wild_strong": "BW - ¡Vs Pokémon Salvaje Raro!", - "end_summit": "PMD RTDX - Techo del Cielo", - "battle_rocket_grunt": "HGSS Team Rocket Battle", - "battle_aqua_magma_grunt": "ORAS Team Aqua & Magma Battle", - "battle_galactic_grunt": "BDSP Team Galactic Battle", + "battle_rival_3": "BW - ¡Vs. N (Liga Pokémon)!", + "battle_trainer": "BW - ¡Vs. entrenador!", + "battle_wild": "BW - ¡Vs. Pokémon salvaje!", + "battle_wild_strong": "BW - ¡Vs. Pokémon salvaje raro!", + "end_summit": "PMD RTDX - Techo del cielo", + "battle_rocket_grunt": "HGSS - ¡Vs. Team Rocket!", + "battle_aqua_magma_grunt": "ORAS - ¡Vs. Equipo Aqua & Magma!", + "battle_galactic_grunt": "BDSP - ¡Vs. Equipo Galaxia!", "battle_plasma_grunt": "BW - ¡Vs Equipo Plasma!", - "battle_flare_grunt": "XY Team Flare Battle", - "battle_aether_grunt": "SM Aether Foundation Battle", - "battle_skull_grunt": "SM Team Skull Battle", - "battle_macro_grunt": "SWSH Trainer Battle", - "battle_galactic_admin": "BDSP Team Galactic Admin Battle", - "battle_skull_admin": "SM Team Skull Admin Battle", - "battle_oleana": "SWSH Oleana Battle", - "battle_rocket_boss": "USUM Giovanni Battle", - "battle_aqua_magma_boss": "ORAS Archie & Maxie Battle", - "battle_galactic_boss": "BDSP Cyrus Battle", - "battle_plasma_boss": "B2W2 Ghetsis Battle", - "battle_flare_boss": "XY Lysandre Battle", - + "battle_flare_grunt": "XY - ¡Vs. Team Flare!", + "battle_aether_grunt": "SM - ¡Vs. Fundación Æther!", + "battle_skull_grunt": "SM - ¡Vs. Team Skull!", + "battle_macro_grunt": "SWSH - ¡Vs. entrenador!", + "battle_galactic_admin": "BDSP - ¡Vs. Comandante del Equipo Galaxia!", + "battle_skull_admin": "SM - ¡Vs. Comandante del Team Skull!", + "battle_oleana": "SWSH - ¡Vs. Olivia!", + "battle_rocket_boss": "USUM - ¡Vs. Giovanni!", + "battle_aqua_magma_boss": "ORAS - ¡Vs. Aquiles & Magno!", + "battle_galactic_boss": "BDSP - ¡Vs. Helio!", + "battle_plasma_boss": "B2W2 - ¡Vs. Ghechis Armonia!", + "battle_flare_boss": "XY - ¡Vs. Lysson!", + "battle_aether_boss": "SM - ¡Vs. Samina!", + "battle_skull_boss": "SM - ¡Vs. Guzmán!", + "battle_macro_boss": "SWSH - ¡Vs. Rose!", "abyss": "PMD EoS - Cráter Oscuro", "badlands": "PMD EoS - Valle Desolado", "beach": "PMD EoS - Risco Calado", @@ -105,40 +109,40 @@ "graveyard": "PMD EoS - Bosque Misterio", "ice_cave": "PMD EoS - Gran Iceberg", "island": "PMD EoS - Costa Escarpada", - "jungle": "Lmz - Jungle", - "laboratory": "Firel - Laboratory", + "jungle": "Lmz - Jungla", + "laboratory": "Firel - Laboratorio", "lake": "PMD EoS - Cueva Cristal", "meadow": "PMD EoS - Bosque de la Cumbre del Cielo", - "metropolis": "Firel - Metropolis", + "metropolis": "Firel - Metrópolis", "mountain": "PMD EoS - Monte Cuerno", "plains": "PMD EoS - Pradera de la Cumbre del Cielo", "power_plant": "PMD EoS - Pradera Destello", "ruins": "PMD EoS - Sima Hermética", - "sea": "Andr06 - Marine Mystique", - "seabed": "Firel - Seabed", - "slum": "Andr06 - Sneaky Snom", + "sea": "Andr06 - Misticismo marino", + "seabed": "Firel - Lecho del mar", + "slum": "Andr06 - Snom sigiloso", "snowy_forest": "PMD EoS - Campo nevado de la Cumbre del Cielo", - "space": "Firel - Aether", + "space": "Firel - Æther ", "swamp": "PMD EoS - Mar Circundante", "tall_grass": "PMD EoS - Bosque Niebla", "temple": "PMD EoS - Cueva Regia", "town": "PMD EoS - Tema del territorio aleatorio 3", "volcano": "PMD EoS - Cueva Vapor", "wasteland": "PMD EoS - Corazón Tierra Oculta", - "encounter_ace_trainer": "BW - Desafío Combate (Entrenador Guay)", - "encounter_backpacker": "BW - Desafío Combate (Mochilero)", - "encounter_clerk": "BW - Desafío Combate (Empresario)", - "encounter_cyclist": "BW - Desafío Combate (Ciclista)", - "encounter_lass": "BW - Desafío Combate (Chica)", - "encounter_parasol_lady": "BW - Desafío Combate (Dama parasol)", - "encounter_pokefan": "BW - Desafío Combate (Pokéfan)", - "encounter_psychic": "BW - Desafío Combate (Médium)", - "encounter_rich": "BW - Desafío Combate (Aristócrata)", - "encounter_rival": "BW - Desafío Combate (Cheren)", - "encounter_roughneck": "BW - Desafío Combate (Calvo)", - "encounter_scientist": "BW - Desafío Combate (Científico)", - "encounter_twins": "BW - Desafío Combate (Gemelas)", - "encounter_youngster": "BW - Desafío Combate (Joven)", + "encounter_ace_trainer": "BW - ¡Vs. entrenador guay!", + "encounter_backpacker": "BW - ¡Vs. mochilero!", + "encounter_clerk": "BW - ¡Vs. empresario!", + "encounter_cyclist": "BW - ¡Vs. ciclista!", + "encounter_lass": "BW - ¡Vs. chica joven!", + "encounter_parasol_lady": "BW - ¡Vs. dama parasol!", + "encounter_pokefan": "BW - ¡Vs. poké-fan!", + "encounter_psychic": "BW -¡Vs. médium!", + "encounter_rich": "BW - ¡Vs. aristócrata!", + "encounter_rival": "BW - ¡Vs. Cheren!", + "encounter_roughneck": "BW - ¡Vs. tío chungo!", + "encounter_scientist": "BW - ¡Vs. científico!", + "encounter_twins": "BW - ¡Vs. gemelas!", + "encounter_youngster": "BW - ¡Vs. chico joven!", "heal": "BW - Cura Pokémon", "menu": "PMD EoS - ¡Bienvenidos al mundo de los Pokémon!", "title": "PMD EoS - Tema del menú principal" From dd033f4ec1636adff8488545bd35bdcc85715aa7 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:17:05 -0400 Subject: [PATCH 064/116] [Localization] [pt_BR] Updated many translations (#3917) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Translate tutorial.json via GitLocalize * Translate challenges.json via GitLocalize * Translate menu-ui-handler.json via GitLocalize --------- Co-authored-by: José Ricardo --- src/locales/pt_BR/challenges.json | 2 +- src/locales/pt_BR/menu-ui-handler.json | 8 ++++---- src/locales/pt_BR/tutorial.json | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/locales/pt_BR/challenges.json b/src/locales/pt_BR/challenges.json index 6b20a92f4f6..8402ad106b6 100644 --- a/src/locales/pt_BR/challenges.json +++ b/src/locales/pt_BR/challenges.json @@ -33,4 +33,4 @@ "value.0": "Desligado", "value.1": "Ligado" } -} \ No newline at end of file +} diff --git a/src/locales/pt_BR/menu-ui-handler.json b/src/locales/pt_BR/menu-ui-handler.json index cc087c8335e..df654976d68 100644 --- a/src/locales/pt_BR/menu-ui-handler.json +++ b/src/locales/pt_BR/menu-ui-handler.json @@ -14,8 +14,8 @@ "importSlotSelect": "Selecione um slot para importar.", "exportSession": "Exportar sessão", "exportSlotSelect": "Selecione um slot para exportar.", - "importRunHistory":"Importar Histórico de Jogos", - "exportRunHistory":"Exportar Histórico de Jogos", + "importRunHistory": "Importar Histórico de Jogos", + "exportRunHistory": "Exportar Histórico de Jogos", "importData": "Importar dados", "exportData": "Exportar dados", "consentPreferences": "Opções de Privacidade", @@ -25,5 +25,5 @@ "unlinkGoogle": "Desconectar Google", "cancel": "Cancelar", "losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?", - "noEggs": "Você não está chocando\nnenhum ovo no momento!" -} \ No newline at end of file + "noEggs": "Você não está chocando nenhum ovo\nno momento!" +} diff --git a/src/locales/pt_BR/tutorial.json b/src/locales/pt_BR/tutorial.json index e347ca6fbee..92ea0dd080f 100644 --- a/src/locales/pt_BR/tutorial.json +++ b/src/locales/pt_BR/tutorial.json @@ -1,10 +1,10 @@ { - "intro": "Bem-vindo ao PokéRogue! Este é um jogo Pokémon feito por fãs focado em batalhas com elementos roguelite.\n$Este jogo não é monetizado e não reivindicamos propriedade de Pokémon nem dos ativos protegidos\n$por direitos autorais usados.\n$O jogo é um trabalho em andamento, mas é totalmente jogável.\n$Para relatórios de bugs, use a comunidade no Discord.\n$Se o jogo estiver rodando lentamente, certifique-se de que a 'Aceleração de hardware' esteja ativada \n$nas configurações do seu navegador.", + "intro": "Bem-vindo ao PokéRogue!\n$Este é um fangame Pokémon focado em batalhas com elementos roguelite.\n$Este jogo não é monetizado e não reivindicamos propriedade do Pokémon nem dos ativos protegidos$por direitos autorais usados.\n$O jogo é um trabalho em andamento,\nmas totalmente jogável.\n$Para relatórios de bugs, use a comunidade do Discord.\n$Se o jogo rodar lentamente, certifique-se de que\na 'Aceleração de Hardware' esteja ativada$nas configurações do seu navegador.", "accessMenu": "Para acessar o menu, pressione M ou Esc.\n$O menu contém configurações e diversas funções.", - "menu": "A partir deste menu, você pode acessar as configurações. \n$Nas configurações, você pode alterar a velocidade do jogo,\n$o estilo da janela, entre outras opções. \n$Existem também vários outros recursos disponíveis aqui.\n$Não deixe de conferir todos eles!", - "starterSelect": "Aqui você pode escolher seus iniciais apertando a tecla Z ou\na Barra de Espaço.\n$Esses serão os primeiro Pokémon da sua equipe.\n$Cada inicial tem seu custo. Sua equipe pode ter até 6\nmembros, desde que a soma dos custos não ultrapasse 10. \n$Você pode escolher o gênero, a habilidade\ne até a forma do seu inicial.\n$Essas opções dependem das variantes dessa\nespécie que você já capturou ou chocou. \n$Os IVs de cada inicial são os melhores de todos os Pokémon\ndaquela espécie que você já capturou ou chocou.\n$Sempre capture vários Pokémon de várias espécies!", + "menu": "A partir deste menu, você pode\\nacessar as configurações.\n$A partir das configurações, você\npode alterar a velocidade do jogo,\n$o estilo da janela e outras opções.\n$Há também vários outros recursos aqui.\nCertifique-se de verificar todos eles!", + "starterSelect": "Nesta tela, você pode selecionar seus iniciais\npressionando Z ou a barra de espaço.\n$Esses serão os primeiros membros da sua equipe.\n$Cada inicial tem um custo. Sua equipe pode ter até 6 membros,\ndesde que desde que o custo total não exceda 10.\n$Você pode escolher o gênero, a habilidade\ne até a forma do seu inicial.\n$Essas opções dependem das variantes dessa\nespécie que você já capturou ou chocou.\n$Os IVs de cada inicial são os melhores de todos os Pokémon\ndaquela espécie que você já capturou ou chocou.\n$Sempre capture vários Pokémon de todas as espécies!", "pokerus": "Todo dia, 3 Pokémon iniciais ficam com uma borda roxa.\n$Caso veja um inicial que você possui com uma dessa, tente\nadicioná-lo a sua equipe. Lembre-se de olhar seu sumário!", "statChange": "As mudanças de atributos se mantém após a batalha desde que o Pokémon não seja trocado.\n$Seus Pokémon voltam a suas Poké Bolas antes de batalhas contra treinadores e de entrar em um novo bioma.\n$Para ver as mudanças de atributos dos Pokémon em campo, mantena C ou Shift pressionado durante a batalha.", "selectItem": "Após cada batalha, você pode escolher entre 3 itens aleatórios.\n$Você pode escolher apenas um deles.\n$Esses itens variam entre consumíveis, itens de segurar e itens passivos permanentes.\n$A maioria dos efeitos de itens não consumíveis podem ser acumulados.\n$Alguns itens só aparecerão se puderem ser usados, como os itens de evolução.\n$Você também pode transferir itens de segurar entre os Pokémon utilizando a opção \"Alterar\".\n$A opção de transferir irá aparecer no canto inferior direito assim que você obter um item de segurar.\n$Você pode comprar itens consumíveis com dinheiro, e sua variedade aumentará conforme você for mais longe.\n$Certifique-se de comprá-los antes de escolher seu item aleatório. Ao escolhê-lo, a próxima batalha começará.", - "eggGacha": "Aqui você pode trocar seus vouchers\npor ovos de Pokémon.\n$Ovos ficam mais próximos de chocar após cada batalha.\nOvos mais raros demoram mais para chocar.\n$Pokémon chocados não serão adicionados a sua equipe,\nmas sim aos seus iniciais.\n$Pokémon chocados geralmente possuem IVs melhores\nque Pokémon selvagens.\n$Alguns Pokémon só podem ser obtidos através de seus ovos.\n$Temos 3 máquinas, cada uma com seu bônus específico,\nentão escolha a que mais lhe convém!" + "eggGacha": "Nesta tela, você pode trocar seus vouchers por ovos\nde Pokémon.\n$Ovos ficam mais próximos de chocar após cada batalha.\nOvos mais raros demoram mais tempo para chocar.\n$Pokémon chocados não serão adicionados a sua equipe,\nmas sim aos seus iniciais.\n$Pokémon chocados de ovos geralmente têm IVs melhores\ndo que Pokémon selvagens.\n$Alguns Pokémon só podem ser obtidos através de ovos.\n$Existem 3 máquinas para usar com diferentes bônus, então\nescolha a que mais lhe convém!" } From a894438e24166f51ef7258c70f03194d5833eeea Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:18:49 -0400 Subject: [PATCH 065/116] [Localisation] [JA] Several files translated (#3916) * Translate ability-trigger.json via GitLocalize * Translate game-stats-ui-handler.json via GitLocalize * Translate modifier-select-ui-handler.json via GitLocalize * Translate pokemon-form-battle.json via GitLocalize * Translate battle-info.json via GitLocalize * Translate menu.json via GitLocalize * Translate battler-tags.json via GitLocalize * Translate pokemon-info.json via GitLocalize * Translate achv.json via GitLocalize * Translate berry.json via GitLocalize * Translate achv-female.json via GitLocalize * Translate challenges.json via GitLocalize * Translate menu-ui-handler.json via GitLocalize * Translate egg.json via GitLocalize * Translate pokemon.json via GitLocalize * Translate pokemon.json via GitLocalize * Translate starter-select-ui-handler.json via GitLocalize * Translate command-ui-handler.json via GitLocalize * Translate settings.json via GitLocalize * Update achv-female.json * Update menu-ui-handler.json * Update settings.json * Update achv.json * Update achv.json * Update achv.json * Delete src/locales/ja/achv-female.json * Update achv.json Compared in-game, with these changes it should all look good. * Update challenges.json * Update game-mode.json * Update menu.json * Update settings.json * Translate game-stats-ui-handler.json via GitLocalize * Update game-stats-ui-handler.json * Update settings.json --------- Co-authored-by: gitlocalize-app[bot] <55277160+gitlocalize-app[bot]@users.noreply.github.com> Co-authored-by: Enoch Co-authored-by: Chapybara-jp --- src/locales/ja/ability-trigger.json | 3 +- src/locales/ja/achv.json | 23 ++++--- src/locales/ja/battler-tags.json | 14 +++- src/locales/ja/berry.json | 24 +++---- src/locales/ja/challenges.json | 22 +++--- src/locales/ja/command-ui-handler.json | 4 +- src/locales/ja/egg.json | 22 +++--- src/locales/ja/game-mode.json | 6 +- src/locales/ja/game-stats-ui-handler.json | 30 ++++---- src/locales/ja/menu-ui-handler.json | 17 +++-- src/locales/ja/menu.json | 67 +++++++++++------- .../ja/modifier-select-ui-handler.json | 10 +-- src/locales/ja/pokemon-info.json | 29 ++++---- src/locales/ja/pokemon.json | 8 +-- src/locales/ja/settings.json | 68 +++++++++++++++---- src/locales/ja/starter-select-ui-handler.json | 9 +-- 16 files changed, 218 insertions(+), 138 deletions(-) diff --git a/src/locales/ja/ability-trigger.json b/src/locales/ja/ability-trigger.json index f9d1cc60e4c..ec77d4d97d3 100644 --- a/src/locales/ja/ability-trigger.json +++ b/src/locales/ja/ability-trigger.json @@ -12,7 +12,6 @@ "blockItemTheft": "{{pokemonNameWithAffix}}の {{abilityName}}で\n道具を うばわれない!", "typeImmunityHeal": "{{pokemonNameWithAffix}}は {{abilityName}}で\n体力を 回復した!", "nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}}は {{abilityName}}で\nダメージを 受けない。", - "postDefendDisguise": "{{pokemonNameWithAffix}}の\nばけのかわが はがれた!", "moveImmunity": "{{pokemonNameWithAffix}}には\n効果が ないようだ…", "reverseDrain": "{{pokemonNameWithAffix}}は\nヘドロえきを 吸い取った!", "postDefendTypeChange": "{{pokemonNameWithAffix}}は {{abilityName}}で\n{{typeName}}タイプに なった!", @@ -60,4 +59,4 @@ "postSummonTabletsOfRuin": "{{pokemonNameWithAffix}}の わざわいのおふだ\nまわりの {{statName}}が 弱まった!", "postSummonBeadsOfRuin": "{{pokemonNameWithAffix}}の わざわいのたまで\nまわりの {{statName}}が 弱まった!", "preventBerryUse": "{{pokemonNameWithAffix}}は 緊張して\nきのみが 食べられなくなった!" -} \ No newline at end of file +} diff --git a/src/locales/ja/achv.json b/src/locales/ja/achv.json index 0dc5dc8185a..809375e5c7e 100644 --- a/src/locales/ja/achv.json +++ b/src/locales/ja/achv.json @@ -6,7 +6,7 @@ "name": "なし" }, "MoneyAchv": { - "description": "一回の ランで ₽{{moneyAmount}}を 稼ぐ" + "description": "一回の ランで {{moneyAmount}}円を 稼ぐ" }, "10K_MONEY": { "name": "お金を持つ人" @@ -21,7 +21,7 @@ "name": "超富裕層" }, "DamageAchv": { - "description": "一撃で {{damageAmount}}ダメージを 与える" + "description": "一撃で HP{{damageAmount}}の ダメージを 与える" }, "250_DMG": { "name": "力持ち" @@ -33,10 +33,11 @@ "name": "カカロット" }, "10000_DMG": { - "name": "ワンパンマン" + "name": "ワンパンマン", + "name_female": "ワンパンウーマン" }, "HealAchv": { - "description": "一つの 技や 特性や 持っているアイテムで {{healAmount}}{{HP}}を 一気に 回復する" + "description": "一つの 技や 特性や 持っているアイテムで\n{{healAmount}}{{HP}}を 一気に 回復する" }, "250_HEAL": { "name": "回復発見者" @@ -82,7 +83,7 @@ }, "TRANSFER_MAX_BATTLE_STAT": { "name": "同力", - "description": "少なくとも 一つの 能力を 最大まで あげて 他の 手持ちポケモンに バトンタッチする" + "description": "少なくとも 一つの 能力を 最大まで あげて\n他の 手持ちポケモンに バトンタッチする" }, "MAX_FRIENDSHIP": { "name": "マブ達", @@ -106,7 +107,7 @@ }, "SPLICE": { "name": "インフィニット・フュジョン", - "description": "いでんしのくさびで 二つの ポケモンを 吸収合体させる" + "description": "遺伝子のくさびで 二つの ポケモンを 吸収合体させる" }, "MINI_BLACK_HOLE": { "name": "アイテムホーリック", @@ -161,8 +162,8 @@ "description": "クラシックモードを クリアする" }, "UNEVOLVED_CLASSIC_VICTORY": { - "name": "Bring Your Child To Work Day", - "description": "Beat the game in Classic Mode with at least one unevolved party member." + "name": "はじめてのおつかい", + "description": "少なくとも 一つの 進化していない 手持ちポケモンで\nクラシックモードを クリアする" }, "MONO_GEN_ONE": { "name": "原始", @@ -260,5 +261,9 @@ "FRESH_START": { "name": "一発で!", "description": "出直しチャレンジを クリアする" + }, + "INVERSE_BATTLE": { + "name": "カガミよミガカ", + "description": "反転バトルチャレンジを クリアする\nるすアリク をジンレャチルトバ転反" } -} \ No newline at end of file +} diff --git a/src/locales/ja/battler-tags.json b/src/locales/ja/battler-tags.json index beef485ffd2..25412c971e9 100644 --- a/src/locales/ja/battler-tags.json +++ b/src/locales/ja/battler-tags.json @@ -1,4 +1,12 @@ { + "trappedDesc": "捕らわれること", + "flinchedDesc": "ひるむこと", + "confusedDesc": "混乱", + "infatuatedDesc": "メロメロ", + "seedDesc": "種を植えつくこと", + "nightmareDesc": "あくむ", + "ingrainDesc": "根", + "drowsyDesc": "ねむけ", "rechargingLapse": "{{pokemonNameWithAffix}}は 攻撃の 反動で 動けない!", "trappedOnAdd": "{{pokemonNameWithAffix}}は もう 逃げられない!", "trappedOnRemove": "{{pokemonNameWithAffix}}は\n{{moveName}}の 効果が 解けた!", @@ -13,9 +21,9 @@ "infatuatedOnAdd": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に メロメロに なった!", "infatuatedOnOverlap": "{{pokemonNameWithAffix}}は すでに メロメロだ!", "infatuatedLapse": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に メロメロだ!", - "infatuatedLapseImmobilize": "{{pokemonNameWithAffix}}は\nメロメロで わざが 出せなかった!", + "infatuatedLapseImmobilize": "{{pokemonNameWithAffix}}は メロメロで 技が出せなかった!", "infatuatedOnRemove": "{{pokemonNameWithAffix}}は メロメロ状態が 治った!", - "seededOnAdd": "{{pokemonNameWithAffix}}に 種を 植(う)えつけた!", + "seededOnAdd": "{{pokemonNameWithAffix}}に 種を 植えつけた!", "seededLapse": "やどりぎが {{pokemonNameWithAffix}}の 体力を うばう!", "seededLapseShed": "{{pokemonNameWithAffix}}は ヘドロえきを 吸い取った!", "nightmareOnAdd": "{{pokemonNameWithAffix}}は あくむを 見始めた!", @@ -60,4 +68,4 @@ "cursedOnAdd": "{{pokemonNameWithAffix}}は 自分の 体力を 削って\n{{pokemonName}}に のろいを かけた!", "cursedLapse": "{{pokemonNameWithAffix}}は のろわれている!", "stockpilingOnAdd": "{{pokemonNameWithAffix}}は {{stockpiledCount}}つ たくわえた!" -} \ No newline at end of file +} diff --git a/src/locales/ja/berry.json b/src/locales/ja/berry.json index 641901583b2..73d13d5e8f0 100644 --- a/src/locales/ja/berry.json +++ b/src/locales/ja/berry.json @@ -1,46 +1,46 @@ { "SITRUS": { "name": "オボンのみ", - "effect": "HP 50%いかのとき HPを 25パーセント かいふくする" + "effect": "持たせると HPが 50%以下になるとき HPを 25% 回復する" }, "LUM": { "name": "ラムのみ", - "effect": "すべての じょうたい いじょうと こんらんを かいふくする" + "effect": "持たせると 状態異常や 混乱になるとき 回復する\n" }, "ENIGMA": { "name": "ナゾのみ", - "effect": "こうかばつぐんの わざを うけたとき HPを 25パーセント かいふくする" + "effect": "持たせると 効果バツグンの 技を 受けたとき HPを 25%回復する" }, "LIECHI": { "name": "チイラのみ", - "effect": "HP 25%いかのとき こうげきが あがる" + "effect": "持たせると HPが 25%以下に なるとき 攻撃が あがる" }, "GANLON": { "name": "リュガのみ", - "effect": "HP 25%いかのとき ぼうぎょが あがる" + "effect": "持たせると HPが 25%以下に なるとき 防御が あがる\n" }, "PETAYA": { "name": "ヤタピのみ", - "effect": "HP 25%いかのとき とくこうが あがる" + "effect": "持たせると HPが 25%以下に なるとき 特攻が あがる\n" }, "APICOT": { "name": "ズアのみ", - "effect": "HP 25%いかのとき とくぼうが あがる" + "effect": "持たせると HPが 25%以下に なるとき 特防が あがる\n" }, "SALAC": { "name": "カムラのみ", - "effect": "HP 25%いかのとき すばやさが あがる" + "effect": "持たせると HPが 25%以下に なるとき 素早さが あがる" }, "LANSAT": { "name": "サンのみ", - "effect": "HP 25%いかのとき こうげきが きゅうしょに あたりやすくなる" + "effect": "持たせると HPが 25%以下に なるとき 攻撃が 急所に 当たりやすくなる" }, "STARF": { "name": "スターのみ", - "effect": "HP 25%いかのとき のうりょくの どれか 1つが ぐーんと あがる" + "effect": "持たせると HPが 25%以下に なるとき どれか 1つの 能力が ぐーんと あがる" }, "LEPPA": { "name": "ヒメリのみ", - "effect": "PPが 0に なった わざの PPを 10だけ かいふくする" + "effect": "持たせると PPが 0になる 技のPPを 10回復する" } -} \ No newline at end of file +} diff --git a/src/locales/ja/challenges.json b/src/locales/ja/challenges.json index 54225ebf766..99c6e978d49 100644 --- a/src/locales/ja/challenges.json +++ b/src/locales/ja/challenges.json @@ -1,10 +1,10 @@ { - "title": "チャレンジを 設定", + "title": "チャレンジを 設定", "illegalEvolution": "{{pokemon}}は このチャレンジで\n対象外の ポケモンに なってしまった!", "singleGeneration": { "name": "単一世代", - "desc": "{{gen}}世代からの ポケモンしか 使えません", - "desc_default": "選んだ 世代からの ポケモンしか 使えません", + "desc": "{{gen}}世代からの ポケモンしか 使えません", + "desc_default": "選んだ 世代からの ポケモンしか 使えません", "gen_1": "1", "gen_2": "2", "gen_3": "3", @@ -17,14 +17,20 @@ }, "singleType": { "name": "単一タイプ", - "desc": "{{type}}タイプの ポケモンしか 使えません", - "desc_default": "選んだ タイプの ポケモンしか 使えません" + "desc": "{{type}}タイプの ポケモンしか 使えません", + "desc_default": "選んだ タイプの ポケモンしか 使えません" }, "freshStart": { "name": "出直し", - "shortName": "出直し", - "desc": "ポケローグを 始めた ばかりの ような ままで ゲーム開始の 最初のパートナーしか 使えません", + "desc": "ポケローグを 始めた ばかりの ような ままで ゲーム開始の スターターしか 使えません", + "value.0": "オフ", + "value.1": "オン" + }, + "inverseBattle": { + "name": "反転バトル", + "shortName": "反バ", + "desc": "タイプ相性が 反転で、なんの タイプも 「効果はなし」が ありません\n他の チャレンジの 実績が 無効に されます", "value.0": "オフ", "value.1": "オン" } -} \ No newline at end of file +} diff --git a/src/locales/ja/command-ui-handler.json b/src/locales/ja/command-ui-handler.json index 0b2020a9517..6248a19785f 100644 --- a/src/locales/ja/command-ui-handler.json +++ b/src/locales/ja/command-ui-handler.json @@ -3,5 +3,5 @@ "ball": "ボール", "pokemon": "ポケモン", "run": "にげる", - "actionMessage": "{{pokemonName}}は どうする?" -} \ No newline at end of file + "actionMessage": "{{pokemonName}}は どうする?" +} diff --git a/src/locales/ja/egg.json b/src/locales/ja/egg.json index b0cb7b7de61..91b1442c56c 100644 --- a/src/locales/ja/egg.json +++ b/src/locales/ja/egg.json @@ -4,23 +4,23 @@ "ultraTier": "超レア", "masterTier": "伝説", "defaultTier": "ふつう", - "hatchWavesMessageSoon": "なかから おとが きこえてくる! もうすぐ うまれそう!", - "hatchWavesMessageClose": "ときどき うごいている みたい。 うまれるまで もう ちょっとかな?", - "hatchWavesMessageNotClose": "なにが うまれてくるのかな? うまれるまで まだまだ じかんが かかりそう。", - "hatchWavesMessageLongTime": "この タマゴは うまれるまで かなり じかんが かかりそう。", + "hatchWavesMessageSoon": "中から 音が 聞こえてくる! もうすぐ 生まれそう!", + "hatchWavesMessageClose": "時々 動いている みたい。生まれるまで もう ちょっとかな?", + "hatchWavesMessageNotClose": "なにが 生まれてくるのかな? 生まれるまで まだまだ 時間が かかりそう。", + "hatchWavesMessageLongTime": "この タマゴは 生まれるまで かなり 時間が かかりそう。", "gachaTypeLegendary": "伝説確率アップ", - "gachaTypeMove": "レアなタマゴわざ確率アップ", + "gachaTypeMove": "レアなタマゴ技確率アップ", "gachaTypeShiny": "色違い確率アップ", "selectMachine": "ガチャマシンを選択", "notEnoughVouchers": "タマゴクーポンが足りません!", "tooManyEggs": "タマゴが一杯です!", "pull": "回引く", "pulls": "回引く", - "sameSpeciesEgg": "{{species}}は このタマゴから うまれる!", - "hatchFromTheEgg": "{{pokemonName}}は タマゴから うまれた!", - "eggMoveUnlock": "タマゴわざ {{moveName}}を おぼえた!", - "rareEggMoveUnlock": "レアなタマゴわざ {{moveName}}を おぼえた!!", - "moveUPGacha": "わざ UP!", + "sameSpeciesEgg": "{{species}}は このタマゴから 生まれる!", + "hatchFromTheEgg": "{{pokemonName}}は タマゴから 生まれた!", + "eggMoveUnlock": "タマゴ技: {{moveName}}を 覚えた!", + "rareEggMoveUnlock": "レアなタマゴ技: {{moveName}}を 覚えた!!", + "moveUPGacha": "技 UP!", "shinyUPGacha": "色違い UP!", "legendaryUPGacha": "UP!" -} \ No newline at end of file +} diff --git a/src/locales/ja/game-mode.json b/src/locales/ja/game-mode.json index 36559e5cce3..dc04b36932f 100644 --- a/src/locales/ja/game-mode.json +++ b/src/locales/ja/game-mode.json @@ -1,8 +1,8 @@ { "classic": "クラシック", "endless": "エンドレス", - "endlessSpliced": "エンドレス (Spliced)", + "endlessSpliced": "エンドレス(吸収合体)", "dailyRun": "デイリーラン", - "unknown": "Unknown", + "unknown": "???", "challenge": "チャレンジ" -} \ No newline at end of file +} diff --git a/src/locales/ja/game-stats-ui-handler.json b/src/locales/ja/game-stats-ui-handler.json index 25bb21f701a..2fff802734a 100644 --- a/src/locales/ja/game-stats-ui-handler.json +++ b/src/locales/ja/game-stats-ui-handler.json @@ -1,6 +1,6 @@ { "stats": "統計", - "playTime": "プレー時間", + "playTime": "プレイ時間", "totalBattles": "合計バトル数", "starters": "スターター数", "shinyStarters": "色違いスターター数", @@ -12,31 +12,31 @@ "dailyRunAttempts": "デイリーラン", "dailyRunWins": "デイリーラン勝利", "endlessRuns": "エンドレスラン", - "highestWaveEndless": "エンドレス最高ウェーブ", + "highestWaveEndless": "エンドレス最高波", "highestMoney": "最大貯金", "highestDamage": "最大ダメージ", "highestHPHealed": "最大HP回復", "pokemonEncountered": "遭遇したポケモン", "pokemonDefeated": "倒したポケモン", "pokemonCaught": "捕まえたポケモン", - "eggsHatched": "ふかしたタマゴ", - "subLegendsSeen": "見つけた順伝説", - "subLegendsCaught": "捕まえた順伝説", - "subLegendsHatched": "ふかした順伝説", - "legendsSeen": "見つけた伝説", - "legendsCaught": "捕まえた伝説", - "legendsHatched": "ふかした伝説", + "eggsHatched": "孵化したタマゴ", + "subLegendsSeen": "見つけた順伝説ポケモン", + "subLegendsCaught": "捕まえた準伝説ポケモン", + "subLegendsHatched": "孵化した準伝説ポケモン", + "legendsSeen": "見つけた伝説ポケモン", + "legendsCaught": "捕まえた伝説ポケモン", + "legendsHatched": "孵化した伝説ポケモン", "mythicalsSeen": "見つけた幻ポケモン", "mythicalsCaught": "捕まえた幻ポケモン", - "mythicalsHatched": "ふかした幻ポケモン", - "shiniesSeen": "見つけた色違い", - "shiniesCaught": "捕まえた色違い", - "shiniesHatched": "ふかした色違い", - "pokemonFused": "合体したポケモン", + "mythicalsHatched": "孵化した幻ポケモン", + "shiniesSeen": "見つけた色違いポケモン", + "shiniesCaught": "捕まえた色違いポケモン", + "shiniesHatched": "孵化した色違いポケモン", + "pokemonFused": "吸収合体したポケモン", "trainersDefeated": "倒したトレーナー", "eggsPulled": "引いたタマゴ", "rareEggsPulled": "引いたレアタマゴ", "epicEggsPulled": "引いた超レアタマゴ", "legendaryEggsPulled": "引いた伝説タマゴ", "manaphyEggsPulled": "引いたマナフィタマゴ" -} \ No newline at end of file +} diff --git a/src/locales/ja/menu-ui-handler.json b/src/locales/ja/menu-ui-handler.json index beb014b84a9..1930c3999c6 100644 --- a/src/locales/ja/menu-ui-handler.json +++ b/src/locales/ja/menu-ui-handler.json @@ -2,19 +2,22 @@ "GAME_SETTINGS": "設定", "ACHIEVEMENTS": "実績", "STATS": "統計", + "RUN_HISTORY": "ラン歴", "EGG_LIST": "タマゴリスト", "EGG_GACHA": "タマゴガチャ", "MANAGE_DATA": "データ管理", "COMMUNITY": "コミュニティ", - "SAVE_AND_QUIT": "保存して終了", + "SAVE_AND_QUIT": "セーブして終了", "LOG_OUT": "ログアウト", "slot": "スロット {{slotNumber}}", - "importSession": "セッションのインポート", + "importSession": "セッションをインポート", "importSlotSelect": "インポート先の スロットを 選んでください", - "exportSession": "セッションのエクスポート", + "exportSession": "セッションをエクスポート", "exportSlotSelect": "エクスポート元の スロットを 選んでください", - "importData": "データのインポート", - "exportData": "データのエクスポート", + "importRunHistory": "ラン歴をインポート", + "exportRunHistory": "ラン歴をエクスポート", + "importData": "データをインポート", + "exportData": "データをエクスポート", "consentPreferences": "同意設定", "linkDiscord": "Discord連携", "unlinkDiscord": "Discord連携解除", @@ -22,5 +25,5 @@ "unlinkGoogle": "Google連携解除", "cancel": "キャンセル", "losingProgressionWarning": "戦闘開始からの データが 保存されません。\nよろしいですか?", - "noEggs": "現在 タマゴを ふかしていません!" -} \ No newline at end of file + "noEggs": "現在は タマゴを 孵化していません!" +} diff --git a/src/locales/ja/menu.json b/src/locales/ja/menu.json index ce6f9ae0672..0e7701578bf 100644 --- a/src/locales/ja/menu.json +++ b/src/locales/ja/menu.json @@ -1,38 +1,55 @@ { "cancel": "キャンセル", "continue": "つづきから", - "loadGame": "ロードセーブ", + "dailyRun": "日替わりラン(ベータ版)", + "loadGame": "セーブを読み込む", "newGame": "はじめから", - "username": "ユーザーめい", + "settings": "設定", + "selectGameMode": "ゲームモードを 選んでください。", + "logInOrCreateAccount": "始めるには、ログイン、または 登録して ください。\nメールアドレスは 必要が ありません!", + "username": "ユーザー名", "password": "パスワード", "login": "ログイン", - "orUse": "Or use", - "register": "かいいん とうろく", - "emptyUsername": "ユーザー名は空にできません", - "invalidLoginUsername": "入力したユーザー名は無効です", - "invalidRegisterUsername": "ユーザー名には英文字、数字、アンダースコアのみを含める必要があります", + "orUse": "他の\nログイン方法", + "register": "登録", + "emptyUsername": "ユーザー名を 空にする ことは できません", + "invalidLoginUsername": "入力されたユーザー名は無効です", + "invalidRegisterUsername": "ユーザー名には 英文字、 数字、 アンダースコアのみを 含くむ必要が あります", "invalidLoginPassword": "入力したパスワードは無効です", - "invalidRegisterPassword": "パスワードは6文字以上でなければなりません", - "usernameAlreadyUsed": "ユーザー名は既に使用されています", - "accountNonExistent": "ユーザーは存在しません", - "unmatchingPassword": "パスワードが一致しません", - "passwordNotMatchingConfirmPassword": "パスワードは確認パスワードと一致する必要があります", + "invalidRegisterPassword": "パスワードは 6文字以上 でなければなりません", + "usernameAlreadyUsed": "入力したユーザー名は すでに 使用されています", + "accountNonExistent": "入力したユーザーは 存在しません", + "unmatchingPassword": "入力したパスワードが 一致しません", + "passwordNotMatchingConfirmPassword": "パスワードは パスワード確認と 一致する 必要があります", "confirmPassword": "パスワード確認", - "registrationAgeWarning": "登録することで、あなたが13歳以上であることを確認します。", + "registrationAgeWarning": "登録では 13歳以上 であることを 確認します。", "backToLogin": "ログインへ", - "failedToLoadSaveData": "保存データの読み込みに失敗しました。ページを再読み込みしてください。\nこれが続く場合は、管理者に連絡してください。", - "sessionSuccess": "セッションが正常に読み込まれました。", - "failedToLoadSession": "セッションデータを読み込むことができませんでした。\nデータが破損している可能性があります。", - "boyOrGirl": "おとこのこ?\nそれとも おんなのこ?", - "evolving": "…おや!?\n{{pokemonName}}のようすが…!", - "stoppedEvolving": "{{pokemonName}}のへんかがとまった", - "evolutionDone": "おめでとう!\n{{pokemonName}}は{{evolvedPokemonName}}にしんかした!", - "dailyRankings": "ほんじつのランキング", - "weeklyRankings": "しゅうのランキング", + "failedToLoadSaveData": "セーブデータの 読み込みは 不可能でした。ページを 再読み込み してください。\n長い間に続く 場合は 管理者に 連絡してください。", + "sessionSuccess": "セッションが 正常に 読み込まれました。", + "failedToLoadSession": "セッションデータを 読み込むことが できませんでした。\nデータが 破損している 可能性が あります。", + "boyOrGirl": "男の子?\nそれとも 女の子?", + "evolving": "…おや!?\n{{pokemonName}}の 様子が…!", + "stoppedEvolving": "あれ…? {{pokemonName}}の 変化が 止まった!", + "pauseEvolutionsQuestion": "{{pokemonName}}の 進化を 休止しますか?\n後で 手持ち画面から 進化を また 可能にできます。", + "evolutionsPaused": "{{pokemonName}}の 進化を 休止しました。", + "evolutionDone": "おめでとう!\n{{pokemonName}}は {{evolvedPokemonName}}に 進化した!", + "dailyRankings": "今日のランキング", + "weeklyRankings": "今週のランキング", "noRankings": "ランキングなし", "positionIcon": "#", - "loading": "よみこみちゅう…", + "usernameScoreboard": "ユーザー名", + "score": "スコア", + "wave": "波", + "loading": "読み込み中…", + "loadingAsset": "読み込み中:{{assetName}}", "playersOnline": "オンラインのプレイヤー", "yes": "はい", - "no": "いいえ" -} \ No newline at end of file + "no": "いいえ", + "disclaimer": "免責", + "disclaimerDescription": "このゲームは 未完成作品です。\nセーブデータの 損失を含める ゲーム性に関する 問題が 起きる可能性が あります。\nなお、ゲームは 予告なく変更される 可能性もあり、さらに更新され、完成されるとも 限りません。", + "choosePokemon": "ポケモンを選ぶ", + "renamePokemon": "ニックネームを変える", + "rename": "変える", + "nickname": "ニックネーム", + "errorServerDown": "おや!\nサーバーとの 接続中に 問題が 発生しました。\nゲームは 自動的に 再接続されます から\nウィンドウは 開いたままに しておいても よろしいです。" +} diff --git a/src/locales/ja/modifier-select-ui-handler.json b/src/locales/ja/modifier-select-ui-handler.json index 9370f01491e..d7428c8e373 100644 --- a/src/locales/ja/modifier-select-ui-handler.json +++ b/src/locales/ja/modifier-select-ui-handler.json @@ -1,12 +1,12 @@ { "transfer": "アイテム移行", "reroll": "選択肢変更", - "lockRarities": "レア度の固定", - "checkTeam": "チームを確認", - "transferDesc": "ポケモンの 手持ちアイテムを 移行する", + "lockRarities": "レア度を固定", + "checkTeam": "手持ちを確認", + "transferDesc": "手持ちポケモンの 持たせるアイテムを 移行する", "rerollDesc": "お金を 使って アイテムの 選択肢を 変更する", - "lockRaritiesDesc": "選択肢を 変更するときの レア度を 固定する\n(選択肢変更金額を影響する)", - "checkTeamDesc": "チームの 状態を 確認する\nフォルムチェンジアイテムを 有効・無効にする", + "lockRaritiesDesc": "選択肢を 変更するときの レア度を 固定する\n(選択肢変更の価格は変わる)", + "checkTeamDesc": "手持ちポケモンの 状態を 確認する\nフォルムチェンジアイテムを 有効・無効にする", "rerollCost": "{{formattedMoney}}円", "itemCost": "{{formattedMoney}}円" } diff --git a/src/locales/ja/pokemon-info.json b/src/locales/ja/pokemon-info.json index 9b7a7506953..456b4949839 100644 --- a/src/locales/ja/pokemon-info.json +++ b/src/locales/ja/pokemon-info.json @@ -2,21 +2,22 @@ "Stat": { "HP": "HP", "HPshortened": "HP", - "ATK": "こうげき", - "ATKshortened": "こうげき", - "DEF": "ぼうぎょ", - "DEFshortened": "ぼうぎょ", - "SPATK": "とくこう", - "SPATKshortened": "とくこう", - "SPDEF": "とくぼう", - "SPDEFshortened": "とくぼう", - "SPD": "すばやさ", - "SPDshortened": "すばやさ", - "ACC": "めいちゅう", - "EVA": "かいひ" + "ATK": "攻撃", + "ATKshortened": "攻撃", + "DEF": "防御", + "DEFshortened": "防御", + "SPATK": "特攻", + "SPATKshortened": "特攻", + "SPDEF": "特防", + "SPDEFshortened": "特防", + "SPD": "素早さ", + "SPDshortened": "素早さ", + "ACC": "命中", + "EVA": "回避", + "HPStat": "HP" }, "Type": { - "UNKNOWN": "Unknown", + "UNKNOWN": "???", "NORMAL": "ノーマル", "FIGHTING": "かくとう", "FLYING": "ひこう", @@ -37,4 +38,4 @@ "FAIRY": "フェアリー", "STELLAR": "ステラ" } -} \ No newline at end of file +} diff --git a/src/locales/ja/pokemon.json b/src/locales/ja/pokemon.json index 6c182c09f86..e6fcd02a750 100644 --- a/src/locales/ja/pokemon.json +++ b/src/locales/ja/pokemon.json @@ -437,7 +437,7 @@ "bronzor": "ドーミラー", "bronzong": "ドータクン", "bonsly": "ウソハチ", - "mime_jr.": "マネネ", + "mime_jr": "マネネ", "happiny": "ピンプク", "chatot": "ペラップ", "spiritomb": "ミカルゲ", @@ -770,7 +770,7 @@ "sandygast": "スナバァ", "palossand": "シロデスナ", "pyukumuku": "ナマコブシ", - "type:_null": "タイプ:ヌル", + "type_null": "タイプ:ヌル", "silvally": "シルヴァディ", "minior": "メテノ", "komala": "ネッコアラ", @@ -863,7 +863,7 @@ "obstagoon": "タチフサグマ", "perrserker": "ニャイキング", "cursola": "サニゴーン", - "sirfetch_d": "ネギガナイト", + "sirfetchd": "ネギガナイト", "mr_rime": "バリコオル", "runerigus": "デスバーン", "milcery": "マホミル", @@ -1081,4 +1081,4 @@ "paldea_tauros": "ケンタロス", "paldea_wooper": "ウパー", "bloodmoon_ursaluna": "ガチグマ" -} \ No newline at end of file +} diff --git a/src/locales/ja/settings.json b/src/locales/ja/settings.json index c88792979f6..4cb10c670de 100644 --- a/src/locales/ja/settings.json +++ b/src/locales/ja/settings.json @@ -6,12 +6,14 @@ "audio": "音声", "gamepad": "コントローラー", "keyboard": "キーボード", - "gameSpeed": "ゲームスピード", - "hpBarSpeed": "HPバーの増減スピード", - "expGainsSpeed": "EXPバーの増加スピード", - "expPartyDisplay": "パーティの経験値取得表示", + "gameSpeed": "ゲームの速さ", + "hpBarSpeed": "HPバー増減の速さ", + "expGainsSpeed": "経験値バー増加の速さ", + "expPartyDisplay": "手持ちの経験値取得表示", + "skipSeenDialogues": "もう見た話をスキップ", "battleStyle": "試合のルール", - "enableRetries": "リトライを有効にする", + "enableRetries": "再挑戦を有効にする", + "hideIvs": "個体値スキャナーを隠す", "tutorials": "チュートリアル", "touchControls": "タッチ操作", "vibrations": "振動", @@ -35,33 +37,71 @@ "moneyFormat": "お金の表示形式", "damageNumbers": "ダメージ表示", "simple": "シンプル", - "fancy": "Fancy", + "fancy": "オシャレ", "abbreviated": "省略", - "moveAnimations": "戦闘アニメ", + "moveAnimations": "戦闘アニメーション", "showStatsOnLevelUp": "レベルアップ時のステータス表示", + "candyUpgradeNotification": "飴アプグレ通知", "passivesOnly": "パッシブのみ", + "candyUpgradeDisplay": "飴アプグレ表示", "icon": "アイコン", "animation": "アニメーション", - "moveInfo": "技の情報表示", + "moveInfo": "技情報", + "showMovesetFlyout": "技情報表示", + "showArenaFlyout": "戦場情報表示", + "showTimeOfDayWidget": "時刻指標", + "timeOfDayAnimation": "時刻指標アニメーション", + "bounce": "跳ねる", + "timeOfDay_back": "跳ね返る", + "spriteSet": "スプライト設定", + "consistent": "一貫", + "mixedAnimated": "アニメーションミックス", + "fusionPaletteSwaps": "吸収合体ポケモンの色違い", "playerGender": "プレイヤーの性別", - "typeHints": "相性のヒント", + "typeHints": "タイプ相性ヒント", "masterVolume": "マスターボリューム", - "bgmVolume": "BGMのボリューム", - "seVolume": "SEのボリューム", + "bgmVolume": "BGMボリューム", + "fieldVolume": "フィールドボリューム", + "seVolume": "SEボリューム", + "uiVolume": "UIボリューム", + "musicPreference": "BGM設定", + "mixed": "ミックス", + "gamepadPleasePlug": "コントローラーを 接続してください\nまたは、ボタンを 押してください", + "delete": "削除", + "keyboardPleasePress": "キーを押してください", "reset": "リセット", "requireReload": "再読み込みが必要", "action": "決定", "back": "戻る", + "pressToBind": "押下でキーバインド", + "pressButton": "ボタンを押してください", "buttonUp": "上", "buttonDown": "下", "buttonLeft": "左", "buttonRight": "右", "buttonAction": "決定", "buttonMenu": "メニュー", - "buttonSubmit": "Submit", + "buttonSubmit": "提出", "buttonCancel": "キャンセル", - "alt": " (代替)", + "buttonStats": "能力変化表示", + "buttonCycleForm": "フォルム変更", + "buttonCycleShiny": "色違い変更", + "buttonCycleGender": "性別変更", + "buttonCycleAbility": "特性変更", + "buttonCycleNature": "性格変更", + "buttonCycleVariant": "色変更", + "buttonSpeedUp": "速さを上げる", + "buttonSlowDown": "速さを下げる", + "alt": "(代替)", "mute": "ミュート", "controller": "コントローラー", - "gamepadSupport": "コントローラーサポート" + "gamepadSupport": "コントローラーサポート", + "showBgmBar": "BGMの名前を表示", + "moveTouchControls": "タッチ移動操作", + "shopOverlayOpacity": "ショップオーバレイ不透明度", + "shopCursorTarget": "ショップカーソル初位置", + "items": "アイテム", + "reroll": "選択肢変更", + "shop": "ショップ", + "checkTeam": "手持ちを確認" } diff --git a/src/locales/ja/starter-select-ui-handler.json b/src/locales/ja/starter-select-ui-handler.json index 84eaa8598e9..cab5c500df6 100644 --- a/src/locales/ja/starter-select-ui-handler.json +++ b/src/locales/ja/starter-select-ui-handler.json @@ -1,5 +1,5 @@ { - "confirmStartTeam": "この条件で チャレンジを 始めますか?", + "confirmStartTeam": "この手持ちで 始めますか?", "confirmExit": "終了しますか?", "invalidParty": "手持ちは チャレンジの 条件で 認められない!", "gen1": "1世代", @@ -16,8 +16,8 @@ "passive": "パッシブ:", "nature": "性格:", "eggMoves": "タマゴ技", - "start": "始める", "addToParty": "手持ちに入れる", + "removeFromParty": "手持ちから除く", "toggleIVs": "個体値を表示", "manageMoves": "技を並び替える", "manageNature": "性格を変える", @@ -36,9 +36,10 @@ "cycleAbility": ": 特性変更", "cycleNature": ": 性格変更", "cycleVariant": ": 色変更", + "goFilter": ": フィルタ へ ", "enablePassive": "パッシブ - オン", "disablePassive": "パッシブ - オフ", - "locked": "開放されていない", + "locked": "非開放", "disabled": "無効", "uncaught": "捕まっていない" -} \ No newline at end of file +} From 22d31bc704572c746dddfab82d8f7d0842862138 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:19:02 -0400 Subject: [PATCH 066/116] [Localisation] [ES] Review and finished pokemon-form and pokemon-form-battle (#3903) * Translate pokemon-form.json via GitLocalize * Translate pokemon-form.json via GitLocalize * Translate pokemon-form-battle.json via GitLocalize * Translate pokemon-form-battle.json via GitLocalize * Update src/locales/es/pokemon-form.json Co-authored-by: Asdar --------- Co-authored-by: Rafa Co-authored-by: LilyAlternis Co-authored-by: Asdar Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> --- src/locales/es/pokemon-form-battle.json | 10 +++++-- src/locales/es/pokemon-form.json | 39 +++++++++++++++++++------ 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/locales/es/pokemon-form-battle.json b/src/locales/es/pokemon-form-battle.json index 7af01f8f093..5266baa7049 100644 --- a/src/locales/es/pokemon-form-battle.json +++ b/src/locales/es/pokemon-form-battle.json @@ -4,5 +4,11 @@ "mega-y": "Mega {{pokemonName}} Y", "primal": "{{pokemonName}} Primigenio", "gigantamax": "G-Max {{pokemonName}}", - "eternamax": "E-Max {{pokemonName}}" -} \ No newline at end of file + "eternamax": "E-Max {{pokemonName}}", + "megaChange": "¡{{preName}} ha mega-evolucionado a {{pokemonName}}!", + "gigantamaxChange": "¡{{preName}} ha gigamaxizado a {{pokemonName}}!", + "eternamaxChange": "¡{{preName}} ha eternamaxizado a {{pokemonName}}!", + "revertChange": "¡{{pokemonName}} ha revertido a su forma original!", + "formChange": "¡{{preName}} ha cambiado de forma!", + "disguiseChange": "¡El disfraz ha actuado como señuelo!\t" +} diff --git a/src/locales/es/pokemon-form.json b/src/locales/es/pokemon-form.json index c46521d78da..2f70038ad2d 100644 --- a/src/locales/es/pokemon-form.json +++ b/src/locales/es/pokemon-form.json @@ -7,6 +7,7 @@ "pikachuToughCosplay": "Enmascarada", "pikachuPartner": "Compañero", "eeveePartner": "Compañero", + "pichuSpiky": "Picoreja", "unownA": "A", "unownB": "B", "unownC": "C", @@ -49,6 +50,8 @@ "rotomFrost": "Frío", "rotomFan": "Ventilador", "rotomMow": "Corte", + "giratinaAltered": "Modificada", + "shayminLand": "Tierra", "basculinRedStriped": "Raya Roja", "basculinBlueStriped": "Raya Azul", "basculinWhiteStriped": "Raya Blanca", @@ -56,6 +59,10 @@ "deerlingSummer": "Verano", "deerlingAutumn": "Otoño", "deerlingWinter": "Invierno", + "tornadusIncarnate": "Avatar", + "thundurusIncarnate": "Avatar", + "landorusIncarnate": "Avatar", + "keldeoOrdinary": "Habitual", "meloettaAria": "Lírica", "meloettaPirouette": "Danza", "froakieBattleBond": "Fuerte Afecto", @@ -87,12 +94,12 @@ "furfrouHeart": "Corazón", "furfrouStar": "Estrella", "furfrouDiamond": "Diamante", - "furfrouDebutante": "Debutante", - "furfrouMatron": "Matrón", - "furfrouDandy": "Dandi", - "furfrouLaReine": "La Reine", + "furfrouDebutante": "Señorita", + "furfrouMatron": "Dama", + "furfrouDandy": "Caballero", + "furfrouLaReine": "Aristócrata", "furfrouKabuki": "Kabuki", - "furfrouPharaoh": "Faraón", + "furfrouPharaoh": "Faraónico", "pumpkabooSmall": "Pequeño", "pumpkabooLarge": "Grande", "pumpkabooSuper": "Enorme", @@ -127,11 +134,15 @@ "magearnaOriginal": "Vetusto", "marshadowZenith": "Cénit", "sinisteaPhony": "Falsificada", - "sinisteaAntique": "Auténtica", + "sinisteaAntique": "Genuina", "eiscueNoIce": "Cara Deshielo", "indeedeeMale": "Macho", "indeedeeFemale": "Hembra", + "morpekoFullBelly": "Saciada", + "zacianHeroOfManyBattles": "Guerrero avezado", + "zamazentaHeroOfManyBattles": "Guerrero avezado", "zarudeDada": "Papá", + "enamorusIncarnate": "Avatar", "squawkabillyGreenPlumage": "Plumaje Verde", "squawkabillyBluePlumage": "Plumaje Azul", "squawkabillyYellowPlumage": "Plumaje Amarillo", @@ -141,9 +152,19 @@ "tatsugiriStretchy": "Estirada", "gimmighoulChest": "Cofre", "gimmighoulRoaming": "Andante", - "poltchageistCounterfeit": "Imitación", - "poltchageistArtisan": "Original", + "koraidonApexBuild": "Forma Plena", + "koraidonLimitedBuild": "Forma Limitada", + "koraidonSprintingBuild": "Forma Carrera", + "koraidonSwimmingBuild": "Forma Nado", + "koraidonGlidingBuild": "Forma Planeo", + "miraidonUltimateMode": "Modo Pleno", + "miraidonLowPowerMode": "Modo Limitado", + "miraidonDriveMode": "Modo Conducción", + "miraidonAquaticMode": "Modo Flote", + "miraidonGlideMode": "Modo Planeo", + "poltchageistCounterfeit": "Fraudulenta", + "poltchageistArtisan": "Opulenta", "paldeaTaurosCombat": "Combatiente", "paldeaTaurosBlaze": "Ardiente", "paldeaTaurosAqua": "Acuático" -} \ No newline at end of file +} From 4553c1c34ffdbbdda2696bbd69315b3b5a294950 Mon Sep 17 00:00:00 2001 From: PrabbyDD <147005742+PrabbyDD@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:20:16 -0700 Subject: [PATCH 067/116] [Bug] Fix Octolock Ignores Clear Body, White Smoke, Big Pecks #3876 Pecks, Clear Body, and White Smoke Adding tests for octolock --- src/data/battler-tags.ts | 2 +- src/test/moves/octolock.test.ts | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 2e280634d5d..92df6fc294f 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -767,7 +767,7 @@ export class OctolockTag extends TrappedTag { const shouldLapse = lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType); if (shouldLapse) { - pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [BattleStat.DEF, BattleStat.SPDEF], -1)); + pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), false, [BattleStat.DEF, BattleStat.SPDEF], -1)); return true; } diff --git a/src/test/moves/octolock.test.ts b/src/test/moves/octolock.test.ts index 389e4a4c4cf..34dad13b0d9 100644 --- a/src/test/moves/octolock.test.ts +++ b/src/test/moves/octolock.test.ts @@ -61,6 +61,48 @@ describe("Moves - Octolock", () => { expect(enemyPokemon[0].summonData.battleStats[BattleStat.SPDEF]).toBe(-2); }); + it("If target pokemon has Big Pecks, Octolock should only reduce spdef by 1", { timeout: 10000 }, async () => { + game.override.enemyAbility(Abilities.BIG_PECKS); + await game.startBattle([Species.GRAPPLOCT]); + + const enemyPokemon = game.scene.getEnemyField(); + + // use Octolock and advance to init phase of next turn to check for stat changes + game.move.select(Moves.OCTOLOCK); + await game.phaseInterceptor.to(TurnInitPhase); + + expect(enemyPokemon[0].summonData.battleStats[BattleStat.DEF]).toBe(0); + expect(enemyPokemon[0].summonData.battleStats[BattleStat.SPDEF]).toBe(-1); + }); + + it("If target pokemon has White Smoke, Octolock should not reduce any stats", { timeout: 10000 }, async () => { + game.override.enemyAbility(Abilities.WHITE_SMOKE); + await game.startBattle([Species.GRAPPLOCT]); + + const enemyPokemon = game.scene.getEnemyField(); + + // use Octolock and advance to init phase of next turn to check for stat changes + game.move.select(Moves.OCTOLOCK); + await game.phaseInterceptor.to(TurnInitPhase); + + expect(enemyPokemon[0].summonData.battleStats[BattleStat.DEF]).toBe(0); + expect(enemyPokemon[0].summonData.battleStats[BattleStat.SPDEF]).toBe(0); + }); + + it("If target pokemon has Clear Body, Octolock should not reduce any stats", { timeout: 10000 }, async () => { + game.override.enemyAbility(Abilities.CLEAR_BODY); + await game.startBattle([Species.GRAPPLOCT]); + + const enemyPokemon = game.scene.getEnemyField(); + + // use Octolock and advance to init phase of next turn to check for stat changes + game.move.select(Moves.OCTOLOCK); + await game.phaseInterceptor.to(TurnInitPhase); + + expect(enemyPokemon[0].summonData.battleStats[BattleStat.DEF]).toBe(0); + expect(enemyPokemon[0].summonData.battleStats[BattleStat.SPDEF]).toBe(0); + }); + it("Traps the target pokemon", { timeout: 10000 }, async () => { await game.startBattle([Species.GRAPPLOCT]); From 69a9916b4c2780fd478dd861f1b0e554613ae2e0 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:21:56 -0700 Subject: [PATCH 068/116] [Bug] Moves copied by Dancer should not consume PP (#3623) * Moves copied by Dancer should not consume PP * Add test for Dancer (unfinished) * Delete src/test/abilities/dancer.test.ts This test is not finished lol * Add test --- src/data/ability.ts | 4 +- src/phases/move-phase.ts | 16 ++++---- src/test/abilities/dancer.test.ts | 64 +++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 src/test/abilities/dancer.test.ts diff --git a/src/data/ability.ts b/src/data/ability.ts index 4d3d32e22fa..818ab07637f 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -3695,10 +3695,10 @@ export class PostDancingMoveAbAttr extends PostMoveUsedAbAttr { // If the move is an AttackMove or a StatusMove the Dancer must replicate the move on the source of the Dance if (move.getMove() instanceof AttackMove || move.getMove() instanceof StatusMove) { const target = this.getTarget(dancer, source, targets); - dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, target, move, true)); + dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, target, move, true, true)); } else if (move.getMove() instanceof SelfStatusMove) { // If the move is a SelfStatusMove (ie. Swords Dance) the Dancer should replicate it on itself - dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, [dancer.getBattlerIndex()], move, true)); + dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, [dancer.getBattlerIndex()], move, true, true)); } } return true; diff --git a/src/phases/move-phase.ts b/src/phases/move-phase.ts index c446660b16f..e2893d587a7 100644 --- a/src/phases/move-phase.ts +++ b/src/phases/move-phase.ts @@ -1,9 +1,9 @@ import BattleScene from "#app/battle-scene.js"; import { BattlerIndex } from "#app/battle.js"; -import { applyAbAttrs, RedirectMoveAbAttr, BlockRedirectAbAttr, IncreasePpAbAttr, applyPreAttackAbAttrs, PokemonTypeChangeAbAttr, applyPostMoveUsedAbAttrs, PostMoveUsedAbAttr } from "#app/data/ability.js"; +import { applyAbAttrs, applyPostMoveUsedAbAttrs, applyPreAttackAbAttrs, BlockRedirectAbAttr, IncreasePpAbAttr, PokemonTypeChangeAbAttr, PostMoveUsedAbAttr, RedirectMoveAbAttr } from "#app/data/ability.js"; import { CommonAnim } from "#app/data/battle-anims.js"; -import { CenterOfAttentionTag, BattlerTagLapseType } from "#app/data/battler-tags.js"; -import { MoveFlags, BypassRedirectAttr, allMoves, CopyMoveAttr, applyMoveAttrs, BypassSleepAttr, HealStatusEffectAttr, ChargeAttr, PreMoveMessageAttr } from "#app/data/move.js"; +import { BattlerTagLapseType, CenterOfAttentionTag } from "#app/data/battler-tags.js"; +import { allMoves, applyMoveAttrs, BypassRedirectAttr, BypassSleepAttr, ChargeAttr, CopyMoveAttr, HealStatusEffectAttr, MoveFlags, PreMoveMessageAttr } from "#app/data/move.js"; import { SpeciesFormChangePreMoveTrigger } from "#app/data/pokemon-forms.js"; import { getStatusEffectActivationText, getStatusEffectHealText } from "#app/data/status-effect.js"; import { Type } from "#app/data/type.js"; @@ -13,10 +13,10 @@ import { BattlerTagType } from "#app/enums/battler-tag-type.js"; import { Moves } from "#app/enums/moves.js"; import { StatusEffect } from "#app/enums/status-effect.js"; import { MoveUsedEvent } from "#app/events/battle-scene.js"; -import Pokemon, { PokemonMove, MoveResult, TurnMove } from "#app/field/pokemon.js"; +import Pokemon, { MoveResult, PokemonMove, TurnMove } from "#app/field/pokemon.js"; import { getPokemonNameWithAffix } from "#app/messages.js"; -import i18next from "i18next"; import * as Utils from "#app/utils.js"; +import i18next from "i18next"; import { BattlePhase } from "./battle-phase"; import { CommonAnimPhase } from "./common-anim-phase"; import { MoveEffectPhase } from "./move-effect-phase"; @@ -38,8 +38,8 @@ export class MovePhase extends BattlePhase { this.pokemon = pokemon; this.targets = targets; this.move = move; - this.followUp = !!followUp; - this.ignorePp = !!ignorePp; + this.followUp = followUp ?? false; + this.ignorePp = ignorePp ?? false; this.failed = false; this.cancelled = false; } @@ -194,7 +194,7 @@ export class MovePhase extends BattlePhase { return this.end(); } - if (!moveQueue.length || !moveQueue.shift()?.ignorePP) { // using .shift here clears out two turn moves once they've been used + if ((!moveQueue.length || !moveQueue.shift()?.ignorePP) && !this.ignorePp) { // using .shift here clears out two turn moves once they've been used this.move.usePp(ppUsed); this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), this.move.ppUsed)); } diff --git a/src/test/abilities/dancer.test.ts b/src/test/abilities/dancer.test.ts new file mode 100644 index 00000000000..d80f497f8b2 --- /dev/null +++ b/src/test/abilities/dancer.test.ts @@ -0,0 +1,64 @@ +import { BattlerIndex } from "#app/battle"; +import { MovePhase } from "#app/phases/move-phase"; +import { Abilities } from "#enums/abilities"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; + +const TIMEOUT = 20 * 1000; + +describe("Abilities - Dancer", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("double") + .moveset([Moves.SWORDS_DANCE, Moves.SPLASH]) + .enemySpecies(Species.MAGIKARP) + .enemyAbility(Abilities.DANCER) + .enemyMoveset(Array(4).fill(Moves.VICTORY_DANCE)); + }); + + // Reference Link: https://bulbapedia.bulbagarden.net/wiki/Dancer_(Ability) + + it("triggers when dance moves are used, doesn't consume extra PP", async () => { + await game.classicMode.startBattle([Species.ORICORIO, Species.FEEBAS]); + + const [oricorio] = game.scene.getPlayerField(); + + game.move.select(Moves.SPLASH); + game.move.select(Moves.SWORDS_DANCE, 1); + await game.setTurnOrder([BattlerIndex.PLAYER_2, BattlerIndex.ENEMY, BattlerIndex.PLAYER, BattlerIndex.ENEMY_2]); + await game.phaseInterceptor.to("MovePhase"); + // immediately copies ally move + await game.phaseInterceptor.to("MovePhase", false); + let currentPhase = game.scene.getCurrentPhase() as MovePhase; + expect(currentPhase.pokemon).toBe(oricorio); + expect(currentPhase.move.moveId).toBe(Moves.SWORDS_DANCE); + await game.phaseInterceptor.to("MoveEndPhase"); + await game.phaseInterceptor.to("MovePhase"); + // immediately copies enemy move + await game.phaseInterceptor.to("MovePhase", false); + currentPhase = game.scene.getCurrentPhase() as MovePhase; + expect(currentPhase.pokemon).toBe(oricorio); + expect(currentPhase.move.moveId).toBe(Moves.VICTORY_DANCE); + await game.phaseInterceptor.to("BerryPhase"); + + // doesn't use PP if copied move is also in moveset + expect(oricorio.moveset[0]?.ppUsed).toBe(0); + }, TIMEOUT); +}); From f3c41edf5e35266fb2ca752eac988c04ab1d881d Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:24:12 -0700 Subject: [PATCH 069/116] [Bug] Don't reset turn count or used moves array at the start of a new wave (fakeout and gigaton hammer) (#3606) * Don't reset turn count or used moves array at the start of a new wave * Add tests --- src/phases/battle-end-phase.ts | 6 -- src/test/moves/fake_out.test.ts | 83 +++++++++++++++++++++++++++ src/test/moves/gigaton_hammer.test.ts | 81 ++++++++++++++++++++++++++ 3 files changed, 164 insertions(+), 6 deletions(-) create mode 100644 src/test/moves/fake_out.test.ts create mode 100644 src/test/moves/gigaton_hammer.test.ts diff --git a/src/phases/battle-end-phase.ts b/src/phases/battle-end-phase.ts index a9999370cdd..06315668a8b 100644 --- a/src/phases/battle-end-phase.ts +++ b/src/phases/battle-end-phase.ts @@ -23,12 +23,6 @@ export class BattleEndPhase extends BattlePhase { this.scene.unshiftPhase(new GameOverPhase(this.scene, true)); } - for (const pokemon of this.scene.getField()) { - if (pokemon) { - pokemon.resetBattleSummonData(); - } - } - for (const pokemon of this.scene.getParty().filter(p => p.isAllowedInBattle())) { applyPostBattleAbAttrs(PostBattleAbAttr, pokemon); } diff --git a/src/test/moves/fake_out.test.ts b/src/test/moves/fake_out.test.ts new file mode 100644 index 00000000000..92331ebb758 --- /dev/null +++ b/src/test/moves/fake_out.test.ts @@ -0,0 +1,83 @@ +import GameManager from "#app/test/utils/gameManager"; +import { getMovePosition } from "#app/test/utils/gameManagerUtils"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { SPLASH_ONLY } from "../utils/testUtils"; + +describe("Moves - Fake Out", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .enemySpecies(Species.CORVIKNIGHT) + .starterSpecies(Species.FEEBAS) + .moveset([Moves.FAKE_OUT, Moves.SPLASH]) + .enemyMoveset(SPLASH_ONLY) + .disableCrits(); + }); + + it("can only be used on the first turn a pokemon is sent out", async() => { + await game.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + await game.toNextTurn(); + + expect(enemy.hp).toBeLessThan(enemy.getMaxHp()); + const postTurnOneHp = enemy.hp; + + game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + await game.toNextTurn(); + + expect(enemy.hp).toBe(postTurnOneHp); + + game.doAttack(getMovePosition(game.scene, 0, Moves.SPLASH)); + await game.doKillOpponents(); + await game.toNextWave(); + + const newEnemy = game.scene.getEnemyPokemon()!; + + game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + await game.toNextTurn(); + + expect(newEnemy.hp).toBe(newEnemy.getMaxHp()); + }, 20000); + + it("can be used again if recalled and sent back out", async() => { + game.override.startingWave(4); + await game.startBattle(); + + const enemy1 = game.scene.getEnemyPokemon()!; + + game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + await game.phaseInterceptor.to("MoveEndPhase"); + + expect(enemy1.hp).toBeLessThan(enemy1.getMaxHp()); + + await game.doKillOpponents(); + await game.toNextWave(); + + game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + await game.toNextTurn(); + + const enemy2 = game.scene.getEnemyPokemon()!; + + expect(enemy2.hp).toBeLessThan(enemy2.getMaxHp()); + }, 20000); +}); diff --git a/src/test/moves/gigaton_hammer.test.ts b/src/test/moves/gigaton_hammer.test.ts new file mode 100644 index 00000000000..aca95a76332 --- /dev/null +++ b/src/test/moves/gigaton_hammer.test.ts @@ -0,0 +1,81 @@ +import { BattlerIndex } from "#app/battle.js"; +import GameManager from "#app/test/utils/gameManager"; +import { getMovePosition } from "#app/test/utils/gameManagerUtils"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { SPLASH_ONLY } from "../utils/testUtils"; + +describe("Moves - Gigaton Hammer", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .enemySpecies(Species.MAGIKARP) + .starterSpecies(Species.FEEBAS) + .moveset([Moves.GIGATON_HAMMER]) + .startingLevel(10) + .enemyLevel(100) + .enemyMoveset(SPLASH_ONLY) + .disableCrits(); + }); + + it("can't be used two turns in a row", async() => { + await game.startBattle(); + + const enemy1 = game.scene.getEnemyPokemon()!; + + game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); + await game.phaseInterceptor.to("MoveEndPhase"); + + expect(enemy1.hp).toBeLessThan(enemy1.getMaxHp()); + + await game.doKillOpponents(); + await game.toNextWave(); + + game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + await game.toNextTurn(); + + const enemy2 = game.scene.getEnemyPokemon()!; + + expect(enemy2.hp).toBe(enemy2.getMaxHp()); + }, 20000); + + it("can be used again if recalled and sent back out", async() => { + game.override.startingWave(4); + await game.startBattle(); + + const enemy1 = game.scene.getEnemyPokemon()!; + + game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); + await game.phaseInterceptor.to("MoveEndPhase"); + + expect(enemy1.hp).toBeLessThan(enemy1.getMaxHp()); + + await game.doKillOpponents(); + await game.toNextWave(); + + game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + await game.toNextTurn(); + + const enemy2 = game.scene.getEnemyPokemon()!; + + expect(enemy2.hp).toBeLessThan(enemy2.getMaxHp()); + }, 20000); +}); From 2d5bd57c44292dae075bfaddbb8543b6573f2752 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:25:07 -0400 Subject: [PATCH 070/116] [Localization] [FR] pokemon-info.json and dialogue-misc.json completion (#3761) * Translate pokemon-info.json via GitLocalize * Update dialogue-misc.json --------- Co-authored-by: Lugiad --- src/locales/fr/dialogue-misc.json | 6 ++++-- src/locales/fr/pokemon-info.json | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/locales/fr/dialogue-misc.json b/src/locales/fr/dialogue-misc.json index d932d283d37..359c2dfb46b 100644 --- a/src/locales/fr/dialogue-misc.json +++ b/src/locales/fr/dialogue-misc.json @@ -1,4 +1,6 @@ { "ending": "@c{smile}Oh ? T’as gagné ?@d{96} @c{smile_eclosed}J’aurais dû le savoir.\nMais de voilà de retour.\n$@c{smile}C’est terminé.@d{64} T’as brisé ce cycle infernal.\n$@c{serious_smile_fists}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$@c{neutral}Je suis le seul à me souvenir de ce que t’as fait.@d{96}\nJe pense que ça ira, non ?\n$@c{serious_smile_fists}Ta légende vivra à jamais dans nos cœurs.\n$@c{smile_eclosed}Bref, j’en ai un peu marre de ce endroit, pas toi ? Rentrons à la maison.\n$@c{serious_smile_fists}On se fera un p’tit combat une fois rentrés ?\nSi t’es d’accord.", - "ending_female": "@c{shock}T’es revenu ?@d{32} Ça veut dire…@d{96} que t’as gagné ?!\n@c{smile_ehalf}J’aurais dû le savoir.\n$@c{smile_eclosed}Bien sûr… J’ai toujours eu ce sentiment.\n@c{smile}C’est fini maitenant hein ? T’as brisé ce cycle.\n$@c{smile_ehalf}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$Je serai la seule à me souvenir de ce que t’as fait.\n@c{angry_mopen}Je tâcherai de ne pas oublier !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile}Jamais j’oublierai.@d{32}\nTa légende vivra à jamais dans nos cœurs.\n$@c{smile_wave}Bon,@d{64} il se fait tard…@d{96} je crois ?\nDifficile à dire ici.\n$Rentrons, @c{smile_wave_wink}et demain on se fera un p’tit combat, comme au bon vieux temps ?" -} \ No newline at end of file + "ending_female": "@c{shock}T’es revenu ?@d{32} Ça veut dire…@d{96} que t’as gagné ?!\n@c{smile_ehalf}J’aurais dû le savoir.\n$@c{smile_eclosed}Bien sûr… J’ai toujours eu ce sentiment.\n@c{smile}C’est fini maitenant hein ? T’as brisé ce cycle.\n$@c{smile_ehalf}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$Je serai la seule à me souvenir de ce que t’as fait.\n@c{angry_mopen}Je tâcherai de ne pas oublier !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile}Jamais j’oublierai.@d{32}\nTa légende vivra à jamais dans nos cœurs.\n$@c{smile_wave}Bon,@d{64} il se fait tard…@d{96} je crois ?\nDifficile à dire ici.\n$Rentrons, @c{smile_wave_wink}et demain on se fera un p’tit combat, comme au bon vieux temps ?", + "ending_endless": "Félicitations ! Vous avez atteint la fin actuelle.\nPlus de contenu à venir bientôt !", + "ending_name": "Les devs" +} diff --git a/src/locales/fr/pokemon-info.json b/src/locales/fr/pokemon-info.json index 1e55f332432..1160ec95b75 100644 --- a/src/locales/fr/pokemon-info.json +++ b/src/locales/fr/pokemon-info.json @@ -13,7 +13,8 @@ "SPD": "Vitesse", "SPDshortened": "Vit", "ACC": "Précison", - "EVA": "Esquive" + "EVA": "Esquive", + "HPStat": "PV" }, "Type": { "UNKNOWN": "Inconnu", @@ -37,4 +38,4 @@ "FAIRY": "Fée", "STELLAR": "Stellaire" } -} \ No newline at end of file +} From f54846f735e2c22f195348cb3ae9f347d7c5cfe3 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:26:20 -0700 Subject: [PATCH 071/116] [Move] Implement Safeguard (#3447) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Implemented safeguard and tests * Update tests * Add i18n placeholders * Implement Safeguard for non-volatile statuses * Implement protection from confusion and Yawn * Replace `target instanceof EnemyPokemon` with `target.isPlayer()` * Minor capitalization change * First batch of i18n Adds fr, pt_BR, zh_CN, zh_TW Co-authored-by: Lugiad' Co-authored-by: José Ricardo Fleury Oliveira Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> * Add more translations + de, es, ko Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Co-authored-by: Asdar Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> * Fix broken character in es translation * Update test with new function definition * Add Italian translation Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com> * Add move category check for message display Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> * Update phase imports in Safeguard test * Fix test imports * Update tests --------- Co-authored-by: Joshua Keegan Co-authored-by: Lugiad' Co-authored-by: José Ricardo Fleury Oliveira Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com> Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Co-authored-by: Asdar Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com> Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com> Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com> --- src/data/ability.ts | 2 +- src/data/arena-tag.ts | 17 ++++ src/data/move.ts | 22 +++- src/enums/arena-tag-type.ts | 1 + src/field/pokemon.ts | 5 + src/locales/de/arena-tag.json | 8 +- src/locales/de/move-trigger.json | 3 +- src/locales/es/arena-tag.json | 9 +- src/locales/es/move-trigger.json | 3 +- src/locales/fr/arena-tag.json | 8 +- src/locales/fr/move-trigger.json | 3 +- src/locales/it/arena-tag.json | 9 +- src/locales/it/move-trigger.json | 3 +- src/locales/ko/arena-tag.json | 8 +- src/locales/ko/move-trigger.json | 3 +- src/locales/pt_BR/arena-tag.json | 8 +- src/locales/pt_BR/move-trigger.json | 3 +- src/locales/zh_CN/arena-tag.json | 8 +- src/locales/zh_CN/move-trigger.json | 3 +- src/locales/zh_TW/arena-tag.json | 8 +- src/locales/zh_TW/move-trigger.json | 3 +- src/test/moves/safeguard.test.ts | 150 ++++++++++++++++++++++++++++ 22 files changed, 268 insertions(+), 19 deletions(-) create mode 100644 src/test/moves/safeguard.test.ts diff --git a/src/data/ability.ts b/src/data/ability.ts index 818ab07637f..40312eaa8be 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -850,7 +850,7 @@ export class PostDefendTerrainChangeAbAttr extends PostDefendAbAttr { } export class PostDefendContactApplyStatusEffectAbAttr extends PostDefendAbAttr { - private chance: integer; + public chance: integer; private effects: StatusEffect[]; constructor(chance: integer, ...effects: StatusEffect[]) { diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts index a60ea5c2981..09cc7a5b97c 100644 --- a/src/data/arena-tag.ts +++ b/src/data/arena-tag.ts @@ -905,6 +905,21 @@ class HappyHourTag extends ArenaTag { } } +class SafeguardTag extends ArenaTag { + constructor(turnCount: integer, sourceId: integer, side: ArenaTagSide) { + super(ArenaTagType.SAFEGUARD, turnCount, Moves.SAFEGUARD, sourceId, side); + } + + onAdd(arena: Arena): void { + arena.scene.queueMessage(i18next.t(`arenaTag:safeguardOnAdd${this.side === ArenaTagSide.PLAYER ? "Player" : this.side === ArenaTagSide.ENEMY ? "Enemy" : ""}`)); + } + + onRemove(arena: Arena): void { + arena.scene.queueMessage(i18next.t(`arenaTag:safeguardOnRemove${this.side === ArenaTagSide.PLAYER ? "Player" : this.side === ArenaTagSide.ENEMY ? "Enemy" : ""}`)); + } +} + + export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves | undefined, sourceId: integer, targetIndex?: BattlerIndex, side: ArenaTagSide = ArenaTagSide.BOTH): ArenaTag | null { switch (tagType) { case ArenaTagType.MIST: @@ -950,6 +965,8 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov return new TailwindTag(turnCount, sourceId, side); case ArenaTagType.HAPPY_HOUR: return new HappyHourTag(turnCount, sourceId, side); + case ArenaTagType.SAFEGUARD: + return new SafeguardTag(turnCount, sourceId, side); default: return null; } diff --git a/src/data/move.ts b/src/data/move.ts index 3f87fc68b89..1dc715f264a 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1953,6 +1953,13 @@ export class StatusEffectAttr extends MoveEffectAttr { return false; } } + + if (user !== target && target.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY)) { + if (move.category === MoveCategory.STATUS) { + user.scene.queueMessage(i18next.t("moveTriggers:safeguard", { targetName: getPokemonNameWithAffix(target)})); + } + return false; + } if ((!pokemon.status || (pokemon.status.effect === this.effect && moveChance < 0)) && pokemon.trySetStatus(this.effect, true, user, this.cureTurn)) { applyPostAttackAbAttrs(ConfusionOnStatusEffectAbAttr, user, target, move, null, false, this.effect); @@ -4659,6 +4666,17 @@ export class ConfuseAttr extends AddBattlerTagAttr { constructor(selfTarget?: boolean) { super(BattlerTagType.CONFUSED, selfTarget, false, 2, 5); } + + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (!this.selfTarget && target.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY)) { + if (move.category === MoveCategory.STATUS) { + user.scene.queueMessage(i18next.t("moveTriggers:safeguard", { targetName: getPokemonNameWithAffix(target)})); + } + return false; + } + + return super.apply(user, target, move, args); + } } export class RechargeAttr extends AddBattlerTagAttr { @@ -7014,7 +7032,7 @@ export function initMoves() { .attr(FriendshipPowerAttr, true), new StatusMove(Moves.SAFEGUARD, Type.NORMAL, -1, 25, -1, 0, 2) .target(MoveTarget.USER_SIDE) - .unimplemented(), + .attr(AddArenaTagAttr, ArenaTagType.SAFEGUARD, 5, true, true), new StatusMove(Moves.PAIN_SPLIT, Type.NORMAL, -1, 20, -1, 0, 2) .attr(HpSplitAttr) .condition(failOnBossCondition), @@ -7203,7 +7221,7 @@ export function initMoves() { .attr(RemoveScreensAttr), new StatusMove(Moves.YAWN, Type.NORMAL, -1, 10, -1, 0, 3) .attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true) - .condition((user, target, move) => !target.status), + .condition((user, target, move) => !target.status && !target.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY)), new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3) .attr(MovePowerMultiplierAttr, (user, target, move) => target.getHeldItems().filter(i => i.isTransferrable).length > 0 ? 1.5 : 1) .attr(RemoveHeldItemAttr, false), diff --git a/src/enums/arena-tag-type.ts b/src/enums/arena-tag-type.ts index 1265b815bf4..1c79750c91a 100644 --- a/src/enums/arena-tag-type.ts +++ b/src/enums/arena-tag-type.ts @@ -22,5 +22,6 @@ export enum ArenaTagType { CRAFTY_SHIELD = "CRAFTY_SHIELD", TAILWIND = "TAILWIND", HAPPY_HOUR = "HAPPY_HOUR", + SAFEGUARD = "SAFEGUARD", NO_CRIT = "NO_CRIT" } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 16ad96f61cc..c970c99e7d3 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -2787,6 +2787,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const types = this.getTypes(true, true); + const defendingSide = this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY; + if (sourcePokemon && sourcePokemon !== this && this.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, defendingSide)) { + return false; + } + switch (effect) { case StatusEffect.POISON: case StatusEffect.TOXIC: diff --git a/src/locales/de/arena-tag.json b/src/locales/de/arena-tag.json index 454effae60c..3bed4fefbd0 100644 --- a/src/locales/de/arena-tag.json +++ b/src/locales/de/arena-tag.json @@ -47,5 +47,11 @@ "tailwindOnRemovePlayer": "Der Rückenwind auf deiner Seite hat sich gelegt!", "tailwindOnRemoveEnemy": "Der Rückenwind auf gegnerischer Seite hat sich gelegt!", "happyHourOnAdd": "Goldene Zeiten sind angebrochen!", - "happyHourOnRemove": "Die goldenen Zeiten sind vorbei!" + "happyHourOnRemove": "Die goldenen Zeiten sind vorbei!", + "safeguardOnAdd": "Das ganze Feld wird von einem Schleier umhüllt!", + "safeguardOnAddPlayer": "Das Team des Anwenders wird von einem Schleier umhüllt!", + "safeguardOnAddEnemy": "Das gegnerische Team wird von einem Schleier umhüllt!", + "safeguardOnRemove": "Der mystische Schleier, der das ganze Feld umgab, hat sich gelüftet!", + "safeguardOnRemovePlayer": "Der mystische Schleier, der dein Team umgab, hat sich gelüftet!", + "safeguardOnRemoveEnemy": "Der mystische Schleier, der das gegnerische Team umgab, hat sich gelüftet!" } \ No newline at end of file diff --git a/src/locales/de/move-trigger.json b/src/locales/de/move-trigger.json index 5b2b2471df9..163e8014d8b 100644 --- a/src/locales/de/move-trigger.json +++ b/src/locales/de/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "Die Fähigkeit von {{pokemonName}} wirkt nicht mehr!", "revivalBlessing": "{{pokemonName}} ist wieder fit und kampfbereit!", "swapArenaTags": "{{pokemonName}} hat die Effekte, die auf den beiden Seiten des Kampffeldes wirken, miteinander getauscht!", - "exposedMove": "{{pokemonName}} erkennt {{targetPokemonName}}!" + "exposedMove": "{{pokemonName}} erkennt {{targetPokemonName}}!", + "safeguard": "{{targetName}} wird durch Bodyguard geschützt!" } \ No newline at end of file diff --git a/src/locales/es/arena-tag.json b/src/locales/es/arena-tag.json index 9e26dfeeb6e..913876ddf87 100644 --- a/src/locales/es/arena-tag.json +++ b/src/locales/es/arena-tag.json @@ -1 +1,8 @@ -{} \ No newline at end of file +{ + "safeguardOnAdd": "¡Todos los Pokémon están protegidos por Velo Sagrado!", + "safeguardOnAddPlayer": "¡Tu equipo se ha protegido con Velo Sagrado!", + "safeguardOnAddEnemy": "¡El equipo enemigo se ha protegido con Velo Sagrado!", + "safeguardOnRemove": "¡Velo Sagrado dejó de hacer efecto!", + "safeguardOnRemovePlayer": "El efecto de Velo Sagrado en tu equipo se ha disipado.", + "safeguardOnRemoveEnemy": "El efecto de Velo Sagrado en el equipo enemigo se ha disipado." +} \ No newline at end of file diff --git a/src/locales/es/move-trigger.json b/src/locales/es/move-trigger.json index b570f029377..52a6f86d930 100644 --- a/src/locales/es/move-trigger.json +++ b/src/locales/es/move-trigger.json @@ -7,5 +7,6 @@ "usedUpAllElectricity": "¡{{pokemonName}} ha descargado toda su electricidad!", "stoleItem": "¡{{pokemonName}} robó el objeto\n{{itemName}} de {{targetName}}!", "statEliminated": "¡Los cambios en estadísticas fueron eliminados!", - "revivalBlessing": "¡{{pokemonName}} ha revivido!" + "revivalBlessing": "¡{{pokemonName}} ha revivido!", + "safeguard": "¡{{targetName}} está protegido por Velo Sagrado!" } \ No newline at end of file diff --git a/src/locales/fr/arena-tag.json b/src/locales/fr/arena-tag.json index 16355816ae4..c3c705290fa 100644 --- a/src/locales/fr/arena-tag.json +++ b/src/locales/fr/arena-tag.json @@ -47,5 +47,11 @@ "tailwindOnRemovePlayer": "Le vent arrière soufflant\nsur votre équipe s’arrête !", "tailwindOnRemoveEnemy": "Le vent arrière soufflant\nsur l’équipe ennemie s’arrête !", "happyHourOnAdd": "L’ambiance est euphorique !", - "happyHourOnRemove": "L’ambiance se calme !" + "happyHourOnRemove": "L’ambiance se calme !", + "safeguardOnAdd": "Un voile mystérieux recouvre\ntout le terrain !", + "safeguardOnAddPlayer": "Un voile mystérieux recouvre\nvotre équipe !", + "safeguardOnAddEnemy": "Un voile mystérieux recouvre\nl’équipe ennemie !", + "safeguardOnRemove": "Le terrain n’est plus protégé\npar le voile mystérieux !", + "safeguardOnRemovePlayer": "Votre équipe n’est plus protégée\npar le voile mystérieux !", + "safeguardOnRemoveEnemy": "L’équipe ennemie n’est plus protégée\npar le voile mystérieux !" } \ No newline at end of file diff --git a/src/locales/fr/move-trigger.json b/src/locales/fr/move-trigger.json index 43cf09d5bf6..5c814745a8e 100644 --- a/src/locales/fr/move-trigger.json +++ b/src/locales/fr/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "Le talent de {{pokemonName}}\na été rendu inactif !", "revivalBlessing": "{{pokemonName}} a repris connaissance\net est prêt à se battre de nouveau !", "swapArenaTags": "Les effets affectant chaque côté du terrain\nont été échangés par {{pokemonName}} !", - "exposedMove": "{{targetPokemonName}} est identifié\npar {{pokemonName}} !" + "exposedMove": "{{targetPokemonName}} est identifié\npar {{pokemonName}} !", + "safeguard": "{{targetName}} est protégé\npar la capacité Rune Protect !" } \ No newline at end of file diff --git a/src/locales/it/arena-tag.json b/src/locales/it/arena-tag.json index 9e26dfeeb6e..a1c5ee5b3c9 100644 --- a/src/locales/it/arena-tag.json +++ b/src/locales/it/arena-tag.json @@ -1 +1,8 @@ -{} \ No newline at end of file +{ + "safeguardOnAdd": "Un velo mistico ricopre il campo!", + "safeguardOnAddPlayer": "Un velo mistico ricopre la tua squadra!", + "safeguardOnAddEnemy": "Un velo mistico ricopre la squadra avversaria!", + "safeguardOnRemove": "Il campo non è più protetto da Salvaguardia!", + "safeguardOnRemovePlayer": "La tua squadra non è più protetta da Salvaguardia!", + "safeguardOnRemoveEnemy": "La squadra avversaria non è più protetta da Salvaguardia!" +} \ No newline at end of file diff --git a/src/locales/it/move-trigger.json b/src/locales/it/move-trigger.json index e852c2fb52a..58b7b1a4c5b 100644 --- a/src/locales/it/move-trigger.json +++ b/src/locales/it/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "L’abilità di {{pokemonName}}\nperde ogni efficacia!", "revivalBlessing": "{{pokemonName}} torna in forze!", "swapArenaTags": "{{pokemonName}} ha invertito gli effetti attivi\nnelle due metà del campo!", - "exposedMove": "{{pokemonName}} ha identificato\n{{targetPokemonName}}!" + "exposedMove": "{{pokemonName}} ha identificato\n{{targetPokemonName}}!", + "safeguard": "Salvaguardia protegge {{targetName}}!" } \ No newline at end of file diff --git a/src/locales/ko/arena-tag.json b/src/locales/ko/arena-tag.json index 61586508a94..ce9922ab3bf 100644 --- a/src/locales/ko/arena-tag.json +++ b/src/locales/ko/arena-tag.json @@ -47,5 +47,11 @@ "tailwindOnRemovePlayer": "우리 편의\n순풍이 멈췄다!", "tailwindOnRemoveEnemy": "상대의\n순풍이 멈췄다!", "happyHourOnAdd": "모두 행복한 기분에\n휩싸였다!", - "happyHourOnRemove": "기분이 원래대로 돌아왔다." + "happyHourOnRemove": "기분이 원래대로 돌아왔다.", + "safeguardOnAdd": "필드 전체가 신비의 베일에 둘러싸였다!", + "safeguardOnAddPlayer": "우리 편은 신비의 베일에 둘러싸였다!", + "safeguardOnAddEnemy": "상대 편은 신비의 베일에 둘러싸였다!", + "safeguardOnRemove": "필드를 감싸던 신비의 베일이 없어졌다!", + "safeguardOnRemovePlayer": "우리 편을 감싸던 신비의 베일이 없어졌다!", + "safeguardOnRemoveEnemy": "상대 편을 감싸던 신비의 베일이 없어졌다!" } \ No newline at end of file diff --git a/src/locales/ko/move-trigger.json b/src/locales/ko/move-trigger.json index 61dffa122a3..f0e0fbd6a56 100644 --- a/src/locales/ko/move-trigger.json +++ b/src/locales/ko/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "{{pokemonName}}의\n특성이 효과를 발휘하지 못하게 되었다!", "revivalBlessing": "{{pokemonName}}[[는]]\n정신을 차려 싸울 수 있게 되었다!", "swapArenaTags": "{{pokemonName}}[[는]]\n서로의 필드 효과를 교체했다!", - "exposedMove": "{{pokemonName}}[[는]]\n{{targetPokemonName}}의 정체를 꿰뚫어 보았다!" + "exposedMove": "{{pokemonName}}[[는]]\n{{targetPokemonName}}의 정체를 꿰뚫어 보았다!", + "safeguard": "{{targetName}}[[는]] 신비의 베일이 지켜 주고 있다!" } \ No newline at end of file diff --git a/src/locales/pt_BR/arena-tag.json b/src/locales/pt_BR/arena-tag.json index 20ef208c8fc..7ab1ecea721 100644 --- a/src/locales/pt_BR/arena-tag.json +++ b/src/locales/pt_BR/arena-tag.json @@ -47,5 +47,11 @@ "tailwindOnRemovePlayer": "O Tailwind de sua equipe acabou!", "tailwindOnRemoveEnemy": "O Tailwind da equipe adversária acabou!", "happyHourOnAdd": "Todos foram envolvidos por uma atmosfera alegre!", - "happyHourOnRemove": "A atmosfera retornou ao normal." + "happyHourOnRemove": "A atmosfera retornou ao normal.", + "safeguardOnAdd": "O campo de batalha está envolto num véu místico!", + "safeguardOnAddPlayer": "Sua equipe se envolveu num véu místico!", + "safeguardOnAddEnemy": "A equipe adversária se envolveu num véu místico!", + "safeguardOnRemove": "O campo não está mais protegido por Safeguard!", + "safeguardOnRemovePlayer": "Sua equipe não está mais protegido por Safeguard!", + "safeguardOnRemoveEnemy": "A equipe adversária não está mais protegido por Safeguard!" } \ No newline at end of file diff --git a/src/locales/pt_BR/move-trigger.json b/src/locales/pt_BR/move-trigger.json index 416740dba0d..ea320412a24 100644 --- a/src/locales/pt_BR/move-trigger.json +++ b/src/locales/pt_BR/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "A habilidade de {{pokemonName}}\nfoi suprimida!", "revivalBlessing": "{{pokemonName}} foi reanimado!", "swapArenaTags": "{{pokemonName}} trocou os efeitos de batalha que afetam cada lado do campo!", - "exposedMove": "{{pokemonName}} identificou\n{{targetPokemonName}}!" + "exposedMove": "{{pokemonName}} identificou\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} está protegido por Safeguard!" } \ No newline at end of file diff --git a/src/locales/zh_CN/arena-tag.json b/src/locales/zh_CN/arena-tag.json index 5a36b3ae1f7..74ad38ba9bf 100644 --- a/src/locales/zh_CN/arena-tag.json +++ b/src/locales/zh_CN/arena-tag.json @@ -47,5 +47,11 @@ "tailwindOnRemovePlayer": "我方的顺风停止了!", "tailwindOnRemoveEnemy": "敌方的顺风停止了!", "happyHourOnAdd": "大家被欢乐的\n气氛包围了!", - "happyHourOnRemove": "气氛回复到平常了。" + "happyHourOnRemove": "气氛回复到平常了。", + "safeguardOnAdd": "整个场地被\n神秘之幕包围了!", + "safeguardOnAddPlayer": "我方被\n神秘之幕包围了!", + "safeguardOnAddEnemy": "对手被\n神秘之幕包围了!", + "safeguardOnRemove": "包围整个场地的\n神秘之幕消失了!", + "safeguardOnRemovePlayer": "包围我方的\n神秘之幕消失了!", + "safeguardOnRemoveEnemy": "包围对手的\n神秘之幕消失了!" } \ No newline at end of file diff --git a/src/locales/zh_CN/move-trigger.json b/src/locales/zh_CN/move-trigger.json index 5a76f402783..44705d54e76 100644 --- a/src/locales/zh_CN/move-trigger.json +++ b/src/locales/zh_CN/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "{{pokemonName}}的特性\n变得无效了!", "revivalBlessing": "{{pokemonName}}复活了!", "swapArenaTags": "{{pokemonName}}\n交换了双方的场地效果!", - "exposedMove": "{{pokemonName}}识破了\n{{targetPokemonName}}的原型!" + "exposedMove": "{{pokemonName}}识破了\n{{targetPokemonName}}的原型!", + "safeguard": "{{targetName}}\n正受到神秘之幕的保护!" } \ No newline at end of file diff --git a/src/locales/zh_TW/arena-tag.json b/src/locales/zh_TW/arena-tag.json index b60946a3b77..78246d9c44f 100644 --- a/src/locales/zh_TW/arena-tag.json +++ b/src/locales/zh_TW/arena-tag.json @@ -1,5 +1,11 @@ { "noCritOnAddPlayer": "{{moveName}}保護了你的\n隊伍不被擊中要害!", "noCritOnAddEnemy": "{{moveName}}保護了對方的\n隊伍不被擊中要害!", - "noCritOnRemove": "{{pokemonNameWithAffix}}的{{moveName}}\n效果消失了!" + "noCritOnRemove": "{{pokemonNameWithAffix}}的{{moveName}}\n效果消失了!", + "safeguardOnAdd": "整個場地被\n神秘之幕包圍了!", + "safeguardOnAddPlayer": "我方被\n神秘之幕包圍了!", + "safeguardOnAddEnemy": "對手被\n神秘之幕包圍了!", + "safeguardOnRemove": "包圍整個場地的\n神秘之幕消失了!", + "safeguardOnRemovePlayer": "包圍我方的\n神秘之幕消失了!", + "safeguardOnRemoveEnemy": "包圍對手的\n神秘之幕消失了!" } \ No newline at end of file diff --git a/src/locales/zh_TW/move-trigger.json b/src/locales/zh_TW/move-trigger.json index 03ca6841a7f..60dcc1eab7a 100644 --- a/src/locales/zh_TW/move-trigger.json +++ b/src/locales/zh_TW/move-trigger.json @@ -61,5 +61,6 @@ "suppressAbilities": "{{pokemonName}}的特性\n變得無效了!", "revivalBlessing": "{{pokemonName}}復活了!", "swapArenaTags": "{{pokemonName}}\n交換了雙方的場地效果!", - "exposedMove": "{{pokemonName}}識破了\n{{targetPokemonName}}的原形!" + "exposedMove": "{{pokemonName}}識破了\n{{targetPokemonName}}的原形!", + "safeguard": "{{targetName}}\n正受到神秘之幕的保護!" } \ No newline at end of file diff --git a/src/test/moves/safeguard.test.ts b/src/test/moves/safeguard.test.ts new file mode 100644 index 00000000000..94a7aa6031e --- /dev/null +++ b/src/test/moves/safeguard.test.ts @@ -0,0 +1,150 @@ +import { BattlerIndex } from "#app/battle"; +import { allAbilities, PostDefendContactApplyStatusEffectAbAttr } from "#app/data/ability"; +import { Abilities } from "#app/enums/abilities"; +import { StatusEffect } from "#app/enums/status-effect"; +import GameManager from "#app/test/utils/gameManager"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; + +const TIMEOUT = 20 * 1000; + +describe("Moves - Safeguard", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .enemySpecies(Species.DRATINI) + .enemyMoveset(Array(4).fill(Moves.SAFEGUARD)) + .enemyAbility(Abilities.BALL_FETCH) + .enemyLevel(5) + .starterSpecies(Species.DRATINI) + .moveset([Moves.NUZZLE, Moves.SPORE, Moves.YAWN, Moves.SPLASH]) + .ability(Abilities.BALL_FETCH); + }); + + it("protects from damaging moves with additional effects", async () => { + await game.startBattle(); + const enemy = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.NUZZLE); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.toNextTurn(); + + expect(enemy.status).toBeUndefined(); + }, TIMEOUT); + + it("protects from status moves", async () => { + await game.startBattle(); + const enemyPokemon = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.SPORE); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.toNextTurn(); + + expect(enemyPokemon.status).toBeUndefined(); + }, TIMEOUT); + + it("protects from confusion", async () => { + game.override.moveset([Moves.CONFUSE_RAY]); + await game.startBattle(); + const enemyPokemon = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.CONFUSE_RAY); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.toNextTurn(); + + expect(enemyPokemon.summonData.tags).toEqual([]); + }, TIMEOUT); + + it("protects ally from status", async () => { + game.override.battleType("double"); + + await game.startBattle(); + + game.move.select(Moves.SPORE, 0, BattlerIndex.ENEMY_2); + game.move.select(Moves.NUZZLE, 1, BattlerIndex.ENEMY_2); + + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER, BattlerIndex.PLAYER_2, BattlerIndex.ENEMY_2]); + + await game.phaseInterceptor.to("BerryPhase"); + + const enemyPokemon = game.scene.getEnemyField(); + + expect(enemyPokemon[0].status).toBeUndefined(); + expect(enemyPokemon[1].status).toBeUndefined(); + }, TIMEOUT); + + it("protects from Yawn", async () => { + await game.startBattle(); + const enemyPokemon = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.YAWN); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.toNextTurn(); + + expect(enemyPokemon.summonData.tags).toEqual([]); + }, TIMEOUT); + + it("doesn't protect from already existing Yawn", async () => { + await game.startBattle(); + const enemyPokemon = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.YAWN); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); + await game.toNextTurn(); + + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + expect(enemyPokemon.status?.effect).toEqual(StatusEffect.SLEEP); + }, TIMEOUT); + + it("doesn't protect from self-inflicted via Rest or Flame Orb", async () => { + game.override.enemyHeldItems([{name: "FLAME_ORB"}]); + await game.startBattle(); + const enemyPokemon = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.SPLASH); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.toNextTurn(); + + expect(enemyPokemon.status?.effect).toEqual(StatusEffect.BURN); + + game.override.enemyMoveset(Array(4).fill(Moves.REST)); + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + expect(enemyPokemon.status?.effect).toEqual(StatusEffect.SLEEP); + }, TIMEOUT); + + it("protects from ability-inflicted status", async () => { + game.override.ability(Abilities.STATIC); + vi.spyOn(allAbilities[Abilities.STATIC].getAttrs(PostDefendContactApplyStatusEffectAbAttr)[0], "chance", "get").mockReturnValue(100); + await game.startBattle(); + const enemyPokemon = game.scene.getEnemyPokemon()!; + + game.move.select(Moves.SPLASH); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.toNextTurn(); + game.override.enemyMoveset(Array(4).fill(Moves.TACKLE)); + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + expect(enemyPokemon.status).toBeUndefined(); + }, TIMEOUT); +}); From 1e432fc74b958e4629c4b33de85ee103444069ed Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:26:35 -0700 Subject: [PATCH 072/116] [Bug] Fixed pre-set volume oversight (#3963) Co-authored-by: frutescens --- src/battle-scene.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 2a920864850..e761d8fca39 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1791,6 +1791,7 @@ export default class BattleScene extends SceneBase { config = config ?? {}; try { const keyDetails = key.split("/"); + config["volume"] = config["volume"] ?? 1; switch (keyDetails[0]) { case "level_up_fanfare": case "item_fanfare": @@ -1800,11 +1801,11 @@ export default class BattleScene extends SceneBase { case "evolution_fanfare": // These sounds are loaded in as BGM, but played as sound effects // When these sounds are updated in updateVolume(), they are treated as BGM however because they are placed in the BGM Cache through being called by playSoundWithoutBGM() - config["volume"] = this.masterVolume * this.bgmVolume; + config["volume"] *= (this.masterVolume * this.bgmVolume); break; case "battle_anims": case "cry": - config["volume"] = this.masterVolume * this.fieldVolume; + config["volume"] *= (this.masterVolume * this.fieldVolume); //PRSFX sound files are unusually loud if (keyDetails[1].startsWith("PRSFX- ")) { config["volume"] *= 0.5; @@ -1812,10 +1813,10 @@ export default class BattleScene extends SceneBase { break; case "ui": //As of, right now this applies to the "select", "menu_open", "error" sound effects - config["volume"] = this.masterVolume * this.uiVolume; + config["volume"] *= (this.masterVolume * this.uiVolume); break; case "se": - config["volume"] = this.masterVolume * this.seVolume; + config["volume"] *= (this.masterVolume * this.seVolume); break; } this.sound.play(key, config); From 84ef7f0683737eb8f35505420acb3071c4593ca5 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:26:47 -0700 Subject: [PATCH 073/116] [Balance] Double base shiny odds, adjusted Shiny Charm to match (#3964) * Double shiny odds "anyone wanna double the base shiny odds for me" - damo, 2024 * Adjust Shiny Charm to compensate for increased base odds * Remove magic number * Update tsdoc and remove unneeded `console.log()` * Clarify tsdoc --- src/field/pokemon.ts | 18 +++++++++--------- src/modifier/modifier.ts | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index c970c99e7d3..8594d5b769b 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1527,13 +1527,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } /** - * Function that tries to set a Pokemon shiny based on the trainer's trainer ID and secret ID + * Function that tries to set a Pokemon shiny based on the trainer's trainer ID and secret ID. * Endless Pokemon in the end biome are unable to be set to shiny * - * The exact mechanic is that it calculates E as the XOR of the player's trainer ID and secret ID - * F is calculated as the XOR of the first 16 bits of the Pokemon's ID with the last 16 bits - * The XOR of E and F are then compared to the thresholdOverride (default case 32) to see whether or not to generate a shiny - * @param thresholdOverride number that is divided by 2^16 (65536) to get the shiny chance + * The exact mechanic is that it calculates E as the XOR of the player's trainer ID and secret ID. + * F is calculated as the XOR of the first 16 bits of the Pokemon's ID with the last 16 bits. + * The XOR of E and F are then compared to the {@linkcode shinyThreshold} (or {@linkcode thresholdOverride} if set) to see whether or not to generate a shiny. + * The base shiny odds are {@linkcode baseShinyChance} / 65536 + * @param thresholdOverride number that is divided by 2^16 (65536) to get the shiny chance, overrides {@linkcode shinyThreshold} if set (bypassing shiny rate modifiers such as Shiny Charm) * @returns true if the Pokemon has been set as a shiny, false otherwise */ trySetShiny(thresholdOverride?: integer): boolean { @@ -1548,7 +1549,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const E = this.scene.gameData.trainerId ^ this.scene.gameData.secretId; const F = rand1 ^ rand2; - const shinyThreshold = new Utils.IntegerHolder(32); + /** `64/65536 -> 1/1024` */ + const baseShinyChance = 64; + const shinyThreshold = new Utils.IntegerHolder(baseShinyChance); if (thresholdOverride === undefined) { if (this.scene.eventManager.isEventActive()) { shinyThreshold.value *= this.scene.eventManager.getShinyMultiplier(); @@ -1561,9 +1564,6 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } this.shiny = (E ^ F) < shinyThreshold.value; - if ((E ^ F) < 32) { - console.log("REAL SHINY!!"); - } if (this.shiny) { this.initShinySparkle(); diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 99f4540f493..ca0b18ce18b 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -12,7 +12,7 @@ import { getPokemonNameWithAffix } from "../messages"; import * as Utils from "../utils"; import { TempBattleStat } from "../data/temp-battle-stat"; import { getBerryEffectFunc, getBerryPredicate } from "../data/berry"; -import { BattlerTagType} from "#enums/battler-tag-type"; +import { BattlerTagType } from "#enums/battler-tag-type"; import { BerryType } from "#enums/berry-type"; import { StatusEffect, getStatusEffectHealText } from "../data/status-effect"; import { achvs } from "../system/achv"; @@ -2193,7 +2193,7 @@ export class ShinyRateBoosterModifier extends PersistentModifier { } apply(args: any[]): boolean { - (args[0] as Utils.IntegerHolder).value *= Math.pow(2, 2 + this.getStackCount()); + (args[0] as Utils.IntegerHolder).value *= Math.pow(2, 1 + this.getStackCount()); return true; } From 0cbdaab28e6902e91bbc5019e87c1f930d87291b Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:32:22 -0700 Subject: [PATCH 074/116] [UI][Misc] Force users to have an active challenge (#3953) * I hope this is good enough * renamed variable to better name * Remove random newline * When player is ready cool box * Fixed cancel behavior * standardized action/cancel behavior * Added comments --------- Co-authored-by: frutescens Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- src/locales/en/challenges.json | 1 + src/ui/challenges-select-ui-handler.ts | 181 ++++++++++++++----------- 2 files changed, 101 insertions(+), 81 deletions(-) diff --git a/src/locales/en/challenges.json b/src/locales/en/challenges.json index f189266cea2..7d330401407 100644 --- a/src/locales/en/challenges.json +++ b/src/locales/en/challenges.json @@ -1,6 +1,7 @@ { "title": "Challenge Modifiers", "illegalEvolution": "{{pokemon}} changed into an ineligble pokémon\nfor this challenge!", + "noneSelected": "None Selected", "singleGeneration": { "name": "Mono Gen", "desc": "You can only use Pokémon from Generation {{gen}}.", diff --git a/src/ui/challenges-select-ui-handler.ts b/src/ui/challenges-select-ui-handler.ts index f1ba0da6c51..e08736d2b70 100644 --- a/src/ui/challenges-select-ui-handler.ts +++ b/src/ui/challenges-select-ui-handler.ts @@ -5,13 +5,13 @@ import UiHandler from "./ui-handler"; import { addWindow } from "./ui-theme"; import {Button} from "#enums/buttons"; import i18next from "i18next"; -import { Challenge } from "#app/data/challenge.js"; +import { Challenge } from "#app/data/challenge"; import * as Utils from "../utils"; -import { Challenges } from "#app/enums/challenges.js"; +import { Challenges } from "#app/enums/challenges"; import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext"; -import { Color, ShadowColor } from "#app/enums/color.js"; -import { SelectStarterPhase } from "#app/phases/select-starter-phase.js"; -import { TitlePhase } from "#app/phases/title-phase.js"; +import { Color, ShadowColor } from "#app/enums/color"; +import { SelectStarterPhase } from "#app/phases/select-starter-phase"; +import { TitlePhase } from "#app/phases/title-phase"; /** * Handles all the UI for choosing optional challenges. @@ -33,7 +33,10 @@ export default class GameChallengesUiHandler extends UiHandler { private cursorObj: Phaser.GameObjects.NineSlice | null; + private startBg: Phaser.GameObjects.NineSlice; private startCursor: Phaser.GameObjects.NineSlice; + private startText: Phaser.GameObjects.Text; + private hasSelectedChallenge: boolean; private optionsWidth: number; @@ -104,20 +107,20 @@ export default class GameChallengesUiHandler extends UiHandler { this.descriptionText.setShadow(4, 5, ShadowColor.ORANGE); this.descriptionText.setOrigin(0, 0); - const startBg = addWindow(this.scene, 0, 0, descriptionBg.width, 24); - startBg.setName("window-start-bg"); - startBg.setOrigin(0, 0); - startBg.setPositionRelative(descriptionBg, 0, descriptionBg.height); + this.startBg = addWindow(this.scene, 0, 0, descriptionBg.width, 24); + this.startBg.setName("window-start-bg"); + this.startBg.setOrigin(0, 0); + this.startBg.setPositionRelative(descriptionBg, 0, descriptionBg.height); - const startText = addTextObject(this.scene, 0, 0, i18next.t("common:start"), TextStyle.SETTINGS_LABEL); - startText.setName("text-start"); - startText.setOrigin(0, 0); - startText.setPositionRelative(startBg, (startBg.width - startText.displayWidth) / 2, 4); + this.startText = addTextObject(this.scene, 0, 0, i18next.t("challenges:noneSelected"), TextStyle.SETTINGS_LABEL); + this.startText.setName("text-start"); + this.startText.setOrigin(0, 0); + this.startText.setPositionRelative(this.startBg, (this.startBg.width - this.startText.displayWidth) / 2, 4); this.startCursor = this.scene.add.nineslice(0, 0, "summary_moves_cursor", undefined, descriptionBg.width - 8, 16, 1, 1, 1, 1); this.startCursor.setName("9s-start-cursor"); this.startCursor.setOrigin(0, 0); - this.startCursor.setPositionRelative(startBg, 4, 3); + this.startCursor.setPositionRelative(this.startBg, 4, 3); this.startCursor.setVisible(false); this.valuesContainer = this.scene.add.container(0, 0); @@ -157,8 +160,8 @@ export default class GameChallengesUiHandler extends UiHandler { this.challengesContainer.add(this.optionsBg); this.challengesContainer.add(descriptionBg); this.challengesContainer.add(this.descriptionText); - this.challengesContainer.add(startBg); - this.challengesContainer.add(startText); + this.challengesContainer.add(this.startBg); + this.challengesContainer.add(this.startText); this.challengesContainer.add(this.startCursor); this.challengesContainer.add(this.valuesContainer); @@ -216,6 +219,21 @@ export default class GameChallengesUiHandler extends UiHandler { this.monoTypeValue.setVisible(false); } + // This checks if a challenge has been selected by the user and updates the text/its opacity accordingly. + this.hasSelectedChallenge = this.scene.gameMode.challenges.some(c => c.value !== 0); + if (this.hasSelectedChallenge) { + + this.startText.setText(i18next.t("common:start")); + this.startText.setAlpha(1); + this.startText.setPositionRelative(this.startBg, (this.startBg.width - this.startText.displayWidth) / 2, 4); + } else { + + this.startText.setText(i18next.t("challenges:noneSelected")); + this.startText.setAlpha(0.5); + this.startText.setPositionRelative(this.startBg, (this.startBg.width - this.startText.displayWidth) / 2, 4); + } + this.challengesContainer.update(); + // const totalDifficulty = this.scene.gameMode.challenges.reduce((v, c) => v + c.getDifficulty(), 0); // const totalMinDifficulty = this.scene.gameMode.challenges.reduce((v, c) => v + c.getMinDifficulty(), 0); // this.difficultyText.text = `${totalDifficulty}` + (totalMinDifficulty ? `/${totalMinDifficulty}` : ""); @@ -227,6 +245,8 @@ export default class GameChallengesUiHandler extends UiHandler { this.startCursor.setVisible(false); this.challengesContainer.setVisible(true); + // Should always be false at the start + this.hasSelectedChallenge = this.scene.gameMode.challenges.some(c => c.value !== 0); this.setCursor(0); this.initLabels(); @@ -257,6 +277,7 @@ export default class GameChallengesUiHandler extends UiHandler { if (button === Button.CANCEL) { if (this.startCursor.visible) { + // If the user presses cancel when the start cursor has been activated, the game deactivates the start cursor and allows typical challenge selection behavior this.startCursor.setVisible(false); this.cursorObj?.setVisible(true); } else { @@ -266,83 +287,82 @@ export default class GameChallengesUiHandler extends UiHandler { } success = true; } else if (button === Button.SUBMIT || button === Button.ACTION) { - if (this.startCursor.visible) { - const totalDifficulty = this.scene.gameMode.challenges.reduce((v, c) => v + c.getDifficulty(), 0); - const totalMinDifficulty = this.scene.gameMode.challenges.reduce((v, c) => v + c.getMinDifficulty(), 0); - if (totalDifficulty >= totalMinDifficulty) { + if (this.hasSelectedChallenge) { + if (this.startCursor.visible) { this.scene.unshiftPhase(new SelectStarterPhase(this.scene)); this.scene.getCurrentPhase()?.end(); - success = true; } else { - success = false; + this.startCursor.setVisible(true); + this.cursorObj?.setVisible(false); } - } else { - this.startCursor.setVisible(true); - this.cursorObj?.setVisible(false); success = true; + } else { + success = false; } } else { - switch (button) { - case Button.UP: - if (this.cursor === 0) { - if (this.scrollCursor === 0) { - // When at the top of the menu and pressing UP, move to the bottommost item. - if (this.scene.gameMode.challenges.length > rowsToDisplay) { // If there are more than 9 challenges, scroll to the bottom - // First, set the cursor to the last visible element, preparing for the scroll to the end. - const successA = this.setCursor(rowsToDisplay - 1); - // Then, adjust the scroll to display the bottommost elements of the menu. - const successB = this.setScrollCursor(this.scene.gameMode.challenges.length - rowsToDisplay); - success = successA && successB; // success is just there to play the little validation sound effect - } else { // If there are 9 or less challenges, just move to the bottom one - success = this.setCursor(this.scene.gameMode.challenges.length - 1); + if (this.cursorObj?.visible && !this.startCursor.visible) { + switch (button) { + case Button.UP: + if (this.cursor === 0) { + if (this.scrollCursor === 0) { + // When at the top of the menu and pressing UP, move to the bottommost item. + if (this.scene.gameMode.challenges.length > rowsToDisplay) { // If there are more than 9 challenges, scroll to the bottom + // First, set the cursor to the last visible element, preparing for the scroll to the end. + const successA = this.setCursor(rowsToDisplay - 1); + // Then, adjust the scroll to display the bottommost elements of the menu. + const successB = this.setScrollCursor(this.scene.gameMode.challenges.length - rowsToDisplay); + success = successA && successB; // success is just there to play the little validation sound effect + } else { // If there are 9 or less challenges, just move to the bottom one + success = this.setCursor(this.scene.gameMode.challenges.length - 1); + } + } else { + success = this.setScrollCursor(this.scrollCursor - 1); } } else { - success = this.setScrollCursor(this.scrollCursor - 1); + success = this.setCursor(this.cursor - 1); } - } else { - success = this.setCursor(this.cursor - 1); - } - if (success) { - this.updateText(); - } - break; - case Button.DOWN: - if (this.cursor === rowsToDisplay - 1) { - if (this.scrollCursor < this.scene.gameMode.challenges.length - rowsToDisplay) { - // When at the bottom and pressing DOWN, scroll if possible. - success = this.setScrollCursor(this.scrollCursor + 1); + if (success) { + this.updateText(); + } + break; + case Button.DOWN: + if (this.cursor === rowsToDisplay - 1) { + if (this.scrollCursor < this.scene.gameMode.challenges.length - rowsToDisplay) { + // When at the bottom and pressing DOWN, scroll if possible. + success = this.setScrollCursor(this.scrollCursor + 1); + } else { + // When at the bottom of a scrolling menu and pressing DOWN, move to the topmost item. + // First, set the cursor to the first visible element, preparing for the scroll to the top. + const successA = this.setCursor(0); + // Then, adjust the scroll to display the topmost elements of the menu. + const successB = this.setScrollCursor(0); + success = successA && successB; // success is just there to play the little validation sound effect + } + } else if (this.scene.gameMode.challenges.length < rowsToDisplay && this.cursor === this.scene.gameMode.challenges.length - 1) { + // When at the bottom of a non-scrolling menu and pressing DOWN, move to the topmost item. + success = this.setCursor(0); } else { - // When at the bottom of a scrolling menu and pressing DOWN, move to the topmost item. - // First, set the cursor to the first visible element, preparing for the scroll to the top. - const successA = this.setCursor(0); - // Then, adjust the scroll to display the topmost elements of the menu. - const successB = this.setScrollCursor(0); - success = successA && successB; // success is just there to play the little validation sound effect + success = this.setCursor(this.cursor + 1); } - } else if (this.scene.gameMode.challenges.length < rowsToDisplay && this.cursor === this.scene.gameMode.challenges.length - 1) { - // When at the bottom of a non-scrolling menu and pressing DOWN, move to the topmost item. - success = this.setCursor(0); - } else { - success = this.setCursor(this.cursor + 1); + if (success) { + this.updateText(); + } + break; + case Button.LEFT: + // Moves the option cursor left, if possible. + success = this.getActiveChallenge().decreaseValue(); + if (success) { + this.updateText(); + } + break; + case Button.RIGHT: + // Moves the option cursor right, if possible. + success = this.getActiveChallenge().increaseValue(); + if (success) { + this.updateText(); + } + break; } - if (success) { - this.updateText(); - } - break; - case Button.LEFT: - // Moves the option cursor left, if possible. - success = this.getActiveChallenge().decreaseValue(); - if (success) { - this.updateText(); - } - break; - case Button.RIGHT: - // Moves the option cursor right, if possible. - success = this.getActiveChallenge().increaseValue(); - if (success) { - this.updateText(); - } - break; } } @@ -350,7 +370,6 @@ export default class GameChallengesUiHandler extends UiHandler { if (success) { ui.playSelect(); } - return success; } From 744c8f884555d51068defa99a2eb02b054ce757c Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:06:20 -0700 Subject: [PATCH 075/116] [Test] Update/modernize/fix some tests (#3968) --- src/test/abilities/hustle.test.ts | 36 +++++++++++++-------------- src/test/abilities/wind_rider.test.ts | 36 ++++++++++++++------------- src/test/moves/fake_out.test.ts | 17 ++++++------- src/test/moves/gigaton_hammer.test.ts | 13 +++++----- 4 files changed, 50 insertions(+), 52 deletions(-) diff --git a/src/test/abilities/hustle.test.ts b/src/test/abilities/hustle.test.ts index b7c3b723c4b..276edb691c9 100644 --- a/src/test/abilities/hustle.test.ts +++ b/src/test/abilities/hustle.test.ts @@ -1,8 +1,6 @@ import { allMoves } from "#app/data/move"; import { Abilities } from "#app/enums/abilities"; import { Stat } from "#app/enums/stat"; -import { DamagePhase } from "#app/phases/damage-phase"; -import { MoveEffectPhase } from "#app/phases/move-effect-phase"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import GameManager from "#test/utils/gameManager"; @@ -26,18 +24,18 @@ describe("Abilities - Hustle", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.ability(Abilities.HUSTLE); - game.override.moveset([Moves.TACKLE, Moves.GIGA_DRAIN, Moves.FISSURE]); - game.override.startingLevel(5); - game.override.disableCrits(); - game.override.enemyLevel(5); - game.override.enemyMoveset(SPLASH_ONLY); - game.override.enemySpecies(Species.SHUCKLE); - game.override.enemyAbility(Abilities.BALL_FETCH); + game.override + .ability(Abilities.HUSTLE) + .moveset([Moves.TACKLE, Moves.GIGA_DRAIN, Moves.FISSURE]) + .disableCrits() + .battleType("single") + .enemyMoveset(SPLASH_ONLY) + .enemySpecies(Species.SHUCKLE) + .enemyAbility(Abilities.BALL_FETCH); }); it("increases the user's Attack stat by 50%", async () => { - await game.startBattle([Species.PIKACHU]); + await game.classicMode.startBattle([Species.PIKACHU]); const pikachu = game.scene.getPlayerPokemon()!; const atk = pikachu.stats[Stat.ATK]; @@ -45,25 +43,25 @@ describe("Abilities - Hustle", () => { game.move.select(Moves.TACKLE); await game.move.forceHit(); - await game.phaseInterceptor.to(DamagePhase); + await game.phaseInterceptor.to("DamagePhase"); - expect(pikachu.getBattleStat).toHaveReturnedWith(atk * 1.5); + expect(pikachu.getBattleStat).toHaveReturnedWith(Math.floor(atk * 1.5)); }); it("lowers the accuracy of the user's physical moves by 20%", async () => { - await game.startBattle([Species.PIKACHU]); + await game.classicMode.startBattle([Species.PIKACHU]); const pikachu = game.scene.getPlayerPokemon()!; vi.spyOn(pikachu, "getAccuracyMultiplier"); game.move.select(Moves.TACKLE); - await game.phaseInterceptor.to(MoveEffectPhase); + await game.phaseInterceptor.to("MoveEffectPhase"); expect(pikachu.getAccuracyMultiplier).toHaveReturnedWith(0.8); }); it("does not affect non-physical moves", async () => { - await game.startBattle([Species.PIKACHU]); + await game.classicMode.startBattle([Species.PIKACHU]); const pikachu = game.scene.getPlayerPokemon()!; const spatk = pikachu.stats[Stat.SPATK]; @@ -71,7 +69,7 @@ describe("Abilities - Hustle", () => { vi.spyOn(pikachu, "getAccuracyMultiplier"); game.move.select(Moves.GIGA_DRAIN); - await game.phaseInterceptor.to(DamagePhase); + await game.phaseInterceptor.to("DamagePhase"); expect(pikachu.getBattleStat).toHaveReturnedWith(spatk); expect(pikachu.getAccuracyMultiplier).toHaveReturnedWith(1); @@ -81,7 +79,7 @@ describe("Abilities - Hustle", () => { game.override.startingLevel(100); game.override.enemyLevel(30); - await game.startBattle([Species.PIKACHU]); + await game.classicMode.startBattle([Species.PIKACHU]); const pikachu = game.scene.getPlayerPokemon()!; const enemyPokemon = game.scene.getEnemyPokemon()!; @@ -89,7 +87,7 @@ describe("Abilities - Hustle", () => { vi.spyOn(allMoves[Moves.FISSURE], "calculateBattleAccuracy"); game.move.select(Moves.FISSURE); - await game.phaseInterceptor.to(DamagePhase); + await game.phaseInterceptor.to("DamagePhase"); expect(enemyPokemon.turnData.damageTaken).toBe(enemyPokemon.getMaxHp()); expect(pikachu.getAccuracyMultiplier).toHaveReturnedWith(1); diff --git a/src/test/abilities/wind_rider.test.ts b/src/test/abilities/wind_rider.test.ts index 97e2e6456dc..e11b3b39723 100644 --- a/src/test/abilities/wind_rider.test.ts +++ b/src/test/abilities/wind_rider.test.ts @@ -1,5 +1,4 @@ import { BattleStat } from "#app/data/battle-stat"; -import { TurnEndPhase } from "#app/phases/turn-end-phase"; import { Abilities } from "#enums/abilities"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; @@ -24,22 +23,23 @@ describe("Abilities - Wind Rider", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.SHIFTRY); - game.override.enemyAbility(Abilities.WIND_RIDER); - game.override.moveset([Moves.TAILWIND, Moves.SPLASH, Moves.PETAL_BLIZZARD, Moves.SANDSTORM]); - game.override.enemyMoveset(SPLASH_ONLY); + game.override + .battleType("single") + .enemySpecies(Species.SHIFTRY) + .enemyAbility(Abilities.WIND_RIDER) + .moveset([Moves.TAILWIND, Moves.SPLASH, Moves.PETAL_BLIZZARD, Moves.SANDSTORM]) + .enemyMoveset(SPLASH_ONLY); }); it("takes no damage from wind moves and its Attack is increased by one stage when hit by one", async () => { - await game.startBattle([Species.MAGIKARP]); + await game.classicMode.startBattle([Species.MAGIKARP]); const shiftry = game.scene.getEnemyPokemon()!; expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(0); game.move.select(Moves.PETAL_BLIZZARD); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(shiftry.isFullHp()).toBe(true); expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(1); @@ -49,14 +49,14 @@ describe("Abilities - Wind Rider", () => { game.override.ability(Abilities.WIND_RIDER); game.override.enemySpecies(Species.MAGIKARP); - await game.startBattle([Species.SHIFTRY]); + await game.classicMode.startBattle([Species.SHIFTRY]); const shiftry = game.scene.getPlayerPokemon()!; expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(0); game.move.select(Moves.TAILWIND); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(1); }); @@ -65,7 +65,7 @@ describe("Abilities - Wind Rider", () => { game.override.ability(Abilities.WIND_RIDER); game.override.enemySpecies(Species.MAGIKARP); - await game.startBattle([Species.SHIFTRY]); + await game.classicMode.startBattle([Species.SHIFTRY]); const magikarp = game.scene.getEnemyPokemon()!; const shiftry = game.scene.getPlayerPokemon()!; @@ -74,16 +74,18 @@ describe("Abilities - Wind Rider", () => { game.move.select(Moves.TAILWIND); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(1); expect(magikarp.summonData.battleStats[BattleStat.ATK]).toBe(0); }); it("does not increase Attack when Tailwind is present on opposing side", async () => { - game.override.enemySpecies(Species.MAGIKARP); + game.override + .enemySpecies(Species.MAGIKARP) + .ability(Abilities.WIND_RIDER); - await game.startBattle([Species.SHIFTRY]); + await game.classicMode.startBattle([Species.SHIFTRY]); const magikarp = game.scene.getEnemyPokemon()!; const shiftry = game.scene.getPlayerPokemon()!; @@ -92,7 +94,7 @@ describe("Abilities - Wind Rider", () => { game.move.select(Moves.TAILWIND); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(1); expect(magikarp.summonData.battleStats[BattleStat.ATK]).toBe(0); @@ -101,7 +103,7 @@ describe("Abilities - Wind Rider", () => { it("does not interact with Sandstorm", async () => { game.override.enemySpecies(Species.MAGIKARP); - await game.startBattle([Species.SHIFTRY]); + await game.classicMode.startBattle([Species.SHIFTRY]); const shiftry = game.scene.getPlayerPokemon()!; expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(0); @@ -109,7 +111,7 @@ describe("Abilities - Wind Rider", () => { game.move.select(Moves.SANDSTORM); - await game.phaseInterceptor.to(TurnEndPhase); + await game.phaseInterceptor.to("TurnEndPhase"); expect(shiftry.summonData.battleStats[BattleStat.ATK]).toBe(0); expect(shiftry.hp).lessThan(shiftry.getMaxHp()); diff --git a/src/test/moves/fake_out.test.ts b/src/test/moves/fake_out.test.ts index 92331ebb758..ac09917daea 100644 --- a/src/test/moves/fake_out.test.ts +++ b/src/test/moves/fake_out.test.ts @@ -1,5 +1,4 @@ import GameManager from "#app/test/utils/gameManager"; -import { getMovePosition } from "#app/test/utils/gameManagerUtils"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import Phaser from "phaser"; @@ -32,28 +31,28 @@ describe("Moves - Fake Out", () => { }); it("can only be used on the first turn a pokemon is sent out", async() => { - await game.startBattle(); + await game.classicMode.startBattle(); const enemy = game.scene.getEnemyPokemon()!; - game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + game.move.select(Moves.FAKE_OUT); await game.toNextTurn(); expect(enemy.hp).toBeLessThan(enemy.getMaxHp()); const postTurnOneHp = enemy.hp; - game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + game.move.select(Moves.FAKE_OUT); await game.toNextTurn(); expect(enemy.hp).toBe(postTurnOneHp); - game.doAttack(getMovePosition(game.scene, 0, Moves.SPLASH)); + game.move.select(Moves.SPLASH); await game.doKillOpponents(); await game.toNextWave(); const newEnemy = game.scene.getEnemyPokemon()!; - game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + game.move.select(Moves.FAKE_OUT); await game.toNextTurn(); expect(newEnemy.hp).toBe(newEnemy.getMaxHp()); @@ -61,11 +60,11 @@ describe("Moves - Fake Out", () => { it("can be used again if recalled and sent back out", async() => { game.override.startingWave(4); - await game.startBattle(); + await game.classicMode.startBattle(); const enemy1 = game.scene.getEnemyPokemon()!; - game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + game.move.select(Moves.FAKE_OUT); await game.phaseInterceptor.to("MoveEndPhase"); expect(enemy1.hp).toBeLessThan(enemy1.getMaxHp()); @@ -73,7 +72,7 @@ describe("Moves - Fake Out", () => { await game.doKillOpponents(); await game.toNextWave(); - game.doAttack(getMovePosition(game.scene, 0, Moves.FAKE_OUT)); + game.move.select(Moves.FAKE_OUT); await game.toNextTurn(); const enemy2 = game.scene.getEnemyPokemon()!; diff --git a/src/test/moves/gigaton_hammer.test.ts b/src/test/moves/gigaton_hammer.test.ts index aca95a76332..9379e9d98b2 100644 --- a/src/test/moves/gigaton_hammer.test.ts +++ b/src/test/moves/gigaton_hammer.test.ts @@ -1,6 +1,5 @@ import { BattlerIndex } from "#app/battle.js"; import GameManager from "#app/test/utils/gameManager"; -import { getMovePosition } from "#app/test/utils/gameManagerUtils"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import Phaser from "phaser"; @@ -35,11 +34,11 @@ describe("Moves - Gigaton Hammer", () => { }); it("can't be used two turns in a row", async() => { - await game.startBattle(); + await game.classicMode.startBattle(); const enemy1 = game.scene.getEnemyPokemon()!; - game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + game.move.select(Moves.GIGATON_HAMMER); await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.phaseInterceptor.to("MoveEndPhase"); @@ -48,7 +47,7 @@ describe("Moves - Gigaton Hammer", () => { await game.doKillOpponents(); await game.toNextWave(); - game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + game.move.select(Moves.GIGATON_HAMMER); await game.toNextTurn(); const enemy2 = game.scene.getEnemyPokemon()!; @@ -58,11 +57,11 @@ describe("Moves - Gigaton Hammer", () => { it("can be used again if recalled and sent back out", async() => { game.override.startingWave(4); - await game.startBattle(); + await game.classicMode.startBattle(); const enemy1 = game.scene.getEnemyPokemon()!; - game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + game.move.select(Moves.GIGATON_HAMMER); await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.phaseInterceptor.to("MoveEndPhase"); @@ -71,7 +70,7 @@ describe("Moves - Gigaton Hammer", () => { await game.doKillOpponents(); await game.toNextWave(); - game.doAttack(getMovePosition(game.scene, 0, Moves.GIGATON_HAMMER)); + game.move.select(Moves.GIGATON_HAMMER); await game.toNextTurn(); const enemy2 = game.scene.getEnemyPokemon()!; From 434b82311232bbd498619152eee77598b1d65ec4 Mon Sep 17 00:00:00 2001 From: Madmadness65 <59298170+Madmadness65@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:15:52 -0500 Subject: [PATCH 076/116] [Enhancement/Item] Separate form change items into non-rare and rare (#3957) * Separate form change items into non-rare and rare * Remove unnecessary !! --- public/images/items.json | 3378 ++++++++--------- public/images/items.png | Bin 57239 -> 56430 bytes .../{blank_memory.png => normal_memory.png} | Bin src/data/pokemon-forms.ts | 26 +- src/locales/de/modifier-type.json | 2 +- src/locales/en/modifier-type.json | 2 +- src/locales/es/modifier-type.json | 2 +- src/locales/fr/modifier-type.json | 2 +- src/locales/it/modifier-type.json | 2 +- src/locales/ko/modifier-type.json | 2 +- src/locales/pt_BR/modifier-type.json | 2 +- src/locales/zh_CN/modifier-type.json | 2 +- src/locales/zh_TW/modifier-type.json | 2 +- src/modifier/modifier-type.ts | 11 +- 14 files changed, 1718 insertions(+), 1715 deletions(-) rename public/images/items/{blank_memory.png => normal_memory.png} (100%) diff --git a/public/images/items.json b/public/images/items.json index bb86b46aa4d..442b93d657b 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -2971,7 +2971,7 @@ } }, { - "filename": "blank_memory", + "filename": "bug_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -2992,7 +2992,7 @@ } }, { - "filename": "bug_memory", + "filename": "charcoal", "rotated": false, "trimmed": true, "sourceSize": { @@ -3013,7 +3013,7 @@ } }, { - "filename": "charcoal", + "filename": "dark_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -3034,7 +3034,7 @@ } }, { - "filename": "dark_memory", + "filename": "dire_hit", "rotated": false, "trimmed": true, "sourceSize": { @@ -3433,7 +3433,7 @@ } }, { - "filename": "dire_hit", + "filename": "dna_splicers", "rotated": false, "trimmed": true, "sourceSize": { @@ -3727,7 +3727,7 @@ } }, { - "filename": "dna_splicers", + "filename": "dragon_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -3979,7 +3979,7 @@ } }, { - "filename": "dragon_memory", + "filename": "electirizer", "rotated": false, "trimmed": true, "sourceSize": { @@ -4168,7 +4168,7 @@ } }, { - "filename": "electirizer", + "filename": "electric_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4189,7 +4189,7 @@ } }, { - "filename": "electric_memory", + "filename": "enigma_berry", "rotated": false, "trimmed": true, "sourceSize": { @@ -4231,7 +4231,7 @@ } }, { - "filename": "enigma_berry", + "filename": "fairy_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4252,7 +4252,7 @@ } }, { - "filename": "fairy_memory", + "filename": "fighting_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4272,27 +4272,6 @@ "h": 22 } }, - { - "filename": "fighting_memory", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 193, - "y": 212, - "w": 22, - "h": 22 - } - }, { "filename": "fire_memory", "rotated": false, @@ -4309,7 +4288,7 @@ }, "frame": { "x": 193, - "y": 234, + "y": 212, "w": 22, "h": 22 } @@ -4330,7 +4309,7 @@ }, "frame": { "x": 193, - "y": 256, + "y": 234, "w": 22, "h": 22 } @@ -4350,8 +4329,8 @@ "h": 22 }, "frame": { - "x": 215, - "y": 212, + "x": 193, + "y": 256, "w": 22, "h": 22 } @@ -4372,7 +4351,7 @@ }, "frame": { "x": 215, - "y": 234, + "y": 212, "w": 22, "h": 22 } @@ -4393,7 +4372,7 @@ }, "frame": { "x": 215, - "y": 256, + "y": 234, "w": 22, "h": 22 } @@ -4412,6 +4391,27 @@ "w": 22, "h": 22 }, + "frame": { + "x": 215, + "y": 256, + "w": 22, + "h": 22 + } + }, + { + "filename": "guard_spec", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, "frame": { "x": 195, "y": 278, @@ -4420,7 +4420,7 @@ } }, { - "filename": "guard_spec", + "filename": "hard_meteorite", "rotated": false, "trimmed": true, "sourceSize": { @@ -4428,15 +4428,15 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 7, "y": 5, - "w": 22, + "w": 20, "h": 22 }, "frame": { "x": 217, "y": 278, - "w": 22, + "w": 20, "h": 22 } }, @@ -4476,8 +4476,8 @@ "h": 22 }, "frame": { - "x": 236, - "y": 127, + "x": 258, + "y": 105, "w": 22, "h": 22 } @@ -4497,8 +4497,8 @@ "h": 22 }, "frame": { - "x": 258, - "y": 105, + "x": 236, + "y": 127, "w": 22, "h": 22 } @@ -4525,7 +4525,7 @@ } }, { - "filename": "poison_memory", + "filename": "normal_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4546,7 +4546,7 @@ } }, { - "filename": "protector", + "filename": "poison_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4588,7 +4588,7 @@ } }, { - "filename": "psychic_memory", + "filename": "protector", "rotated": false, "trimmed": true, "sourceSize": { @@ -4609,7 +4609,7 @@ } }, { - "filename": "rock_memory", + "filename": "psychic_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4650,48 +4650,6 @@ "h": 23 } }, - { - "filename": "hard_meteorite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 20, - "h": 22 - }, - "frame": { - "x": 237, - "y": 235, - "w": 20, - "h": 22 - } - }, - { - "filename": "liechi_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 237, - "y": 257, - "w": 22, - "h": 21 - } - }, { "filename": "potion", "rotated": false, @@ -4734,6 +4692,27 @@ "h": 21 } }, + { + "filename": "liechi_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 302, + "y": 128, + "w": 22, + "h": 21 + } + }, { "filename": "reviver_seed", "rotated": false, @@ -4749,12 +4728,54 @@ "h": 20 }, "frame": { - "x": 302, - "y": 128, + "x": 342, + "y": 107, "w": 23, "h": 20 } }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 365, + "y": 107, + "w": 23, + "h": 20 + } + }, + { + "filename": "rock_memory", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 237, + "y": 235, + "w": 22, + "h": 22 + } + }, { "filename": "scroll_of_darkness", "rotated": false, @@ -4770,8 +4791,8 @@ "h": 22 }, "frame": { - "x": 342, - "y": 107, + "x": 237, + "y": 257, "w": 22, "h": 22 } @@ -4791,75 +4812,12 @@ "h": 22 }, "frame": { - "x": 364, - "y": 107, + "x": 237, + "y": 279, "w": 22, "h": 22 } }, - { - "filename": "shed_shell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 386, - "y": 107, - "w": 22, - "h": 22 - } - }, - { - "filename": "oval_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 - }, - "frame": { - "x": 408, - "y": 108, - "w": 18, - "h": 19 - } - }, - { - "filename": "sitrus_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 22 - }, - "frame": { - "x": 239, - "y": 278, - "w": 20, - "h": 22 - } - }, { "filename": "upgrade", "rotated": false, @@ -4882,7 +4840,7 @@ } }, { - "filename": "starf_berry", + "filename": "shed_shell", "rotated": false, "trimmed": true, "sourceSize": { @@ -4903,7 +4861,7 @@ } }, { - "filename": "steel_memory", + "filename": "starf_berry", "rotated": false, "trimmed": true, "sourceSize": { @@ -4924,7 +4882,7 @@ } }, { - "filename": "thick_club", + "filename": "steel_memory", "rotated": false, "trimmed": true, "sourceSize": { @@ -4945,7 +4903,7 @@ } }, { - "filename": "thunder_stone", + "filename": "big_nugget", "rotated": false, "trimmed": true, "sourceSize": { @@ -4953,16 +4911,37 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 + "x": 6, + "y": 6, + "w": 20, + "h": 20 }, "frame": { - "x": 257, - "y": 234, - "w": 22, - "h": 22 + "x": 388, + "y": 107, + "w": 20, + "h": 20 + } + }, + { + "filename": "oval_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 19 + }, + "frame": { + "x": 408, + "y": 108, + "w": 18, + "h": 19 } }, { @@ -4987,7 +4966,28 @@ } }, { - "filename": "tm_bug", + "filename": "sitrus_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 281, + "y": 168, + "w": 20, + "h": 22 + } + }, + { + "filename": "thick_club", "rotated": false, "trimmed": true, "sourceSize": { @@ -5001,14 +5001,14 @@ "h": 22 }, "frame": { - "x": 281, - "y": 168, + "x": 301, + "y": 149, "w": 22, "h": 22 } }, { - "filename": "tm_dark", + "filename": "thunder_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -5029,7 +5029,7 @@ } }, { - "filename": "tm_dragon", + "filename": "tm_bug", "rotated": false, "trimmed": true, "sourceSize": { @@ -5050,7 +5050,7 @@ } }, { - "filename": "tm_electric", + "filename": "tm_dark", "rotated": false, "trimmed": true, "sourceSize": { @@ -5064,14 +5064,14 @@ "h": 22 }, "frame": { - "x": 279, + "x": 259, "y": 234, "w": 22, "h": 22 } }, { - "filename": "tm_fairy", + "filename": "tm_dragon", "rotated": false, "trimmed": true, "sourceSize": { @@ -5092,7 +5092,7 @@ } }, { - "filename": "tm_fighting", + "filename": "tm_electric", "rotated": false, "trimmed": true, "sourceSize": { @@ -5112,6 +5112,48 @@ "h": 22 } }, + { + "filename": "tm_fairy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 281, + "y": 234, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_fighting", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 281, + "y": 256, + "w": 22, + "h": 22 + } + }, { "filename": "tm_fire", "rotated": false, @@ -5128,11 +5170,53 @@ }, "frame": { "x": 281, - "y": 256, + "y": 278, "w": 22, "h": 22 } }, + { + "filename": "lum_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 301, + "y": 171, + "w": 20, + "h": 19 + } + }, + { + "filename": "metal_coat", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 19, + "h": 22 + }, + "frame": { + "x": 302, + "y": 190, + "w": 19, + "h": 22 + } + }, { "filename": "tm_flying", "rotated": false, @@ -5148,56 +5232,14 @@ "h": 22 }, "frame": { - "x": 281, - "y": 278, + "x": 301, + "y": 212, "w": 22, "h": 22 } }, { - "filename": "baton", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 408, - "y": 127, - "w": 18, - "h": 18 - } - }, - { - "filename": "golden_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 325, - "y": 128, - "w": 17, - "h": 20 - } - }, - { - "filename": "shell_bell", + "filename": "tm_ghost", "rotated": false, "trimmed": true, "sourceSize": { @@ -5206,19 +5248,19 @@ }, "spriteSourceSize": { "x": 5, - "y": 7, - "w": 23, - "h": 20 + "y": 5, + "w": 22, + "h": 22 }, "frame": { - "x": 342, - "y": 129, - "w": 23, - "h": 20 + "x": 303, + "y": 234, + "w": 22, + "h": 22 } }, { - "filename": "deep_sea_scale", + "filename": "tm_grass", "rotated": false, "trimmed": true, "sourceSize": { @@ -5227,15 +5269,36 @@ }, "spriteSourceSize": { "x": 5, - "y": 6, + "y": 5, "w": 22, - "h": 20 + "h": 22 }, "frame": { - "x": 365, - "y": 129, + "x": 303, + "y": 256, "w": 22, - "h": 20 + "h": 22 + } + }, + { + "filename": "tm_ground", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 303, + "y": 278, + "w": 22, + "h": 22 } }, { @@ -5253,14 +5316,14 @@ "h": 21 }, "frame": { - "x": 387, - "y": 129, + "x": 324, + "y": 128, "w": 21, "h": 21 } }, { - "filename": "candy", + "filename": "tm_ice", "rotated": false, "trimmed": true, "sourceSize": { @@ -5268,15 +5331,498 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, - "y": 11, - "w": 18, + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 323, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_normal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 321, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_poison", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 345, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_psychic", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 345, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 343, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_steel", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 367, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 367, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "water_memory", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 365, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "water_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 389, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 4, + "w": 15, + "h": 23 + }, + "frame": { + "x": 411, + "y": 127, + "w": 15, + "h": 23 + } + }, + { + "filename": "x_accuracy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 389, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "leftovers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 15, + "h": 22 + }, + "frame": { + "x": 411, + "y": 150, + "w": 15, + "h": 22 + } + }, + { + "filename": "x_attack", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 387, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 409, + "y": 172, + "w": 17, + "h": 23 + } + }, + { + "filename": "power_herb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 321, + "y": 193, + "w": 20, + "h": 19 + } + }, + { + "filename": "x_defense", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 323, + "y": 212, + "w": 22, + "h": 22 + } + }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 341, + "y": 193, + "w": 20, + "h": 19 + } + }, + { + "filename": "x_sp_atk", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 325, + "y": 234, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_def", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 325, + "y": 256, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_speed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 325, + "y": 278, + "w": 22, + "h": 22 + } + }, + { + "filename": "deep_sea_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 361, + "y": 193, + "w": 22, + "h": 20 + } + }, + { + "filename": "fairy_feather", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 20 + }, + "frame": { + "x": 383, + "y": 193, + "w": 22, + "h": 20 + } + }, + { + "filename": "shiny_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 405, + "y": 195, + "w": 21, + "h": 21 + } + }, + { + "filename": "mystery_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, "h": 18 }, "frame": { - "x": 408, - "y": 145, - "w": 18, + "x": 345, + "y": 212, + "w": 16, "h": 18 } }, @@ -5295,35 +5841,14 @@ "h": 17 }, "frame": { - "x": 195, - "y": 300, + "x": 361, + "y": 213, "w": 23, "h": 17 } }, { - "filename": "relic_crown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 18 - }, - "frame": { - "x": 218, - "y": 300, - "w": 23, - "h": 18 - } - }, - { - "filename": "fairy_feather", + "filename": "masterpiece_teacup", "rotated": false, "trimmed": true, "sourceSize": { @@ -5333,13 +5858,286 @@ "spriteSourceSize": { "x": 5, "y": 7, + "w": 21, + "h": 18 + }, + "frame": { + "x": 384, + "y": 213, + "w": 21, + "h": 18 + } + }, + { + "filename": "zoom_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 405, + "y": 216, + "w": 21, + "h": 21 + } + }, + { + "filename": "sweet_apple", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, "w": 22, + "h": 21 + }, + "frame": { + "x": 347, + "y": 230, + "w": 22, + "h": 21 + } + }, + { + "filename": "syrupy_apple", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 347, + "y": 251, + "w": 22, + "h": 21 + } + }, + { + "filename": "tart_apple", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 347, + "y": 272, + "w": 22, + "h": 21 + } + }, + { + "filename": "eviolite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 369, + "y": 230, + "w": 15, + "h": 15 + } + }, + { + "filename": "sharp_meteorite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 21, + "h": 18 + }, + "frame": { + "x": 384, + "y": 231, + "w": 21, + "h": 18 + } + }, + { + "filename": "unremarkable_teacup", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 21, + "h": 18 + }, + "frame": { + "x": 405, + "y": 237, + "w": 21, + "h": 18 + } + }, + { + "filename": "prism_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 369, + "y": 245, + "w": 15, + "h": 15 + } + }, + { + "filename": "metronome", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 369, + "y": 260, + "w": 17, + "h": 22 + } + }, + { + "filename": "quick_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 386, + "y": 249, + "w": 19, + "h": 21 + } + }, + { + "filename": "blue_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, "h": 20 }, "frame": { - "x": 241, - "y": 300, - "w": 22, + "x": 405, + "y": 255, + "w": 20, + "h": 20 + } + }, + { + "filename": "candy_jar", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 386, + "y": 270, + "w": 19, + "h": 20 + } + }, + { + "filename": "golden_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 369, + "y": 282, + "w": 17, "h": 20 } }, @@ -5358,14 +6156,56 @@ "h": 20 }, "frame": { - "x": 263, - "y": 300, + "x": 347, + "y": 293, "w": 22, "h": 20 } }, { - "filename": "big_nugget", + "filename": "everstone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 17 + }, + "frame": { + "x": 405, + "y": 275, + "w": 20, + "h": 17 + } + }, + { + "filename": "hard_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 386, + "y": 290, + "w": 19, + "h": 20 + } + }, + { + "filename": "gb", "rotated": false, "trimmed": true, "sourceSize": { @@ -5379,7 +6219,217 @@ "h": 20 }, "frame": { - "x": 285, + "x": 405, + "y": 292, + "w": 20, + "h": 20 + } + }, + { + "filename": "lucky_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 369, + "y": 302, + "w": 17, + "h": 20 + } + }, + { + "filename": "miracle_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 19, + "h": 19 + }, + "frame": { + "x": 386, + "y": 310, + "w": 19, + "h": 19 + } + }, + { + "filename": "magnet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 405, + "y": 312, + "w": 20, + "h": 20 + } + }, + { + "filename": "relic_crown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 18 + }, + "frame": { + "x": 195, + "y": 300, + "w": 23, + "h": 18 + } + }, + { + "filename": "spell_tag", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 218, + "y": 300, + "w": 19, + "h": 21 + } + }, + { + "filename": "tera_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 237, + "y": 301, + "w": 22, + "h": 20 + } + }, + { + "filename": "mb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 259, + "y": 300, + "w": 20, + "h": 20 + } + }, + { + "filename": "pb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 279, + "y": 300, + "w": 20, + "h": 20 + } + }, + { + "filename": "pb_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 299, + "y": 300, + "w": 20, + "h": 20 + } + }, + { + "filename": "rb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 319, "y": 300, "w": 20, "h": 20 @@ -5407,7 +6457,7 @@ } }, { - "filename": "lucky_egg", + "filename": "soothe_bell", "rotated": false, "trimmed": true, "sourceSize": { @@ -5415,16 +6465,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, - "y": 6, + "x": 8, + "y": 5, "w": 17, - "h": 20 + "h": 22 }, "frame": { "x": 178, "y": 305, "w": 17, - "h": 20 + "h": 22 } }, { @@ -5443,13 +6493,13 @@ }, "frame": { "x": 195, - "y": 317, + "y": 318, "w": 23, "h": 17 } }, { - "filename": "sweet_apple", + "filename": "smooth_meteorite", "rotated": false, "trimmed": true, "sourceSize": { @@ -5457,20 +6507,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 7, "y": 6, - "w": 22, - "h": 21 + "w": 20, + "h": 20 }, "frame": { "x": 218, - "y": 318, - "w": 22, - "h": 21 + "y": 321, + "w": 20, + "h": 20 } }, { - "filename": "syrupy_apple", + "filename": "strange_ball", "rotated": false, "trimmed": true, "sourceSize": { @@ -5478,58 +6528,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 6, "y": 6, - "w": 22, - "h": 21 + "w": 20, + "h": 20 }, "frame": { - "x": 240, - "y": 320, - "w": 22, - "h": 21 - } - }, - { - "filename": "tart_apple", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 262, - "y": 320, - "w": 22, - "h": 21 - } - }, - { - "filename": "shiny_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 284, - "y": 320, - "w": 21, - "h": 21 + "x": 238, + "y": 321, + "w": 20, + "h": 20 } }, { @@ -5554,7 +6562,7 @@ } }, { - "filename": "tm_ghost", + "filename": "ub", "rotated": false, "trimmed": true, "sourceSize": { @@ -5562,541 +6570,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 + "x": 6, + "y": 6, + "w": 20, + "h": 20 }, "frame": { "x": 135, "y": 325, - "w": 22, - "h": 22 - } - }, - { - "filename": "zoom_lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 157, - "y": 322, - "w": 21, - "h": 21 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 178, - "y": 325, - "w": 17, - "h": 22 - } - }, - { - "filename": "tm_grass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 136, - "y": 347, - "w": 22, - "h": 22 - } - }, - { - "filename": "blue_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, "w": 20, "h": 20 - }, - "frame": { - "x": 158, - "y": 343, - "w": 20, - "h": 20 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 141, - "y": 369, - "w": 17, - "h": 23 - } - }, - { - "filename": "tm_ground", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 158, - "y": 363, - "w": 22, - "h": 22 - } - }, - { - "filename": "metal_coat", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 19, - "h": 22 - }, - "frame": { - "x": 141, - "y": 392, - "w": 19, - "h": 22 - } - }, - { - "filename": "tera_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 195, - "y": 334, - "w": 22, - "h": 20 - } - }, - { - "filename": "tm_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 217, - "y": 339, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_normal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 239, - "y": 341, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_poison", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 261, - "y": 341, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_psychic", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 283, - "y": 341, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 160, - "y": 385, - "w": 22, - "h": 22 - } - }, - { - "filename": "lum_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 160, - "y": 407, - "w": 20, - "h": 19 - } - }, - { - "filename": "power_herb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 180, - "y": 407, - "w": 20, - "h": 19 - } - }, - { - "filename": "altarianite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 178, - "y": 347, - "w": 16, - "h": 16 - } - }, - { - "filename": "leftovers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 15, - "h": 22 - }, - "frame": { - "x": 180, - "y": 363, - "w": 15, - "h": 22 - } - }, - { - "filename": "tm_steel", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 182, - "y": 385, - "w": 22, - "h": 22 - } - }, - { - "filename": "razor_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 200, - "y": 407, - "w": 20, - "h": 19 - } - }, - { - "filename": "tm_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 195, - "y": 354, - "w": 22, - "h": 22 - } - }, - { - "filename": "water_memory", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 217, - "y": 361, - "w": 22, - "h": 22 - } - }, - { - "filename": "water_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 239, - "y": 363, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_accuracy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 261, - "y": 363, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_attack", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 283, - "y": 363, - "w": 22, - "h": 22 - } - }, - { - "filename": "soothe_bell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 204, - "y": 385, - "w": 17, - "h": 22 } }, { @@ -6114,537 +6597,12 @@ "h": 19 }, "frame": { - "x": 220, - "y": 407, + "x": 155, + "y": 322, "w": 20, "h": 19 } }, - { - "filename": "x_defense", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 221, - "y": 385, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_sp_atk", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 243, - "y": 385, - "w": 22, - "h": 22 - } - }, - { - "filename": "miracle_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 19, - "h": 19 - }, - "frame": { - "x": 240, - "y": 407, - "w": 19, - "h": 19 - } - }, - { - "filename": "x_sp_def", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 265, - "y": 385, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_speed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 287, - "y": 385, - "w": 22, - "h": 22 - } - }, - { - "filename": "masterpiece_teacup", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 21, - "h": 18 - }, - "frame": { - "x": 259, - "y": 407, - "w": 21, - "h": 18 - } - }, - { - "filename": "sharp_meteorite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 21, - "h": 18 - }, - "frame": { - "x": 280, - "y": 407, - "w": 21, - "h": 18 - } - }, - { - "filename": "dark_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 301, - "y": 407, - "w": 18, - "h": 18 - } - }, - { - "filename": "relic_gold", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 11, - "w": 15, - "h": 11 - }, - "frame": { - "x": 0, - "y": 414, - "w": 15, - "h": 11 - } - }, - { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 - }, - "frame": { - "x": 301, - "y": 212, - "w": 15, - "h": 23 - } - }, - { - "filename": "quick_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 301, - "y": 235, - "w": 19, - "h": 21 - } - }, - { - "filename": "spell_tag", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 303, - "y": 256, - "w": 19, - "h": 21 - } - }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 303, - "y": 277, - "w": 19, - "h": 20 - } - }, - { - "filename": "gb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 305, - "y": 297, - "w": 20, - "h": 20 - } - }, - { - "filename": "magnet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 305, - "y": 317, - "w": 20, - "h": 20 - } - }, - { - "filename": "mb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 305, - "y": 337, - "w": 20, - "h": 20 - } - }, - { - "filename": "pb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 305, - "y": 357, - "w": 20, - "h": 20 - } - }, - { - "filename": "hard_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 309, - "y": 377, - "w": 19, - "h": 20 - } - }, - { - "filename": "pb_gold", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 302, - "y": 148, - "w": 20, - "h": 20 - } - }, - { - "filename": "rb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 322, - "y": 148, - "w": 20, - "h": 20 - } - }, - { - "filename": "smooth_meteorite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 303, - "y": 168, - "w": 20, - "h": 20 - } - }, - { - "filename": "strange_ball", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 342, - "y": 149, - "w": 20, - "h": 20 - } - }, - { - "filename": "ub", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 362, - "y": 149, - "w": 20, - "h": 20 - } - }, - { - "filename": "flame_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 323, - "y": 168, - "w": 18, - "h": 18 - } - }, - { - "filename": "unremarkable_teacup", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 21, - "h": 18 - }, - "frame": { - "x": 341, - "y": 169, - "w": 21, - "h": 18 - } - }, { "filename": "wl_ability_urge", "rotated": false, @@ -6660,8 +6618,8 @@ "h": 18 }, "frame": { - "x": 362, - "y": 169, + "x": 175, + "y": 327, "w": 20, "h": 18 } @@ -6681,12 +6639,33 @@ "h": 18 }, "frame": { - "x": 382, - "y": 150, + "x": 136, + "y": 345, "w": 20, "h": 18 } }, + { + "filename": "baton", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 156, + "y": 341, + "w": 18, + "h": 18 + } + }, { "filename": "wl_awakening", "rotated": false, @@ -6702,8 +6681,8 @@ "h": 18 }, "frame": { - "x": 382, - "y": 168, + "x": 174, + "y": 345, "w": 20, "h": 18 } @@ -6723,33 +6702,12 @@ "h": 18 }, "frame": { - "x": 402, - "y": 163, + "x": 195, + "y": 335, "w": 20, "h": 18 } }, - { - "filename": "everstone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 17 - }, - "frame": { - "x": 402, - "y": 181, - "w": 20, - "h": 17 - } - }, { "filename": "wl_custom_spliced", "rotated": false, @@ -6765,8 +6723,8 @@ "h": 18 }, "frame": { - "x": 382, - "y": 186, + "x": 215, + "y": 341, "w": 20, "h": 18 } @@ -6786,8 +6744,8 @@ "h": 18 }, "frame": { - "x": 402, - "y": 198, + "x": 235, + "y": 341, "w": 20, "h": 18 } @@ -6807,33 +6765,12 @@ "h": 18 }, "frame": { - "x": 303, - "y": 188, + "x": 194, + "y": 353, "w": 20, "h": 18 } }, - { - "filename": "light_ball", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 323, - "y": 186, - "w": 18, - "h": 18 - } - }, { "filename": "wl_ether", "rotated": false, @@ -6849,8 +6786,8 @@ "h": 18 }, "frame": { - "x": 341, - "y": 187, + "x": 214, + "y": 359, "w": 20, "h": 18 } @@ -6870,14 +6807,14 @@ "h": 18 }, "frame": { - "x": 361, - "y": 187, + "x": 234, + "y": 359, "w": 20, "h": 18 } }, { - "filename": "light_stone", + "filename": "candy", "rotated": false, "trimmed": true, "sourceSize": { @@ -6886,13 +6823,13 @@ }, "spriteSourceSize": { "x": 7, - "y": 7, + "y": 11, "w": 18, "h": 18 }, "frame": { - "x": 323, - "y": 204, + "x": 156, + "y": 359, "w": 18, "h": 18 } @@ -6912,8 +6849,8 @@ "h": 18 }, "frame": { - "x": 341, - "y": 205, + "x": 174, + "y": 363, "w": 20, "h": 18 } @@ -6933,8 +6870,8 @@ "h": 18 }, "frame": { - "x": 361, - "y": 205, + "x": 194, + "y": 371, "w": 20, "h": 18 } @@ -6954,8 +6891,8 @@ "h": 18 }, "frame": { - "x": 381, - "y": 204, + "x": 214, + "y": 377, "w": 20, "h": 18 } @@ -6975,12 +6912,33 @@ "h": 18 }, "frame": { - "x": 401, - "y": 216, + "x": 234, + "y": 377, "w": 20, "h": 18 } }, + { + "filename": "relic_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 11, + "w": 15, + "h": 11 + }, + "frame": { + "x": 141, + "y": 363, + "w": 15, + "h": 11 + } + }, { "filename": "wl_item_drop", "rotated": false, @@ -6996,8 +6954,8 @@ "h": 18 }, "frame": { - "x": 381, - "y": 222, + "x": 141, + "y": 377, "w": 20, "h": 18 } @@ -7017,8 +6975,8 @@ "h": 18 }, "frame": { - "x": 401, - "y": 234, + "x": 141, + "y": 395, "w": 20, "h": 18 } @@ -7038,8 +6996,8 @@ "h": 18 }, "frame": { - "x": 320, - "y": 222, + "x": 161, + "y": 381, "w": 20, "h": 18 } @@ -7059,8 +7017,8 @@ "h": 18 }, "frame": { - "x": 340, - "y": 223, + "x": 161, + "y": 399, "w": 20, "h": 18 } @@ -7080,96 +7038,12 @@ "h": 18 }, "frame": { - "x": 360, - "y": 223, + "x": 181, + "y": 389, "w": 20, "h": 18 } }, - { - "filename": "ampharosite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 320, - "y": 240, - "w": 16, - "h": 16 - } - }, - { - "filename": "mystery_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 18 - }, - "frame": { - "x": 322, - "y": 256, - "w": 16, - "h": 18 - } - }, - { - "filename": "toxic_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 322, - "y": 274, - "w": 18, - "h": 18 - } - }, - { - "filename": "eviolite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 336, - "y": 241, - "w": 15, - "h": 15 - } - }, { "filename": "wl_max_revive", "rotated": false, @@ -7185,8 +7059,8 @@ "h": 18 }, "frame": { - "x": 351, - "y": 241, + "x": 181, + "y": 407, "w": 20, "h": 18 } @@ -7206,8 +7080,8 @@ "h": 18 }, "frame": { - "x": 325, - "y": 292, + "x": 201, + "y": 395, "w": 20, "h": 18 } @@ -7227,12 +7101,54 @@ "h": 18 }, "frame": { - "x": 325, - "y": 310, + "x": 221, + "y": 395, "w": 20, "h": 18 } }, + { + "filename": "dark_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 241, + "y": 395, + "w": 18, + "h": 18 + } + }, + { + "filename": "flame_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 255, + "y": 341, + "w": 18, + "h": 18 + } + }, { "filename": "wl_reset_urge", "rotated": false, @@ -7248,8 +7164,8 @@ "h": 18 }, "frame": { - "x": 325, - "y": 328, + "x": 254, + "y": 359, "w": 20, "h": 18 } @@ -7269,12 +7185,33 @@ "h": 18 }, "frame": { - "x": 325, - "y": 346, + "x": 254, + "y": 377, "w": 20, "h": 18 } }, + { + "filename": "light_ball", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 259, + "y": 395, + "w": 18, + "h": 18 + } + }, { "filename": "wl_super_potion", "rotated": false, @@ -7290,12 +7227,96 @@ "h": 18 }, "frame": { - "x": 371, - "y": 241, + "x": 259, + "y": 320, "w": 20, "h": 18 } }, + { + "filename": "light_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 279, + "y": 320, + "w": 18, + "h": 18 + } + }, + { + "filename": "toxic_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 297, + "y": 320, + "w": 18, + "h": 18 + } + }, + { + "filename": "altarianite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 315, + "y": 320, + "w": 16, + "h": 16 + } + }, + { + "filename": "ampharosite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 273, + "y": 338, + "w": 16, + "h": 16 + } + }, { "filename": "audinite", "rotated": false, @@ -7311,8 +7332,8 @@ "h": 16 }, "frame": { - "x": 328, - "y": 364, + "x": 289, + "y": 338, "w": 16, "h": 16 } @@ -7332,33 +7353,12 @@ "h": 16 }, "frame": { - "x": 328, - "y": 380, + "x": 274, + "y": 354, "w": 16, "h": 16 } }, - { - "filename": "prism_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 338, - "y": 259, - "w": 15, - "h": 15 - } - }, { "filename": "beedrillite", "rotated": false, @@ -7374,8 +7374,8 @@ "h": 16 }, "frame": { - "x": 353, - "y": 259, + "x": 274, + "y": 370, "w": 16, "h": 16 } @@ -7395,8 +7395,8 @@ "h": 16 }, "frame": { - "x": 369, - "y": 259, + "x": 290, + "y": 354, "w": 16, "h": 16 } @@ -7416,8 +7416,8 @@ "h": 16 }, "frame": { - "x": 385, - "y": 259, + "x": 290, + "y": 370, "w": 16, "h": 16 } @@ -7437,8 +7437,8 @@ "h": 16 }, "frame": { - "x": 401, - "y": 252, + "x": 305, + "y": 338, "w": 16, "h": 16 } @@ -7458,8 +7458,8 @@ "h": 16 }, "frame": { - "x": 401, - "y": 268, + "x": 306, + "y": 354, "w": 16, "h": 16 } @@ -7479,8 +7479,8 @@ "h": 16 }, "frame": { - "x": 340, - "y": 275, + "x": 306, + "y": 370, "w": 16, "h": 16 } @@ -7500,8 +7500,8 @@ "h": 16 }, "frame": { - "x": 356, - "y": 275, + "x": 331, + "y": 320, "w": 16, "h": 16 } @@ -7521,8 +7521,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 275, + "x": 321, + "y": 336, "w": 16, "h": 16 } @@ -7542,8 +7542,8 @@ "h": 16 }, "frame": { - "x": 345, - "y": 291, + "x": 322, + "y": 352, "w": 16, "h": 16 } @@ -7563,8 +7563,8 @@ "h": 16 }, "frame": { - "x": 345, - "y": 307, + "x": 322, + "y": 368, "w": 16, "h": 16 } @@ -7584,8 +7584,8 @@ "h": 16 }, "frame": { - "x": 361, - "y": 291, + "x": 337, + "y": 336, "w": 16, "h": 16 } @@ -7605,8 +7605,8 @@ "h": 16 }, "frame": { - "x": 345, - "y": 323, + "x": 338, + "y": 352, "w": 16, "h": 16 } @@ -7626,8 +7626,8 @@ "h": 16 }, "frame": { - "x": 361, - "y": 307, + "x": 338, + "y": 368, "w": 16, "h": 16 } @@ -7647,8 +7647,8 @@ "h": 16 }, "frame": { - "x": 345, - "y": 339, + "x": 347, + "y": 313, "w": 16, "h": 16 } @@ -7668,8 +7668,8 @@ "h": 16 }, "frame": { - "x": 361, - "y": 323, + "x": 277, + "y": 386, "w": 16, "h": 16 } @@ -7689,8 +7689,8 @@ "h": 16 }, "frame": { - "x": 361, - "y": 339, + "x": 293, + "y": 386, "w": 16, "h": 16 } @@ -7710,8 +7710,8 @@ "h": 16 }, "frame": { - "x": 377, - "y": 291, + "x": 309, + "y": 386, "w": 16, "h": 16 } @@ -7731,8 +7731,8 @@ "h": 16 }, "frame": { - "x": 377, - "y": 307, + "x": 325, + "y": 384, "w": 16, "h": 16 } @@ -7752,8 +7752,8 @@ "h": 16 }, "frame": { - "x": 377, - "y": 323, + "x": 341, + "y": 384, "w": 16, "h": 16 } @@ -7773,8 +7773,8 @@ "h": 16 }, "frame": { - "x": 377, - "y": 339, + "x": 277, + "y": 402, "w": 16, "h": 16 } @@ -7794,8 +7794,8 @@ "h": 16 }, "frame": { - "x": 345, - "y": 355, + "x": 293, + "y": 402, "w": 16, "h": 16 } @@ -7815,8 +7815,8 @@ "h": 16 }, "frame": { - "x": 361, - "y": 355, + "x": 309, + "y": 402, "w": 16, "h": 16 } @@ -7836,8 +7836,8 @@ "h": 16 }, "frame": { - "x": 377, - "y": 355, + "x": 325, + "y": 400, "w": 16, "h": 16 } @@ -7857,8 +7857,8 @@ "h": 16 }, "frame": { - "x": 344, - "y": 371, + "x": 341, + "y": 400, "w": 16, "h": 16 } @@ -7878,8 +7878,8 @@ "h": 16 }, "frame": { - "x": 360, - "y": 371, + "x": 353, + "y": 329, "w": 16, "h": 16 } @@ -7899,8 +7899,8 @@ "h": 16 }, "frame": { - "x": 376, - "y": 371, + "x": 369, + "y": 322, "w": 16, "h": 16 } @@ -7920,8 +7920,8 @@ "h": 16 }, "frame": { - "x": 344, - "y": 387, + "x": 354, + "y": 345, "w": 16, "h": 16 } @@ -7941,8 +7941,8 @@ "h": 16 }, "frame": { - "x": 360, - "y": 387, + "x": 354, + "y": 361, "w": 16, "h": 16 } @@ -7962,8 +7962,8 @@ "h": 16 }, "frame": { - "x": 376, - "y": 387, + "x": 385, + "y": 329, "w": 16, "h": 16 } @@ -7983,8 +7983,8 @@ "h": 16 }, "frame": { - "x": 328, - "y": 396, + "x": 401, + "y": 332, "w": 16, "h": 16 } @@ -8004,8 +8004,8 @@ "h": 16 }, "frame": { - "x": 344, - "y": 403, + "x": 357, + "y": 377, "w": 16, "h": 16 } @@ -8025,8 +8025,8 @@ "h": 16 }, "frame": { - "x": 360, - "y": 403, + "x": 357, + "y": 393, "w": 16, "h": 16 } @@ -8046,8 +8046,8 @@ "h": 16 }, "frame": { - "x": 376, - "y": 403, + "x": 357, + "y": 409, "w": 16, "h": 16 } @@ -8067,8 +8067,8 @@ "h": 16 }, "frame": { - "x": 393, - "y": 284, + "x": 370, + "y": 345, "w": 16, "h": 16 } @@ -8088,8 +8088,8 @@ "h": 16 }, "frame": { - "x": 393, - "y": 300, + "x": 370, + "y": 361, "w": 16, "h": 16 } @@ -8109,8 +8109,8 @@ "h": 16 }, "frame": { - "x": 393, - "y": 316, + "x": 373, + "y": 377, "w": 16, "h": 16 } @@ -8130,8 +8130,8 @@ "h": 16 }, "frame": { - "x": 393, - "y": 332, + "x": 373, + "y": 393, "w": 16, "h": 16 } @@ -8151,8 +8151,8 @@ "h": 16 }, "frame": { - "x": 393, - "y": 348, + "x": 373, + "y": 409, "w": 16, "h": 16 } @@ -8172,8 +8172,8 @@ "h": 16 }, "frame": { - "x": 409, - "y": 284, + "x": 386, + "y": 348, "w": 16, "h": 16 } @@ -8193,8 +8193,8 @@ "h": 16 }, "frame": { - "x": 409, - "y": 300, + "x": 402, + "y": 348, "w": 16, "h": 16 } @@ -8214,8 +8214,8 @@ "h": 16 }, "frame": { - "x": 409, - "y": 316, + "x": 389, + "y": 364, "w": 16, "h": 16 } @@ -8235,8 +8235,8 @@ "h": 16 }, "frame": { - "x": 409, - "y": 332, + "x": 389, + "y": 380, "w": 16, "h": 16 } @@ -8247,6 +8247,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:6dd58685cd89890a4361a424b59bfe65:ff9159978f3a103ee1d656fb76e37457:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:c004184e48566e1da6f13477a3348fd3:dc1a5489f7821641aade35ba290bbea7:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 23c87cf3204bcb5b3b69eaa1775a9ce81d0952c7..4c366e4d72adba5aa9f5e67b8b62942f1660268d 100644 GIT binary patch literal 56430 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%0A^RWoL5zJe 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

s})d$Z7HUxwiiq(1{m^qowcwoh>b`{s$ z?k~#EfV#=I{Mo=nBSFLgys_f>7g(j%P`5vo_jX*m6J`kEENDrcepyqxB=o;O5c|MU88Zc2lv zbu(i>+o>ZKU+(`+`Leq7Mt)R-GzYvcUIIp>b1G>$H6I=yi{Xh6c+F#r2t1MuA_2MJ z7)Z3y=$g6mtL%rizW!NW61E{v2h5034dM5Owi@wiedGoQe-s5ybF>RRD&>}>l(-FG zBuKq>Xw3fN{l8#2fjrCP#I#3}0R!#nHgJPj%!TR?|HJbirp7YH76h z$hpJ+Wp23&m-p7rPK*C&p|l)!ZZ=Ajo=T$truA+3udEkO^7p8T;5~fHl0Evma1AR1 zcT9?14p+4zM*+CSOjy)|PrM^~9soVkf4ySGgbm%WT@)jdAy0F{A0ev7* zm7*RtqAX7bxt)nB2Lg_PxEZ1SUmXw#DHsO4;C8bLml*S~CTt2El_0`I3o~oOL8*O2^Tw{p2SQEn?_F`9%F?W3OPYkAjndm^- zi0v0K2JzcVv1C8`+2!$RVGR5Y9$8TU4j?|#t##5OazYcPx2;ux*R#{hCn6T?jQ9Rt zyasNPNVSBj8+b|BP4-i*5lfMxMtXI(-ZcF=5~;A%O&u@pQLU&J7TAUjm|c0I=u(=> zK5yTaXQ%iXCp4c6h}cz3hWsV$J0iFgYgBPB-VVp8{uF^kESjSO?Y! ?jZg+%Jw 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�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 IM6N<$f@McVP5=M^ diff --git a/public/images/items/blank_memory.png b/public/images/items/normal_memory.png similarity index 100% rename from public/images/items/blank_memory.png rename to public/images/items/normal_memory.png diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index 1420d8800aa..bc815b91f3a 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -66,34 +66,34 @@ export enum FormChangeItem { BLUE_ORB = 50, RED_ORB, - SHARP_METEORITE, - HARD_METEORITE, - SMOOTH_METEORITE, ADAMANT_CRYSTAL, LUSTROUS_GLOBE, GRISEOUS_CORE, REVEAL_GLASS, - GRACIDEA, MAX_MUSHROOMS, DARK_STONE, LIGHT_STONE, PRISON_BOTTLE, - N_LUNARIZER, - N_SOLARIZER, RUSTED_SWORD, RUSTED_SHIELD, ICY_REINS_OF_UNITY, SHADOW_REINS_OF_UNITY, - WELLSPRING_MASK, - HEARTHFLAME_MASK, - CORNERSTONE_MASK, + ULTRANECROZIUM_Z, + + SHARP_METEORITE = 100, + HARD_METEORITE, + SMOOTH_METEORITE, + GRACIDEA, SHOCK_DRIVE, BURN_DRIVE, CHILL_DRIVE, DOUSE_DRIVE, - ULTRANECROZIUM_Z, - - FIST_PLATE = 100, + N_SOLARIZER, + N_LUNARIZER, + WELLSPRING_MASK, + HEARTHFLAME_MASK, + CORNERSTONE_MASK, + FIST_PLATE, SKY_PLATE, TOXIC_PLATE, EARTH_PLATE, @@ -129,7 +129,7 @@ export enum FormChangeItem { DRAGON_MEMORY, DARK_MEMORY, FAIRY_MEMORY, - BLANK_MEMORY // TODO: Find a potential use for this + NORMAL_MEMORY // TODO: Find a potential use for this } export type SpeciesFormChangeConditionPredicate = (p: Pokemon) => boolean; diff --git a/src/locales/de/modifier-type.json b/src/locales/de/modifier-type.json index c9927636c2a..9298a78614a 100644 --- a/src/locales/de/modifier-type.json +++ b/src/locales/de/modifier-type.json @@ -604,6 +604,6 @@ "DRAGON_MEMORY": "Drachen-Disc", "DARK_MEMORY": "Unlicht-Disc", "FAIRY_MEMORY": "Feen-Disc", - "BLANK_MEMORY": "Leere-Disc" + "NORMAL_MEMORY": "Normal-Disc" } } \ No newline at end of file diff --git a/src/locales/en/modifier-type.json b/src/locales/en/modifier-type.json index ed1ef900878..15b9fb8f46d 100644 --- a/src/locales/en/modifier-type.json +++ b/src/locales/en/modifier-type.json @@ -450,6 +450,6 @@ "DRAGON_MEMORY": "Dragon Memory", "DARK_MEMORY": "Dark Memory", "FAIRY_MEMORY": "Fairy Memory", - "BLANK_MEMORY": "Blank Memory" + "NORMAL_MEMORY": "Normal Memory" } } diff --git a/src/locales/es/modifier-type.json b/src/locales/es/modifier-type.json index 95325788bf4..9c36b8da767 100644 --- a/src/locales/es/modifier-type.json +++ b/src/locales/es/modifier-type.json @@ -604,6 +604,6 @@ "DRAGON_MEMORY": "Disco dragón", "DARK_MEMORY": "Disco siniestro", "FAIRY_MEMORY": "Disco hada", - "BLANK_MEMORY": "Disco en blanco" + "NORMAL_MEMORY": "Disco normal" } } diff --git a/src/locales/fr/modifier-type.json b/src/locales/fr/modifier-type.json index 6d5cfb098ef..935deeb5f62 100644 --- a/src/locales/fr/modifier-type.json +++ b/src/locales/fr/modifier-type.json @@ -450,6 +450,6 @@ "DRAGON_MEMORY": "ROM Dragon", "DARK_MEMORY": "ROM Ténèbres", "FAIRY_MEMORY": "ROM Fée", - "BLANK_MEMORY": "ROM Vierge" + "NORMAL_MEMORY": "ROM Normal" } } diff --git a/src/locales/it/modifier-type.json b/src/locales/it/modifier-type.json index f5cee70bbc9..b466e5bb9a3 100644 --- a/src/locales/it/modifier-type.json +++ b/src/locales/it/modifier-type.json @@ -604,6 +604,6 @@ "DRAGON_MEMORY": "ROM Drago", "DARK_MEMORY": "ROM Buio", "FAIRY_MEMORY": "ROM Folletto", - "BLANK_MEMORY": "ROM Vuota" + "NORMAL_MEMORY": "ROM Normale" } } \ No newline at end of file diff --git a/src/locales/ko/modifier-type.json b/src/locales/ko/modifier-type.json index 3d282dfffd1..a5b3405b33f 100644 --- a/src/locales/ko/modifier-type.json +++ b/src/locales/ko/modifier-type.json @@ -604,6 +604,6 @@ "DRAGON_MEMORY": "드래곤메모리", "DARK_MEMORY": "다크메모리", "FAIRY_MEMORY": "페어리메모리", - "BLANK_MEMORY": "빈메모리" + "NORMAL_MEMORY": "일반메모리" } } \ No newline at end of file diff --git a/src/locales/pt_BR/modifier-type.json b/src/locales/pt_BR/modifier-type.json index 1787360b51e..b02281a53b8 100644 --- a/src/locales/pt_BR/modifier-type.json +++ b/src/locales/pt_BR/modifier-type.json @@ -604,6 +604,6 @@ "DRAGON_MEMORY": "Memória do Dragão", "DARK_MEMORY": "Memória Sombria", "FAIRY_MEMORY": "Memória de Fada", - "BLANK_MEMORY": "Memória Vazia" + "NORMAL_MEMORY": "Memória Normal" } } diff --git a/src/locales/zh_CN/modifier-type.json b/src/locales/zh_CN/modifier-type.json index e9172985092..4a982b77cea 100644 --- a/src/locales/zh_CN/modifier-type.json +++ b/src/locales/zh_CN/modifier-type.json @@ -604,6 +604,6 @@ "DRAGON_MEMORY": "龙存储碟", "DARK_MEMORY": "黑暗存储碟", "FAIRY_MEMORY": "妖精存储碟", - "BLANK_MEMORY": "空白存储碟" + "NORMAL_MEMORY": "一般存储碟" } } \ No newline at end of file diff --git a/src/locales/zh_TW/modifier-type.json b/src/locales/zh_TW/modifier-type.json index a7ddaea077b..847ede7001e 100644 --- a/src/locales/zh_TW/modifier-type.json +++ b/src/locales/zh_TW/modifier-type.json @@ -600,6 +600,6 @@ "DRAGON_MEMORY": "龍記憶碟", "DARK_MEMORY": "黑暗記憶碟", "FAIRY_MEMORY": "妖精記憶碟", - "BLANK_MEMORY": "空白記憶碟" + "NORMAL_MEMORY": "一般記憶碟" } } \ No newline at end of file diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 3afeb79ff2b..e693ca01052 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -1043,7 +1043,7 @@ class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator { } class FormChangeItemModifierTypeGenerator extends ModifierTypeGenerator { - constructor() { + constructor(rare: boolean) { super((party: Pokemon[], pregenArgs?: any[]) => { if (pregenArgs && (pregenArgs.length === 1) && (pregenArgs[0] in FormChangeItem)) { return new FormChangeItemModifierType(pregenArgs[0] as FormChangeItem); @@ -1083,7 +1083,8 @@ class FormChangeItemModifierTypeGenerator extends ModifierTypeGenerator { } } return formChangeItemTriggers; - }).flat().flatMap(fc => fc.item))]; + }).flat()) + ].flat().flatMap(fc => fc.item).filter(i => (i && i < 100) === rare); // convert it into a set to remove duplicate values, which can appear when the same species with a potential form change is in the party. if (!formChangeItemPool.length) { @@ -1282,7 +1283,8 @@ export const modifierTypes = { EVOLUTION_ITEM: () => new EvolutionItemModifierTypeGenerator(false), RARE_EVOLUTION_ITEM: () => new EvolutionItemModifierTypeGenerator(true), - FORM_CHANGE_ITEM: () => new FormChangeItemModifierTypeGenerator(), + FORM_CHANGE_ITEM: () => new FormChangeItemModifierTypeGenerator(false), + RARE_FORM_CHANGE_ITEM: () => new FormChangeItemModifierTypeGenerator(true), MEGA_BRACELET: () => new ModifierType("modifierType:ModifierType.MEGA_BRACELET", "mega_bracelet", (type, _args) => new Modifiers.MegaEvolutionAccessModifier(type)), DYNAMAX_BAND: () => new ModifierType("modifierType:ModifierType.DYNAMAX_BAND", "dynamax_band", (type, _args) => new Modifiers.GigantamaxAccessModifier(type)), @@ -1595,6 +1597,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.PP_MAX, 3), new WeightedModifierType(modifierTypes.MINT, 4), new WeightedModifierType(modifierTypes.RARE_EVOLUTION_ITEM, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 15) * 4, 32), 32), + new WeightedModifierType(modifierTypes.FORM_CHANGE_ITEM, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 6, 24), new WeightedModifierType(modifierTypes.AMULET_COIN, skipInLastClassicWaveOrDefault(3)), new WeightedModifierType(modifierTypes.EVIOLITE, (party: Pokemon[]) => { if (!party[0].scene.gameMode.isFreshStartChallenge() && party[0].scene.gameData.unlocks[Unlockables.EVIOLITE]) { @@ -1661,7 +1664,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.KINGS_ROCK, 3), new WeightedModifierType(modifierTypes.LOCK_CAPSULE, skipInLastClassicWaveOrDefault(3)), new WeightedModifierType(modifierTypes.SUPER_EXP_CHARM, skipInLastClassicWaveOrDefault(8)), - new WeightedModifierType(modifierTypes.FORM_CHANGE_ITEM, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 6, 24), + new WeightedModifierType(modifierTypes.RARE_FORM_CHANGE_ITEM, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 6, 24), new WeightedModifierType(modifierTypes.MEGA_BRACELET, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 9, 36), new WeightedModifierType(modifierTypes.DYNAMAX_BAND, (party: Pokemon[]) => Math.min(Math.ceil(party[0].scene.currentBattle.waveIndex / 50), 4) * 9, 36), new WeightedModifierType(modifierTypes.VOUCHER_PLUS, (party: Pokemon[], rerollCount: integer) => !party[0].scene.gameMode.isDaily ? Math.max(3 - rerollCount * 1, 0) : 0, 3), From 634bfb7900b66d9be28b801d685efacc3d8762cd Mon Sep 17 00:00:00 2001 From: chaosgrimmon <31082757+chaosgrimmon@users.noreply.github.com> Date: Mon, 2 Sep 2024 01:16:47 -0400 Subject: [PATCH 077/116] [Sprite] Pelipper variant cleanup (#3969) * [Sprite] Sprite fix Pelipper front * [Sprite] Map epic Pelipper front * Delete public/images/pokemon/variant/279_1.png * Delete public/images/pokemon/variant/279_2.png * Delete public/images/pokemon/variant/279_3.png * Delete public/images/pokemon/variant/279_1.json * Delete public/images/pokemon/variant/279_2.json * Delete public/images/pokemon/variant/279_3.json * [Sprite] Use epic Pelipper palette * [Sprite] Index base shiny Pelipper front --- public/images/pokemon/279.png | Bin 29086 -> 12765 bytes public/images/pokemon/shiny/279.png | Bin 29364 -> 12770 bytes public/images/pokemon/variant/279.json | 53 +- public/images/pokemon/variant/279_1.json | 3611 ----------------- public/images/pokemon/variant/279_1.png | Bin 30209 -> 0 bytes public/images/pokemon/variant/279_2.json | 3611 ----------------- public/images/pokemon/variant/279_2.png | Bin 30073 -> 0 bytes public/images/pokemon/variant/279_3.json | 3611 ----------------- public/images/pokemon/variant/279_3.png | Bin 30216 -> 0 bytes .../images/pokemon/variant/_masterlist.json | 2 +- 10 files changed, 33 insertions(+), 10855 deletions(-) delete mode 100644 public/images/pokemon/variant/279_1.json delete mode 100644 public/images/pokemon/variant/279_1.png delete mode 100644 public/images/pokemon/variant/279_2.json delete mode 100644 public/images/pokemon/variant/279_2.png delete mode 100644 public/images/pokemon/variant/279_3.json delete mode 100644 public/images/pokemon/variant/279_3.png diff --git a/public/images/pokemon/279.png b/public/images/pokemon/279.png index a50bf952433e9939b30fe5c2f998ac332ef165bd..e7243586515191f5102dc93b9fd82302532b21d1 100644 GIT binary patch delta 10202 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 diff --git a/public/images/pokemon/shiny/279.png b/public/images/pokemon/shiny/279.png index c43634e8602852f2e741820d757eb417a8eb6ba0..26dba5479139e2d149c388db9ccb05d307eb1142 100644 GIT binary patch delta 10207 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 V;9YAG@b8y=in3}lwNmDx{|AK9>m~pI delta 26932 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 JW!lcS{||}@Hn{)* diff --git a/public/images/pokemon/variant/279.json b/public/images/pokemon/variant/279.json index a7b97ac3161..5c193f7939b 100644 --- a/public/images/pokemon/variant/279.json +++ b/public/images/pokemon/variant/279.json @@ -1,38 +1,49 @@ { "0": { + "bc4524": "af5457", "31638c": "324a26", - "101010": "101010", "5aa5ce": "40683c", - "a5e6ff": "b6d9ac", - "7bceef": "789c6e", - "ced6ef": "c09e99", - "737384": "774644", + "ce4252": "af2c4f", "ffffff": "f1dcd8", "8c4231": "420b0c", - "ffde4a": "c66f68", - "c57b31": "551917", "ffffad": "f4bfb6", + "ffde4a": "c66f68", + "7bceef": "789c6e", + "a5e6ff": "b6d9ac", + "737384": "774644", "f7b531": "af5457", - "ce4252": "af2c4f", - "bc4524": "af5457", - "00e5e7": "00e5e7" + "c57b31": "551917", + "ced6ef": "c09e99" }, "1": { + "bc4524": "3d325e", "31638c": "143a72", - "101010": "101010", "5aa5ce": "4060bc", - "a5e6ff": "b4b3ff", - "7bceef": "657ddf", - "ced6ef": "a8b5dd", - "737384": "737384", + "ce4252": "b75558", "ffffff": "e5ecff", "8c4231": "17103f", - "ffde4a": "534e72", - "c57b31": "2a1f50", "ffffad": "87879b", + "ffde4a": "534e72", + "7bceef": "657ddf", + "a5e6ff": "b4b3ff", "f7b531": "3d325e", - "ce4252": "b75558", - "bc4524": "3d325e", - "00e5e7": "00e5e7" + "c57b31": "2a1f50", + "ced6ef": "a8b5dd" + }, + "2": { + "ce4252": "215991", + "ffde4a": "f16f40", + "ffffad": "ffb274", + "737384": "884c43", + "c57b31": "761c03", + "7bceef": "be3d2f", + "8c4231": "5a0700", + "5aa5ce": "892722", + "8c4232": "761c03", + "ffffff": "f5e1d1", + "a5e6ff": "dd533a", + "f7b531": "bc4524", + "ced6ef": "d19e92", + "31638c": "610f0e" } -} \ No newline at end of file +} diff --git a/public/images/pokemon/variant/279_1.json b/public/images/pokemon/variant/279_1.json deleted file mode 100644 index 3f884262e14..00000000000 --- a/public/images/pokemon/variant/279_1.json +++ /dev/null @@ -1,3611 +0,0 @@ -{ - "textures": [ - { - "image": "279_1.png", - "format": "RGBA8888", - "size": { - "w": 422, - "h": 422 - }, - "scale": 1, - "frames": [ - { - "filename": "0003.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 1, - "w": 96, - "h": 53 - }, - "frame": { - "x": 0, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0046.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 1, - "w": 96, - "h": 53 - }, - "frame": { - "x": 0, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0131.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 1, - "w": 96, - "h": 53 - }, - "frame": { - "x": 0, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0040.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 96, - "h": 53 - }, - "frame": { - "x": 96, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0081.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 96, - "h": 53 - }, - "frame": { - "x": 96, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0124.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 96, - "h": 53 - }, - "frame": { - "x": 96, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0168.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 96, - "h": 53 - }, - "frame": { - "x": 96, - "y": 0, - "w": 96, - "h": 53 - } - }, - { - "filename": "0033.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 9, - "w": 96, - "h": 52 - }, - "frame": { - "x": 192, - "y": 0, - "w": 96, - "h": 52 - } - }, - { - "filename": "0161.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 9, - "w": 96, - "h": 52 - }, - "frame": { - "x": 192, - "y": 0, - "w": 96, - "h": 52 - } - }, - { - "filename": "0045.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 0, - "w": 94, - "h": 53 - }, - "frame": { - "x": 288, - "y": 0, - "w": 94, - "h": 53 - } - }, - { - "filename": "0088.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 0, - "w": 94, - "h": 53 - }, - "frame": { - "x": 288, - "y": 0, - "w": 94, - "h": 53 - } - }, - { - "filename": "0004.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0005.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0006.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0047.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0048.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0089.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0090.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0091.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0132.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0133.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0134.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 1, - "w": 93, - "h": 53 - }, - "frame": { - "x": 192, - "y": 52, - "w": 93, - "h": 53 - } - }, - { - "filename": "0007.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0008.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0049.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0050.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0051.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0092.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0093.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0094.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0135.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0136.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 2, - "w": 93, - "h": 53 - }, - "frame": { - "x": 285, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0009.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0010.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0011.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0052.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0053.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0054.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0095.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0096.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0137.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0138.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0139.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 3, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0012.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0013.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0014.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0055.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0056.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0097.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0098.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0099.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0140.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0141.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0142.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 4, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 53, - "w": 93, - "h": 53 - } - }, - { - "filename": "0015.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0016.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0057.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0058.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0059.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0100.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0101.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0102.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0143.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0144.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 186, - "y": 105, - "w": 93, - "h": 53 - } - }, - { - "filename": "0038.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 7, - "w": 93, - "h": 53 - }, - "frame": { - "x": 279, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0123.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 7, - "w": 93, - "h": 53 - }, - "frame": { - "x": 279, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0166.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 7, - "w": 93, - "h": 53 - }, - "frame": { - "x": 279, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0039.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0082.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0125.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0167.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 0, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0083.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 93, - "h": 53 - }, - "frame": { - "x": 93, - "y": 106, - "w": 93, - "h": 53 - } - }, - { - "filename": "0119.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 9, - "w": 82, - "h": 60 - }, - "frame": { - "x": 186, - "y": 158, - "w": 82, - "h": 60 - } - }, - { - "filename": "0076.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 0, - "y": 9, - "w": 94, - "h": 52 - }, - "frame": { - "x": 268, - "y": 159, - "w": 94, - "h": 52 - } - }, - { - "filename": "0085.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 1, - "w": 57, - "h": 68 - }, - "frame": { - "x": 362, - "y": 159, - "w": 57, - "h": 68 - } - }, - { - "filename": "0128.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 1, - "w": 57, - "h": 68 - }, - "frame": { - "x": 362, - "y": 159, - "w": 57, - "h": 68 - } - }, - { - "filename": "0037.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 81, - "h": 60 - }, - "frame": { - "x": 268, - "y": 211, - "w": 81, - "h": 60 - } - }, - { - "filename": "0080.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 81, - "h": 60 - }, - "frame": { - "x": 268, - "y": 211, - "w": 81, - "h": 60 - } - }, - { - "filename": "0165.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 81, - "h": 60 - }, - "frame": { - "x": 268, - "y": 211, - "w": 81, - "h": 60 - } - }, - { - "filename": "0034.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 68, - "h": 63 - }, - "frame": { - "x": 349, - "y": 227, - "w": 68, - "h": 63 - } - }, - { - "filename": "0162.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 68, - "h": 63 - }, - "frame": { - "x": 349, - "y": 227, - "w": 68, - "h": 63 - } - }, - { - "filename": "0126.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 81, - "h": 60 - }, - "frame": { - "x": 0, - "y": 159, - "w": 81, - "h": 60 - } - }, - { - "filename": "0002.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 0, - "w": 82, - "h": 59 - }, - "frame": { - "x": 81, - "y": 159, - "w": 82, - "h": 59 - } - }, - { - "filename": "0087.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 0, - "w": 82, - "h": 59 - }, - "frame": { - "x": 81, - "y": 159, - "w": 82, - "h": 59 - } - }, - { - "filename": "0130.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 6, - "y": 0, - "w": 82, - "h": 59 - }, - "frame": { - "x": 81, - "y": 159, - "w": 82, - "h": 59 - } - }, - { - "filename": "0017.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0018.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0019.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0060.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0061.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0062.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0103.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0104.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0145.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0146.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0147.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 6, - "w": 93, - "h": 52 - }, - "frame": { - "x": 81, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0041.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 3, - "w": 68, - "h": 63 - }, - "frame": { - "x": 0, - "y": 219, - "w": 68, - "h": 63 - } - }, - { - "filename": "0084.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 3, - "w": 68, - "h": 63 - }, - "frame": { - "x": 0, - "y": 219, - "w": 68, - "h": 63 - } - }, - { - "filename": "0169.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 3, - "w": 68, - "h": 63 - }, - "frame": { - "x": 0, - "y": 219, - "w": 68, - "h": 63 - } - }, - { - "filename": "0020.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0021.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0022.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0063.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0064.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0105.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0106.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0107.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0148.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0149.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0150.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 7, - "w": 93, - "h": 52 - }, - "frame": { - "x": 174, - "y": 218, - "w": 93, - "h": 52 - } - }, - { - "filename": "0023.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0024.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0065.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0066.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0067.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0108.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0109.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0110.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0151.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0152.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 93, - "h": 52 - }, - "frame": { - "x": 68, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0079.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 7, - "w": 67, - "h": 63 - }, - "frame": { - "x": 0, - "y": 282, - "w": 67, - "h": 63 - } - }, - { - "filename": "0122.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 7, - "w": 67, - "h": 63 - }, - "frame": { - "x": 0, - "y": 282, - "w": 67, - "h": 63 - } - }, - { - "filename": "0025.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0026.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0027.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0068.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0069.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0070.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0111.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0112.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0153.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0154.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0155.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 9, - "w": 93, - "h": 52 - }, - "frame": { - "x": 161, - "y": 270, - "w": 93, - "h": 52 - } - }, - { - "filename": "0028.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0029.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0030.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0071.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0072.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0113.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0114.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0115.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0156.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0157.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0158.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 10, - "w": 93, - "h": 52 - }, - "frame": { - "x": 254, - "y": 271, - "w": 93, - "h": 52 - } - }, - { - "filename": "0042.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 3, - "w": 63, - "h": 66 - }, - "frame": { - "x": 347, - "y": 290, - "w": 63, - "h": 66 - } - }, - { - "filename": "0127.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 3, - "w": 63, - "h": 66 - }, - "frame": { - "x": 347, - "y": 290, - "w": 63, - "h": 66 - } - }, - { - "filename": "0170.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 3, - "w": 63, - "h": 66 - }, - "frame": { - "x": 347, - "y": 290, - "w": 63, - "h": 66 - } - }, - { - "filename": "0031.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0032.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0073.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0074.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0075.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0116.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0117.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0118.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0159.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0160.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 2, - "y": 11, - "w": 93, - "h": 52 - }, - "frame": { - "x": 67, - "y": 322, - "w": 93, - "h": 52 - } - }, - { - "filename": "0043.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 1, - "w": 63, - "h": 66 - }, - "frame": { - "x": 0, - "y": 345, - "w": 63, - "h": 66 - } - }, - { - "filename": "0086.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 1, - "w": 63, - "h": 66 - }, - "frame": { - "x": 0, - "y": 345, - "w": 63, - "h": 66 - } - }, - { - "filename": "0171.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 1, - "w": 63, - "h": 66 - }, - "frame": { - "x": 0, - "y": 345, - "w": 63, - "h": 66 - } - }, - { - "filename": "0077.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 63, - "h": 66 - }, - "frame": { - "x": 160, - "y": 322, - "w": 63, - "h": 66 - } - }, - { - "filename": "0120.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 63, - "h": 66 - }, - "frame": { - "x": 160, - "y": 322, - "w": 63, - "h": 66 - } - }, - { - "filename": "0001.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 0, - "w": 67, - "h": 62 - }, - "frame": { - "x": 223, - "y": 323, - "w": 67, - "h": 62 - } - }, - { - "filename": "0044.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 0, - "w": 67, - "h": 62 - }, - "frame": { - "x": 223, - "y": 323, - "w": 67, - "h": 62 - } - }, - { - "filename": "0129.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 0, - "w": 67, - "h": 62 - }, - "frame": { - "x": 223, - "y": 323, - "w": 67, - "h": 62 - } - }, - { - "filename": "0035.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 57, - "h": 67 - }, - "frame": { - "x": 290, - "y": 323, - "w": 57, - "h": 67 - } - }, - { - "filename": "0078.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 57, - "h": 67 - }, - "frame": { - "x": 290, - "y": 323, - "w": 57, - "h": 67 - } - }, - { - "filename": "0163.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 9, - "w": 57, - "h": 67 - }, - "frame": { - "x": 290, - "y": 323, - "w": 57, - "h": 67 - } - }, - { - "filename": "0036.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 7, - "w": 62, - "h": 66 - }, - "frame": { - "x": 347, - "y": 356, - "w": 62, - "h": 66 - } - }, - { - "filename": "0121.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 7, - "w": 62, - "h": 66 - }, - "frame": { - "x": 347, - "y": 356, - "w": 62, - "h": 66 - } - }, - { - "filename": "0164.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 96, - "h": 76 - }, - "spriteSourceSize": { - "x": 14, - "y": 7, - "w": 62, - "h": 66 - }, - "frame": { - "x": 347, - "y": 356, - "w": 62, - "h": 66 - } - } - ] - } - ], - "meta": { - "app": "https://www.codeandweb.com/texturepacker", - "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:37124082e206aa3cddb045440ab1e9cf:8d64288649efa3066ed9b372190e868f:b1d275d5bba320dd22d2f2c7e56d52ec$" - } -} \ No newline at end of file diff --git a/public/images/pokemon/variant/279_1.png b/public/images/pokemon/variant/279_1.png deleted file mode 100644 index f2aa7b8ac3a88f0b6bdd32ccabe9a5e548c405cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30209 zcmagFbyQW)-#@x(5e4aP=|(yPq`ONg=?>vYw@8CXcOObXx=RI=jzgy)br3uU0~PT#}P>^0hpAgBDU@fEwnz}a@-!%aBG7d0d7kVl0^L_c@>qvB)j zEU-`>9RX<0z`A=w!wZs21=LK`fcZG*Ou|dju6A6yt84aYsklDiK0l?+n1K(_%81)J zzFaUNC;cHJX_&**qWL4ESwMY^S7nUBIE>#Q+4Gq5Rls?s4W8%;|2qltVb8G*o1