diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000000..ce942deba5f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,45 @@ +# Order is important; the last matching pattern takes the most precedence. + +# everything (whole code-base) - Junior Devs +* @pagefaultgames/junior-dev-team + +# github actions/templates etc. - Dev Leads +/.github @pagefaultgames/dev-leads + +# --- Translations --- + +# all translations - Translation Leads +/src/locales @pagefaultgames/translation-leads + +# Catalan (Spain/Spanish) +/src/locales/ca_ES @pagefaultgames/catalan-translation-team + +# German +/src/locales/de @pagefaultgames/german-translation-team + +# English +/src/locales/en @pagefaultgames/english-translation-team + +# Spanish +/src/locales/es @pagefaultgames/spanish-translation-team + +# French +/src/locales/fr @pagefaultgames/french-translation-team + +# Italian +/src/locales/it @pagefaultgames/italian-translation-team + +# Japenese +/src/locales/ja @pagefaultgames/japanese-translation-team + +# Korean +/src/locales/ko @pagefaultgames/korean-translation-team + +# Brasilian (Brasil/Portuguese) +/src/locales/pt_BR @pagefaultgames/portuguese_br-translation-team + +# Chinese (simplified) +/src/locales/zh_CN @pagefaultgames/chinese_simplified-translation-team + +# Chinese (traditional) +/src/locales/zh_TW @pagefaultgames/chinese_traditional-translation-team diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 5aec86a0463..843f7feab59 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,7 @@ name: Feature Request description: Suggest an idea for this project title: "[Feature] " -labels: ["enhancement"] +labels: ["Enhancement"] body: - type: markdown attributes: diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a765ed4a114..3e6b8bf6d0d 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 placeholders for them in locales? +- [ ] If I have text, did I add make it translatable and added a key in the English language? - [ ] Have I tested the changes (manually)? - [ ] Are all unit tests still passing? (`npm run test`) - [ ] Are the changes visual? diff --git a/README.md b/README.md index 77246fa4402..0f9ed992352 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ Check out [Github Issues](https://github.com/pagefaultgames/pokerogue/issues) to - Pokémon Sun/Moon - Pokémon Ultra Sun/Ultra Moon - Pokémon Sword/Shield + - Pokémon Legends: Arceus - Pokémon Scarlet/Violet - Firel (Custom Laboratory, Metropolis, Seabed, and Space biome music) - Lmz (Custom Jungle biome music) diff --git a/index.css b/index.css index 3b74867be5f..8034c1a4b38 100644 --- a/index.css +++ b/index.css @@ -17,6 +17,12 @@ body { background: #484050; } +@media (display-mode: fullscreen) { + body { + background: #000000; + } +} + #links { width: 90%; text-align: center; diff --git a/public/audio/se/battle_anims/Absorb2.m4a b/public/audio/battle_anims/Absorb2.m4a similarity index 100% rename from public/audio/se/battle_anims/Absorb2.m4a rename to public/audio/battle_anims/Absorb2.m4a diff --git a/public/audio/se/battle_anims/Ace.m4a b/public/audio/battle_anims/Ace.m4a similarity index 100% rename from public/audio/se/battle_anims/Ace.m4a rename to public/audio/battle_anims/Ace.m4a diff --git a/public/audio/se/battle_anims/Acupressure.mp3 b/public/audio/battle_anims/Acupressure.mp3 similarity index 100% rename from public/audio/se/battle_anims/Acupressure.mp3 rename to public/audio/battle_anims/Acupressure.mp3 diff --git a/public/audio/se/battle_anims/Applause.m4a b/public/audio/battle_anims/Applause.m4a similarity index 100% rename from public/audio/se/battle_anims/Applause.m4a rename to public/audio/battle_anims/Applause.m4a diff --git a/public/audio/se/battle_anims/Battle1.m4a b/public/audio/battle_anims/Battle1.m4a similarity index 100% rename from public/audio/se/battle_anims/Battle1.m4a rename to public/audio/battle_anims/Battle1.m4a diff --git a/public/audio/se/battle_anims/Blow1.m4a b/public/audio/battle_anims/Blow1.m4a similarity index 100% rename from public/audio/se/battle_anims/Blow1.m4a rename to public/audio/battle_anims/Blow1.m4a diff --git a/public/audio/se/battle_anims/Blow3.m4a b/public/audio/battle_anims/Blow3.m4a similarity index 100% rename from public/audio/se/battle_anims/Blow3.m4a rename to public/audio/battle_anims/Blow3.m4a diff --git a/public/audio/se/battle_anims/Blow4.m4a b/public/audio/battle_anims/Blow4.m4a similarity index 100% rename from public/audio/se/battle_anims/Blow4.m4a rename to public/audio/battle_anims/Blow4.m4a diff --git a/public/audio/se/battle_anims/Blow5.m4a b/public/audio/battle_anims/Blow5.m4a similarity index 100% rename from public/audio/se/battle_anims/Blow5.m4a rename to public/audio/battle_anims/Blow5.m4a diff --git a/public/audio/se/battle_anims/Blow6.m4a b/public/audio/battle_anims/Blow6.m4a similarity index 100% rename from public/audio/se/battle_anims/Blow6.m4a rename to public/audio/battle_anims/Blow6.m4a diff --git a/public/audio/se/battle_anims/Blow7.m4a b/public/audio/battle_anims/Blow7.m4a similarity index 100% rename from public/audio/se/battle_anims/Blow7.m4a rename to public/audio/battle_anims/Blow7.m4a diff --git a/public/audio/se/battle_anims/Bow1.m4a b/public/audio/battle_anims/Bow1.m4a similarity index 100% rename from public/audio/se/battle_anims/Bow1.m4a rename to public/audio/battle_anims/Bow1.m4a diff --git a/public/audio/se/battle_anims/Collapse1.m4a b/public/audio/battle_anims/Collapse1.m4a similarity index 100% rename from public/audio/se/battle_anims/Collapse1.m4a rename to public/audio/battle_anims/Collapse1.m4a diff --git a/public/audio/se/battle_anims/Comet Punch.mp3 b/public/audio/battle_anims/Comet Punch.mp3 similarity index 100% rename from public/audio/se/battle_anims/Comet Punch.mp3 rename to public/audio/battle_anims/Comet Punch.mp3 diff --git a/public/audio/se/battle_anims/Confuse.m4a b/public/audio/battle_anims/Confuse.m4a similarity index 100% rename from public/audio/se/battle_anims/Confuse.m4a rename to public/audio/battle_anims/Confuse.m4a diff --git a/public/audio/se/battle_anims/Crash.m4a b/public/audio/battle_anims/Crash.m4a similarity index 100% rename from public/audio/se/battle_anims/Crash.m4a rename to public/audio/battle_anims/Crash.m4a diff --git a/public/audio/se/battle_anims/Damage1.m4a b/public/audio/battle_anims/Damage1.m4a similarity index 100% rename from public/audio/se/battle_anims/Damage1.m4a rename to public/audio/battle_anims/Damage1.m4a diff --git a/public/audio/se/battle_anims/Darkness2.m4a b/public/audio/battle_anims/Darkness2.m4a similarity index 100% rename from public/audio/se/battle_anims/Darkness2.m4a rename to public/audio/battle_anims/Darkness2.m4a diff --git a/public/audio/se/battle_anims/Darkness6.m4a b/public/audio/battle_anims/Darkness6.m4a similarity index 100% rename from public/audio/se/battle_anims/Darkness6.m4a rename to public/audio/battle_anims/Darkness6.m4a diff --git a/public/audio/se/battle_anims/Defense Curl.mp3 b/public/audio/battle_anims/Defense Curl.mp3 similarity index 100% rename from public/audio/se/battle_anims/Defense Curl.mp3 rename to public/audio/battle_anims/Defense Curl.mp3 diff --git a/public/audio/se/battle_anims/Dizzy Punch.mp3 b/public/audio/battle_anims/Dizzy Punch.mp3 similarity index 100% rename from public/audio/se/battle_anims/Dizzy Punch.mp3 rename to public/audio/battle_anims/Dizzy Punch.mp3 diff --git a/public/audio/se/battle_anims/Earth1.m4a b/public/audio/battle_anims/Earth1.m4a similarity index 100% rename from public/audio/se/battle_anims/Earth1.m4a rename to public/audio/battle_anims/Earth1.m4a diff --git a/public/audio/se/battle_anims/Earth3.m4a b/public/audio/battle_anims/Earth3.m4a similarity index 100% rename from public/audio/se/battle_anims/Earth3.m4a rename to public/audio/battle_anims/Earth3.m4a diff --git a/public/audio/se/battle_anims/Earth4.m4a b/public/audio/battle_anims/Earth4.m4a similarity index 100% rename from public/audio/se/battle_anims/Earth4.m4a rename to public/audio/battle_anims/Earth4.m4a diff --git a/public/audio/se/battle_anims/Earth5.m4a b/public/audio/battle_anims/Earth5.m4a similarity index 100% rename from public/audio/se/battle_anims/Earth5.m4a rename to public/audio/battle_anims/Earth5.m4a diff --git a/public/audio/se/battle_anims/Explosion.mp3 b/public/audio/battle_anims/Explosion.mp3 similarity index 100% rename from public/audio/se/battle_anims/Explosion.mp3 rename to public/audio/battle_anims/Explosion.mp3 diff --git a/public/audio/se/battle_anims/Explosion1.m4a b/public/audio/battle_anims/Explosion1.m4a similarity index 100% rename from public/audio/se/battle_anims/Explosion1.m4a rename to public/audio/battle_anims/Explosion1.m4a diff --git a/public/audio/se/battle_anims/Explosion2.m4a b/public/audio/battle_anims/Explosion2.m4a similarity index 100% rename from public/audio/se/battle_anims/Explosion2.m4a rename to public/audio/battle_anims/Explosion2.m4a diff --git a/public/audio/se/battle_anims/Explosion3.m4a b/public/audio/battle_anims/Explosion3.m4a similarity index 100% rename from public/audio/se/battle_anims/Explosion3.m4a rename to public/audio/battle_anims/Explosion3.m4a diff --git a/public/audio/se/battle_anims/Explosion4.m4a b/public/audio/battle_anims/Explosion4.m4a similarity index 100% rename from public/audio/se/battle_anims/Explosion4.m4a rename to public/audio/battle_anims/Explosion4.m4a diff --git a/public/audio/se/battle_anims/Explosion6.m4a b/public/audio/battle_anims/Explosion6.m4a similarity index 100% rename from public/audio/se/battle_anims/Explosion6.m4a rename to public/audio/battle_anims/Explosion6.m4a diff --git a/public/audio/se/battle_anims/Explosion7.m4a b/public/audio/battle_anims/Explosion7.m4a similarity index 100% rename from public/audio/se/battle_anims/Explosion7.m4a rename to public/audio/battle_anims/Explosion7.m4a diff --git a/public/audio/se/battle_anims/Fire1.m4a b/public/audio/battle_anims/Fire1.m4a similarity index 100% rename from public/audio/se/battle_anims/Fire1.m4a rename to public/audio/battle_anims/Fire1.m4a diff --git a/public/audio/se/battle_anims/Fire2.m4a b/public/audio/battle_anims/Fire2.m4a similarity index 100% rename from public/audio/se/battle_anims/Fire2.m4a rename to public/audio/battle_anims/Fire2.m4a diff --git a/public/audio/se/battle_anims/Fire3.m4a b/public/audio/battle_anims/Fire3.m4a similarity index 100% rename from public/audio/se/battle_anims/Fire3.m4a rename to public/audio/battle_anims/Fire3.m4a diff --git a/public/audio/se/battle_anims/Fire4.m4a b/public/audio/battle_anims/Fire4.m4a similarity index 100% rename from public/audio/se/battle_anims/Fire4.m4a rename to public/audio/battle_anims/Fire4.m4a diff --git a/public/audio/se/battle_anims/Fire5.m4a b/public/audio/battle_anims/Fire5.m4a similarity index 100% rename from public/audio/se/battle_anims/Fire5.m4a rename to public/audio/battle_anims/Fire5.m4a diff --git a/public/audio/se/battle_anims/Fire6.m4a b/public/audio/battle_anims/Fire6.m4a similarity index 100% rename from public/audio/se/battle_anims/Fire6.m4a rename to public/audio/battle_anims/Fire6.m4a diff --git a/public/audio/se/battle_anims/Flail.mp3 b/public/audio/battle_anims/Flail.mp3 similarity index 100% rename from public/audio/se/battle_anims/Flail.mp3 rename to public/audio/battle_anims/Flail.mp3 diff --git a/public/audio/se/battle_anims/Flash2.m4a b/public/audio/battle_anims/Flash2.m4a similarity index 100% rename from public/audio/se/battle_anims/Flash2.m4a rename to public/audio/battle_anims/Flash2.m4a diff --git a/public/audio/se/battle_anims/Follow Me.mp3 b/public/audio/battle_anims/Follow Me.mp3 similarity index 100% rename from public/audio/se/battle_anims/Follow Me.mp3 rename to public/audio/battle_anims/Follow Me.mp3 diff --git a/public/audio/se/battle_anims/Fury Swipes.m4a b/public/audio/battle_anims/Fury Swipes.m4a similarity index 100% rename from public/audio/se/battle_anims/Fury Swipes.m4a rename to public/audio/battle_anims/Fury Swipes.m4a diff --git a/public/audio/se/battle_anims/GEN8- Electricity1.wav b/public/audio/battle_anims/GEN8- Electricity1.wav similarity index 100% rename from public/audio/se/battle_anims/GEN8- Electricity1.wav rename to public/audio/battle_anims/GEN8- Electricity1.wav diff --git a/public/audio/se/battle_anims/GEN8- Exclaim.wav b/public/audio/battle_anims/GEN8- Exclaim.wav similarity index 100% rename from public/audio/se/battle_anims/GEN8- Exclaim.wav rename to public/audio/battle_anims/GEN8- Exclaim.wav diff --git a/public/audio/se/battle_anims/GEN8- Revelation Dance 1.m4a b/public/audio/battle_anims/GEN8- Revelation Dance 1.m4a similarity index 100% rename from public/audio/se/battle_anims/GEN8- Revelation Dance 1.m4a rename to public/audio/battle_anims/GEN8- Revelation Dance 1.m4a diff --git a/public/audio/se/battle_anims/GEN8- Revelation Dance 2.m4a b/public/audio/battle_anims/GEN8- Revelation Dance 2.m4a similarity index 100% rename from public/audio/se/battle_anims/GEN8- Revelation Dance 2.m4a rename to public/audio/battle_anims/GEN8- Revelation Dance 2.m4a diff --git a/public/audio/se/battle_anims/Gen8- Pyroball.wav b/public/audio/battle_anims/Gen8- Pyroball.wav similarity index 100% rename from public/audio/se/battle_anims/Gen8- Pyroball.wav rename to public/audio/battle_anims/Gen8- Pyroball.wav diff --git a/public/audio/se/battle_anims/Harden.mp3 b/public/audio/battle_anims/Harden.mp3 similarity index 100% rename from public/audio/se/battle_anims/Harden.mp3 rename to public/audio/battle_anims/Harden.mp3 diff --git a/public/audio/se/battle_anims/Ice2.m4a b/public/audio/battle_anims/Ice2.m4a similarity index 100% rename from public/audio/se/battle_anims/Ice2.m4a rename to public/audio/battle_anims/Ice2.m4a diff --git a/public/audio/se/battle_anims/Ice5.m4a b/public/audio/battle_anims/Ice5.m4a similarity index 100% rename from public/audio/se/battle_anims/Ice5.m4a rename to public/audio/battle_anims/Ice5.m4a diff --git a/public/audio/se/battle_anims/Ice8.m4a b/public/audio/battle_anims/Ice8.m4a similarity index 100% rename from public/audio/se/battle_anims/Ice8.m4a rename to public/audio/battle_anims/Ice8.m4a diff --git a/public/audio/se/battle_anims/Knock.m4a b/public/audio/battle_anims/Knock.m4a similarity index 100% rename from public/audio/se/battle_anims/Knock.m4a rename to public/audio/battle_anims/Knock.m4a diff --git a/public/audio/se/battle_anims/Lock On.mp3 b/public/audio/battle_anims/Lock On.mp3 similarity index 100% rename from public/audio/se/battle_anims/Lock On.mp3 rename to public/audio/battle_anims/Lock On.mp3 diff --git a/public/audio/se/battle_anims/Lovely Kiss.mp3 b/public/audio/battle_anims/Lovely Kiss.mp3 similarity index 100% rename from public/audio/se/battle_anims/Lovely Kiss.mp3 rename to public/audio/battle_anims/Lovely Kiss.mp3 diff --git a/public/audio/se/battle_anims/Lucky Chant.mp3 b/public/audio/battle_anims/Lucky Chant.mp3 similarity index 100% rename from public/audio/se/battle_anims/Lucky Chant.mp3 rename to public/audio/battle_anims/Lucky Chant.mp3 diff --git a/public/audio/se/battle_anims/Mega Punch.mp3 b/public/audio/battle_anims/Mega Punch.mp3 similarity index 100% rename from public/audio/se/battle_anims/Mega Punch.mp3 rename to public/audio/battle_anims/Mega Punch.mp3 diff --git a/public/audio/se/battle_anims/Metronome.mp3 b/public/audio/battle_anims/Metronome.mp3 similarity index 100% rename from public/audio/se/battle_anims/Metronome.mp3 rename to public/audio/battle_anims/Metronome.mp3 diff --git a/public/audio/se/battle_anims/MiningCollapse.mp3 b/public/audio/battle_anims/MiningCollapse.mp3 similarity index 100% rename from public/audio/se/battle_anims/MiningCollapse.mp3 rename to public/audio/battle_anims/MiningCollapse.mp3 diff --git a/public/audio/se/battle_anims/MiningPing.mp3 b/public/audio/battle_anims/MiningPing.mp3 similarity index 100% rename from public/audio/se/battle_anims/MiningPing.mp3 rename to public/audio/battle_anims/MiningPing.mp3 diff --git a/public/audio/se/battle_anims/Natural Gift.mp3 b/public/audio/battle_anims/Natural Gift.mp3 similarity index 100% rename from public/audio/se/battle_anims/Natural Gift.mp3 rename to public/audio/battle_anims/Natural Gift.mp3 diff --git a/public/audio/se/battle_anims/PRSFX- Absorb1.wav b/public/audio/battle_anims/PRSFX- Absorb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Absorb1.wav rename to public/audio/battle_anims/PRSFX- Absorb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Absorb2.wav b/public/audio/battle_anims/PRSFX- Absorb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Absorb2.wav rename to public/audio/battle_anims/PRSFX- Absorb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Accelerock1.wav b/public/audio/battle_anims/PRSFX- Accelerock1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Accelerock1.wav rename to public/audio/battle_anims/PRSFX- Accelerock1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Accelerock2.wav b/public/audio/battle_anims/PRSFX- Accelerock2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Accelerock2.wav rename to public/audio/battle_anims/PRSFX- Accelerock2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Accelerock3.wav b/public/audio/battle_anims/PRSFX- Accelerock3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Accelerock3.wav rename to public/audio/battle_anims/PRSFX- Accelerock3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acid Armor1.wav b/public/audio/battle_anims/PRSFX- Acid Armor1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acid Armor1.wav rename to public/audio/battle_anims/PRSFX- Acid Armor1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acid Armor2.wav b/public/audio/battle_anims/PRSFX- Acid Armor2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acid Armor2.wav rename to public/audio/battle_anims/PRSFX- Acid Armor2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acid Spray.wav b/public/audio/battle_anims/PRSFX- Acid Spray.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acid Spray.wav rename to public/audio/battle_anims/PRSFX- Acid Spray.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acid.wav b/public/audio/battle_anims/PRSFX- Acid.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acid.wav rename to public/audio/battle_anims/PRSFX- Acid.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acrobatics1.wav b/public/audio/battle_anims/PRSFX- Acrobatics1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acrobatics1.wav rename to public/audio/battle_anims/PRSFX- Acrobatics1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acrobatics2.wav b/public/audio/battle_anims/PRSFX- Acrobatics2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acrobatics2.wav rename to public/audio/battle_anims/PRSFX- Acrobatics2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acrobatics3.wav b/public/audio/battle_anims/PRSFX- Acrobatics3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acrobatics3.wav rename to public/audio/battle_anims/PRSFX- Acrobatics3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acupressure1.wav b/public/audio/battle_anims/PRSFX- Acupressure1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acupressure1.wav rename to public/audio/battle_anims/PRSFX- Acupressure1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Acupressure2.wav b/public/audio/battle_anims/PRSFX- Acupressure2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Acupressure2.wav rename to public/audio/battle_anims/PRSFX- Acupressure2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aerial Ace.wav b/public/audio/battle_anims/PRSFX- Aerial Ace.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aerial Ace.wav rename to public/audio/battle_anims/PRSFX- Aerial Ace.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aeroblast.wav b/public/audio/battle_anims/PRSFX- Aeroblast.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aeroblast.wav rename to public/audio/battle_anims/PRSFX- Aeroblast.wav diff --git a/public/audio/se/battle_anims/PRSFX- After You1.wav b/public/audio/battle_anims/PRSFX- After You1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- After You1.wav rename to public/audio/battle_anims/PRSFX- After You1.wav diff --git a/public/audio/se/battle_anims/PRSFX- After You2.wav b/public/audio/battle_anims/PRSFX- After You2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- After You2.wav rename to public/audio/battle_anims/PRSFX- After You2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Agility.wav b/public/audio/battle_anims/PRSFX- Agility.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Agility.wav rename to public/audio/battle_anims/PRSFX- Agility.wav diff --git a/public/audio/se/battle_anims/PRSFX- Air Cutter1.wav b/public/audio/battle_anims/PRSFX- Air Cutter1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Air Cutter1.wav rename to public/audio/battle_anims/PRSFX- Air Cutter1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Air Cutter2.wav b/public/audio/battle_anims/PRSFX- Air Cutter2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Air Cutter2.wav rename to public/audio/battle_anims/PRSFX- Air Cutter2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Air Slash1.wav b/public/audio/battle_anims/PRSFX- Air Slash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Air Slash1.wav rename to public/audio/battle_anims/PRSFX- Air Slash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Air Slash2.wav b/public/audio/battle_anims/PRSFX- Air Slash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Air Slash2.wav rename to public/audio/battle_anims/PRSFX- Air Slash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Air Slash3.wav b/public/audio/battle_anims/PRSFX- Air Slash3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Air Slash3.wav rename to public/audio/battle_anims/PRSFX- Air Slash3.wav diff --git a/public/audio/se/battle_anims/PRSFX- All Out Pummeling1.wav b/public/audio/battle_anims/PRSFX- All Out Pummeling1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- All Out Pummeling1.wav rename to public/audio/battle_anims/PRSFX- All Out Pummeling1.wav diff --git a/public/audio/se/battle_anims/PRSFX- All Out Pummeling2.wav b/public/audio/battle_anims/PRSFX- All Out Pummeling2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- All Out Pummeling2.wav rename to public/audio/battle_anims/PRSFX- All Out Pummeling2.wav diff --git a/public/audio/se/battle_anims/PRSFX- All Out Pummeling3.wav b/public/audio/battle_anims/PRSFX- All Out Pummeling3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- All Out Pummeling3.wav rename to public/audio/battle_anims/PRSFX- All Out Pummeling3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ally Switch.wav b/public/audio/battle_anims/PRSFX- Ally Switch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ally Switch.wav rename to public/audio/battle_anims/PRSFX- Ally Switch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Amnesia.wav b/public/audio/battle_anims/PRSFX- Amnesia.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Amnesia.wav rename to public/audio/battle_anims/PRSFX- Amnesia.wav diff --git a/public/audio/se/battle_anims/PRSFX- Anchor Shot.wav b/public/audio/battle_anims/PRSFX- Anchor Shot.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Anchor Shot.wav rename to public/audio/battle_anims/PRSFX- Anchor Shot.wav diff --git a/public/audio/se/battle_anims/PRSFX- Anchor Shot1.wav b/public/audio/battle_anims/PRSFX- Anchor Shot1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Anchor Shot1.wav rename to public/audio/battle_anims/PRSFX- Anchor Shot1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Anchor Shot2.wav b/public/audio/battle_anims/PRSFX- Anchor Shot2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Anchor Shot2.wav rename to public/audio/battle_anims/PRSFX- Anchor Shot2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ancient Power1.wav b/public/audio/battle_anims/PRSFX- Ancient Power1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ancient Power1.wav rename to public/audio/battle_anims/PRSFX- Ancient Power1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ancient Power2.wav b/public/audio/battle_anims/PRSFX- Ancient Power2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ancient Power2.wav rename to public/audio/battle_anims/PRSFX- Ancient Power2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aqua Jet.wav b/public/audio/battle_anims/PRSFX- Aqua Jet.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aqua Jet.wav rename to public/audio/battle_anims/PRSFX- Aqua Jet.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aqua Ring1.wav b/public/audio/battle_anims/PRSFX- Aqua Ring1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aqua Ring1.wav rename to public/audio/battle_anims/PRSFX- Aqua Ring1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aqua Ring2.wav b/public/audio/battle_anims/PRSFX- Aqua Ring2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aqua Ring2.wav rename to public/audio/battle_anims/PRSFX- Aqua Ring2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aqua Tail.wav b/public/audio/battle_anims/PRSFX- Aqua Tail.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aqua Tail.wav rename to public/audio/battle_anims/PRSFX- Aqua Tail.wav diff --git a/public/audio/se/battle_anims/PRSFX- Arm Thrust.wav b/public/audio/battle_anims/PRSFX- Arm Thrust.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Arm Thrust.wav rename to public/audio/battle_anims/PRSFX- Arm Thrust.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aromatherapy.wav b/public/audio/battle_anims/PRSFX- Aromatherapy.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aromatherapy.wav rename to public/audio/battle_anims/PRSFX- Aromatherapy.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aromatic Mist.wav b/public/audio/battle_anims/PRSFX- Aromatic Mist.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aromatic Mist.wav rename to public/audio/battle_anims/PRSFX- Aromatic Mist.wav diff --git a/public/audio/se/battle_anims/PRSFX- Assist.wav b/public/audio/battle_anims/PRSFX- Assist.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Assist.wav rename to public/audio/battle_anims/PRSFX- Assist.wav diff --git a/public/audio/se/battle_anims/PRSFX- Assurance.wav b/public/audio/battle_anims/PRSFX- Assurance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Assurance.wav rename to public/audio/battle_anims/PRSFX- Assurance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Astonish1.wav b/public/audio/battle_anims/PRSFX- Astonish1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Astonish1.wav rename to public/audio/battle_anims/PRSFX- Astonish1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Astonish2.wav b/public/audio/battle_anims/PRSFX- Astonish2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Astonish2.wav rename to public/audio/battle_anims/PRSFX- Astonish2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Attack Order1.wav b/public/audio/battle_anims/PRSFX- Attack Order1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Attack Order1.wav rename to public/audio/battle_anims/PRSFX- Attack Order1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Attack Order2.wav b/public/audio/battle_anims/PRSFX- Attack Order2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Attack Order2.wav rename to public/audio/battle_anims/PRSFX- Attack Order2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Attract.wav b/public/audio/battle_anims/PRSFX- Attract.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Attract.wav rename to public/audio/battle_anims/PRSFX- Attract.wav diff --git a/public/audio/se/battle_anims/PRSFX- Attract1.wav b/public/audio/battle_anims/PRSFX- Attract1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Attract1.wav rename to public/audio/battle_anims/PRSFX- Attract1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Attract2.wav b/public/audio/battle_anims/PRSFX- Attract2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Attract2.wav rename to public/audio/battle_anims/PRSFX- Attract2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aura Sphere1.wav b/public/audio/battle_anims/PRSFX- Aura Sphere1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aura Sphere1.wav rename to public/audio/battle_anims/PRSFX- Aura Sphere1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aura Sphere2.wav b/public/audio/battle_anims/PRSFX- Aura Sphere2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aura Sphere2.wav rename to public/audio/battle_anims/PRSFX- Aura Sphere2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aurora Beam.wav b/public/audio/battle_anims/PRSFX- Aurora Beam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aurora Beam.wav rename to public/audio/battle_anims/PRSFX- Aurora Beam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aurora Veil1.wav b/public/audio/battle_anims/PRSFX- Aurora Veil1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aurora Veil1.wav rename to public/audio/battle_anims/PRSFX- Aurora Veil1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aurora Veil2.wav b/public/audio/battle_anims/PRSFX- Aurora Veil2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aurora Veil2.wav rename to public/audio/battle_anims/PRSFX- Aurora Veil2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aurora Veil3.wav b/public/audio/battle_anims/PRSFX- Aurora Veil3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aurora Veil3.wav rename to public/audio/battle_anims/PRSFX- Aurora Veil3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Aurora Veil4.wav b/public/audio/battle_anims/PRSFX- Aurora Veil4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Aurora Veil4.wav rename to public/audio/battle_anims/PRSFX- Aurora Veil4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Autotomize.wav b/public/audio/battle_anims/PRSFX- Autotomize.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Autotomize.wav rename to public/audio/battle_anims/PRSFX- Autotomize.wav diff --git a/public/audio/se/battle_anims/PRSFX- Autotomize1.mp3 b/public/audio/battle_anims/PRSFX- Autotomize1.mp3 similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Autotomize1.mp3 rename to public/audio/battle_anims/PRSFX- Autotomize1.mp3 diff --git a/public/audio/se/battle_anims/PRSFX- Autotomize2.wav b/public/audio/battle_anims/PRSFX- Autotomize2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Autotomize2.wav rename to public/audio/battle_anims/PRSFX- Autotomize2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Avalanche.wav b/public/audio/battle_anims/PRSFX- Avalanche.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Avalanche.wav rename to public/audio/battle_anims/PRSFX- Avalanche.wav diff --git a/public/audio/se/battle_anims/PRSFX- Baby Doll Eyes.wav b/public/audio/battle_anims/PRSFX- Baby Doll Eyes.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Baby Doll Eyes.wav rename to public/audio/battle_anims/PRSFX- Baby Doll Eyes.wav diff --git a/public/audio/se/battle_anims/PRSFX- Baneful Bunker1.wav b/public/audio/battle_anims/PRSFX- Baneful Bunker1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Baneful Bunker1.wav rename to public/audio/battle_anims/PRSFX- Baneful Bunker1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Baneful Bunker2.wav b/public/audio/battle_anims/PRSFX- Baneful Bunker2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Baneful Bunker2.wav rename to public/audio/battle_anims/PRSFX- Baneful Bunker2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Baneful Bunker3.wav b/public/audio/battle_anims/PRSFX- Baneful Bunker3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Baneful Bunker3.wav rename to public/audio/battle_anims/PRSFX- Baneful Bunker3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Barrage1.wav b/public/audio/battle_anims/PRSFX- Barrage1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Barrage1.wav rename to public/audio/battle_anims/PRSFX- Barrage1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Barrage2.wav b/public/audio/battle_anims/PRSFX- Barrage2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Barrage2.wav rename to public/audio/battle_anims/PRSFX- Barrage2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Barrier.wav b/public/audio/battle_anims/PRSFX- Barrier.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Barrier.wav rename to public/audio/battle_anims/PRSFX- Barrier.wav diff --git a/public/audio/se/battle_anims/PRSFX- Baton Pass1.wav b/public/audio/battle_anims/PRSFX- Baton Pass1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Baton Pass1.wav rename to public/audio/battle_anims/PRSFX- Baton Pass1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Baton Pass2.wav b/public/audio/battle_anims/PRSFX- Baton Pass2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Baton Pass2.wav rename to public/audio/battle_anims/PRSFX- Baton Pass2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Beak Blast1.wav b/public/audio/battle_anims/PRSFX- Beak Blast1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Beak Blast1.wav rename to public/audio/battle_anims/PRSFX- Beak Blast1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Beak Blast2.wav b/public/audio/battle_anims/PRSFX- Beak Blast2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Beak Blast2.wav rename to public/audio/battle_anims/PRSFX- Beak Blast2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Beak Blast3.wav b/public/audio/battle_anims/PRSFX- Beak Blast3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Beak Blast3.wav rename to public/audio/battle_anims/PRSFX- Beak Blast3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Beak Blast4.wav b/public/audio/battle_anims/PRSFX- Beak Blast4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Beak Blast4.wav rename to public/audio/battle_anims/PRSFX- Beak Blast4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Beat Up.wav b/public/audio/battle_anims/PRSFX- Beat Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Beat Up.wav rename to public/audio/battle_anims/PRSFX- Beat Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Belch1.wav b/public/audio/battle_anims/PRSFX- Belch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Belch1.wav rename to public/audio/battle_anims/PRSFX- Belch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Belch2.wav b/public/audio/battle_anims/PRSFX- Belch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Belch2.wav rename to public/audio/battle_anims/PRSFX- Belch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Belch3.wav b/public/audio/battle_anims/PRSFX- Belch3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Belch3.wav rename to public/audio/battle_anims/PRSFX- Belch3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Belly Drum.wav b/public/audio/battle_anims/PRSFX- Belly Drum.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Belly Drum.wav rename to public/audio/battle_anims/PRSFX- Belly Drum.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bestow1.wav b/public/audio/battle_anims/PRSFX- Bestow1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bestow1.wav rename to public/audio/battle_anims/PRSFX- Bestow1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bestow2.wav b/public/audio/battle_anims/PRSFX- Bestow2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bestow2.wav rename to public/audio/battle_anims/PRSFX- Bestow2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bide1.wav b/public/audio/battle_anims/PRSFX- Bide1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bide1.wav rename to public/audio/battle_anims/PRSFX- Bide1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bide2.wav b/public/audio/battle_anims/PRSFX- Bide2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bide2.wav rename to public/audio/battle_anims/PRSFX- Bide2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bind.wav b/public/audio/battle_anims/PRSFX- Bind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bind.wav rename to public/audio/battle_anims/PRSFX- Bind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bite.wav b/public/audio/battle_anims/PRSFX- Bite.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bite.wav rename to public/audio/battle_anims/PRSFX- Bite.wav diff --git a/public/audio/se/battle_anims/PRSFX- Black Hole Eclipse1.wav b/public/audio/battle_anims/PRSFX- Black Hole Eclipse1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Black Hole Eclipse1.wav rename to public/audio/battle_anims/PRSFX- Black Hole Eclipse1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Black Hole Eclipse2.wav b/public/audio/battle_anims/PRSFX- Black Hole Eclipse2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Black Hole Eclipse2.wav rename to public/audio/battle_anims/PRSFX- Black Hole Eclipse2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Black Hole Eclipse3.wav b/public/audio/battle_anims/PRSFX- Black Hole Eclipse3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Black Hole Eclipse3.wav rename to public/audio/battle_anims/PRSFX- Black Hole Eclipse3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Black Hole Eclipse4.wav b/public/audio/battle_anims/PRSFX- Black Hole Eclipse4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Black Hole Eclipse4.wav rename to public/audio/battle_anims/PRSFX- Black Hole Eclipse4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blast Burn.wav b/public/audio/battle_anims/PRSFX- Blast Burn.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blast Burn.wav rename to public/audio/battle_anims/PRSFX- Blast Burn.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blast Burn2.wav b/public/audio/battle_anims/PRSFX- Blast Burn2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blast Burn2.wav rename to public/audio/battle_anims/PRSFX- Blast Burn2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blast Burn3.wav b/public/audio/battle_anims/PRSFX- Blast Burn3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blast Burn3.wav rename to public/audio/battle_anims/PRSFX- Blast Burn3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blaze Kick1.wav b/public/audio/battle_anims/PRSFX- Blaze Kick1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blaze Kick1.wav rename to public/audio/battle_anims/PRSFX- Blaze Kick1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blaze Kick2.wav b/public/audio/battle_anims/PRSFX- Blaze Kick2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blaze Kick2.wav rename to public/audio/battle_anims/PRSFX- Blaze Kick2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blizzard.wav b/public/audio/battle_anims/PRSFX- Blizzard.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blizzard.wav rename to public/audio/battle_anims/PRSFX- Blizzard.wav diff --git a/public/audio/se/battle_anims/PRSFX- Block.wav b/public/audio/battle_anims/PRSFX- Block.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Block.wav rename to public/audio/battle_anims/PRSFX- Block.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bloom Doom1.wav b/public/audio/battle_anims/PRSFX- Bloom Doom1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bloom Doom1.wav rename to public/audio/battle_anims/PRSFX- Bloom Doom1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bloom Doom2.wav b/public/audio/battle_anims/PRSFX- Bloom Doom2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bloom Doom2.wav rename to public/audio/battle_anims/PRSFX- Bloom Doom2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bloom Doom3.wav b/public/audio/battle_anims/PRSFX- Bloom Doom3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bloom Doom3.wav rename to public/audio/battle_anims/PRSFX- Bloom Doom3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blue Flare1.wav b/public/audio/battle_anims/PRSFX- Blue Flare1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blue Flare1.wav rename to public/audio/battle_anims/PRSFX- Blue Flare1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Blue Flare2.wav b/public/audio/battle_anims/PRSFX- Blue Flare2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Blue Flare2.wav rename to public/audio/battle_anims/PRSFX- Blue Flare2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Body Slam1.wav b/public/audio/battle_anims/PRSFX- Body Slam1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Body Slam1.wav rename to public/audio/battle_anims/PRSFX- Body Slam1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Body Slam2.wav b/public/audio/battle_anims/PRSFX- Body Slam2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Body Slam2.wav rename to public/audio/battle_anims/PRSFX- Body Slam2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bolt Strike1.wav b/public/audio/battle_anims/PRSFX- Bolt Strike1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bolt Strike1.wav rename to public/audio/battle_anims/PRSFX- Bolt Strike1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bolt Strike2.wav b/public/audio/battle_anims/PRSFX- Bolt Strike2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bolt Strike2.wav rename to public/audio/battle_anims/PRSFX- Bolt Strike2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bone Club1.wav b/public/audio/battle_anims/PRSFX- Bone Club1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bone Club1.wav rename to public/audio/battle_anims/PRSFX- Bone Club1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bone Club2.wav b/public/audio/battle_anims/PRSFX- Bone Club2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bone Club2.wav rename to public/audio/battle_anims/PRSFX- Bone Club2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bone Rush1.wav b/public/audio/battle_anims/PRSFX- Bone Rush1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bone Rush1.wav rename to public/audio/battle_anims/PRSFX- Bone Rush1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bone Rush2.wav b/public/audio/battle_anims/PRSFX- Bone Rush2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bone Rush2.wav rename to public/audio/battle_anims/PRSFX- Bone Rush2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bonemerang1.wav b/public/audio/battle_anims/PRSFX- Bonemerang1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bonemerang1.wav rename to public/audio/battle_anims/PRSFX- Bonemerang1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bonemerang2.wav b/public/audio/battle_anims/PRSFX- Bonemerang2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bonemerang2.wav rename to public/audio/battle_anims/PRSFX- Bonemerang2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Boomburst.wav b/public/audio/battle_anims/PRSFX- Boomburst.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Boomburst.wav rename to public/audio/battle_anims/PRSFX- Boomburst.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bounce1.wav b/public/audio/battle_anims/PRSFX- Bounce1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bounce1.wav rename to public/audio/battle_anims/PRSFX- Bounce1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bounce2.wav b/public/audio/battle_anims/PRSFX- Bounce2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bounce2.wav rename to public/audio/battle_anims/PRSFX- Bounce2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bounce3.wav b/public/audio/battle_anims/PRSFX- Bounce3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bounce3.wav rename to public/audio/battle_anims/PRSFX- Bounce3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bounce4.wav b/public/audio/battle_anims/PRSFX- Bounce4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bounce4.wav rename to public/audio/battle_anims/PRSFX- Bounce4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brave Bird1.wav b/public/audio/battle_anims/PRSFX- Brave Bird1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brave Bird1.wav rename to public/audio/battle_anims/PRSFX- Brave Bird1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brave Bird2.wav b/public/audio/battle_anims/PRSFX- Brave Bird2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brave Bird2.wav rename to public/audio/battle_anims/PRSFX- Brave Bird2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brick Break1.wav b/public/audio/battle_anims/PRSFX- Brick Break1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brick Break1.wav rename to public/audio/battle_anims/PRSFX- Brick Break1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brick Break2.wav b/public/audio/battle_anims/PRSFX- Brick Break2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brick Break2.wav rename to public/audio/battle_anims/PRSFX- Brick Break2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brine.wav b/public/audio/battle_anims/PRSFX- Brine.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brine.wav rename to public/audio/battle_anims/PRSFX- Brine.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brutal Swing1.wav b/public/audio/battle_anims/PRSFX- Brutal Swing1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brutal Swing1.wav rename to public/audio/battle_anims/PRSFX- Brutal Swing1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brutal Swing2.wav b/public/audio/battle_anims/PRSFX- Brutal Swing2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brutal Swing2.wav rename to public/audio/battle_anims/PRSFX- Brutal Swing2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Brutal Swing3.wav b/public/audio/battle_anims/PRSFX- Brutal Swing3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Brutal Swing3.wav rename to public/audio/battle_anims/PRSFX- Brutal Swing3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bubble.wav b/public/audio/battle_anims/PRSFX- Bubble.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bubble.wav rename to public/audio/battle_anims/PRSFX- Bubble.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bubblebeam.wav b/public/audio/battle_anims/PRSFX- Bubblebeam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bubblebeam.wav rename to public/audio/battle_anims/PRSFX- Bubblebeam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bug Bite.wav b/public/audio/battle_anims/PRSFX- Bug Bite.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bug Bite.wav rename to public/audio/battle_anims/PRSFX- Bug Bite.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bug Buzz.wav b/public/audio/battle_anims/PRSFX- Bug Buzz.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bug Buzz.wav rename to public/audio/battle_anims/PRSFX- Bug Buzz.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bulk Up1.wav b/public/audio/battle_anims/PRSFX- Bulk Up1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bulk Up1.wav rename to public/audio/battle_anims/PRSFX- Bulk Up1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bulk Up2.wav b/public/audio/battle_anims/PRSFX- Bulk Up2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bulk Up2.wav rename to public/audio/battle_anims/PRSFX- Bulk Up2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bulldoze.wav b/public/audio/battle_anims/PRSFX- Bulldoze.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bulldoze.wav rename to public/audio/battle_anims/PRSFX- Bulldoze.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bullet Punch.wav b/public/audio/battle_anims/PRSFX- Bullet Punch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bullet Punch.wav rename to public/audio/battle_anims/PRSFX- Bullet Punch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Bullet Seed.wav b/public/audio/battle_anims/PRSFX- Bullet Seed.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Bullet Seed.wav rename to public/audio/battle_anims/PRSFX- Bullet Seed.wav diff --git a/public/audio/se/battle_anims/PRSFX- Burn Up1.wav b/public/audio/battle_anims/PRSFX- Burn Up1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Burn Up1.wav rename to public/audio/battle_anims/PRSFX- Burn Up1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Burn Up2.wav b/public/audio/battle_anims/PRSFX- Burn Up2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Burn Up2.wav rename to public/audio/battle_anims/PRSFX- Burn Up2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Burn.wav b/public/audio/battle_anims/PRSFX- Burn.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Burn.wav rename to public/audio/battle_anims/PRSFX- Burn.wav diff --git a/public/audio/se/battle_anims/PRSFX- Calm Mind.wav b/public/audio/battle_anims/PRSFX- Calm Mind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Calm Mind.wav rename to public/audio/battle_anims/PRSFX- Calm Mind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Camouflage.wav b/public/audio/battle_anims/PRSFX- Camouflage.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Camouflage.wav rename to public/audio/battle_anims/PRSFX- Camouflage.wav diff --git a/public/audio/se/battle_anims/PRSFX- Captivate.wav b/public/audio/battle_anims/PRSFX- Captivate.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Captivate.wav rename to public/audio/battle_anims/PRSFX- Captivate.wav diff --git a/public/audio/se/battle_anims/PRSFX- Catastropika1.wav b/public/audio/battle_anims/PRSFX- Catastropika1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Catastropika1.wav rename to public/audio/battle_anims/PRSFX- Catastropika1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Catastropika2.wav b/public/audio/battle_anims/PRSFX- Catastropika2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Catastropika2.wav rename to public/audio/battle_anims/PRSFX- Catastropika2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Catastropika3.wav b/public/audio/battle_anims/PRSFX- Catastropika3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Catastropika3.wav rename to public/audio/battle_anims/PRSFX- Catastropika3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Catastropika4.wav b/public/audio/battle_anims/PRSFX- Catastropika4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Catastropika4.wav rename to public/audio/battle_anims/PRSFX- Catastropika4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Catastropika5.wav b/public/audio/battle_anims/PRSFX- Catastropika5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Catastropika5.wav rename to public/audio/battle_anims/PRSFX- Catastropika5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Catastropika6.wav b/public/audio/battle_anims/PRSFX- Catastropika6.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Catastropika6.wav rename to public/audio/battle_anims/PRSFX- Catastropika6.wav diff --git a/public/audio/se/battle_anims/PRSFX- Charge Beam.wav b/public/audio/battle_anims/PRSFX- Charge Beam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Charge Beam.wav rename to public/audio/battle_anims/PRSFX- Charge Beam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Charge.wav b/public/audio/battle_anims/PRSFX- Charge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Charge.wav rename to public/audio/battle_anims/PRSFX- Charge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Charm.wav b/public/audio/battle_anims/PRSFX- Charm.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Charm.wav rename to public/audio/battle_anims/PRSFX- Charm.wav diff --git a/public/audio/se/battle_anims/PRSFX- Chatter.wav b/public/audio/battle_anims/PRSFX- Chatter.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Chatter.wav rename to public/audio/battle_anims/PRSFX- Chatter.wav diff --git a/public/audio/se/battle_anims/PRSFX- Chip Away.wav b/public/audio/battle_anims/PRSFX- Chip Away.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Chip Away.wav rename to public/audio/battle_anims/PRSFX- Chip Away.wav diff --git a/public/audio/se/battle_anims/PRSFX- Circle Throw1.wav b/public/audio/battle_anims/PRSFX- Circle Throw1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Circle Throw1.wav rename to public/audio/battle_anims/PRSFX- Circle Throw1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Circle Throw2.wav b/public/audio/battle_anims/PRSFX- Circle Throw2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Circle Throw2.wav rename to public/audio/battle_anims/PRSFX- Circle Throw2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Clamp1.wav b/public/audio/battle_anims/PRSFX- Clamp1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Clamp1.wav rename to public/audio/battle_anims/PRSFX- Clamp1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Clamp2.wav b/public/audio/battle_anims/PRSFX- Clamp2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Clamp2.wav rename to public/audio/battle_anims/PRSFX- Clamp2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Clamp3.wav b/public/audio/battle_anims/PRSFX- Clamp3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Clamp3.wav rename to public/audio/battle_anims/PRSFX- Clamp3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Clear Smog.wav b/public/audio/battle_anims/PRSFX- Clear Smog.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Clear Smog.wav rename to public/audio/battle_anims/PRSFX- Clear Smog.wav diff --git a/public/audio/se/battle_anims/PRSFX- Close Combat.wav b/public/audio/battle_anims/PRSFX- Close Combat.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Close Combat.wav rename to public/audio/battle_anims/PRSFX- Close Combat.wav diff --git a/public/audio/se/battle_anims/PRSFX- Coil.wav b/public/audio/battle_anims/PRSFX- Coil.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Coil.wav rename to public/audio/battle_anims/PRSFX- Coil.wav diff --git a/public/audio/se/battle_anims/PRSFX- Comet Punch.wav b/public/audio/battle_anims/PRSFX- Comet Punch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Comet Punch.wav rename to public/audio/battle_anims/PRSFX- Comet Punch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Confide.wav b/public/audio/battle_anims/PRSFX- Confide.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Confide.wav rename to public/audio/battle_anims/PRSFX- Confide.wav diff --git a/public/audio/se/battle_anims/PRSFX- Confuse Ray.wav b/public/audio/battle_anims/PRSFX- Confuse Ray.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Confuse Ray.wav rename to public/audio/battle_anims/PRSFX- Confuse Ray.wav diff --git a/public/audio/se/battle_anims/PRSFX- Confused.wav b/public/audio/battle_anims/PRSFX- Confused.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Confused.wav rename to public/audio/battle_anims/PRSFX- Confused.wav diff --git a/public/audio/se/battle_anims/PRSFX- Confusion.wav b/public/audio/battle_anims/PRSFX- Confusion.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Confusion.wav rename to public/audio/battle_anims/PRSFX- Confusion.wav diff --git a/public/audio/se/battle_anims/PRSFX- Constrict.wav b/public/audio/battle_anims/PRSFX- Constrict.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Constrict.wav rename to public/audio/battle_anims/PRSFX- Constrict.wav diff --git a/public/audio/se/battle_anims/PRSFX- Conversion.wav b/public/audio/battle_anims/PRSFX- Conversion.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Conversion.wav rename to public/audio/battle_anims/PRSFX- Conversion.wav diff --git a/public/audio/se/battle_anims/PRSFX- Conversion2.wav b/public/audio/battle_anims/PRSFX- Conversion2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Conversion2.wav rename to public/audio/battle_anims/PRSFX- Conversion2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cosmic Power.wav b/public/audio/battle_anims/PRSFX- Cosmic Power.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cosmic Power.wav rename to public/audio/battle_anims/PRSFX- Cosmic Power.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cotton Guard.wav b/public/audio/battle_anims/PRSFX- Cotton Guard.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cotton Guard.wav rename to public/audio/battle_anims/PRSFX- Cotton Guard.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cotton Spore.wav b/public/audio/battle_anims/PRSFX- Cotton Spore.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cotton Spore.wav rename to public/audio/battle_anims/PRSFX- Cotton Spore.wav diff --git a/public/audio/se/battle_anims/PRSFX- Counter1.wav b/public/audio/battle_anims/PRSFX- Counter1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Counter1.wav rename to public/audio/battle_anims/PRSFX- Counter1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Counter2.wav b/public/audio/battle_anims/PRSFX- Counter2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Counter2.wav rename to public/audio/battle_anims/PRSFX- Counter2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Covet1.wav b/public/audio/battle_anims/PRSFX- Covet1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Covet1.wav rename to public/audio/battle_anims/PRSFX- Covet1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Covet2.wav b/public/audio/battle_anims/PRSFX- Covet2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Covet2.wav rename to public/audio/battle_anims/PRSFX- Covet2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Crabhammer.wav b/public/audio/battle_anims/PRSFX- Crabhammer.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Crabhammer.wav rename to public/audio/battle_anims/PRSFX- Crabhammer.wav diff --git a/public/audio/se/battle_anims/PRSFX- Crafty Shield.wav b/public/audio/battle_anims/PRSFX- Crafty Shield.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Crafty Shield.wav rename to public/audio/battle_anims/PRSFX- Crafty Shield.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cross Chop1.wav b/public/audio/battle_anims/PRSFX- Cross Chop1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cross Chop1.wav rename to public/audio/battle_anims/PRSFX- Cross Chop1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cross Chop2.wav b/public/audio/battle_anims/PRSFX- Cross Chop2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cross Chop2.wav rename to public/audio/battle_anims/PRSFX- Cross Chop2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cross Poison1.wav b/public/audio/battle_anims/PRSFX- Cross Poison1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cross Poison1.wav rename to public/audio/battle_anims/PRSFX- Cross Poison1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cross Poison2.wav b/public/audio/battle_anims/PRSFX- Cross Poison2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cross Poison2.wav rename to public/audio/battle_anims/PRSFX- Cross Poison2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Crunch.wav b/public/audio/battle_anims/PRSFX- Crunch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Crunch.wav rename to public/audio/battle_anims/PRSFX- Crunch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Crush Claw.wav b/public/audio/battle_anims/PRSFX- Crush Claw.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Crush Claw.wav rename to public/audio/battle_anims/PRSFX- Crush Claw.wav diff --git a/public/audio/se/battle_anims/PRSFX- Crush Grip1.wav b/public/audio/battle_anims/PRSFX- Crush Grip1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Crush Grip1.wav rename to public/audio/battle_anims/PRSFX- Crush Grip1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Crush Grip2.wav b/public/audio/battle_anims/PRSFX- Crush Grip2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Crush Grip2.wav rename to public/audio/battle_anims/PRSFX- Crush Grip2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Curse.wav b/public/audio/battle_anims/PRSFX- Curse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Curse.wav rename to public/audio/battle_anims/PRSFX- Curse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Curse2.wav b/public/audio/battle_anims/PRSFX- Curse2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Curse2.wav rename to public/audio/battle_anims/PRSFX- Curse2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Cut.wav b/public/audio/battle_anims/PRSFX- Cut.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Cut.wav rename to public/audio/battle_anims/PRSFX- Cut.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dark Pulse1.wav b/public/audio/battle_anims/PRSFX- Dark Pulse1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dark Pulse1.wav rename to public/audio/battle_anims/PRSFX- Dark Pulse1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dark Pulse2.wav b/public/audio/battle_anims/PRSFX- Dark Pulse2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dark Pulse2.wav rename to public/audio/battle_anims/PRSFX- Dark Pulse2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dark Void.wav b/public/audio/battle_anims/PRSFX- Dark Void.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dark Void.wav rename to public/audio/battle_anims/PRSFX- Dark Void.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dazzling Gleam.wav b/public/audio/battle_anims/PRSFX- Dazzling Gleam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dazzling Gleam.wav rename to public/audio/battle_anims/PRSFX- Dazzling Gleam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Defend Order1.wav b/public/audio/battle_anims/PRSFX- Defend Order1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Defend Order1.wav rename to public/audio/battle_anims/PRSFX- Defend Order1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Defend Order2.wav b/public/audio/battle_anims/PRSFX- Defend Order2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Defend Order2.wav rename to public/audio/battle_anims/PRSFX- Defend Order2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Defense Curl1.wav b/public/audio/battle_anims/PRSFX- Defense Curl1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Defense Curl1.wav rename to public/audio/battle_anims/PRSFX- Defense Curl1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Defense Curl2.wav b/public/audio/battle_anims/PRSFX- Defense Curl2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Defense Curl2.wav rename to public/audio/battle_anims/PRSFX- Defense Curl2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Defog.wav b/public/audio/battle_anims/PRSFX- Defog.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Defog.wav rename to public/audio/battle_anims/PRSFX- Defog.wav diff --git a/public/audio/se/battle_anims/PRSFX- Destiny Bond1.wav b/public/audio/battle_anims/PRSFX- Destiny Bond1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Destiny Bond1.wav rename to public/audio/battle_anims/PRSFX- Destiny Bond1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Destiny Bond2.wav b/public/audio/battle_anims/PRSFX- Destiny Bond2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Destiny Bond2.wav rename to public/audio/battle_anims/PRSFX- Destiny Bond2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Detect.wav b/public/audio/battle_anims/PRSFX- Detect.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Detect.wav rename to public/audio/battle_anims/PRSFX- Detect.wav diff --git a/public/audio/se/battle_anims/PRSFX- Devastating Drake1.wav b/public/audio/battle_anims/PRSFX- Devastating Drake1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Devastating Drake1.wav rename to public/audio/battle_anims/PRSFX- Devastating Drake1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Devastating Drake2.wav b/public/audio/battle_anims/PRSFX- Devastating Drake2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Devastating Drake2.wav rename to public/audio/battle_anims/PRSFX- Devastating Drake2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Devastating Drake3.wav b/public/audio/battle_anims/PRSFX- Devastating Drake3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Devastating Drake3.wav rename to public/audio/battle_anims/PRSFX- Devastating Drake3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Diamond Storm1.wav b/public/audio/battle_anims/PRSFX- Diamond Storm1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Diamond Storm1.wav rename to public/audio/battle_anims/PRSFX- Diamond Storm1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Diamond Storm2.wav b/public/audio/battle_anims/PRSFX- Diamond Storm2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Diamond Storm2.wav rename to public/audio/battle_anims/PRSFX- Diamond Storm2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dig1.wav b/public/audio/battle_anims/PRSFX- Dig1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dig1.wav rename to public/audio/battle_anims/PRSFX- Dig1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dig2.wav b/public/audio/battle_anims/PRSFX- Dig2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dig2.wav rename to public/audio/battle_anims/PRSFX- Dig2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Disable.wav b/public/audio/battle_anims/PRSFX- Disable.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Disable.wav rename to public/audio/battle_anims/PRSFX- Disable.wav diff --git a/public/audio/se/battle_anims/PRSFX- Discharge.wav b/public/audio/battle_anims/PRSFX- Discharge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Discharge.wav rename to public/audio/battle_anims/PRSFX- Discharge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dive1.wav b/public/audio/battle_anims/PRSFX- Dive1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dive1.wav rename to public/audio/battle_anims/PRSFX- Dive1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dive2.wav b/public/audio/battle_anims/PRSFX- Dive2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dive2.wav rename to public/audio/battle_anims/PRSFX- Dive2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dive3.wav b/public/audio/battle_anims/PRSFX- Dive3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dive3.wav rename to public/audio/battle_anims/PRSFX- Dive3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dizzy Punch1.wav b/public/audio/battle_anims/PRSFX- Dizzy Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dizzy Punch1.wav rename to public/audio/battle_anims/PRSFX- Dizzy Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dizzy Punch2.wav b/public/audio/battle_anims/PRSFX- Dizzy Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dizzy Punch2.wav rename to public/audio/battle_anims/PRSFX- Dizzy Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Doom Desire1.wav b/public/audio/battle_anims/PRSFX- Doom Desire1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Doom Desire1.wav rename to public/audio/battle_anims/PRSFX- Doom Desire1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Doom Desire2.wav b/public/audio/battle_anims/PRSFX- Doom Desire2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Doom Desire2.wav rename to public/audio/battle_anims/PRSFX- Doom Desire2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Double Edge1.wav b/public/audio/battle_anims/PRSFX- Double Edge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Double Edge1.wav rename to public/audio/battle_anims/PRSFX- Double Edge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Double Edge2.wav b/public/audio/battle_anims/PRSFX- Double Edge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Double Edge2.wav rename to public/audio/battle_anims/PRSFX- Double Edge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Double Hit.wav b/public/audio/battle_anims/PRSFX- Double Hit.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Double Hit.wav rename to public/audio/battle_anims/PRSFX- Double Hit.wav diff --git a/public/audio/se/battle_anims/PRSFX- Double Kick.wav b/public/audio/battle_anims/PRSFX- Double Kick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Double Kick.wav rename to public/audio/battle_anims/PRSFX- Double Kick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Double Slap.wav b/public/audio/battle_anims/PRSFX- Double Slap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Double Slap.wav rename to public/audio/battle_anims/PRSFX- Double Slap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Double Team.wav b/public/audio/battle_anims/PRSFX- Double Team.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Double Team.wav rename to public/audio/battle_anims/PRSFX- Double Team.wav diff --git a/public/audio/se/battle_anims/PRSFX- Draco Meteor1.wav b/public/audio/battle_anims/PRSFX- Draco Meteor1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Draco Meteor1.wav rename to public/audio/battle_anims/PRSFX- Draco Meteor1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Draco Meteor2.wav b/public/audio/battle_anims/PRSFX- Draco Meteor2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Draco Meteor2.wav rename to public/audio/battle_anims/PRSFX- Draco Meteor2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Draco Meteor3.wav b/public/audio/battle_anims/PRSFX- Draco Meteor3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Draco Meteor3.wav rename to public/audio/battle_anims/PRSFX- Draco Meteor3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Ascent1.wav b/public/audio/battle_anims/PRSFX- Dragon Ascent1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Ascent1.wav rename to public/audio/battle_anims/PRSFX- Dragon Ascent1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Ascent2.wav b/public/audio/battle_anims/PRSFX- Dragon Ascent2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Ascent2.wav rename to public/audio/battle_anims/PRSFX- Dragon Ascent2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Ascent3.wav b/public/audio/battle_anims/PRSFX- Dragon Ascent3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Ascent3.wav rename to public/audio/battle_anims/PRSFX- Dragon Ascent3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Breath.wav b/public/audio/battle_anims/PRSFX- Dragon Breath.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Breath.wav rename to public/audio/battle_anims/PRSFX- Dragon Breath.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Claw.wav b/public/audio/battle_anims/PRSFX- Dragon Claw.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Claw.wav rename to public/audio/battle_anims/PRSFX- Dragon Claw.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Dance.wav b/public/audio/battle_anims/PRSFX- Dragon Dance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Dance.wav rename to public/audio/battle_anims/PRSFX- Dragon Dance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Pulse.wav b/public/audio/battle_anims/PRSFX- Dragon Pulse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Pulse.wav rename to public/audio/battle_anims/PRSFX- Dragon Pulse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Rage.wav b/public/audio/battle_anims/PRSFX- Dragon Rage.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Rage.wav rename to public/audio/battle_anims/PRSFX- Dragon Rage.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Rush1.wav b/public/audio/battle_anims/PRSFX- Dragon Rush1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Rush1.wav rename to public/audio/battle_anims/PRSFX- Dragon Rush1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Rush2.wav b/public/audio/battle_anims/PRSFX- Dragon Rush2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Rush2.wav rename to public/audio/battle_anims/PRSFX- Dragon Rush2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dragon Tail.wav b/public/audio/battle_anims/PRSFX- Dragon Tail.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dragon Tail.wav rename to public/audio/battle_anims/PRSFX- Dragon Tail.wav diff --git a/public/audio/se/battle_anims/PRSFX- Drain Punch1.wav b/public/audio/battle_anims/PRSFX- Drain Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Drain Punch1.wav rename to public/audio/battle_anims/PRSFX- Drain Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Drain Punch2.wav b/public/audio/battle_anims/PRSFX- Drain Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Drain Punch2.wav rename to public/audio/battle_anims/PRSFX- Drain Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Draining Kiss1.wav b/public/audio/battle_anims/PRSFX- Draining Kiss1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Draining Kiss1.wav rename to public/audio/battle_anims/PRSFX- Draining Kiss1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Draining Kiss2.wav b/public/audio/battle_anims/PRSFX- Draining Kiss2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Draining Kiss2.wav rename to public/audio/battle_anims/PRSFX- Draining Kiss2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dream Eater1.wav b/public/audio/battle_anims/PRSFX- Dream Eater1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dream Eater1.wav rename to public/audio/battle_anims/PRSFX- Dream Eater1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dream Eater2.wav b/public/audio/battle_anims/PRSFX- Dream Eater2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dream Eater2.wav rename to public/audio/battle_anims/PRSFX- Dream Eater2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dream Eater3.wav b/public/audio/battle_anims/PRSFX- Dream Eater3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dream Eater3.wav rename to public/audio/battle_anims/PRSFX- Dream Eater3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Drill Peck.wav b/public/audio/battle_anims/PRSFX- Drill Peck.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Drill Peck.wav rename to public/audio/battle_anims/PRSFX- Drill Peck.wav diff --git a/public/audio/se/battle_anims/PRSFX- Drill Run.wav b/public/audio/battle_anims/PRSFX- Drill Run.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Drill Run.wav rename to public/audio/battle_anims/PRSFX- Drill Run.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dual Chop.wav b/public/audio/battle_anims/PRSFX- Dual Chop.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dual Chop.wav rename to public/audio/battle_anims/PRSFX- Dual Chop.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dynamic Punch1.wav b/public/audio/battle_anims/PRSFX- Dynamic Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dynamic Punch1.wav rename to public/audio/battle_anims/PRSFX- Dynamic Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Dynamic Punch2.wav b/public/audio/battle_anims/PRSFX- Dynamic Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Dynamic Punch2.wav rename to public/audio/battle_anims/PRSFX- Dynamic Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Earth Power.wav b/public/audio/battle_anims/PRSFX- Earth Power.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Earth Power.wav rename to public/audio/battle_anims/PRSFX- Earth Power.wav diff --git a/public/audio/se/battle_anims/PRSFX- Earthquake.wav b/public/audio/battle_anims/PRSFX- Earthquake.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Earthquake.wav rename to public/audio/battle_anims/PRSFX- Earthquake.wav diff --git a/public/audio/se/battle_anims/PRSFX- Earthquake1.wav b/public/audio/battle_anims/PRSFX- Earthquake1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Earthquake1.wav rename to public/audio/battle_anims/PRSFX- Earthquake1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Earthquake2.wav b/public/audio/battle_anims/PRSFX- Earthquake2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Earthquake2.wav rename to public/audio/battle_anims/PRSFX- Earthquake2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Echoed Voice.wav b/public/audio/battle_anims/PRSFX- Echoed Voice.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Echoed Voice.wav rename to public/audio/battle_anims/PRSFX- Echoed Voice.wav diff --git a/public/audio/se/battle_anims/PRSFX- Eerie Impulse.wav b/public/audio/battle_anims/PRSFX- Eerie Impulse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Eerie Impulse.wav rename to public/audio/battle_anims/PRSFX- Eerie Impulse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Egg Bomb1.wav b/public/audio/battle_anims/PRSFX- Egg Bomb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Egg Bomb1.wav rename to public/audio/battle_anims/PRSFX- Egg Bomb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Egg Bomb2.wav b/public/audio/battle_anims/PRSFX- Egg Bomb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Egg Bomb2.wav rename to public/audio/battle_anims/PRSFX- Egg Bomb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electric Terrain.wav b/public/audio/battle_anims/PRSFX- Electric Terrain.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electric Terrain.wav rename to public/audio/battle_anims/PRSFX- Electric Terrain.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electric Terrain2.wav b/public/audio/battle_anims/PRSFX- Electric Terrain2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electric Terrain2.wav rename to public/audio/battle_anims/PRSFX- Electric Terrain2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electrify.wav b/public/audio/battle_anims/PRSFX- Electrify.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electrify.wav rename to public/audio/battle_anims/PRSFX- Electrify.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electro Ball1.wav b/public/audio/battle_anims/PRSFX- Electro Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electro Ball1.wav rename to public/audio/battle_anims/PRSFX- Electro Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electro Ball2.wav b/public/audio/battle_anims/PRSFX- Electro Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electro Ball2.wav rename to public/audio/battle_anims/PRSFX- Electro Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electroweb1.wav b/public/audio/battle_anims/PRSFX- Electroweb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electroweb1.wav rename to public/audio/battle_anims/PRSFX- Electroweb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Electroweb2.wav b/public/audio/battle_anims/PRSFX- Electroweb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Electroweb2.wav rename to public/audio/battle_anims/PRSFX- Electroweb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Embargo.wav b/public/audio/battle_anims/PRSFX- Embargo.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Embargo.wav rename to public/audio/battle_anims/PRSFX- Embargo.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ember.wav b/public/audio/battle_anims/PRSFX- Ember.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ember.wav rename to public/audio/battle_anims/PRSFX- Ember.wav diff --git a/public/audio/se/battle_anims/PRSFX- Encore.wav b/public/audio/battle_anims/PRSFX- Encore.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Encore.wav rename to public/audio/battle_anims/PRSFX- Encore.wav diff --git a/public/audio/se/battle_anims/PRSFX- Endeavor1.wav b/public/audio/battle_anims/PRSFX- Endeavor1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Endeavor1.wav rename to public/audio/battle_anims/PRSFX- Endeavor1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Endeavor2.wav b/public/audio/battle_anims/PRSFX- Endeavor2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Endeavor2.wav rename to public/audio/battle_anims/PRSFX- Endeavor2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Endure.wav b/public/audio/battle_anims/PRSFX- Endure.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Endure.wav rename to public/audio/battle_anims/PRSFX- Endure.wav diff --git a/public/audio/se/battle_anims/PRSFX- Energy Ball1.wav b/public/audio/battle_anims/PRSFX- Energy Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Energy Ball1.wav rename to public/audio/battle_anims/PRSFX- Energy Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Energy Ball2.wav b/public/audio/battle_anims/PRSFX- Energy Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Energy Ball2.wav rename to public/audio/battle_anims/PRSFX- Energy Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Entrainment.wav b/public/audio/battle_anims/PRSFX- Entrainment.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Entrainment.wav rename to public/audio/battle_anims/PRSFX- Entrainment.wav diff --git a/public/audio/se/battle_anims/PRSFX- Eruption1.wav b/public/audio/battle_anims/PRSFX- Eruption1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Eruption1.wav rename to public/audio/battle_anims/PRSFX- Eruption1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Eruption2.wav b/public/audio/battle_anims/PRSFX- Eruption2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Eruption2.wav rename to public/audio/battle_anims/PRSFX- Eruption2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Explosion.wav b/public/audio/battle_anims/PRSFX- Explosion.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Explosion.wav rename to public/audio/battle_anims/PRSFX- Explosion.wav diff --git a/public/audio/se/battle_anims/PRSFX- Explosion2.wav b/public/audio/battle_anims/PRSFX- Explosion2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Explosion2.wav rename to public/audio/battle_anims/PRSFX- Explosion2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Extrasensory.wav b/public/audio/battle_anims/PRSFX- Extrasensory.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Extrasensory.wav rename to public/audio/battle_anims/PRSFX- Extrasensory.wav diff --git a/public/audio/se/battle_anims/PRSFX- Extreme Evoboost1.wav b/public/audio/battle_anims/PRSFX- Extreme Evoboost1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Extreme Evoboost1.wav rename to public/audio/battle_anims/PRSFX- Extreme Evoboost1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Extreme Evoboost2.wav b/public/audio/battle_anims/PRSFX- Extreme Evoboost2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Extreme Evoboost2.wav rename to public/audio/battle_anims/PRSFX- Extreme Evoboost2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Extreme Evoboost3.wav b/public/audio/battle_anims/PRSFX- Extreme Evoboost3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Extreme Evoboost3.wav rename to public/audio/battle_anims/PRSFX- Extreme Evoboost3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Extremespeed1.wav b/public/audio/battle_anims/PRSFX- Extremespeed1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Extremespeed1.wav rename to public/audio/battle_anims/PRSFX- Extremespeed1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Extremespeed2.wav b/public/audio/battle_anims/PRSFX- Extremespeed2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Extremespeed2.wav rename to public/audio/battle_anims/PRSFX- Extremespeed2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Facade1.wav b/public/audio/battle_anims/PRSFX- Facade1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Facade1.wav rename to public/audio/battle_anims/PRSFX- Facade1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Facade2.wav b/public/audio/battle_anims/PRSFX- Facade2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Facade2.wav rename to public/audio/battle_anims/PRSFX- Facade2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fairy Lock.wav b/public/audio/battle_anims/PRSFX- Fairy Lock.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fairy Lock.wav rename to public/audio/battle_anims/PRSFX- Fairy Lock.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fairy Wind.wav b/public/audio/battle_anims/PRSFX- Fairy Wind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fairy Wind.wav rename to public/audio/battle_anims/PRSFX- Fairy Wind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fake Out1.wav b/public/audio/battle_anims/PRSFX- Fake Out1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fake Out1.wav rename to public/audio/battle_anims/PRSFX- Fake Out1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fake Out2.wav b/public/audio/battle_anims/PRSFX- Fake Out2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fake Out2.wav rename to public/audio/battle_anims/PRSFX- Fake Out2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fake Tears.wav b/public/audio/battle_anims/PRSFX- Fake Tears.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fake Tears.wav rename to public/audio/battle_anims/PRSFX- Fake Tears.wav diff --git a/public/audio/se/battle_anims/PRSFX- False Swipe.wav b/public/audio/battle_anims/PRSFX- False Swipe.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- False Swipe.wav rename to public/audio/battle_anims/PRSFX- False Swipe.wav diff --git a/public/audio/se/battle_anims/PRSFX- Featherdance1.wav b/public/audio/battle_anims/PRSFX- Featherdance1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Featherdance1.wav rename to public/audio/battle_anims/PRSFX- Featherdance1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Featherdance2.wav b/public/audio/battle_anims/PRSFX- Featherdance2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Featherdance2.wav rename to public/audio/battle_anims/PRSFX- Featherdance2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Feint Attack1.wav b/public/audio/battle_anims/PRSFX- Feint Attack1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Feint Attack1.wav rename to public/audio/battle_anims/PRSFX- Feint Attack1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Feint Attack2.wav b/public/audio/battle_anims/PRSFX- Feint Attack2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Feint Attack2.wav rename to public/audio/battle_anims/PRSFX- Feint Attack2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Feint1.wav b/public/audio/battle_anims/PRSFX- Feint1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Feint1.wav rename to public/audio/battle_anims/PRSFX- Feint1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Feint2.wav b/public/audio/battle_anims/PRSFX- Feint2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Feint2.wav rename to public/audio/battle_anims/PRSFX- Feint2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fell Stinger1.wav b/public/audio/battle_anims/PRSFX- Fell Stinger1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fell Stinger1.wav rename to public/audio/battle_anims/PRSFX- Fell Stinger1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fell Stinger2.wav b/public/audio/battle_anims/PRSFX- Fell Stinger2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fell Stinger2.wav rename to public/audio/battle_anims/PRSFX- Fell Stinger2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fell Stinger3.wav b/public/audio/battle_anims/PRSFX- Fell Stinger3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fell Stinger3.wav rename to public/audio/battle_anims/PRSFX- Fell Stinger3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fiery Dance1.wav b/public/audio/battle_anims/PRSFX- Fiery Dance1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fiery Dance1.wav rename to public/audio/battle_anims/PRSFX- Fiery Dance1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fiery Dance2.wav b/public/audio/battle_anims/PRSFX- Fiery Dance2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fiery Dance2.wav rename to public/audio/battle_anims/PRSFX- Fiery Dance2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Final Gambit1.wav b/public/audio/battle_anims/PRSFX- Final Gambit1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Final Gambit1.wav rename to public/audio/battle_anims/PRSFX- Final Gambit1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Final Gambit2.wav b/public/audio/battle_anims/PRSFX- Final Gambit2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Final Gambit2.wav rename to public/audio/battle_anims/PRSFX- Final Gambit2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Blast.wav b/public/audio/battle_anims/PRSFX- Fire Blast.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Blast.wav rename to public/audio/battle_anims/PRSFX- Fire Blast.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Fang1.wav b/public/audio/battle_anims/PRSFX- Fire Fang1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Fang1.wav rename to public/audio/battle_anims/PRSFX- Fire Fang1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Fang2.wav b/public/audio/battle_anims/PRSFX- Fire Fang2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Fang2.wav rename to public/audio/battle_anims/PRSFX- Fire Fang2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Lash1.wav b/public/audio/battle_anims/PRSFX- Fire Lash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Lash1.wav rename to public/audio/battle_anims/PRSFX- Fire Lash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Lash2.wav b/public/audio/battle_anims/PRSFX- Fire Lash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Lash2.wav rename to public/audio/battle_anims/PRSFX- Fire Lash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Lash3.wav b/public/audio/battle_anims/PRSFX- Fire Lash3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Lash3.wav rename to public/audio/battle_anims/PRSFX- Fire Lash3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Lash4.wav b/public/audio/battle_anims/PRSFX- Fire Lash4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Lash4.wav rename to public/audio/battle_anims/PRSFX- Fire Lash4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Pledge.wav b/public/audio/battle_anims/PRSFX- Fire Pledge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Pledge.wav rename to public/audio/battle_anims/PRSFX- Fire Pledge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Punch1.wav b/public/audio/battle_anims/PRSFX- Fire Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Punch1.wav rename to public/audio/battle_anims/PRSFX- Fire Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Punch2.wav b/public/audio/battle_anims/PRSFX- Fire Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Punch2.wav rename to public/audio/battle_anims/PRSFX- Fire Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Punch3.wav b/public/audio/battle_anims/PRSFX- Fire Punch3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Punch3.wav rename to public/audio/battle_anims/PRSFX- Fire Punch3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fire Spin.wav b/public/audio/battle_anims/PRSFX- Fire Spin.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fire Spin.wav rename to public/audio/battle_anims/PRSFX- Fire Spin.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fissure.wav b/public/audio/battle_anims/PRSFX- Fissure.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fissure.wav rename to public/audio/battle_anims/PRSFX- Fissure.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flail.wav b/public/audio/battle_anims/PRSFX- Flail.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flail.wav rename to public/audio/battle_anims/PRSFX- Flail.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flame Burst.wav b/public/audio/battle_anims/PRSFX- Flame Burst.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flame Burst.wav rename to public/audio/battle_anims/PRSFX- Flame Burst.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flame Charge1.wav b/public/audio/battle_anims/PRSFX- Flame Charge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flame Charge1.wav rename to public/audio/battle_anims/PRSFX- Flame Charge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flame Charge2.wav b/public/audio/battle_anims/PRSFX- Flame Charge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flame Charge2.wav rename to public/audio/battle_anims/PRSFX- Flame Charge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flame Wheel1.wav b/public/audio/battle_anims/PRSFX- Flame Wheel1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flame Wheel1.wav rename to public/audio/battle_anims/PRSFX- Flame Wheel1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flame Wheel2.wav b/public/audio/battle_anims/PRSFX- Flame Wheel2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flame Wheel2.wav rename to public/audio/battle_anims/PRSFX- Flame Wheel2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flamethrower.wav b/public/audio/battle_anims/PRSFX- Flamethrower.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flamethrower.wav rename to public/audio/battle_anims/PRSFX- Flamethrower.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flare Blitz1.wav b/public/audio/battle_anims/PRSFX- Flare Blitz1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flare Blitz1.wav rename to public/audio/battle_anims/PRSFX- Flare Blitz1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flare Blitz2.wav b/public/audio/battle_anims/PRSFX- Flare Blitz2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flare Blitz2.wav rename to public/audio/battle_anims/PRSFX- Flare Blitz2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flare Blitz3.wav b/public/audio/battle_anims/PRSFX- Flare Blitz3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flare Blitz3.wav rename to public/audio/battle_anims/PRSFX- Flare Blitz3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flash Cannon.wav b/public/audio/battle_anims/PRSFX- Flash Cannon.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flash Cannon.wav rename to public/audio/battle_anims/PRSFX- Flash Cannon.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flash.wav b/public/audio/battle_anims/PRSFX- Flash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flash.wav rename to public/audio/battle_anims/PRSFX- Flash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flatter.wav b/public/audio/battle_anims/PRSFX- Flatter.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flatter.wav rename to public/audio/battle_anims/PRSFX- Flatter.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fling1.wav b/public/audio/battle_anims/PRSFX- Fling1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fling1.wav rename to public/audio/battle_anims/PRSFX- Fling1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fling2.wav b/public/audio/battle_anims/PRSFX- Fling2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fling2.wav rename to public/audio/battle_anims/PRSFX- Fling2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Floral Healing1.wav b/public/audio/battle_anims/PRSFX- Floral Healing1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Floral Healing1.wav rename to public/audio/battle_anims/PRSFX- Floral Healing1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Floral Healing2.wav b/public/audio/battle_anims/PRSFX- Floral Healing2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Floral Healing2.wav rename to public/audio/battle_anims/PRSFX- Floral Healing2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flower Shield.wav b/public/audio/battle_anims/PRSFX- Flower Shield.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flower Shield.wav rename to public/audio/battle_anims/PRSFX- Flower Shield.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fly1.wav b/public/audio/battle_anims/PRSFX- Fly1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fly1.wav rename to public/audio/battle_anims/PRSFX- Fly1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fly2.wav b/public/audio/battle_anims/PRSFX- Fly2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fly2.wav rename to public/audio/battle_anims/PRSFX- Fly2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flying Press1.wav b/public/audio/battle_anims/PRSFX- Flying Press1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flying Press1.wav rename to public/audio/battle_anims/PRSFX- Flying Press1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flying Press2.wav b/public/audio/battle_anims/PRSFX- Flying Press2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flying Press2.wav rename to public/audio/battle_anims/PRSFX- Flying Press2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Flying Press3.wav b/public/audio/battle_anims/PRSFX- Flying Press3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Flying Press3.wav rename to public/audio/battle_anims/PRSFX- Flying Press3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Blast1.wav b/public/audio/battle_anims/PRSFX- Focus Blast1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Blast1.wav rename to public/audio/battle_anims/PRSFX- Focus Blast1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Blast2.wav b/public/audio/battle_anims/PRSFX- Focus Blast2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Blast2.wav rename to public/audio/battle_anims/PRSFX- Focus Blast2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Blast3.wav b/public/audio/battle_anims/PRSFX- Focus Blast3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Blast3.wav rename to public/audio/battle_anims/PRSFX- Focus Blast3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Energy.wav b/public/audio/battle_anims/PRSFX- Focus Energy.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Energy.wav rename to public/audio/battle_anims/PRSFX- Focus Energy.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Punch1.wav b/public/audio/battle_anims/PRSFX- Focus Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Punch1.wav rename to public/audio/battle_anims/PRSFX- Focus Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Punch2.wav b/public/audio/battle_anims/PRSFX- Focus Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Punch2.wav rename to public/audio/battle_anims/PRSFX- Focus Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Focus Punch3.wav b/public/audio/battle_anims/PRSFX- Focus Punch3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Focus Punch3.wav rename to public/audio/battle_anims/PRSFX- Focus Punch3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Follow Me.wav b/public/audio/battle_anims/PRSFX- Follow Me.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Follow Me.wav rename to public/audio/battle_anims/PRSFX- Follow Me.wav diff --git a/public/audio/se/battle_anims/PRSFX- Force Palm1.wav b/public/audio/battle_anims/PRSFX- Force Palm1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Force Palm1.wav rename to public/audio/battle_anims/PRSFX- Force Palm1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Force Palm2.wav b/public/audio/battle_anims/PRSFX- Force Palm2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Force Palm2.wav rename to public/audio/battle_anims/PRSFX- Force Palm2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Foresight1.wav b/public/audio/battle_anims/PRSFX- Foresight1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Foresight1.wav rename to public/audio/battle_anims/PRSFX- Foresight1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Foresight2.wav b/public/audio/battle_anims/PRSFX- Foresight2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Foresight2.wav rename to public/audio/battle_anims/PRSFX- Foresight2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Forests Curse.wav b/public/audio/battle_anims/PRSFX- Forests Curse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Forests Curse.wav rename to public/audio/battle_anims/PRSFX- Forests Curse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Foul Play1.wav b/public/audio/battle_anims/PRSFX- Foul Play1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Foul Play1.wav rename to public/audio/battle_anims/PRSFX- Foul Play1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Foul Play2.wav b/public/audio/battle_anims/PRSFX- Foul Play2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Foul Play2.wav rename to public/audio/battle_anims/PRSFX- Foul Play2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Freeze Dry1.wav b/public/audio/battle_anims/PRSFX- Freeze Dry1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Freeze Dry1.wav rename to public/audio/battle_anims/PRSFX- Freeze Dry1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Freeze Dry2.wav b/public/audio/battle_anims/PRSFX- Freeze Dry2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Freeze Dry2.wav rename to public/audio/battle_anims/PRSFX- Freeze Dry2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Freeze Dry3.wav b/public/audio/battle_anims/PRSFX- Freeze Dry3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Freeze Dry3.wav rename to public/audio/battle_anims/PRSFX- Freeze Dry3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Freeze Shock1.wav b/public/audio/battle_anims/PRSFX- Freeze Shock1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Freeze Shock1.wav rename to public/audio/battle_anims/PRSFX- Freeze Shock1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Freeze Shock2.wav b/public/audio/battle_anims/PRSFX- Freeze Shock2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Freeze Shock2.wav rename to public/audio/battle_anims/PRSFX- Freeze Shock2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Freeze Shock3.wav b/public/audio/battle_anims/PRSFX- Freeze Shock3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Freeze Shock3.wav rename to public/audio/battle_anims/PRSFX- Freeze Shock3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frenzy Plant1.wav b/public/audio/battle_anims/PRSFX- Frenzy Plant1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frenzy Plant1.wav rename to public/audio/battle_anims/PRSFX- Frenzy Plant1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frenzy Plant2.wav b/public/audio/battle_anims/PRSFX- Frenzy Plant2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frenzy Plant2.wav rename to public/audio/battle_anims/PRSFX- Frenzy Plant2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frost Breath1.wav b/public/audio/battle_anims/PRSFX- Frost Breath1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frost Breath1.wav rename to public/audio/battle_anims/PRSFX- Frost Breath1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frost Breath2.wav b/public/audio/battle_anims/PRSFX- Frost Breath2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frost Breath2.wav rename to public/audio/battle_anims/PRSFX- Frost Breath2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frozen.wav b/public/audio/battle_anims/PRSFX- Frozen.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frozen.wav rename to public/audio/battle_anims/PRSFX- Frozen.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frustration1.wav b/public/audio/battle_anims/PRSFX- Frustration1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frustration1.wav rename to public/audio/battle_anims/PRSFX- Frustration1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Frustration2.wav b/public/audio/battle_anims/PRSFX- Frustration2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Frustration2.wav rename to public/audio/battle_anims/PRSFX- Frustration2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fury Attack.wav b/public/audio/battle_anims/PRSFX- Fury Attack.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fury Attack.wav rename to public/audio/battle_anims/PRSFX- Fury Attack.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fury Cutter.wav b/public/audio/battle_anims/PRSFX- Fury Cutter.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fury Cutter.wav rename to public/audio/battle_anims/PRSFX- Fury Cutter.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fury Swipes.wav b/public/audio/battle_anims/PRSFX- Fury Swipes.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fury Swipes.wav rename to public/audio/battle_anims/PRSFX- Fury Swipes.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fusion Bolt1.wav b/public/audio/battle_anims/PRSFX- Fusion Bolt1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fusion Bolt1.wav rename to public/audio/battle_anims/PRSFX- Fusion Bolt1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fusion Bolt2.wav b/public/audio/battle_anims/PRSFX- Fusion Bolt2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fusion Bolt2.wav rename to public/audio/battle_anims/PRSFX- Fusion Bolt2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fusion Flare1.wav b/public/audio/battle_anims/PRSFX- Fusion Flare1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fusion Flare1.wav rename to public/audio/battle_anims/PRSFX- Fusion Flare1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fusion Flare2.wav b/public/audio/battle_anims/PRSFX- Fusion Flare2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fusion Flare2.wav rename to public/audio/battle_anims/PRSFX- Fusion Flare2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Fusion Flare3.wav b/public/audio/battle_anims/PRSFX- Fusion Flare3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Fusion Flare3.wav rename to public/audio/battle_anims/PRSFX- Fusion Flare3.wav diff --git a/public/audio/se/battle_anims/PRSFX- FusionFlare3.wav b/public/audio/battle_anims/PRSFX- FusionFlare3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- FusionFlare3.wav rename to public/audio/battle_anims/PRSFX- FusionFlare3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Future Sight1.wav b/public/audio/battle_anims/PRSFX- Future Sight1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Future Sight1.wav rename to public/audio/battle_anims/PRSFX- Future Sight1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Future Sight2.wav b/public/audio/battle_anims/PRSFX- Future Sight2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Future Sight2.wav rename to public/audio/battle_anims/PRSFX- Future Sight2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gastro Acid.wav b/public/audio/battle_anims/PRSFX- Gastro Acid.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gastro Acid.wav rename to public/audio/battle_anims/PRSFX- Gastro Acid.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Grind.wav b/public/audio/battle_anims/PRSFX- Gear Grind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Grind.wav rename to public/audio/battle_anims/PRSFX- Gear Grind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Up1.wav b/public/audio/battle_anims/PRSFX- Gear Up1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Up1.wav rename to public/audio/battle_anims/PRSFX- Gear Up1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Up2.wav b/public/audio/battle_anims/PRSFX- Gear Up2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Up2.wav rename to public/audio/battle_anims/PRSFX- Gear Up2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Up3.wav b/public/audio/battle_anims/PRSFX- Gear Up3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Up3.wav rename to public/audio/battle_anims/PRSFX- Gear Up3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Up4.wav b/public/audio/battle_anims/PRSFX- Gear Up4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Up4.wav rename to public/audio/battle_anims/PRSFX- Gear Up4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Up5.wav b/public/audio/battle_anims/PRSFX- Gear Up5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Up5.wav rename to public/audio/battle_anims/PRSFX- Gear Up5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gear Up6.wav b/public/audio/battle_anims/PRSFX- Gear Up6.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gear Up6.wav rename to public/audio/battle_anims/PRSFX- Gear Up6.wav diff --git a/public/audio/se/battle_anims/PRSFX- Geomancy.wav b/public/audio/battle_anims/PRSFX- Geomancy.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Geomancy.wav rename to public/audio/battle_anims/PRSFX- Geomancy.wav diff --git a/public/audio/se/battle_anims/PRSFX- Giga Drain1.wav b/public/audio/battle_anims/PRSFX- Giga Drain1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Giga Drain1.wav rename to public/audio/battle_anims/PRSFX- Giga Drain1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Giga Drain2.wav b/public/audio/battle_anims/PRSFX- Giga Drain2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Giga Drain2.wav rename to public/audio/battle_anims/PRSFX- Giga Drain2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Giga Impact1.wav b/public/audio/battle_anims/PRSFX- Giga Impact1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Giga Impact1.wav rename to public/audio/battle_anims/PRSFX- Giga Impact1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Giga Impact2.wav b/public/audio/battle_anims/PRSFX- Giga Impact2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Giga Impact2.wav rename to public/audio/battle_anims/PRSFX- Giga Impact2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gigavolt Havoc1.wav b/public/audio/battle_anims/PRSFX- Gigavolt Havoc1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gigavolt Havoc1.wav rename to public/audio/battle_anims/PRSFX- Gigavolt Havoc1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gigavolt Havoc2.wav b/public/audio/battle_anims/PRSFX- Gigavolt Havoc2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gigavolt Havoc2.wav rename to public/audio/battle_anims/PRSFX- Gigavolt Havoc2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gigavolt Havoc3.wav b/public/audio/battle_anims/PRSFX- Gigavolt Havoc3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gigavolt Havoc3.wav rename to public/audio/battle_anims/PRSFX- Gigavolt Havoc3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Glaciate1.wav b/public/audio/battle_anims/PRSFX- Glaciate1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Glaciate1.wav rename to public/audio/battle_anims/PRSFX- Glaciate1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Glaciate2.wav b/public/audio/battle_anims/PRSFX- Glaciate2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Glaciate2.wav rename to public/audio/battle_anims/PRSFX- Glaciate2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Glare.wav b/public/audio/battle_anims/PRSFX- Glare.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Glare.wav rename to public/audio/battle_anims/PRSFX- Glare.wav diff --git a/public/audio/se/battle_anims/PRSFX- Glitch1.wav b/public/audio/battle_anims/PRSFX- Glitch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Glitch1.wav rename to public/audio/battle_anims/PRSFX- Glitch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Glitch2.wav b/public/audio/battle_anims/PRSFX- Glitch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Glitch2.wav rename to public/audio/battle_anims/PRSFX- Glitch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grass Knot1.wav b/public/audio/battle_anims/PRSFX- Grass Knot1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grass Knot1.wav rename to public/audio/battle_anims/PRSFX- Grass Knot1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grass Knot2.wav b/public/audio/battle_anims/PRSFX- Grass Knot2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grass Knot2.wav rename to public/audio/battle_anims/PRSFX- Grass Knot2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grass Pledge1.wav b/public/audio/battle_anims/PRSFX- Grass Pledge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grass Pledge1.wav rename to public/audio/battle_anims/PRSFX- Grass Pledge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grass Pledge2.wav b/public/audio/battle_anims/PRSFX- Grass Pledge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grass Pledge2.wav rename to public/audio/battle_anims/PRSFX- Grass Pledge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grass Whistle.wav b/public/audio/battle_anims/PRSFX- Grass Whistle.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grass Whistle.wav rename to public/audio/battle_anims/PRSFX- Grass Whistle.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grassy Terrain.wav b/public/audio/battle_anims/PRSFX- Grassy Terrain.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grassy Terrain.wav rename to public/audio/battle_anims/PRSFX- Grassy Terrain.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gravity.wav b/public/audio/battle_anims/PRSFX- Gravity.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gravity.wav rename to public/audio/battle_anims/PRSFX- Gravity.wav diff --git a/public/audio/se/battle_anims/PRSFX- Growth.wav b/public/audio/battle_anims/PRSFX- Growth.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Growth.wav rename to public/audio/battle_anims/PRSFX- Growth.wav diff --git a/public/audio/se/battle_anims/PRSFX- Grudge.wav b/public/audio/battle_anims/PRSFX- Grudge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Grudge.wav rename to public/audio/battle_anims/PRSFX- Grudge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Guard Split.wav b/public/audio/battle_anims/PRSFX- Guard Split.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Guard Split.wav rename to public/audio/battle_anims/PRSFX- Guard Split.wav diff --git a/public/audio/se/battle_anims/PRSFX- Guard Swap.wav b/public/audio/battle_anims/PRSFX- Guard Swap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Guard Swap.wav rename to public/audio/battle_anims/PRSFX- Guard Swap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Guillotine1.wav b/public/audio/battle_anims/PRSFX- Guillotine1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Guillotine1.wav rename to public/audio/battle_anims/PRSFX- Guillotine1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Guillotine2.wav b/public/audio/battle_anims/PRSFX- Guillotine2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Guillotine2.wav rename to public/audio/battle_anims/PRSFX- Guillotine2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gunk Shot.wav b/public/audio/battle_anims/PRSFX- Gunk Shot.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gunk Shot.wav rename to public/audio/battle_anims/PRSFX- Gunk Shot.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gust.wav b/public/audio/battle_anims/PRSFX- Gust.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gust.wav rename to public/audio/battle_anims/PRSFX- Gust.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gyro Ball1.wav b/public/audio/battle_anims/PRSFX- Gyro Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gyro Ball1.wav rename to public/audio/battle_anims/PRSFX- Gyro Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Gyro Ball2.wav b/public/audio/battle_anims/PRSFX- Gyro Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Gyro Ball2.wav rename to public/audio/battle_anims/PRSFX- Gyro Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hail.wav b/public/audio/battle_anims/PRSFX- Hail.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hail.wav rename to public/audio/battle_anims/PRSFX- Hail.wav diff --git a/public/audio/se/battle_anims/PRSFX- HailMove.wav b/public/audio/battle_anims/PRSFX- HailMove.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- HailMove.wav rename to public/audio/battle_anims/PRSFX- HailMove.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hammer Arm1.wav b/public/audio/battle_anims/PRSFX- Hammer Arm1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hammer Arm1.wav rename to public/audio/battle_anims/PRSFX- Hammer Arm1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hammer Arm2.wav b/public/audio/battle_anims/PRSFX- Hammer Arm2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hammer Arm2.wav rename to public/audio/battle_anims/PRSFX- Hammer Arm2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Harden.wav b/public/audio/battle_anims/PRSFX- Harden.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Harden.wav rename to public/audio/battle_anims/PRSFX- Harden.wav diff --git a/public/audio/se/battle_anims/PRSFX- Haze.wav b/public/audio/battle_anims/PRSFX- Haze.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Haze.wav rename to public/audio/battle_anims/PRSFX- Haze.wav diff --git a/public/audio/se/battle_anims/PRSFX- Head Charge.wav b/public/audio/battle_anims/PRSFX- Head Charge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Head Charge.wav rename to public/audio/battle_anims/PRSFX- Head Charge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Head Smash.wav b/public/audio/battle_anims/PRSFX- Head Smash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Head Smash.wav rename to public/audio/battle_anims/PRSFX- Head Smash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Headbutt1.wav b/public/audio/battle_anims/PRSFX- Headbutt1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Headbutt1.wav rename to public/audio/battle_anims/PRSFX- Headbutt1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Headbutt2.wav b/public/audio/battle_anims/PRSFX- Headbutt2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Headbutt2.wav rename to public/audio/battle_anims/PRSFX- Headbutt2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heal Bell.wav b/public/audio/battle_anims/PRSFX- Heal Bell.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heal Bell.wav rename to public/audio/battle_anims/PRSFX- Heal Bell.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heal Block.wav b/public/audio/battle_anims/PRSFX- Heal Block.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heal Block.wav rename to public/audio/battle_anims/PRSFX- Heal Block.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heal Order1.wav b/public/audio/battle_anims/PRSFX- Heal Order1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heal Order1.wav rename to public/audio/battle_anims/PRSFX- Heal Order1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heal Order2.wav b/public/audio/battle_anims/PRSFX- Heal Order2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heal Order2.wav rename to public/audio/battle_anims/PRSFX- Heal Order2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Healing Pulse.wav b/public/audio/battle_anims/PRSFX- Healing Pulse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Healing Pulse.wav rename to public/audio/battle_anims/PRSFX- Healing Pulse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Healing Wish.wav b/public/audio/battle_anims/PRSFX- Healing Wish.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Healing Wish.wav rename to public/audio/battle_anims/PRSFX- Healing Wish.wav diff --git a/public/audio/se/battle_anims/PRSFX- Health Down.wav b/public/audio/battle_anims/PRSFX- Health Down.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Health Down.wav rename to public/audio/battle_anims/PRSFX- Health Down.wav diff --git a/public/audio/se/battle_anims/PRSFX- Health Up.wav b/public/audio/battle_anims/PRSFX- Health Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Health Up.wav rename to public/audio/battle_anims/PRSFX- Health Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heart Stamp1.wav b/public/audio/battle_anims/PRSFX- Heart Stamp1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heart Stamp1.wav rename to public/audio/battle_anims/PRSFX- Heart Stamp1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heart Stamp2.wav b/public/audio/battle_anims/PRSFX- Heart Stamp2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heart Stamp2.wav rename to public/audio/battle_anims/PRSFX- Heart Stamp2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heart Swap.wav b/public/audio/battle_anims/PRSFX- Heart Swap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heart Swap.wav rename to public/audio/battle_anims/PRSFX- Heart Swap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heat Crash.wav b/public/audio/battle_anims/PRSFX- Heat Crash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heat Crash.wav rename to public/audio/battle_anims/PRSFX- Heat Crash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heat Wave.wav b/public/audio/battle_anims/PRSFX- Heat Wave.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heat Wave.wav rename to public/audio/battle_anims/PRSFX- Heat Wave.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heavy Slam1.wav b/public/audio/battle_anims/PRSFX- Heavy Slam1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heavy Slam1.wav rename to public/audio/battle_anims/PRSFX- Heavy Slam1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Heavy Slam2.wav b/public/audio/battle_anims/PRSFX- Heavy Slam2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Heavy Slam2.wav rename to public/audio/battle_anims/PRSFX- Heavy Slam2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Helping Hand.wav b/public/audio/battle_anims/PRSFX- Helping Hand.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Helping Hand.wav rename to public/audio/battle_anims/PRSFX- Helping Hand.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hex.wav b/public/audio/battle_anims/PRSFX- Hex.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hex.wav rename to public/audio/battle_anims/PRSFX- Hex.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hi Jump Kick1.wav b/public/audio/battle_anims/PRSFX- Hi Jump Kick1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hi Jump Kick1.wav rename to public/audio/battle_anims/PRSFX- Hi Jump Kick1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hi Jump Kick2.wav b/public/audio/battle_anims/PRSFX- Hi Jump Kick2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hi Jump Kick2.wav rename to public/audio/battle_anims/PRSFX- Hi Jump Kick2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hidden Power1.wav b/public/audio/battle_anims/PRSFX- Hidden Power1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hidden Power1.wav rename to public/audio/battle_anims/PRSFX- Hidden Power1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hidden Power2.wav b/public/audio/battle_anims/PRSFX- Hidden Power2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hidden Power2.wav rename to public/audio/battle_anims/PRSFX- Hidden Power2.wav diff --git a/public/audio/se/battle_anims/PRSFX- High Horse Power1.wav b/public/audio/battle_anims/PRSFX- High Horse Power1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- High Horse Power1.wav rename to public/audio/battle_anims/PRSFX- High Horse Power1.wav diff --git a/public/audio/se/battle_anims/PRSFX- High Horse Power2.wav b/public/audio/battle_anims/PRSFX- High Horse Power2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- High Horse Power2.wav rename to public/audio/battle_anims/PRSFX- High Horse Power2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hone Claws.wav b/public/audio/battle_anims/PRSFX- Hone Claws.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hone Claws.wav rename to public/audio/battle_anims/PRSFX- Hone Claws.wav diff --git a/public/audio/se/battle_anims/PRSFX- Horn Attack.wav b/public/audio/battle_anims/PRSFX- Horn Attack.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Attack.wav rename to public/audio/battle_anims/PRSFX- Horn Attack.wav diff --git a/public/audio/se/battle_anims/PRSFX- Horn Drill1.wav b/public/audio/battle_anims/PRSFX- Horn Drill1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Drill1.wav rename to public/audio/battle_anims/PRSFX- Horn Drill1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Horn Drill2.wav b/public/audio/battle_anims/PRSFX- Horn Drill2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Drill2.wav rename to public/audio/battle_anims/PRSFX- Horn Drill2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Horn Drill3.wav b/public/audio/battle_anims/PRSFX- Horn Drill3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Drill3.wav rename to public/audio/battle_anims/PRSFX- Horn Drill3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Horn Drill3_1.mp3 b/public/audio/battle_anims/PRSFX- Horn Drill3_1.mp3 similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Drill3_1.mp3 rename to public/audio/battle_anims/PRSFX- Horn Drill3_1.mp3 diff --git a/public/audio/se/battle_anims/PRSFX- Horn Leech1.wav b/public/audio/battle_anims/PRSFX- Horn Leech1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Leech1.wav rename to public/audio/battle_anims/PRSFX- Horn Leech1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Horn Leech2.wav b/public/audio/battle_anims/PRSFX- Horn Leech2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Horn Leech2.wav rename to public/audio/battle_anims/PRSFX- Horn Leech2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hurricane.wav b/public/audio/battle_anims/PRSFX- Hurricane.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hurricane.wav rename to public/audio/battle_anims/PRSFX- Hurricane.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Cannon.wav b/public/audio/battle_anims/PRSFX- Hydro Cannon.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Cannon.wav rename to public/audio/battle_anims/PRSFX- Hydro Cannon.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Cannon1.wav b/public/audio/battle_anims/PRSFX- Hydro Cannon1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Cannon1.wav rename to public/audio/battle_anims/PRSFX- Hydro Cannon1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Cannon2.wav b/public/audio/battle_anims/PRSFX- Hydro Cannon2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Cannon2.wav rename to public/audio/battle_anims/PRSFX- Hydro Cannon2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Pump.wav b/public/audio/battle_anims/PRSFX- Hydro Pump.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Pump.wav rename to public/audio/battle_anims/PRSFX- Hydro Pump.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Vortex1.wav b/public/audio/battle_anims/PRSFX- Hydro Vortex1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Vortex1.wav rename to public/audio/battle_anims/PRSFX- Hydro Vortex1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Vortex2.wav b/public/audio/battle_anims/PRSFX- Hydro Vortex2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Vortex2.wav rename to public/audio/battle_anims/PRSFX- Hydro Vortex2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hydro Vortex3.wav b/public/audio/battle_anims/PRSFX- Hydro Vortex3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hydro Vortex3.wav rename to public/audio/battle_anims/PRSFX- Hydro Vortex3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hyper Beam.wav b/public/audio/battle_anims/PRSFX- Hyper Beam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hyper Beam.wav rename to public/audio/battle_anims/PRSFX- Hyper Beam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hyper Fang.wav b/public/audio/battle_anims/PRSFX- Hyper Fang.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hyper Fang.wav rename to public/audio/battle_anims/PRSFX- Hyper Fang.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hyperspace Fury1.wav b/public/audio/battle_anims/PRSFX- Hyperspace Fury1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hyperspace Fury1.wav rename to public/audio/battle_anims/PRSFX- Hyperspace Fury1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hyperspace Fury2.wav b/public/audio/battle_anims/PRSFX- Hyperspace Fury2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hyperspace Fury2.wav rename to public/audio/battle_anims/PRSFX- Hyperspace Fury2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hyperspace Hole1.wav b/public/audio/battle_anims/PRSFX- Hyperspace Hole1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hyperspace Hole1.wav rename to public/audio/battle_anims/PRSFX- Hyperspace Hole1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hyperspace Hole2.wav b/public/audio/battle_anims/PRSFX- Hyperspace Hole2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hyperspace Hole2.wav rename to public/audio/battle_anims/PRSFX- Hyperspace Hole2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Hypnosis.wav b/public/audio/battle_anims/PRSFX- Hypnosis.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Hypnosis.wav rename to public/audio/battle_anims/PRSFX- Hypnosis.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Ball1.wav b/public/audio/battle_anims/PRSFX- Ice Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Ball1.wav rename to public/audio/battle_anims/PRSFX- Ice Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Ball2.wav b/public/audio/battle_anims/PRSFX- Ice Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Ball2.wav rename to public/audio/battle_anims/PRSFX- Ice Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Beam.wav b/public/audio/battle_anims/PRSFX- Ice Beam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Beam.wav rename to public/audio/battle_anims/PRSFX- Ice Beam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Burn1.wav b/public/audio/battle_anims/PRSFX- Ice Burn1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Burn1.wav rename to public/audio/battle_anims/PRSFX- Ice Burn1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Burn2.wav b/public/audio/battle_anims/PRSFX- Ice Burn2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Burn2.wav rename to public/audio/battle_anims/PRSFX- Ice Burn2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Burn3.wav b/public/audio/battle_anims/PRSFX- Ice Burn3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Burn3.wav rename to public/audio/battle_anims/PRSFX- Ice Burn3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Burn4.wav b/public/audio/battle_anims/PRSFX- Ice Burn4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Burn4.wav rename to public/audio/battle_anims/PRSFX- Ice Burn4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Fang1.wav b/public/audio/battle_anims/PRSFX- Ice Fang1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Fang1.wav rename to public/audio/battle_anims/PRSFX- Ice Fang1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Fang2.wav b/public/audio/battle_anims/PRSFX- Ice Fang2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Fang2.wav rename to public/audio/battle_anims/PRSFX- Ice Fang2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Hammer1.wav b/public/audio/battle_anims/PRSFX- Ice Hammer1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Hammer1.wav rename to public/audio/battle_anims/PRSFX- Ice Hammer1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Hammer2.wav b/public/audio/battle_anims/PRSFX- Ice Hammer2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Hammer2.wav rename to public/audio/battle_anims/PRSFX- Ice Hammer2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Punch1.wav b/public/audio/battle_anims/PRSFX- Ice Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Punch1.wav rename to public/audio/battle_anims/PRSFX- Ice Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Punch2.wav b/public/audio/battle_anims/PRSFX- Ice Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Punch2.wav rename to public/audio/battle_anims/PRSFX- Ice Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ice Shard.wav b/public/audio/battle_anims/PRSFX- Ice Shard.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ice Shard.wav rename to public/audio/battle_anims/PRSFX- Ice Shard.wav diff --git a/public/audio/se/battle_anims/PRSFX- Icicle Crash1.wav b/public/audio/battle_anims/PRSFX- Icicle Crash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Icicle Crash1.wav rename to public/audio/battle_anims/PRSFX- Icicle Crash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Icicle Crash2.wav b/public/audio/battle_anims/PRSFX- Icicle Crash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Icicle Crash2.wav rename to public/audio/battle_anims/PRSFX- Icicle Crash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Icicle Spear.wav b/public/audio/battle_anims/PRSFX- Icicle Spear.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Icicle Spear.wav rename to public/audio/battle_anims/PRSFX- Icicle Spear.wav diff --git a/public/audio/se/battle_anims/PRSFX- Icy Wind1.wav b/public/audio/battle_anims/PRSFX- Icy Wind1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Icy Wind1.wav rename to public/audio/battle_anims/PRSFX- Icy Wind1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Icy Wind2.wav b/public/audio/battle_anims/PRSFX- Icy Wind2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Icy Wind2.wav rename to public/audio/battle_anims/PRSFX- Icy Wind2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Imprison1.wav b/public/audio/battle_anims/PRSFX- Imprison1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Imprison1.wav rename to public/audio/battle_anims/PRSFX- Imprison1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Imprison2.wav b/public/audio/battle_anims/PRSFX- Imprison2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Imprison2.wav rename to public/audio/battle_anims/PRSFX- Imprison2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Incinerate1.wav b/public/audio/battle_anims/PRSFX- Incinerate1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Incinerate1.wav rename to public/audio/battle_anims/PRSFX- Incinerate1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Incinerate2.wav b/public/audio/battle_anims/PRSFX- Incinerate2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Incinerate2.wav rename to public/audio/battle_anims/PRSFX- Incinerate2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Inferno Overdrive1.wav b/public/audio/battle_anims/PRSFX- Inferno Overdrive1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Inferno Overdrive1.wav rename to public/audio/battle_anims/PRSFX- Inferno Overdrive1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Inferno Overdrive2.wav b/public/audio/battle_anims/PRSFX- Inferno Overdrive2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Inferno Overdrive2.wav rename to public/audio/battle_anims/PRSFX- Inferno Overdrive2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Inferno Overdrive3.wav b/public/audio/battle_anims/PRSFX- Inferno Overdrive3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Inferno Overdrive3.wav rename to public/audio/battle_anims/PRSFX- Inferno Overdrive3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Inferno Overdrive4.wav b/public/audio/battle_anims/PRSFX- Inferno Overdrive4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Inferno Overdrive4.wav rename to public/audio/battle_anims/PRSFX- Inferno Overdrive4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Inferno Overdrive5.wav b/public/audio/battle_anims/PRSFX- Inferno Overdrive5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Inferno Overdrive5.wav rename to public/audio/battle_anims/PRSFX- Inferno Overdrive5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Inferno.wav b/public/audio/battle_anims/PRSFX- Inferno.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Inferno.wav rename to public/audio/battle_anims/PRSFX- Inferno.wav diff --git a/public/audio/se/battle_anims/PRSFX- Infestation.wav b/public/audio/battle_anims/PRSFX- Infestation.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Infestation.wav rename to public/audio/battle_anims/PRSFX- Infestation.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ingrain1.wav b/public/audio/battle_anims/PRSFX- Ingrain1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ingrain1.wav rename to public/audio/battle_anims/PRSFX- Ingrain1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ingrain2.wav b/public/audio/battle_anims/PRSFX- Ingrain2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ingrain2.wav rename to public/audio/battle_anims/PRSFX- Ingrain2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Instruct1.wav b/public/audio/battle_anims/PRSFX- Instruct1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Instruct1.wav rename to public/audio/battle_anims/PRSFX- Instruct1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Instruct2.wav b/public/audio/battle_anims/PRSFX- Instruct2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Instruct2.wav rename to public/audio/battle_anims/PRSFX- Instruct2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ion Deluge.wav b/public/audio/battle_anims/PRSFX- Ion Deluge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ion Deluge.wav rename to public/audio/battle_anims/PRSFX- Ion Deluge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Iron Defense.wav b/public/audio/battle_anims/PRSFX- Iron Defense.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Iron Defense.wav rename to public/audio/battle_anims/PRSFX- Iron Defense.wav diff --git a/public/audio/se/battle_anims/PRSFX- Iron Head.wav b/public/audio/battle_anims/PRSFX- Iron Head.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Iron Head.wav rename to public/audio/battle_anims/PRSFX- Iron Head.wav diff --git a/public/audio/se/battle_anims/PRSFX- Iron Tail1.wav b/public/audio/battle_anims/PRSFX- Iron Tail1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Iron Tail1.wav rename to public/audio/battle_anims/PRSFX- Iron Tail1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Iron Tail2.wav b/public/audio/battle_anims/PRSFX- Iron Tail2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Iron Tail2.wav rename to public/audio/battle_anims/PRSFX- Iron Tail2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Judgment.wav b/public/audio/battle_anims/PRSFX- Judgment.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Judgment.wav rename to public/audio/battle_anims/PRSFX- Judgment.wav diff --git a/public/audio/se/battle_anims/PRSFX- Jump Kick1.wav b/public/audio/battle_anims/PRSFX- Jump Kick1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Jump Kick1.wav rename to public/audio/battle_anims/PRSFX- Jump Kick1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Jump Kick2.wav b/public/audio/battle_anims/PRSFX- Jump Kick2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Jump Kick2.wav rename to public/audio/battle_anims/PRSFX- Jump Kick2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Karate Chop1.wav b/public/audio/battle_anims/PRSFX- Karate Chop1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Karate Chop1.wav rename to public/audio/battle_anims/PRSFX- Karate Chop1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Karate Chop2.wav b/public/audio/battle_anims/PRSFX- Karate Chop2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Karate Chop2.wav rename to public/audio/battle_anims/PRSFX- Karate Chop2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Kinesis.wav b/public/audio/battle_anims/PRSFX- Kinesis.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Kinesis.wav rename to public/audio/battle_anims/PRSFX- Kinesis.wav diff --git a/public/audio/se/battle_anims/PRSFX- King's Shield1.wav b/public/audio/battle_anims/PRSFX- King's Shield1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- King's Shield1.wav rename to public/audio/battle_anims/PRSFX- King's Shield1.wav diff --git a/public/audio/se/battle_anims/PRSFX- King's Shield2.wav b/public/audio/battle_anims/PRSFX- King's Shield2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- King's Shield2.wav rename to public/audio/battle_anims/PRSFX- King's Shield2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Knock Off.wav b/public/audio/battle_anims/PRSFX- Knock Off.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Knock Off.wav rename to public/audio/battle_anims/PRSFX- Knock Off.wav diff --git a/public/audio/se/battle_anims/PRSFX- LTBTS1.wav b/public/audio/battle_anims/PRSFX- LTBTS1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- LTBTS1.wav rename to public/audio/battle_anims/PRSFX- LTBTS1.wav diff --git a/public/audio/se/battle_anims/PRSFX- LTBTS2.wav b/public/audio/battle_anims/PRSFX- LTBTS2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- LTBTS2.wav rename to public/audio/battle_anims/PRSFX- LTBTS2.wav diff --git a/public/audio/se/battle_anims/PRSFX- LTBTS3.wav b/public/audio/battle_anims/PRSFX- LTBTS3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- LTBTS3.wav rename to public/audio/battle_anims/PRSFX- LTBTS3.wav diff --git a/public/audio/se/battle_anims/PRSFX- LTBTS4.wav b/public/audio/battle_anims/PRSFX- LTBTS4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- LTBTS4.wav rename to public/audio/battle_anims/PRSFX- LTBTS4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lands Wrath1.wav b/public/audio/battle_anims/PRSFX- Lands Wrath1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lands Wrath1.wav rename to public/audio/battle_anims/PRSFX- Lands Wrath1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lands Wrath2.wav b/public/audio/battle_anims/PRSFX- Lands Wrath2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lands Wrath2.wav rename to public/audio/battle_anims/PRSFX- Lands Wrath2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Laser Focus1.wav b/public/audio/battle_anims/PRSFX- Laser Focus1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Laser Focus1.wav rename to public/audio/battle_anims/PRSFX- Laser Focus1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Laser Focus2.wav b/public/audio/battle_anims/PRSFX- Laser Focus2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Laser Focus2.wav rename to public/audio/battle_anims/PRSFX- Laser Focus2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Last Resort1.wav b/public/audio/battle_anims/PRSFX- Last Resort1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Last Resort1.wav rename to public/audio/battle_anims/PRSFX- Last Resort1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Last Resort2.wav b/public/audio/battle_anims/PRSFX- Last Resort2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Last Resort2.wav rename to public/audio/battle_anims/PRSFX- Last Resort2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lava Plume.wav b/public/audio/battle_anims/PRSFX- Lava Plume.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lava Plume.wav rename to public/audio/battle_anims/PRSFX- Lava Plume.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leaf Blade.wav b/public/audio/battle_anims/PRSFX- Leaf Blade.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leaf Blade.wav rename to public/audio/battle_anims/PRSFX- Leaf Blade.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leaf Storm1.wav b/public/audio/battle_anims/PRSFX- Leaf Storm1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leaf Storm1.wav rename to public/audio/battle_anims/PRSFX- Leaf Storm1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leaf Storm2.wav b/public/audio/battle_anims/PRSFX- Leaf Storm2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leaf Storm2.wav rename to public/audio/battle_anims/PRSFX- Leaf Storm2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leaf Tornado1.wav b/public/audio/battle_anims/PRSFX- Leaf Tornado1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leaf Tornado1.wav rename to public/audio/battle_anims/PRSFX- Leaf Tornado1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leaf Tornado2.wav b/public/audio/battle_anims/PRSFX- Leaf Tornado2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leaf Tornado2.wav rename to public/audio/battle_anims/PRSFX- Leaf Tornado2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leafage 1.wav b/public/audio/battle_anims/PRSFX- Leafage 1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leafage 1.wav rename to public/audio/battle_anims/PRSFX- Leafage 1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leafage 2.wav b/public/audio/battle_anims/PRSFX- Leafage 2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leafage 2.wav rename to public/audio/battle_anims/PRSFX- Leafage 2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leech Life1.wav b/public/audio/battle_anims/PRSFX- Leech Life1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leech Life1.wav rename to public/audio/battle_anims/PRSFX- Leech Life1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leech Life2.wav b/public/audio/battle_anims/PRSFX- Leech Life2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leech Life2.wav rename to public/audio/battle_anims/PRSFX- Leech Life2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leech Seed1.wav b/public/audio/battle_anims/PRSFX- Leech Seed1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leech Seed1.wav rename to public/audio/battle_anims/PRSFX- Leech Seed1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leech Seed2.wav b/public/audio/battle_anims/PRSFX- Leech Seed2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leech Seed2.wav rename to public/audio/battle_anims/PRSFX- Leech Seed2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leech Seed3.wav b/public/audio/battle_anims/PRSFX- Leech Seed3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leech Seed3.wav rename to public/audio/battle_anims/PRSFX- Leech Seed3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Leer.wav b/public/audio/battle_anims/PRSFX- Leer.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Leer.wav rename to public/audio/battle_anims/PRSFX- Leer.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lick.wav b/public/audio/battle_anims/PRSFX- Lick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lick.wav rename to public/audio/battle_anims/PRSFX- Lick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Light Screen.wav b/public/audio/battle_anims/PRSFX- Light Screen.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Light Screen.wav rename to public/audio/battle_anims/PRSFX- Light Screen.wav diff --git a/public/audio/se/battle_anims/PRSFX- Liquidation1.wav b/public/audio/battle_anims/PRSFX- Liquidation1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Liquidation1.wav rename to public/audio/battle_anims/PRSFX- Liquidation1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Liquidation2.wav b/public/audio/battle_anims/PRSFX- Liquidation2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Liquidation2.wav rename to public/audio/battle_anims/PRSFX- Liquidation2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Liquidation3.wav b/public/audio/battle_anims/PRSFX- Liquidation3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Liquidation3.wav rename to public/audio/battle_anims/PRSFX- Liquidation3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Liquidation4.wav b/public/audio/battle_anims/PRSFX- Liquidation4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Liquidation4.wav rename to public/audio/battle_anims/PRSFX- Liquidation4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lock On.wav b/public/audio/battle_anims/PRSFX- Lock On.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lock On.wav rename to public/audio/battle_anims/PRSFX- Lock On.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lovely Kiss.wav b/public/audio/battle_anims/PRSFX- Lovely Kiss.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lovely Kiss.wav rename to public/audio/battle_anims/PRSFX- Lovely Kiss.wav diff --git a/public/audio/se/battle_anims/PRSFX- Low Kick.wav b/public/audio/battle_anims/PRSFX- Low Kick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Low Kick.wav rename to public/audio/battle_anims/PRSFX- Low Kick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Low Sweep.wav b/public/audio/battle_anims/PRSFX- Low Sweep.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Low Sweep.wav rename to public/audio/battle_anims/PRSFX- Low Sweep.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lucky Chant.wav b/public/audio/battle_anims/PRSFX- Lucky Chant.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lucky Chant.wav rename to public/audio/battle_anims/PRSFX- Lucky Chant.wav diff --git a/public/audio/se/battle_anims/PRSFX- Lunar Dance.wav b/public/audio/battle_anims/PRSFX- Lunar Dance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Lunar Dance.wav rename to public/audio/battle_anims/PRSFX- Lunar Dance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Luster Purge1.wav b/public/audio/battle_anims/PRSFX- Luster Purge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Luster Purge1.wav rename to public/audio/battle_anims/PRSFX- Luster Purge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Luster Purge2.wav b/public/audio/battle_anims/PRSFX- Luster Purge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Luster Purge2.wav rename to public/audio/battle_anims/PRSFX- Luster Purge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Luster Purge3.wav b/public/audio/battle_anims/PRSFX- Luster Purge3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Luster Purge3.wav rename to public/audio/battle_anims/PRSFX- Luster Purge3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mach Punch.wav b/public/audio/battle_anims/PRSFX- Mach Punch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mach Punch.wav rename to public/audio/battle_anims/PRSFX- Mach Punch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magic Coat.wav b/public/audio/battle_anims/PRSFX- Magic Coat.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magic Coat.wav rename to public/audio/battle_anims/PRSFX- Magic Coat.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magic Room.wav b/public/audio/battle_anims/PRSFX- Magic Room.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magic Room.wav rename to public/audio/battle_anims/PRSFX- Magic Room.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magical Leaf1.wav b/public/audio/battle_anims/PRSFX- Magical Leaf1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magical Leaf1.wav rename to public/audio/battle_anims/PRSFX- Magical Leaf1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magical Leaf2.wav b/public/audio/battle_anims/PRSFX- Magical Leaf2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magical Leaf2.wav rename to public/audio/battle_anims/PRSFX- Magical Leaf2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magma Storm1.wav b/public/audio/battle_anims/PRSFX- Magma Storm1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magma Storm1.wav rename to public/audio/battle_anims/PRSFX- Magma Storm1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magma Storm2.wav b/public/audio/battle_anims/PRSFX- Magma Storm2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magma Storm2.wav rename to public/audio/battle_anims/PRSFX- Magma Storm2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magnet Bomb1.wav b/public/audio/battle_anims/PRSFX- Magnet Bomb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magnet Bomb1.wav rename to public/audio/battle_anims/PRSFX- Magnet Bomb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magnet Bomb2.wav b/public/audio/battle_anims/PRSFX- Magnet Bomb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magnet Bomb2.wav rename to public/audio/battle_anims/PRSFX- Magnet Bomb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magnet Rise.wav b/public/audio/battle_anims/PRSFX- Magnet Rise.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magnet Rise.wav rename to public/audio/battle_anims/PRSFX- Magnet Rise.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magnetic Flux.wav b/public/audio/battle_anims/PRSFX- Magnetic Flux.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magnetic Flux.wav rename to public/audio/battle_anims/PRSFX- Magnetic Flux.wav diff --git a/public/audio/se/battle_anims/PRSFX- Magnitude.wav b/public/audio/battle_anims/PRSFX- Magnitude.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Magnitude.wav rename to public/audio/battle_anims/PRSFX- Magnitude.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mat Block.wav b/public/audio/battle_anims/PRSFX- Mat Block.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mat Block.wav rename to public/audio/battle_anims/PRSFX- Mat Block.wav diff --git a/public/audio/se/battle_anims/PRSFX- Me First1.wav b/public/audio/battle_anims/PRSFX- Me First1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Me First1.wav rename to public/audio/battle_anims/PRSFX- Me First1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Me First2.wav b/public/audio/battle_anims/PRSFX- Me First2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Me First2.wav rename to public/audio/battle_anims/PRSFX- Me First2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Me First3.wav b/public/audio/battle_anims/PRSFX- Me First3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Me First3.wav rename to public/audio/battle_anims/PRSFX- Me First3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mean Look.wav b/public/audio/battle_anims/PRSFX- Mean Look.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mean Look.wav rename to public/audio/battle_anims/PRSFX- Mean Look.wav diff --git a/public/audio/se/battle_anims/PRSFX- Meditate.wav b/public/audio/battle_anims/PRSFX- Meditate.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Meditate.wav rename to public/audio/battle_anims/PRSFX- Meditate.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mega Drain1.wav b/public/audio/battle_anims/PRSFX- Mega Drain1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mega Drain1.wav rename to public/audio/battle_anims/PRSFX- Mega Drain1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mega Drain2.wav b/public/audio/battle_anims/PRSFX- Mega Drain2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mega Drain2.wav rename to public/audio/battle_anims/PRSFX- Mega Drain2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mega Evolution1.wav b/public/audio/battle_anims/PRSFX- Mega Evolution1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mega Evolution1.wav rename to public/audio/battle_anims/PRSFX- Mega Evolution1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mega Evolution2.wav b/public/audio/battle_anims/PRSFX- Mega Evolution2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mega Evolution2.wav rename to public/audio/battle_anims/PRSFX- Mega Evolution2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mega Punch1.wav b/public/audio/battle_anims/PRSFX- Mega Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mega Punch1.wav rename to public/audio/battle_anims/PRSFX- Mega Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mega Punch2.wav b/public/audio/battle_anims/PRSFX- Mega Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mega Punch2.wav rename to public/audio/battle_anims/PRSFX- Mega Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Megahorn1.wav b/public/audio/battle_anims/PRSFX- Megahorn1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Megahorn1.wav rename to public/audio/battle_anims/PRSFX- Megahorn1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Megahorn2.wav b/public/audio/battle_anims/PRSFX- Megahorn2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Megahorn2.wav rename to public/audio/battle_anims/PRSFX- Megahorn2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Megakick.wav b/public/audio/battle_anims/PRSFX- Megakick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Megakick.wav rename to public/audio/battle_anims/PRSFX- Megakick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Memento1.wav b/public/audio/battle_anims/PRSFX- Memento1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Memento1.wav rename to public/audio/battle_anims/PRSFX- Memento1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Memento2.wav b/public/audio/battle_anims/PRSFX- Memento2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Memento2.wav rename to public/audio/battle_anims/PRSFX- Memento2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Metal Burst1.wav b/public/audio/battle_anims/PRSFX- Metal Burst1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Metal Burst1.wav rename to public/audio/battle_anims/PRSFX- Metal Burst1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Metal Burst2.wav b/public/audio/battle_anims/PRSFX- Metal Burst2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Metal Burst2.wav rename to public/audio/battle_anims/PRSFX- Metal Burst2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Metal Claw1.wav b/public/audio/battle_anims/PRSFX- Metal Claw1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Metal Claw1.wav rename to public/audio/battle_anims/PRSFX- Metal Claw1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Metal Claw2.wav b/public/audio/battle_anims/PRSFX- Metal Claw2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Metal Claw2.wav rename to public/audio/battle_anims/PRSFX- Metal Claw2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Metal Sound.wav b/public/audio/battle_anims/PRSFX- Metal Sound.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Metal Sound.wav rename to public/audio/battle_anims/PRSFX- Metal Sound.wav diff --git a/public/audio/se/battle_anims/PRSFX- Meteor Mash1.wav b/public/audio/battle_anims/PRSFX- Meteor Mash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Meteor Mash1.wav rename to public/audio/battle_anims/PRSFX- Meteor Mash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Meteor Mash2.wav b/public/audio/battle_anims/PRSFX- Meteor Mash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Meteor Mash2.wav rename to public/audio/battle_anims/PRSFX- Meteor Mash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Metronome.wav b/public/audio/battle_anims/PRSFX- Metronome.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Metronome.wav rename to public/audio/battle_anims/PRSFX- Metronome.wav diff --git a/public/audio/se/battle_anims/PRSFX- Milk Drink.wav b/public/audio/battle_anims/PRSFX- Milk Drink.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Milk Drink.wav rename to public/audio/battle_anims/PRSFX- Milk Drink.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mimic1.wav b/public/audio/battle_anims/PRSFX- Mimic1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mimic1.wav rename to public/audio/battle_anims/PRSFX- Mimic1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mimic2.wav b/public/audio/battle_anims/PRSFX- Mimic2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mimic2.wav rename to public/audio/battle_anims/PRSFX- Mimic2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mind Blow1.wav b/public/audio/battle_anims/PRSFX- Mind Blow1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mind Blow1.wav rename to public/audio/battle_anims/PRSFX- Mind Blow1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mind Blow2.wav b/public/audio/battle_anims/PRSFX- Mind Blow2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mind Blow2.wav rename to public/audio/battle_anims/PRSFX- Mind Blow2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mind Blow3.wav b/public/audio/battle_anims/PRSFX- Mind Blow3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mind Blow3.wav rename to public/audio/battle_anims/PRSFX- Mind Blow3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mind Blow4.wav b/public/audio/battle_anims/PRSFX- Mind Blow4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mind Blow4.wav rename to public/audio/battle_anims/PRSFX- Mind Blow4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mind Reader.wav b/public/audio/battle_anims/PRSFX- Mind Reader.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mind Reader.wav rename to public/audio/battle_anims/PRSFX- Mind Reader.wav diff --git a/public/audio/se/battle_anims/PRSFX- Minimize1.wav b/public/audio/battle_anims/PRSFX- Minimize1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Minimize1.wav rename to public/audio/battle_anims/PRSFX- Minimize1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Minimize2.wav b/public/audio/battle_anims/PRSFX- Minimize2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Minimize2.wav rename to public/audio/battle_anims/PRSFX- Minimize2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Minimize3.wav b/public/audio/battle_anims/PRSFX- Minimize3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Minimize3.wav rename to public/audio/battle_anims/PRSFX- Minimize3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Miracle Eye.wav b/public/audio/battle_anims/PRSFX- Miracle Eye.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Miracle Eye.wav rename to public/audio/battle_anims/PRSFX- Miracle Eye.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mirror Coat.wav b/public/audio/battle_anims/PRSFX- Mirror Coat.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mirror Coat.wav rename to public/audio/battle_anims/PRSFX- Mirror Coat.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mirror Shatter.wav b/public/audio/battle_anims/PRSFX- Mirror Shatter.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mirror Shatter.wav rename to public/audio/battle_anims/PRSFX- Mirror Shatter.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mirror Shot.wav b/public/audio/battle_anims/PRSFX- Mirror Shot.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mirror Shot.wav rename to public/audio/battle_anims/PRSFX- Mirror Shot.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mist Ball1.wav b/public/audio/battle_anims/PRSFX- Mist Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mist Ball1.wav rename to public/audio/battle_anims/PRSFX- Mist Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mist Ball2.wav b/public/audio/battle_anims/PRSFX- Mist Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mist Ball2.wav rename to public/audio/battle_anims/PRSFX- Mist Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mist.wav b/public/audio/battle_anims/PRSFX- Mist.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mist.wav rename to public/audio/battle_anims/PRSFX- Mist.wav diff --git a/public/audio/se/battle_anims/PRSFX- Misty Terrain.wav b/public/audio/battle_anims/PRSFX- Misty Terrain.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Misty Terrain.wav rename to public/audio/battle_anims/PRSFX- Misty Terrain.wav diff --git a/public/audio/se/battle_anims/PRSFX- Moonblast1.wav b/public/audio/battle_anims/PRSFX- Moonblast1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Moonblast1.wav rename to public/audio/battle_anims/PRSFX- Moonblast1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Moonblast2.wav b/public/audio/battle_anims/PRSFX- Moonblast2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Moonblast2.wav rename to public/audio/battle_anims/PRSFX- Moonblast2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Moonlight.wav b/public/audio/battle_anims/PRSFX- Moonlight.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Moonlight.wav rename to public/audio/battle_anims/PRSFX- Moonlight.wav diff --git a/public/audio/se/battle_anims/PRSFX- Morning Sun.wav b/public/audio/battle_anims/PRSFX- Morning Sun.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Morning Sun.wav rename to public/audio/battle_anims/PRSFX- Morning Sun.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mud Bomb1.wav b/public/audio/battle_anims/PRSFX- Mud Bomb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mud Bomb1.wav rename to public/audio/battle_anims/PRSFX- Mud Bomb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mud Bomb2.wav b/public/audio/battle_anims/PRSFX- Mud Bomb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mud Bomb2.wav rename to public/audio/battle_anims/PRSFX- Mud Bomb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mud Shot.wav b/public/audio/battle_anims/PRSFX- Mud Shot.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mud Shot.wav rename to public/audio/battle_anims/PRSFX- Mud Shot.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mud Slap.wav b/public/audio/battle_anims/PRSFX- Mud Slap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mud Slap.wav rename to public/audio/battle_anims/PRSFX- Mud Slap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mud Sport1.wav b/public/audio/battle_anims/PRSFX- Mud Sport1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mud Sport1.wav rename to public/audio/battle_anims/PRSFX- Mud Sport1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mud Sport2.wav b/public/audio/battle_anims/PRSFX- Mud Sport2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mud Sport2.wav rename to public/audio/battle_anims/PRSFX- Mud Sport2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Muddy Water.wav b/public/audio/battle_anims/PRSFX- Muddy Water.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Muddy Water.wav rename to public/audio/battle_anims/PRSFX- Muddy Water.wav diff --git a/public/audio/se/battle_anims/PRSFX- Multi Attack1.wav b/public/audio/battle_anims/PRSFX- Multi Attack1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Multi Attack1.wav rename to public/audio/battle_anims/PRSFX- Multi Attack1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Multi Attack2.wav b/public/audio/battle_anims/PRSFX- Multi Attack2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Multi Attack2.wav rename to public/audio/battle_anims/PRSFX- Multi Attack2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Multi Attack3.wav b/public/audio/battle_anims/PRSFX- Multi Attack3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Multi Attack3.wav rename to public/audio/battle_anims/PRSFX- Multi Attack3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Multi Attack4.wav b/public/audio/battle_anims/PRSFX- Multi Attack4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Multi Attack4.wav rename to public/audio/battle_anims/PRSFX- Multi Attack4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Multi Attack5.wav b/public/audio/battle_anims/PRSFX- Multi Attack5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Multi Attack5.wav rename to public/audio/battle_anims/PRSFX- Multi Attack5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mystical Fire1.wav b/public/audio/battle_anims/PRSFX- Mystical Fire1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mystical Fire1.wav rename to public/audio/battle_anims/PRSFX- Mystical Fire1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Mystical Fire2.wav b/public/audio/battle_anims/PRSFX- Mystical Fire2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Mystical Fire2.wav rename to public/audio/battle_anims/PRSFX- Mystical Fire2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Nasty Plot.wav b/public/audio/battle_anims/PRSFX- Nasty Plot.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Nasty Plot.wav rename to public/audio/battle_anims/PRSFX- Nasty Plot.wav diff --git a/public/audio/se/battle_anims/PRSFX- Natural Gift1.wav b/public/audio/battle_anims/PRSFX- Natural Gift1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Natural Gift1.wav rename to public/audio/battle_anims/PRSFX- Natural Gift1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Natural Gift2.wav b/public/audio/battle_anims/PRSFX- Natural Gift2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Natural Gift2.wav rename to public/audio/battle_anims/PRSFX- Natural Gift2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Natures Madness1.wav b/public/audio/battle_anims/PRSFX- Natures Madness1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Natures Madness1.wav rename to public/audio/battle_anims/PRSFX- Natures Madness1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Natures Madness2.wav b/public/audio/battle_anims/PRSFX- Natures Madness2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Natures Madness2.wav rename to public/audio/battle_anims/PRSFX- Natures Madness2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Needle Arm1.wav b/public/audio/battle_anims/PRSFX- Needle Arm1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Needle Arm1.wav rename to public/audio/battle_anims/PRSFX- Needle Arm1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Needle Arm2.wav b/public/audio/battle_anims/PRSFX- Needle Arm2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Needle Arm2.wav rename to public/audio/battle_anims/PRSFX- Needle Arm2.wav diff --git a/public/audio/se/battle_anims/PRSFX- NeverEndingNightmare1.wav b/public/audio/battle_anims/PRSFX- NeverEndingNightmare1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- NeverEndingNightmare1.wav rename to public/audio/battle_anims/PRSFX- NeverEndingNightmare1.wav diff --git a/public/audio/se/battle_anims/PRSFX- NeverEndingNightmare2.wav b/public/audio/battle_anims/PRSFX- NeverEndingNightmare2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- NeverEndingNightmare2.wav rename to public/audio/battle_anims/PRSFX- NeverEndingNightmare2.wav diff --git a/public/audio/se/battle_anims/PRSFX- NeverEndingNightmare3.wav b/public/audio/battle_anims/PRSFX- NeverEndingNightmare3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- NeverEndingNightmare3.wav rename to public/audio/battle_anims/PRSFX- NeverEndingNightmare3.wav diff --git a/public/audio/se/battle_anims/PRSFX- NeverEndingNightmare4.wav b/public/audio/battle_anims/PRSFX- NeverEndingNightmare4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- NeverEndingNightmare4.wav rename to public/audio/battle_anims/PRSFX- NeverEndingNightmare4.wav diff --git a/public/audio/se/battle_anims/PRSFX- NeverEndingNightmare5.wav b/public/audio/battle_anims/PRSFX- NeverEndingNightmare5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- NeverEndingNightmare5.wav rename to public/audio/battle_anims/PRSFX- NeverEndingNightmare5.wav diff --git a/public/audio/se/battle_anims/PRSFX- NeverEndingNightmare6.wav b/public/audio/battle_anims/PRSFX- NeverEndingNightmare6.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- NeverEndingNightmare6.wav rename to public/audio/battle_anims/PRSFX- NeverEndingNightmare6.wav diff --git a/public/audio/se/battle_anims/PRSFX- Night Daze1.wav b/public/audio/battle_anims/PRSFX- Night Daze1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Night Daze1.wav rename to public/audio/battle_anims/PRSFX- Night Daze1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Night Daze2.wav b/public/audio/battle_anims/PRSFX- Night Daze2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Night Daze2.wav rename to public/audio/battle_anims/PRSFX- Night Daze2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Night Shade.wav b/public/audio/battle_anims/PRSFX- Night Shade.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Night Shade.wav rename to public/audio/battle_anims/PRSFX- Night Shade.wav diff --git a/public/audio/se/battle_anims/PRSFX- Night Slash1.wav b/public/audio/battle_anims/PRSFX- Night Slash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Night Slash1.wav rename to public/audio/battle_anims/PRSFX- Night Slash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Night Slash2.wav b/public/audio/battle_anims/PRSFX- Night Slash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Night Slash2.wav rename to public/audio/battle_anims/PRSFX- Night Slash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Nightmare.wav b/public/audio/battle_anims/PRSFX- Nightmare.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Nightmare.wav rename to public/audio/battle_anims/PRSFX- Nightmare.wav diff --git a/public/audio/se/battle_anims/PRSFX- Noble Roar1.wav b/public/audio/battle_anims/PRSFX- Noble Roar1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Noble Roar1.wav rename to public/audio/battle_anims/PRSFX- Noble Roar1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Noble Roar2.wav b/public/audio/battle_anims/PRSFX- Noble Roar2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Noble Roar2.wav rename to public/audio/battle_anims/PRSFX- Noble Roar2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Nuzzle1.wav b/public/audio/battle_anims/PRSFX- Nuzzle1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Nuzzle1.wav rename to public/audio/battle_anims/PRSFX- Nuzzle1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Nuzzle2.wav b/public/audio/battle_anims/PRSFX- Nuzzle2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Nuzzle2.wav rename to public/audio/battle_anims/PRSFX- Nuzzle2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Oblivion Wing1.wav b/public/audio/battle_anims/PRSFX- Oblivion Wing1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Oblivion Wing1.wav rename to public/audio/battle_anims/PRSFX- Oblivion Wing1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Oblivion Wing2.wav b/public/audio/battle_anims/PRSFX- Oblivion Wing2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Oblivion Wing2.wav rename to public/audio/battle_anims/PRSFX- Oblivion Wing2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Oceanic Operetta1.wav b/public/audio/battle_anims/PRSFX- Oceanic Operetta1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Oceanic Operetta1.wav rename to public/audio/battle_anims/PRSFX- Oceanic Operetta1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Oceanic Operetta2.wav b/public/audio/battle_anims/PRSFX- Oceanic Operetta2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Oceanic Operetta2.wav rename to public/audio/battle_anims/PRSFX- Oceanic Operetta2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Oceanic Operetta3.wav b/public/audio/battle_anims/PRSFX- Oceanic Operetta3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Oceanic Operetta3.wav rename to public/audio/battle_anims/PRSFX- Oceanic Operetta3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Oceanic Operetta4.wav b/public/audio/battle_anims/PRSFX- Oceanic Operetta4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Oceanic Operetta4.wav rename to public/audio/battle_anims/PRSFX- Oceanic Operetta4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Octazooka.wav b/public/audio/battle_anims/PRSFX- Octazooka.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Octazooka.wav rename to public/audio/battle_anims/PRSFX- Octazooka.wav diff --git a/public/audio/se/battle_anims/PRSFX- Odor Sleuth1.wav b/public/audio/battle_anims/PRSFX- Odor Sleuth1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Odor Sleuth1.wav rename to public/audio/battle_anims/PRSFX- Odor Sleuth1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Odor Sleuth2.wav b/public/audio/battle_anims/PRSFX- Odor Sleuth2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Odor Sleuth2.wav rename to public/audio/battle_anims/PRSFX- Odor Sleuth2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Ominous Wind.wav b/public/audio/battle_anims/PRSFX- Ominous Wind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Ominous Wind.wav rename to public/audio/battle_anims/PRSFX- Ominous Wind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Origin Pulse.wav b/public/audio/battle_anims/PRSFX- Origin Pulse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Origin Pulse.wav rename to public/audio/battle_anims/PRSFX- Origin Pulse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Origin Pulse1.wav b/public/audio/battle_anims/PRSFX- Origin Pulse1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Origin Pulse1.wav rename to public/audio/battle_anims/PRSFX- Origin Pulse1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Origin Pulse2.wav b/public/audio/battle_anims/PRSFX- Origin Pulse2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Origin Pulse2.wav rename to public/audio/battle_anims/PRSFX- Origin Pulse2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Origin Pulse3.wav b/public/audio/battle_anims/PRSFX- Origin Pulse3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Origin Pulse3.wav rename to public/audio/battle_anims/PRSFX- Origin Pulse3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Outrage1.wav b/public/audio/battle_anims/PRSFX- Outrage1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Outrage1.wav rename to public/audio/battle_anims/PRSFX- Outrage1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Outrage2.wav b/public/audio/battle_anims/PRSFX- Outrage2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Outrage2.wav rename to public/audio/battle_anims/PRSFX- Outrage2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Overheat1.wav b/public/audio/battle_anims/PRSFX- Overheat1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Overheat1.wav rename to public/audio/battle_anims/PRSFX- Overheat1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Overheat2.wav b/public/audio/battle_anims/PRSFX- Overheat2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Overheat2.wav rename to public/audio/battle_anims/PRSFX- Overheat2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pain Split.wav b/public/audio/battle_anims/PRSFX- Pain Split.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pain Split.wav rename to public/audio/battle_anims/PRSFX- Pain Split.wav diff --git a/public/audio/se/battle_anims/PRSFX- Parabolic Charge.wav b/public/audio/battle_anims/PRSFX- Parabolic Charge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Parabolic Charge.wav rename to public/audio/battle_anims/PRSFX- Parabolic Charge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Paralysis.wav b/public/audio/battle_anims/PRSFX- Paralysis.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Paralysis.wav rename to public/audio/battle_anims/PRSFX- Paralysis.wav diff --git a/public/audio/se/battle_anims/PRSFX- Parting Shot.wav b/public/audio/battle_anims/PRSFX- Parting Shot.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Parting Shot.wav rename to public/audio/battle_anims/PRSFX- Parting Shot.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pay Day1.wav b/public/audio/battle_anims/PRSFX- Pay Day1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pay Day1.wav rename to public/audio/battle_anims/PRSFX- Pay Day1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pay Day2.wav b/public/audio/battle_anims/PRSFX- Pay Day2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pay Day2.wav rename to public/audio/battle_anims/PRSFX- Pay Day2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Payback1.wav b/public/audio/battle_anims/PRSFX- Payback1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Payback1.wav rename to public/audio/battle_anims/PRSFX- Payback1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Payback2.wav b/public/audio/battle_anims/PRSFX- Payback2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Payback2.wav rename to public/audio/battle_anims/PRSFX- Payback2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Peck.wav b/public/audio/battle_anims/PRSFX- Peck.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Peck.wav rename to public/audio/battle_anims/PRSFX- Peck.wav diff --git a/public/audio/se/battle_anims/PRSFX- Perish Song.wav b/public/audio/battle_anims/PRSFX- Perish Song.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Perish Song.wav rename to public/audio/battle_anims/PRSFX- Perish Song.wav diff --git a/public/audio/se/battle_anims/PRSFX- Petal Blizzard1.wav b/public/audio/battle_anims/PRSFX- Petal Blizzard1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Petal Blizzard1.wav rename to public/audio/battle_anims/PRSFX- Petal Blizzard1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Petal Blizzard2.wav b/public/audio/battle_anims/PRSFX- Petal Blizzard2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Petal Blizzard2.wav rename to public/audio/battle_anims/PRSFX- Petal Blizzard2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Petal Dance.wav b/public/audio/battle_anims/PRSFX- Petal Dance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Petal Dance.wav rename to public/audio/battle_anims/PRSFX- Petal Dance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Phantom Force1.wav b/public/audio/battle_anims/PRSFX- Phantom Force1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Phantom Force1.wav rename to public/audio/battle_anims/PRSFX- Phantom Force1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Phantom Force2.wav b/public/audio/battle_anims/PRSFX- Phantom Force2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Phantom Force2.wav rename to public/audio/battle_anims/PRSFX- Phantom Force2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Photon Guyser1.wav b/public/audio/battle_anims/PRSFX- Photon Guyser1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Photon Guyser1.wav rename to public/audio/battle_anims/PRSFX- Photon Guyser1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Photon Guyser2.wav b/public/audio/battle_anims/PRSFX- Photon Guyser2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Photon Guyser2.wav rename to public/audio/battle_anims/PRSFX- Photon Guyser2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Photon Guyser3.wav b/public/audio/battle_anims/PRSFX- Photon Guyser3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Photon Guyser3.wav rename to public/audio/battle_anims/PRSFX- Photon Guyser3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pin Missile.wav b/public/audio/battle_anims/PRSFX- Pin Missile.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pin Missile.wav rename to public/audio/battle_anims/PRSFX- Pin Missile.wav diff --git a/public/audio/se/battle_anims/PRSFX- Plasma Fist1.wav b/public/audio/battle_anims/PRSFX- Plasma Fist1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Plasma Fist1.wav rename to public/audio/battle_anims/PRSFX- Plasma Fist1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Plasma Fist2.wav b/public/audio/battle_anims/PRSFX- Plasma Fist2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Plasma Fist2.wav rename to public/audio/battle_anims/PRSFX- Plasma Fist2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Plasma Fist3.wav b/public/audio/battle_anims/PRSFX- Plasma Fist3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Plasma Fist3.wav rename to public/audio/battle_anims/PRSFX- Plasma Fist3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Play Nice1.wav b/public/audio/battle_anims/PRSFX- Play Nice1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Play Nice1.wav rename to public/audio/battle_anims/PRSFX- Play Nice1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Play Nice2.wav b/public/audio/battle_anims/PRSFX- Play Nice2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Play Nice2.wav rename to public/audio/battle_anims/PRSFX- Play Nice2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Play Rough1.wav b/public/audio/battle_anims/PRSFX- Play Rough1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Play Rough1.wav rename to public/audio/battle_anims/PRSFX- Play Rough1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Play Rough2.wav b/public/audio/battle_anims/PRSFX- Play Rough2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Play Rough2.wav rename to public/audio/battle_anims/PRSFX- Play Rough2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Play Rough3.wav b/public/audio/battle_anims/PRSFX- Play Rough3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Play Rough3.wav rename to public/audio/battle_anims/PRSFX- Play Rough3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Play Rough4.wav b/public/audio/battle_anims/PRSFX- Play Rough4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Play Rough4.wav rename to public/audio/battle_anims/PRSFX- Play Rough4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pluck1.wav b/public/audio/battle_anims/PRSFX- Pluck1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pluck1.wav rename to public/audio/battle_anims/PRSFX- Pluck1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pluck2.wav b/public/audio/battle_anims/PRSFX- Pluck2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pluck2.wav rename to public/audio/battle_anims/PRSFX- Pluck2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Fang1.wav b/public/audio/battle_anims/PRSFX- Poison Fang1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Fang1.wav rename to public/audio/battle_anims/PRSFX- Poison Fang1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Fang2.wav b/public/audio/battle_anims/PRSFX- Poison Fang2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Fang2.wav rename to public/audio/battle_anims/PRSFX- Poison Fang2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Gas.wav b/public/audio/battle_anims/PRSFX- Poison Gas.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Gas.wav rename to public/audio/battle_anims/PRSFX- Poison Gas.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Jab1.wav b/public/audio/battle_anims/PRSFX- Poison Jab1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Jab1.wav rename to public/audio/battle_anims/PRSFX- Poison Jab1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Jab2.wav b/public/audio/battle_anims/PRSFX- Poison Jab2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Jab2.wav rename to public/audio/battle_anims/PRSFX- Poison Jab2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Powder.wav b/public/audio/battle_anims/PRSFX- Poison Powder.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Powder.wav rename to public/audio/battle_anims/PRSFX- Poison Powder.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Sting.wav b/public/audio/battle_anims/PRSFX- Poison Sting.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Sting.wav rename to public/audio/battle_anims/PRSFX- Poison Sting.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Tail1.wav b/public/audio/battle_anims/PRSFX- Poison Tail1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Tail1.wav rename to public/audio/battle_anims/PRSFX- Poison Tail1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison Tail2.wav b/public/audio/battle_anims/PRSFX- Poison Tail2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison Tail2.wav rename to public/audio/battle_anims/PRSFX- Poison Tail2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Poison.wav b/public/audio/battle_anims/PRSFX- Poison.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Poison.wav rename to public/audio/battle_anims/PRSFX- Poison.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pollen Puff1.wav b/public/audio/battle_anims/PRSFX- Pollen Puff1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pollen Puff1.wav rename to public/audio/battle_anims/PRSFX- Pollen Puff1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pollen Puff2.wav b/public/audio/battle_anims/PRSFX- Pollen Puff2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pollen Puff2.wav rename to public/audio/battle_anims/PRSFX- Pollen Puff2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pollen Puff3.wav b/public/audio/battle_anims/PRSFX- Pollen Puff3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pollen Puff3.wav rename to public/audio/battle_anims/PRSFX- Pollen Puff3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pollen Puff4.wav b/public/audio/battle_anims/PRSFX- Pollen Puff4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pollen Puff4.wav rename to public/audio/battle_anims/PRSFX- Pollen Puff4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pollen Puff5.wav b/public/audio/battle_anims/PRSFX- Pollen Puff5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pollen Puff5.wav rename to public/audio/battle_anims/PRSFX- Pollen Puff5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pollen Puff6.wav b/public/audio/battle_anims/PRSFX- Pollen Puff6.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pollen Puff6.wav rename to public/audio/battle_anims/PRSFX- Pollen Puff6.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pound.wav b/public/audio/battle_anims/PRSFX- Pound.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pound.wav rename to public/audio/battle_anims/PRSFX- Pound.wav diff --git a/public/audio/se/battle_anims/PRSFX- Powder 1.wav b/public/audio/battle_anims/PRSFX- Powder 1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Powder 1.wav rename to public/audio/battle_anims/PRSFX- Powder 1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Powder 2.wav b/public/audio/battle_anims/PRSFX- Powder 2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Powder 2.wav rename to public/audio/battle_anims/PRSFX- Powder 2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Powder Snow1.wav b/public/audio/battle_anims/PRSFX- Powder Snow1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Powder Snow1.wav rename to public/audio/battle_anims/PRSFX- Powder Snow1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Powder Snow2.wav b/public/audio/battle_anims/PRSFX- Powder Snow2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Powder Snow2.wav rename to public/audio/battle_anims/PRSFX- Powder Snow2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Powder common1.wav b/public/audio/battle_anims/PRSFX- Powder common1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Powder common1.wav rename to public/audio/battle_anims/PRSFX- Powder common1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Powder common2.wav b/public/audio/battle_anims/PRSFX- Powder common2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Powder common2.wav rename to public/audio/battle_anims/PRSFX- Powder common2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Gem1.wav b/public/audio/battle_anims/PRSFX- Power Gem1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Gem1.wav rename to public/audio/battle_anims/PRSFX- Power Gem1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Split.wav b/public/audio/battle_anims/PRSFX- Power Split.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Split.wav rename to public/audio/battle_anims/PRSFX- Power Split.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Swap.wav b/public/audio/battle_anims/PRSFX- Power Swap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Swap.wav rename to public/audio/battle_anims/PRSFX- Power Swap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Trick.wav b/public/audio/battle_anims/PRSFX- Power Trick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Trick.wav rename to public/audio/battle_anims/PRSFX- Power Trick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Trip1.wav b/public/audio/battle_anims/PRSFX- Power Trip1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Trip1.wav rename to public/audio/battle_anims/PRSFX- Power Trip1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Trip2.wav b/public/audio/battle_anims/PRSFX- Power Trip2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Trip2.wav rename to public/audio/battle_anims/PRSFX- Power Trip2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Trip3.wav b/public/audio/battle_anims/PRSFX- Power Trip3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Trip3.wav rename to public/audio/battle_anims/PRSFX- Power Trip3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Trip4.wav b/public/audio/battle_anims/PRSFX- Power Trip4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Trip4.wav rename to public/audio/battle_anims/PRSFX- Power Trip4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Trip5.wav b/public/audio/battle_anims/PRSFX- Power Trip5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Trip5.wav rename to public/audio/battle_anims/PRSFX- Power Trip5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Up Punch1.wav b/public/audio/battle_anims/PRSFX- Power Up Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Up Punch1.wav rename to public/audio/battle_anims/PRSFX- Power Up Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Up Punch2.wav b/public/audio/battle_anims/PRSFX- Power Up Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Up Punch2.wav rename to public/audio/battle_anims/PRSFX- Power Up Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Power Whip.wav b/public/audio/battle_anims/PRSFX- Power Whip.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Power Whip.wav rename to public/audio/battle_anims/PRSFX- Power Whip.wav diff --git a/public/audio/se/battle_anims/PRSFX- Precipice Blades.wav b/public/audio/battle_anims/PRSFX- Precipice Blades.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Precipice Blades.wav rename to public/audio/battle_anims/PRSFX- Precipice Blades.wav diff --git a/public/audio/se/battle_anims/PRSFX- Present1.wav b/public/audio/battle_anims/PRSFX- Present1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Present1.wav rename to public/audio/battle_anims/PRSFX- Present1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Present2.wav b/public/audio/battle_anims/PRSFX- Present2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Present2.wav rename to public/audio/battle_anims/PRSFX- Present2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Prismatic Laser1.wav b/public/audio/battle_anims/PRSFX- Prismatic Laser1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Prismatic Laser1.wav rename to public/audio/battle_anims/PRSFX- Prismatic Laser1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Prismatic Laser2.wav b/public/audio/battle_anims/PRSFX- Prismatic Laser2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Prismatic Laser2.wav rename to public/audio/battle_anims/PRSFX- Prismatic Laser2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Prismatic Laser3.wav b/public/audio/battle_anims/PRSFX- Prismatic Laser3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Prismatic Laser3.wav rename to public/audio/battle_anims/PRSFX- Prismatic Laser3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Protect.wav b/public/audio/battle_anims/PRSFX- Protect.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Protect.wav rename to public/audio/battle_anims/PRSFX- Protect.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psybeam.wav b/public/audio/battle_anims/PRSFX- Psybeam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psybeam.wav rename to public/audio/battle_anims/PRSFX- Psybeam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psych Up.wav b/public/audio/battle_anims/PRSFX- Psych Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psych Up.wav rename to public/audio/battle_anims/PRSFX- Psych Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psychic Terrain1.wav b/public/audio/battle_anims/PRSFX- Psychic Terrain1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psychic Terrain1.wav rename to public/audio/battle_anims/PRSFX- Psychic Terrain1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psychic Terrain2.wav b/public/audio/battle_anims/PRSFX- Psychic Terrain2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psychic Terrain2.wav rename to public/audio/battle_anims/PRSFX- Psychic Terrain2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psychic Terrain3.wav b/public/audio/battle_anims/PRSFX- Psychic Terrain3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psychic Terrain3.wav rename to public/audio/battle_anims/PRSFX- Psychic Terrain3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psychic.wav b/public/audio/battle_anims/PRSFX- Psychic.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psychic.wav rename to public/audio/battle_anims/PRSFX- Psychic.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psycho Boost1.wav b/public/audio/battle_anims/PRSFX- Psycho Boost1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psycho Boost1.wav rename to public/audio/battle_anims/PRSFX- Psycho Boost1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psycho Boost2.wav b/public/audio/battle_anims/PRSFX- Psycho Boost2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psycho Boost2.wav rename to public/audio/battle_anims/PRSFX- Psycho Boost2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psycho Cut.wav b/public/audio/battle_anims/PRSFX- Psycho Cut.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psycho Cut.wav rename to public/audio/battle_anims/PRSFX- Psycho Cut.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psycho Shift.wav b/public/audio/battle_anims/PRSFX- Psycho Shift.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psycho Shift.wav rename to public/audio/battle_anims/PRSFX- Psycho Shift.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psyshock1.wav b/public/audio/battle_anims/PRSFX- Psyshock1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psyshock1.wav rename to public/audio/battle_anims/PRSFX- Psyshock1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psyshock2.wav b/public/audio/battle_anims/PRSFX- Psyshock2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psyshock2.wav rename to public/audio/battle_anims/PRSFX- Psyshock2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psystrike1.wav b/public/audio/battle_anims/PRSFX- Psystrike1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psystrike1.wav rename to public/audio/battle_anims/PRSFX- Psystrike1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psystrike2.wav b/public/audio/battle_anims/PRSFX- Psystrike2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psystrike2.wav rename to public/audio/battle_anims/PRSFX- Psystrike2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psystrike3.wav b/public/audio/battle_anims/PRSFX- Psystrike3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psystrike3.wav rename to public/audio/battle_anims/PRSFX- Psystrike3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Psywave.wav b/public/audio/battle_anims/PRSFX- Psywave.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Psywave.wav rename to public/audio/battle_anims/PRSFX- Psywave.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulse Evolution1.wav b/public/audio/battle_anims/PRSFX- Pulse Evolution1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulse Evolution1.wav rename to public/audio/battle_anims/PRSFX- Pulse Evolution1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulse Evolution2.wav b/public/audio/battle_anims/PRSFX- Pulse Evolution2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulse Evolution2.wav rename to public/audio/battle_anims/PRSFX- Pulse Evolution2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulverizing Pancake1.wav b/public/audio/battle_anims/PRSFX- Pulverizing Pancake1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulverizing Pancake1.wav rename to public/audio/battle_anims/PRSFX- Pulverizing Pancake1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulverizing Pancake2.wav b/public/audio/battle_anims/PRSFX- Pulverizing Pancake2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulverizing Pancake2.wav rename to public/audio/battle_anims/PRSFX- Pulverizing Pancake2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulverizing Pancake3.wav b/public/audio/battle_anims/PRSFX- Pulverizing Pancake3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulverizing Pancake3.wav rename to public/audio/battle_anims/PRSFX- Pulverizing Pancake3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulverizing Pancake4.wav b/public/audio/battle_anims/PRSFX- Pulverizing Pancake4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulverizing Pancake4.wav rename to public/audio/battle_anims/PRSFX- Pulverizing Pancake4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pulverizing Pancake5.wav b/public/audio/battle_anims/PRSFX- Pulverizing Pancake5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pulverizing Pancake5.wav rename to public/audio/battle_anims/PRSFX- Pulverizing Pancake5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Punishment1.wav b/public/audio/battle_anims/PRSFX- Punishment1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Punishment1.wav rename to public/audio/battle_anims/PRSFX- Punishment1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Punishment2.wav b/public/audio/battle_anims/PRSFX- Punishment2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Punishment2.wav rename to public/audio/battle_anims/PRSFX- Punishment2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Purify1.wav b/public/audio/battle_anims/PRSFX- Purify1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Purify1.wav rename to public/audio/battle_anims/PRSFX- Purify1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Purify2.wav b/public/audio/battle_anims/PRSFX- Purify2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Purify2.wav rename to public/audio/battle_anims/PRSFX- Purify2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Purify3.wav b/public/audio/battle_anims/PRSFX- Purify3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Purify3.wav rename to public/audio/battle_anims/PRSFX- Purify3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pursuit1.wav b/public/audio/battle_anims/PRSFX- Pursuit1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pursuit1.wav rename to public/audio/battle_anims/PRSFX- Pursuit1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Pursuit2.wav b/public/audio/battle_anims/PRSFX- Pursuit2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Pursuit2.wav rename to public/audio/battle_anims/PRSFX- Pursuit2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Quash.wav b/public/audio/battle_anims/PRSFX- Quash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Quash.wav rename to public/audio/battle_anims/PRSFX- Quash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Quick Attack.wav b/public/audio/battle_anims/PRSFX- Quick Attack.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Quick Attack.wav rename to public/audio/battle_anims/PRSFX- Quick Attack.wav diff --git a/public/audio/se/battle_anims/PRSFX- Quick Guard.wav b/public/audio/battle_anims/PRSFX- Quick Guard.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Quick Guard.wav rename to public/audio/battle_anims/PRSFX- Quick Guard.wav diff --git a/public/audio/se/battle_anims/PRSFX- Quiver Dance.wav b/public/audio/battle_anims/PRSFX- Quiver Dance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Quiver Dance.wav rename to public/audio/battle_anims/PRSFX- Quiver Dance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rage Powder.wav b/public/audio/battle_anims/PRSFX- Rage Powder.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rage Powder.wav rename to public/audio/battle_anims/PRSFX- Rage Powder.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rage1.wav b/public/audio/battle_anims/PRSFX- Rage1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rage1.wav rename to public/audio/battle_anims/PRSFX- Rage1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rage2.wav b/public/audio/battle_anims/PRSFX- Rage2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rage2.wav rename to public/audio/battle_anims/PRSFX- Rage2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rain Dance.wav b/public/audio/battle_anims/PRSFX- Rain Dance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rain Dance.wav rename to public/audio/battle_anims/PRSFX- Rain Dance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rain.wav b/public/audio/battle_anims/PRSFX- Rain.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rain.wav rename to public/audio/battle_anims/PRSFX- Rain.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rainbow Field.wav b/public/audio/battle_anims/PRSFX- Rainbow Field.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rainbow Field.wav rename to public/audio/battle_anims/PRSFX- Rainbow Field.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rapid Spin.wav b/public/audio/battle_anims/PRSFX- Rapid Spin.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rapid Spin.wav rename to public/audio/battle_anims/PRSFX- Rapid Spin.wav diff --git a/public/audio/se/battle_anims/PRSFX- Razor Leaf1.wav b/public/audio/battle_anims/PRSFX- Razor Leaf1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Razor Leaf1.wav rename to public/audio/battle_anims/PRSFX- Razor Leaf1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Razor Leaf2.wav b/public/audio/battle_anims/PRSFX- Razor Leaf2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Razor Leaf2.wav rename to public/audio/battle_anims/PRSFX- Razor Leaf2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Razor Shell.wav b/public/audio/battle_anims/PRSFX- Razor Shell.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Razor Shell.wav rename to public/audio/battle_anims/PRSFX- Razor Shell.wav diff --git a/public/audio/se/battle_anims/PRSFX- Razor Wind1.wav b/public/audio/battle_anims/PRSFX- Razor Wind1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Razor Wind1.wav rename to public/audio/battle_anims/PRSFX- Razor Wind1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Razor Wind2.wav b/public/audio/battle_anims/PRSFX- Razor Wind2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Razor Wind2.wav rename to public/audio/battle_anims/PRSFX- Razor Wind2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Recover.wav b/public/audio/battle_anims/PRSFX- Recover.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Recover.wav rename to public/audio/battle_anims/PRSFX- Recover.wav diff --git a/public/audio/se/battle_anims/PRSFX- Recycle.wav b/public/audio/battle_anims/PRSFX- Recycle.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Recycle.wav rename to public/audio/battle_anims/PRSFX- Recycle.wav diff --git a/public/audio/se/battle_anims/PRSFX- Reflect Type.wav b/public/audio/battle_anims/PRSFX- Reflect Type.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Reflect Type.wav rename to public/audio/battle_anims/PRSFX- Reflect Type.wav diff --git a/public/audio/se/battle_anims/PRSFX- Reflect.wav b/public/audio/battle_anims/PRSFX- Reflect.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Reflect.wav rename to public/audio/battle_anims/PRSFX- Reflect.wav diff --git a/public/audio/se/battle_anims/PRSFX- Refresh.wav b/public/audio/battle_anims/PRSFX- Refresh.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Refresh.wav rename to public/audio/battle_anims/PRSFX- Refresh.wav diff --git a/public/audio/se/battle_anims/PRSFX- Relic Song1.wav b/public/audio/battle_anims/PRSFX- Relic Song1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Relic Song1.wav rename to public/audio/battle_anims/PRSFX- Relic Song1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Relic Song2.wav b/public/audio/battle_anims/PRSFX- Relic Song2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Relic Song2.wav rename to public/audio/battle_anims/PRSFX- Relic Song2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Retaliate1.wav b/public/audio/battle_anims/PRSFX- Retaliate1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Retaliate1.wav rename to public/audio/battle_anims/PRSFX- Retaliate1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Retaliate2.wav b/public/audio/battle_anims/PRSFX- Retaliate2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Retaliate2.wav rename to public/audio/battle_anims/PRSFX- Retaliate2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Return1.wav b/public/audio/battle_anims/PRSFX- Return1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Return1.wav rename to public/audio/battle_anims/PRSFX- Return1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Return2.wav b/public/audio/battle_anims/PRSFX- Return2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Return2.wav rename to public/audio/battle_anims/PRSFX- Return2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Revenge1.wav b/public/audio/battle_anims/PRSFX- Revenge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Revenge1.wav rename to public/audio/battle_anims/PRSFX- Revenge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Revenge2.wav b/public/audio/battle_anims/PRSFX- Revenge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Revenge2.wav rename to public/audio/battle_anims/PRSFX- Revenge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Reversal1.wav b/public/audio/battle_anims/PRSFX- Reversal1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Reversal1.wav rename to public/audio/battle_anims/PRSFX- Reversal1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Reversal2.wav b/public/audio/battle_anims/PRSFX- Reversal2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Reversal2.wav rename to public/audio/battle_anims/PRSFX- Reversal2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Roar of Time.wav b/public/audio/battle_anims/PRSFX- Roar of Time.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Roar of Time.wav rename to public/audio/battle_anims/PRSFX- Roar of Time.wav diff --git a/public/audio/se/battle_anims/PRSFX- Roar.wav b/public/audio/battle_anims/PRSFX- Roar.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Roar.wav rename to public/audio/battle_anims/PRSFX- Roar.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Blast.wav b/public/audio/battle_anims/PRSFX- Rock Blast.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Blast.wav rename to public/audio/battle_anims/PRSFX- Rock Blast.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Climb.wav b/public/audio/battle_anims/PRSFX- Rock Climb.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Climb.wav rename to public/audio/battle_anims/PRSFX- Rock Climb.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Polish.wav b/public/audio/battle_anims/PRSFX- Rock Polish.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Polish.wav rename to public/audio/battle_anims/PRSFX- Rock Polish.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Slide.wav b/public/audio/battle_anims/PRSFX- Rock Slide.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Slide.wav rename to public/audio/battle_anims/PRSFX- Rock Slide.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Smash.wav b/public/audio/battle_anims/PRSFX- Rock Smash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Smash.wav rename to public/audio/battle_anims/PRSFX- Rock Smash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Throw1.wav b/public/audio/battle_anims/PRSFX- Rock Throw1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Throw1.wav rename to public/audio/battle_anims/PRSFX- Rock Throw1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Throw2.wav b/public/audio/battle_anims/PRSFX- Rock Throw2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Throw2.wav rename to public/audio/battle_anims/PRSFX- Rock Throw2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Tomb.wav b/public/audio/battle_anims/PRSFX- Rock Tomb.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Tomb.wav rename to public/audio/battle_anims/PRSFX- Rock Tomb.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Wrecker1.wav b/public/audio/battle_anims/PRSFX- Rock Wrecker1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Wrecker1.wav rename to public/audio/battle_anims/PRSFX- Rock Wrecker1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rock Wrecker2.wav b/public/audio/battle_anims/PRSFX- Rock Wrecker2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rock Wrecker2.wav rename to public/audio/battle_anims/PRSFX- Rock Wrecker2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Roleplay.wav b/public/audio/battle_anims/PRSFX- Roleplay.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Roleplay.wav rename to public/audio/battle_anims/PRSFX- Roleplay.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rolling Kick.wav b/public/audio/battle_anims/PRSFX- Rolling Kick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rolling Kick.wav rename to public/audio/battle_anims/PRSFX- Rolling Kick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rollout1.wav b/public/audio/battle_anims/PRSFX- Rollout1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rollout1.wav rename to public/audio/battle_anims/PRSFX- Rollout1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rollout2.wav b/public/audio/battle_anims/PRSFX- Rollout2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rollout2.wav rename to public/audio/battle_anims/PRSFX- Rollout2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Roost1.wav b/public/audio/battle_anims/PRSFX- Roost1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Roost1.wav rename to public/audio/battle_anims/PRSFX- Roost1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Roost2.wav b/public/audio/battle_anims/PRSFX- Roost2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Roost2.wav rename to public/audio/battle_anims/PRSFX- Roost2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Rototiller.wav b/public/audio/battle_anims/PRSFX- Rototiller.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Rototiller.wav rename to public/audio/battle_anims/PRSFX- Rototiller.wav diff --git a/public/audio/se/battle_anims/PRSFX- Round.wav b/public/audio/battle_anims/PRSFX- Round.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Round.wav rename to public/audio/battle_anims/PRSFX- Round.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sacred Fire1.wav b/public/audio/battle_anims/PRSFX- Sacred Fire1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sacred Fire1.wav rename to public/audio/battle_anims/PRSFX- Sacred Fire1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sacred Fire2.wav b/public/audio/battle_anims/PRSFX- Sacred Fire2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sacred Fire2.wav rename to public/audio/battle_anims/PRSFX- Sacred Fire2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sacred Sword1.wav b/public/audio/battle_anims/PRSFX- Sacred Sword1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sacred Sword1.wav rename to public/audio/battle_anims/PRSFX- Sacred Sword1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sacred Sword2.wav b/public/audio/battle_anims/PRSFX- Sacred Sword2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sacred Sword2.wav rename to public/audio/battle_anims/PRSFX- Sacred Sword2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Safeguard.wav b/public/audio/battle_anims/PRSFX- Safeguard.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Safeguard.wav rename to public/audio/battle_anims/PRSFX- Safeguard.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sand Attack.wav b/public/audio/battle_anims/PRSFX- Sand Attack.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sand Attack.wav rename to public/audio/battle_anims/PRSFX- Sand Attack.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sand Tomb.wav b/public/audio/battle_anims/PRSFX- Sand Tomb.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sand Tomb.wav rename to public/audio/battle_anims/PRSFX- Sand Tomb.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sand.wav b/public/audio/battle_anims/PRSFX- Sand.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sand.wav rename to public/audio/battle_anims/PRSFX- Sand.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sandstorm.wav b/public/audio/battle_anims/PRSFX- Sandstorm.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sandstorm.wav rename to public/audio/battle_anims/PRSFX- Sandstorm.wav diff --git a/public/audio/se/battle_anims/PRSFX- Scald1.wav b/public/audio/battle_anims/PRSFX- Scald1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Scald1.wav rename to public/audio/battle_anims/PRSFX- Scald1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Scald2.wav b/public/audio/battle_anims/PRSFX- Scald2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Scald2.wav rename to public/audio/battle_anims/PRSFX- Scald2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Scary Face.wav b/public/audio/battle_anims/PRSFX- Scary Face.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Scary Face.wav rename to public/audio/battle_anims/PRSFX- Scary Face.wav diff --git a/public/audio/se/battle_anims/PRSFX- Scratch.wav b/public/audio/battle_anims/PRSFX- Scratch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Scratch.wav rename to public/audio/battle_anims/PRSFX- Scratch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Screech.wav b/public/audio/battle_anims/PRSFX- Screech.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Screech.wav rename to public/audio/battle_anims/PRSFX- Screech.wav diff --git a/public/audio/se/battle_anims/PRSFX- Searing Shot1.wav b/public/audio/battle_anims/PRSFX- Searing Shot1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Searing Shot1.wav rename to public/audio/battle_anims/PRSFX- Searing Shot1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Searing Shot2.wav b/public/audio/battle_anims/PRSFX- Searing Shot2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Searing Shot2.wav rename to public/audio/battle_anims/PRSFX- Searing Shot2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Searing Shot3.wav b/public/audio/battle_anims/PRSFX- Searing Shot3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Searing Shot3.wav rename to public/audio/battle_anims/PRSFX- Searing Shot3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Secret Sword1.wav b/public/audio/battle_anims/PRSFX- Secret Sword1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Secret Sword1.wav rename to public/audio/battle_anims/PRSFX- Secret Sword1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Secret Sword2.wav b/public/audio/battle_anims/PRSFX- Secret Sword2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Secret Sword2.wav rename to public/audio/battle_anims/PRSFX- Secret Sword2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Secret Sword3.wav b/public/audio/battle_anims/PRSFX- Secret Sword3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Secret Sword3.wav rename to public/audio/battle_anims/PRSFX- Secret Sword3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seed Bomb1.wav b/public/audio/battle_anims/PRSFX- Seed Bomb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seed Bomb1.wav rename to public/audio/battle_anims/PRSFX- Seed Bomb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seed Bomb2.wav b/public/audio/battle_anims/PRSFX- Seed Bomb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seed Bomb2.wav rename to public/audio/battle_anims/PRSFX- Seed Bomb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seed Flare1.wav b/public/audio/battle_anims/PRSFX- Seed Flare1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seed Flare1.wav rename to public/audio/battle_anims/PRSFX- Seed Flare1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seed Flare2.wav b/public/audio/battle_anims/PRSFX- Seed Flare2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seed Flare2.wav rename to public/audio/battle_anims/PRSFX- Seed Flare2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seed Flare3.wav b/public/audio/battle_anims/PRSFX- Seed Flare3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seed Flare3.wav rename to public/audio/battle_anims/PRSFX- Seed Flare3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seismic Toss1.wav b/public/audio/battle_anims/PRSFX- Seismic Toss1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seismic Toss1.wav rename to public/audio/battle_anims/PRSFX- Seismic Toss1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seismic Toss2.wav b/public/audio/battle_anims/PRSFX- Seismic Toss2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seismic Toss2.wav rename to public/audio/battle_anims/PRSFX- Seismic Toss2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seismic Toss3.wav b/public/audio/battle_anims/PRSFX- Seismic Toss3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seismic Toss3.wav rename to public/audio/battle_anims/PRSFX- Seismic Toss3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seismic Toss4.wav b/public/audio/battle_anims/PRSFX- Seismic Toss4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seismic Toss4.wav rename to public/audio/battle_anims/PRSFX- Seismic Toss4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Seismic Toss5.wav b/public/audio/battle_anims/PRSFX- Seismic Toss5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Seismic Toss5.wav rename to public/audio/battle_anims/PRSFX- Seismic Toss5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Selfdestruct1.wav b/public/audio/battle_anims/PRSFX- Selfdestruct1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Selfdestruct1.wav rename to public/audio/battle_anims/PRSFX- Selfdestruct1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Selfedestruct2.wav b/public/audio/battle_anims/PRSFX- Selfedestruct2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Selfedestruct2.wav rename to public/audio/battle_anims/PRSFX- Selfedestruct2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Ball1.wav b/public/audio/battle_anims/PRSFX- Shadow Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Ball1.wav rename to public/audio/battle_anims/PRSFX- Shadow Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Ball2.wav b/public/audio/battle_anims/PRSFX- Shadow Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Ball2.wav rename to public/audio/battle_anims/PRSFX- Shadow Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Claw1.wav b/public/audio/battle_anims/PRSFX- Shadow Claw1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Claw1.wav rename to public/audio/battle_anims/PRSFX- Shadow Claw1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Claw2.wav b/public/audio/battle_anims/PRSFX- Shadow Claw2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Claw2.wav rename to public/audio/battle_anims/PRSFX- Shadow Claw2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Force1.wav b/public/audio/battle_anims/PRSFX- Shadow Force1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Force1.wav rename to public/audio/battle_anims/PRSFX- Shadow Force1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Force2.wav b/public/audio/battle_anims/PRSFX- Shadow Force2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Force2.wav rename to public/audio/battle_anims/PRSFX- Shadow Force2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Punch1.wav b/public/audio/battle_anims/PRSFX- Shadow Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Punch1.wav rename to public/audio/battle_anims/PRSFX- Shadow Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Punch2.wav b/public/audio/battle_anims/PRSFX- Shadow Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Punch2.wav rename to public/audio/battle_anims/PRSFX- Shadow Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Sneak1.wav b/public/audio/battle_anims/PRSFX- Shadow Sneak1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Sneak1.wav rename to public/audio/battle_anims/PRSFX- Shadow Sneak1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shadow Sneak2.wav b/public/audio/battle_anims/PRSFX- Shadow Sneak2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shadow Sneak2.wav rename to public/audio/battle_anims/PRSFX- Shadow Sneak2.wav diff --git a/public/audio/se/battle_anims/PRSFX- ShadowBone1.wav b/public/audio/battle_anims/PRSFX- ShadowBone1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- ShadowBone1.wav rename to public/audio/battle_anims/PRSFX- ShadowBone1.wav diff --git a/public/audio/se/battle_anims/PRSFX- ShadowBone2.wav b/public/audio/battle_anims/PRSFX- ShadowBone2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- ShadowBone2.wav rename to public/audio/battle_anims/PRSFX- ShadowBone2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sharpen.wav b/public/audio/battle_anims/PRSFX- Sharpen.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sharpen.wav rename to public/audio/battle_anims/PRSFX- Sharpen.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shattered Psyche1.wav b/public/audio/battle_anims/PRSFX- Shattered Psyche1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shattered Psyche1.wav rename to public/audio/battle_anims/PRSFX- Shattered Psyche1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shattered Psyche2.wav b/public/audio/battle_anims/PRSFX- Shattered Psyche2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shattered Psyche2.wav rename to public/audio/battle_anims/PRSFX- Shattered Psyche2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shattered Psyche3.wav b/public/audio/battle_anims/PRSFX- Shattered Psyche3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shattered Psyche3.wav rename to public/audio/battle_anims/PRSFX- Shattered Psyche3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sheer Cold.wav b/public/audio/battle_anims/PRSFX- Sheer Cold.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sheer Cold.wav rename to public/audio/battle_anims/PRSFX- Sheer Cold.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shell Smash1.wav b/public/audio/battle_anims/PRSFX- Shell Smash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shell Smash1.wav rename to public/audio/battle_anims/PRSFX- Shell Smash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shell Smash2.wav b/public/audio/battle_anims/PRSFX- Shell Smash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shell Smash2.wav rename to public/audio/battle_anims/PRSFX- Shell Smash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shell Trap1.wav b/public/audio/battle_anims/PRSFX- Shell Trap1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shell Trap1.wav rename to public/audio/battle_anims/PRSFX- Shell Trap1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shell Trap2.wav b/public/audio/battle_anims/PRSFX- Shell Trap2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shell Trap2.wav rename to public/audio/battle_anims/PRSFX- Shell Trap2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shell Trap3.wav b/public/audio/battle_anims/PRSFX- Shell Trap3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shell Trap3.wav rename to public/audio/battle_anims/PRSFX- Shell Trap3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shift Gear.wav b/public/audio/battle_anims/PRSFX- Shift Gear.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shift Gear.wav rename to public/audio/battle_anims/PRSFX- Shift Gear.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shiny.wav b/public/audio/battle_anims/PRSFX- Shiny.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shiny.wav rename to public/audio/battle_anims/PRSFX- Shiny.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shockwave.wav b/public/audio/battle_anims/PRSFX- Shockwave.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shockwave.wav rename to public/audio/battle_anims/PRSFX- Shockwave.wav diff --git a/public/audio/se/battle_anims/PRSFX- Shore Up.wav b/public/audio/battle_anims/PRSFX- Shore Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Shore Up.wav rename to public/audio/battle_anims/PRSFX- Shore Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Signal Beam.wav b/public/audio/battle_anims/PRSFX- Signal Beam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Signal Beam.wav rename to public/audio/battle_anims/PRSFX- Signal Beam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Silver Wind.wav b/public/audio/battle_anims/PRSFX- Silver Wind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Silver Wind.wav rename to public/audio/battle_anims/PRSFX- Silver Wind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Simple Beam.wav b/public/audio/battle_anims/PRSFX- Simple Beam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Simple Beam.wav rename to public/audio/battle_anims/PRSFX- Simple Beam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sing.wav b/public/audio/battle_anims/PRSFX- Sing.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sing.wav rename to public/audio/battle_anims/PRSFX- Sing.wav diff --git a/public/audio/se/battle_anims/PRSFX- SinisterArrowRaid1.wav b/public/audio/battle_anims/PRSFX- SinisterArrowRaid1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- SinisterArrowRaid1.wav rename to public/audio/battle_anims/PRSFX- SinisterArrowRaid1.wav diff --git a/public/audio/se/battle_anims/PRSFX- SinisterArrowRaid2.wav b/public/audio/battle_anims/PRSFX- SinisterArrowRaid2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- SinisterArrowRaid2.wav rename to public/audio/battle_anims/PRSFX- SinisterArrowRaid2.wav diff --git a/public/audio/se/battle_anims/PRSFX- SinisterArrowRaid3.wav b/public/audio/battle_anims/PRSFX- SinisterArrowRaid3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- SinisterArrowRaid3.wav rename to public/audio/battle_anims/PRSFX- SinisterArrowRaid3.wav diff --git a/public/audio/se/battle_anims/PRSFX- SinisterArrowRaid4.wav b/public/audio/battle_anims/PRSFX- SinisterArrowRaid4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- SinisterArrowRaid4.wav rename to public/audio/battle_anims/PRSFX- SinisterArrowRaid4.wav diff --git a/public/audio/se/battle_anims/PRSFX- SinisterArrowRaid5.wav b/public/audio/battle_anims/PRSFX- SinisterArrowRaid5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- SinisterArrowRaid5.wav rename to public/audio/battle_anims/PRSFX- SinisterArrowRaid5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sketch.wav b/public/audio/battle_anims/PRSFX- Sketch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sketch.wav rename to public/audio/battle_anims/PRSFX- Sketch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Skill Swap.wav b/public/audio/battle_anims/PRSFX- Skill Swap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Skill Swap.wav rename to public/audio/battle_anims/PRSFX- Skill Swap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Skull Bash1.wav b/public/audio/battle_anims/PRSFX- Skull Bash1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Skull Bash1.wav rename to public/audio/battle_anims/PRSFX- Skull Bash1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Skull Bash2.wav b/public/audio/battle_anims/PRSFX- Skull Bash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Skull Bash2.wav rename to public/audio/battle_anims/PRSFX- Skull Bash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Attack1.wav b/public/audio/battle_anims/PRSFX- Sky Attack1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Attack1.wav rename to public/audio/battle_anims/PRSFX- Sky Attack1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Attack2.wav b/public/audio/battle_anims/PRSFX- Sky Attack2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Attack2.wav rename to public/audio/battle_anims/PRSFX- Sky Attack2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Attack3.wav b/public/audio/battle_anims/PRSFX- Sky Attack3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Attack3.wav rename to public/audio/battle_anims/PRSFX- Sky Attack3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Drop1.wav b/public/audio/battle_anims/PRSFX- Sky Drop1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Drop1.wav rename to public/audio/battle_anims/PRSFX- Sky Drop1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Drop2.wav b/public/audio/battle_anims/PRSFX- Sky Drop2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Drop2.wav rename to public/audio/battle_anims/PRSFX- Sky Drop2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Drop3.wav b/public/audio/battle_anims/PRSFX- Sky Drop3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Drop3.wav rename to public/audio/battle_anims/PRSFX- Sky Drop3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Uppercut1.wav b/public/audio/battle_anims/PRSFX- Sky Uppercut1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Uppercut1.wav rename to public/audio/battle_anims/PRSFX- Sky Uppercut1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sky Uppercut2.wav b/public/audio/battle_anims/PRSFX- Sky Uppercut2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sky Uppercut2.wav rename to public/audio/battle_anims/PRSFX- Sky Uppercut2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Slack Off.wav b/public/audio/battle_anims/PRSFX- Slack Off.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Slack Off.wav rename to public/audio/battle_anims/PRSFX- Slack Off.wav diff --git a/public/audio/se/battle_anims/PRSFX- Slam.wav b/public/audio/battle_anims/PRSFX- Slam.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Slam.wav rename to public/audio/battle_anims/PRSFX- Slam.wav diff --git a/public/audio/se/battle_anims/PRSFX- Slash.wav b/public/audio/battle_anims/PRSFX- Slash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Slash.wav rename to public/audio/battle_anims/PRSFX- Slash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sleep Powder.wav b/public/audio/battle_anims/PRSFX- Sleep Powder.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sleep Powder.wav rename to public/audio/battle_anims/PRSFX- Sleep Powder.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sleep Talk.wav b/public/audio/battle_anims/PRSFX- Sleep Talk.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sleep Talk.wav rename to public/audio/battle_anims/PRSFX- Sleep Talk.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sleep.wav b/public/audio/battle_anims/PRSFX- Sleep.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sleep.wav rename to public/audio/battle_anims/PRSFX- Sleep.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sludge Bomb1.wav b/public/audio/battle_anims/PRSFX- Sludge Bomb1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sludge Bomb1.wav rename to public/audio/battle_anims/PRSFX- Sludge Bomb1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sludge Bomb2.wav b/public/audio/battle_anims/PRSFX- Sludge Bomb2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sludge Bomb2.wav rename to public/audio/battle_anims/PRSFX- Sludge Bomb2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sludge Wave.wav b/public/audio/battle_anims/PRSFX- Sludge Wave.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sludge Wave.wav rename to public/audio/battle_anims/PRSFX- Sludge Wave.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sludge.wav b/public/audio/battle_anims/PRSFX- Sludge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sludge.wav rename to public/audio/battle_anims/PRSFX- Sludge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smack Down1.wav b/public/audio/battle_anims/PRSFX- Smack Down1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smack Down1.wav rename to public/audio/battle_anims/PRSFX- Smack Down1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smack Down2.wav b/public/audio/battle_anims/PRSFX- Smack Down2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smack Down2.wav rename to public/audio/battle_anims/PRSFX- Smack Down2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smack Down3.wav b/public/audio/battle_anims/PRSFX- Smack Down3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smack Down3.wav rename to public/audio/battle_anims/PRSFX- Smack Down3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smart Strike1.wav b/public/audio/battle_anims/PRSFX- Smart Strike1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smart Strike1.wav rename to public/audio/battle_anims/PRSFX- Smart Strike1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smart Strike2.wav b/public/audio/battle_anims/PRSFX- Smart Strike2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smart Strike2.wav rename to public/audio/battle_anims/PRSFX- Smart Strike2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smart Strike3.wav b/public/audio/battle_anims/PRSFX- Smart Strike3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smart Strike3.wav rename to public/audio/battle_anims/PRSFX- Smart Strike3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smart Strike4.wav b/public/audio/battle_anims/PRSFX- Smart Strike4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smart Strike4.wav rename to public/audio/battle_anims/PRSFX- Smart Strike4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smellingsalts.wav b/public/audio/battle_anims/PRSFX- Smellingsalts.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smellingsalts.wav rename to public/audio/battle_anims/PRSFX- Smellingsalts.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smog.wav b/public/audio/battle_anims/PRSFX- Smog.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smog.wav rename to public/audio/battle_anims/PRSFX- Smog.wav diff --git a/public/audio/se/battle_anims/PRSFX- Smokescreen.wav b/public/audio/battle_anims/PRSFX- Smokescreen.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Smokescreen.wav rename to public/audio/battle_anims/PRSFX- Smokescreen.wav diff --git a/public/audio/se/battle_anims/PRSFX- Snarl.wav b/public/audio/battle_anims/PRSFX- Snarl.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Snarl.wav rename to public/audio/battle_anims/PRSFX- Snarl.wav diff --git a/public/audio/se/battle_anims/PRSFX- Snatch.wav b/public/audio/battle_anims/PRSFX- Snatch.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Snatch.wav rename to public/audio/battle_anims/PRSFX- Snatch.wav diff --git a/public/audio/se/battle_anims/PRSFX- Snore.wav b/public/audio/battle_anims/PRSFX- Snore.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Snore.wav rename to public/audio/battle_anims/PRSFX- Snore.wav diff --git a/public/audio/se/battle_anims/PRSFX- Soak.wav b/public/audio/battle_anims/PRSFX- Soak.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Soak.wav rename to public/audio/battle_anims/PRSFX- Soak.wav diff --git a/public/audio/se/battle_anims/PRSFX- Softboiled1.wav b/public/audio/battle_anims/PRSFX- Softboiled1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Softboiled1.wav rename to public/audio/battle_anims/PRSFX- Softboiled1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Softboiled2.wav b/public/audio/battle_anims/PRSFX- Softboiled2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Softboiled2.wav rename to public/audio/battle_anims/PRSFX- Softboiled2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Softboiled3.wav b/public/audio/battle_anims/PRSFX- Softboiled3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Softboiled3.wav rename to public/audio/battle_anims/PRSFX- Softboiled3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Solar Beam1.wav b/public/audio/battle_anims/PRSFX- Solar Beam1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Solar Beam1.wav rename to public/audio/battle_anims/PRSFX- Solar Beam1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Solar Beam2.wav b/public/audio/battle_anims/PRSFX- Solar Beam2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Solar Beam2.wav rename to public/audio/battle_anims/PRSFX- Solar Beam2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sonic Boom1.wav b/public/audio/battle_anims/PRSFX- Sonic Boom1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sonic Boom1.wav rename to public/audio/battle_anims/PRSFX- Sonic Boom1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sonic Boom2.wav b/public/audio/battle_anims/PRSFX- Sonic Boom2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sonic Boom2.wav rename to public/audio/battle_anims/PRSFX- Sonic Boom2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spacial Rend.wav b/public/audio/battle_anims/PRSFX- Spacial Rend.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spacial Rend.wav rename to public/audio/battle_anims/PRSFX- Spacial Rend.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spark1.wav b/public/audio/battle_anims/PRSFX- Spark1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spark1.wav rename to public/audio/battle_anims/PRSFX- Spark1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spark2.wav b/public/audio/battle_anims/PRSFX- Spark2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spark2.wav rename to public/audio/battle_anims/PRSFX- Spark2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sparkling Aria1.wav b/public/audio/battle_anims/PRSFX- Sparkling Aria1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sparkling Aria1.wav rename to public/audio/battle_anims/PRSFX- Sparkling Aria1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sparkling Aria2.wav b/public/audio/battle_anims/PRSFX- Sparkling Aria2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sparkling Aria2.wav rename to public/audio/battle_anims/PRSFX- Sparkling Aria2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sparkling Aria3.wav b/public/audio/battle_anims/PRSFX- Sparkling Aria3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sparkling Aria3.wav rename to public/audio/battle_anims/PRSFX- Sparkling Aria3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spectral Thief1.wav b/public/audio/battle_anims/PRSFX- Spectral Thief1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spectral Thief1.wav rename to public/audio/battle_anims/PRSFX- Spectral Thief1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spectral Thief2.wav b/public/audio/battle_anims/PRSFX- Spectral Thief2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spectral Thief2.wav rename to public/audio/battle_anims/PRSFX- Spectral Thief2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spectral Thief3.wav b/public/audio/battle_anims/PRSFX- Spectral Thief3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spectral Thief3.wav rename to public/audio/battle_anims/PRSFX- Spectral Thief3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spectral Thief4.wav b/public/audio/battle_anims/PRSFX- Spectral Thief4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spectral Thief4.wav rename to public/audio/battle_anims/PRSFX- Spectral Thief4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Speed Swap.wav b/public/audio/battle_anims/PRSFX- Speed Swap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Speed Swap.wav rename to public/audio/battle_anims/PRSFX- Speed Swap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spider Web1.wav b/public/audio/battle_anims/PRSFX- Spider Web1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spider Web1.wav rename to public/audio/battle_anims/PRSFX- Spider Web1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spider Web2.wav b/public/audio/battle_anims/PRSFX- Spider Web2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spider Web2.wav rename to public/audio/battle_anims/PRSFX- Spider Web2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spike Cannon.wav b/public/audio/battle_anims/PRSFX- Spike Cannon.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spike Cannon.wav rename to public/audio/battle_anims/PRSFX- Spike Cannon.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spikes1.wav b/public/audio/battle_anims/PRSFX- Spikes1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spikes1.wav rename to public/audio/battle_anims/PRSFX- Spikes1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spikes2.wav b/public/audio/battle_anims/PRSFX- Spikes2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spikes2.wav rename to public/audio/battle_anims/PRSFX- Spikes2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spiky Shield1.wav b/public/audio/battle_anims/PRSFX- Spiky Shield1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spiky Shield1.wav rename to public/audio/battle_anims/PRSFX- Spiky Shield1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spiky Shield2.wav b/public/audio/battle_anims/PRSFX- Spiky Shield2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spiky Shield2.wav rename to public/audio/battle_anims/PRSFX- Spiky Shield2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spirit Shackle1.wav b/public/audio/battle_anims/PRSFX- Spirit Shackle1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spirit Shackle1.wav rename to public/audio/battle_anims/PRSFX- Spirit Shackle1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spirit Shackle2.wav b/public/audio/battle_anims/PRSFX- Spirit Shackle2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spirit Shackle2.wav rename to public/audio/battle_anims/PRSFX- Spirit Shackle2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spirit Shackle3.wav b/public/audio/battle_anims/PRSFX- Spirit Shackle3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spirit Shackle3.wav rename to public/audio/battle_anims/PRSFX- Spirit Shackle3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spirit Shackle4.wav b/public/audio/battle_anims/PRSFX- Spirit Shackle4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spirit Shackle4.wav rename to public/audio/battle_anims/PRSFX- Spirit Shackle4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spit Up.wav b/public/audio/battle_anims/PRSFX- Spit Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spit Up.wav rename to public/audio/battle_anims/PRSFX- Spit Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spite1.wav b/public/audio/battle_anims/PRSFX- Spite1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spite1.wav rename to public/audio/battle_anims/PRSFX- Spite1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spite2.wav b/public/audio/battle_anims/PRSFX- Spite2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spite2.wav rename to public/audio/battle_anims/PRSFX- Spite2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Splash.wav b/public/audio/battle_anims/PRSFX- Splash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Splash.wav rename to public/audio/battle_anims/PRSFX- Splash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spore.wav b/public/audio/battle_anims/PRSFX- Spore.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spore.wav rename to public/audio/battle_anims/PRSFX- Spore.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spotlight1.wav b/public/audio/battle_anims/PRSFX- Spotlight1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spotlight1.wav rename to public/audio/battle_anims/PRSFX- Spotlight1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spotlight2.wav b/public/audio/battle_anims/PRSFX- Spotlight2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spotlight2.wav rename to public/audio/battle_anims/PRSFX- Spotlight2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spotlight3.wav b/public/audio/battle_anims/PRSFX- Spotlight3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spotlight3.wav rename to public/audio/battle_anims/PRSFX- Spotlight3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spotlight4.wav b/public/audio/battle_anims/PRSFX- Spotlight4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spotlight4.wav rename to public/audio/battle_anims/PRSFX- Spotlight4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Spotlight5.wav b/public/audio/battle_anims/PRSFX- Spotlight5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Spotlight5.wav rename to public/audio/battle_anims/PRSFX- Spotlight5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stat Down.wav b/public/audio/battle_anims/PRSFX- Stat Down.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stat Down.wav rename to public/audio/battle_anims/PRSFX- Stat Down.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stat Up.wav b/public/audio/battle_anims/PRSFX- Stat Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stat Up.wav rename to public/audio/battle_anims/PRSFX- Stat Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stealth Rocks.wav b/public/audio/battle_anims/PRSFX- Stealth Rocks.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stealth Rocks.wav rename to public/audio/battle_anims/PRSFX- Stealth Rocks.wav diff --git a/public/audio/se/battle_anims/PRSFX- Steam Eruption1.wav b/public/audio/battle_anims/PRSFX- Steam Eruption1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Steam Eruption1.wav rename to public/audio/battle_anims/PRSFX- Steam Eruption1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Steam Eruption2.wav b/public/audio/battle_anims/PRSFX- Steam Eruption2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Steam Eruption2.wav rename to public/audio/battle_anims/PRSFX- Steam Eruption2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Steamroller1.wav b/public/audio/battle_anims/PRSFX- Steamroller1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Steamroller1.wav rename to public/audio/battle_anims/PRSFX- Steamroller1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Steamroller2.wav b/public/audio/battle_anims/PRSFX- Steamroller2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Steamroller2.wav rename to public/audio/battle_anims/PRSFX- Steamroller2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Steel Wing.wav b/public/audio/battle_anims/PRSFX- Steel Wing.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Steel Wing.wav rename to public/audio/battle_anims/PRSFX- Steel Wing.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sticky Web.wav b/public/audio/battle_anims/PRSFX- Sticky Web.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sticky Web.wav rename to public/audio/battle_anims/PRSFX- Sticky Web.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stockpile.wav b/public/audio/battle_anims/PRSFX- Stockpile.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stockpile.wav rename to public/audio/battle_anims/PRSFX- Stockpile.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stomp.wav b/public/audio/battle_anims/PRSFX- Stomp.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stomp.wav rename to public/audio/battle_anims/PRSFX- Stomp.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stomping Tantrum.wav b/public/audio/battle_anims/PRSFX- Stomping Tantrum.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stomping Tantrum.wav rename to public/audio/battle_anims/PRSFX- Stomping Tantrum.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stone Edge.wav b/public/audio/battle_anims/PRSFX- Stone Edge.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stone Edge.wav rename to public/audio/battle_anims/PRSFX- Stone Edge.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stored Power1.wav b/public/audio/battle_anims/PRSFX- Stored Power1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stored Power1.wav rename to public/audio/battle_anims/PRSFX- Stored Power1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stored Power2.wav b/public/audio/battle_anims/PRSFX- Stored Power2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stored Power2.wav rename to public/audio/battle_anims/PRSFX- Stored Power2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Storm Throw1.wav b/public/audio/battle_anims/PRSFX- Storm Throw1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Storm Throw1.wav rename to public/audio/battle_anims/PRSFX- Storm Throw1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Storm Throw2.wav b/public/audio/battle_anims/PRSFX- Storm Throw2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Storm Throw2.wav rename to public/audio/battle_anims/PRSFX- Storm Throw2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Strength Sap1.wav b/public/audio/battle_anims/PRSFX- Strength Sap1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Strength Sap1.wav rename to public/audio/battle_anims/PRSFX- Strength Sap1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Strength Sap2.wav b/public/audio/battle_anims/PRSFX- Strength Sap2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Strength Sap2.wav rename to public/audio/battle_anims/PRSFX- Strength Sap2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Strength Sap3.wav b/public/audio/battle_anims/PRSFX- Strength Sap3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Strength Sap3.wav rename to public/audio/battle_anims/PRSFX- Strength Sap3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Strength.wav b/public/audio/battle_anims/PRSFX- Strength.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Strength.wav rename to public/audio/battle_anims/PRSFX- Strength.wav diff --git a/public/audio/se/battle_anims/PRSFX- String Shot1.wav b/public/audio/battle_anims/PRSFX- String Shot1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- String Shot1.wav rename to public/audio/battle_anims/PRSFX- String Shot1.wav diff --git a/public/audio/se/battle_anims/PRSFX- String Shot2.wav b/public/audio/battle_anims/PRSFX- String Shot2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- String Shot2.wav rename to public/audio/battle_anims/PRSFX- String Shot2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Struggle Bug.wav b/public/audio/battle_anims/PRSFX- Struggle Bug.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Struggle Bug.wav rename to public/audio/battle_anims/PRSFX- Struggle Bug.wav diff --git a/public/audio/se/battle_anims/PRSFX- Struggle.wav b/public/audio/battle_anims/PRSFX- Struggle.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Struggle.wav rename to public/audio/battle_anims/PRSFX- Struggle.wav diff --git a/public/audio/se/battle_anims/PRSFX- Stun Spore.wav b/public/audio/battle_anims/PRSFX- Stun Spore.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Stun Spore.wav rename to public/audio/battle_anims/PRSFX- Stun Spore.wav diff --git a/public/audio/se/battle_anims/PRSFX- Submission.wav b/public/audio/battle_anims/PRSFX- Submission.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Submission.wav rename to public/audio/battle_anims/PRSFX- Submission.wav diff --git a/public/audio/se/battle_anims/PRSFX- Substitute1.wav b/public/audio/battle_anims/PRSFX- Substitute1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Substitute1.wav rename to public/audio/battle_anims/PRSFX- Substitute1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Substitute2.wav b/public/audio/battle_anims/PRSFX- Substitute2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Substitute2.wav rename to public/audio/battle_anims/PRSFX- Substitute2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Subzero Slammer1.wav b/public/audio/battle_anims/PRSFX- Subzero Slammer1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Subzero Slammer1.wav rename to public/audio/battle_anims/PRSFX- Subzero Slammer1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Subzero Slammer2.wav b/public/audio/battle_anims/PRSFX- Subzero Slammer2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Subzero Slammer2.wav rename to public/audio/battle_anims/PRSFX- Subzero Slammer2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Subzero Slammer3.wav b/public/audio/battle_anims/PRSFX- Subzero Slammer3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Subzero Slammer3.wav rename to public/audio/battle_anims/PRSFX- Subzero Slammer3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Subzero Slammer4.wav b/public/audio/battle_anims/PRSFX- Subzero Slammer4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Subzero Slammer4.wav rename to public/audio/battle_anims/PRSFX- Subzero Slammer4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sucker Punch1.wav b/public/audio/battle_anims/PRSFX- Sucker Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sucker Punch1.wav rename to public/audio/battle_anims/PRSFX- Sucker Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sucker Punch2.wav b/public/audio/battle_anims/PRSFX- Sucker Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sucker Punch2.wav rename to public/audio/battle_anims/PRSFX- Sucker Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sunny Day.wav b/public/audio/battle_anims/PRSFX- Sunny Day.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sunny Day.wav rename to public/audio/battle_anims/PRSFX- Sunny Day.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sunny.wav b/public/audio/battle_anims/PRSFX- Sunny.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sunny.wav rename to public/audio/battle_anims/PRSFX- Sunny.wav diff --git a/public/audio/se/battle_anims/PRSFX- Super Fang1.wav b/public/audio/battle_anims/PRSFX- Super Fang1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Super Fang1.wav rename to public/audio/battle_anims/PRSFX- Super Fang1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Super Fang2.wav b/public/audio/battle_anims/PRSFX- Super Fang2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Super Fang2.wav rename to public/audio/battle_anims/PRSFX- Super Fang2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Superpower1.wav b/public/audio/battle_anims/PRSFX- Superpower1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Superpower1.wav rename to public/audio/battle_anims/PRSFX- Superpower1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Superpower2.wav b/public/audio/battle_anims/PRSFX- Superpower2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Superpower2.wav rename to public/audio/battle_anims/PRSFX- Superpower2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Supersonic.wav b/public/audio/battle_anims/PRSFX- Supersonic.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Supersonic.wav rename to public/audio/battle_anims/PRSFX- Supersonic.wav diff --git a/public/audio/se/battle_anims/PRSFX- Surf.wav b/public/audio/battle_anims/PRSFX- Surf.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Surf.wav rename to public/audio/battle_anims/PRSFX- Surf.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swagger1.wav b/public/audio/battle_anims/PRSFX- Swagger1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swagger1.wav rename to public/audio/battle_anims/PRSFX- Swagger1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swagger2.wav b/public/audio/battle_anims/PRSFX- Swagger2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swagger2.wav rename to public/audio/battle_anims/PRSFX- Swagger2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swallow.wav b/public/audio/battle_anims/PRSFX- Swallow.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swallow.wav rename to public/audio/battle_anims/PRSFX- Swallow.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sweet Kiss1.wav b/public/audio/battle_anims/PRSFX- Sweet Kiss1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sweet Kiss1.wav rename to public/audio/battle_anims/PRSFX- Sweet Kiss1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sweet Kiss2.wav b/public/audio/battle_anims/PRSFX- Sweet Kiss2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sweet Kiss2.wav rename to public/audio/battle_anims/PRSFX- Sweet Kiss2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Sweet Scent.wav b/public/audio/battle_anims/PRSFX- Sweet Scent.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Sweet Scent.wav rename to public/audio/battle_anims/PRSFX- Sweet Scent.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swift1.wav b/public/audio/battle_anims/PRSFX- Swift1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swift1.wav rename to public/audio/battle_anims/PRSFX- Swift1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swift2.wav b/public/audio/battle_anims/PRSFX- Swift2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swift2.wav rename to public/audio/battle_anims/PRSFX- Swift2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Switcheroo.wav b/public/audio/battle_anims/PRSFX- Switcheroo.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Switcheroo.wav rename to public/audio/battle_anims/PRSFX- Switcheroo.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swords Dance1.wav b/public/audio/battle_anims/PRSFX- Swords Dance1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swords Dance1.wav rename to public/audio/battle_anims/PRSFX- Swords Dance1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Swords Dance2.wav b/public/audio/battle_anims/PRSFX- Swords Dance2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Swords Dance2.wav rename to public/audio/battle_anims/PRSFX- Swords Dance2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Synchronoise.wav b/public/audio/battle_anims/PRSFX- Synchronoise.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Synchronoise.wav rename to public/audio/battle_anims/PRSFX- Synchronoise.wav diff --git a/public/audio/se/battle_anims/PRSFX- Synthesis.wav b/public/audio/battle_anims/PRSFX- Synthesis.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Synthesis.wav rename to public/audio/battle_anims/PRSFX- Synthesis.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tackle.wav b/public/audio/battle_anims/PRSFX- Tackle.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tackle.wav rename to public/audio/battle_anims/PRSFX- Tackle.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tail Glow.wav b/public/audio/battle_anims/PRSFX- Tail Glow.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tail Glow.wav rename to public/audio/battle_anims/PRSFX- Tail Glow.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tail Slap.wav b/public/audio/battle_anims/PRSFX- Tail Slap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tail Slap.wav rename to public/audio/battle_anims/PRSFX- Tail Slap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tail Whip.wav b/public/audio/battle_anims/PRSFX- Tail Whip.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tail Whip.wav rename to public/audio/battle_anims/PRSFX- Tail Whip.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tailwind.wav b/public/audio/battle_anims/PRSFX- Tailwind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tailwind.wav rename to public/audio/battle_anims/PRSFX- Tailwind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Take Down1.wav b/public/audio/battle_anims/PRSFX- Take Down1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Take Down1.wav rename to public/audio/battle_anims/PRSFX- Take Down1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Take Down2.wav b/public/audio/battle_anims/PRSFX- Take Down2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Take Down2.wav rename to public/audio/battle_anims/PRSFX- Take Down2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Taunt1.wav b/public/audio/battle_anims/PRSFX- Taunt1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Taunt1.wav rename to public/audio/battle_anims/PRSFX- Taunt1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Taunt2.wav b/public/audio/battle_anims/PRSFX- Taunt2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Taunt2.wav rename to public/audio/battle_anims/PRSFX- Taunt2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Taunt3.wav b/public/audio/battle_anims/PRSFX- Taunt3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Taunt3.wav rename to public/audio/battle_anims/PRSFX- Taunt3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tearful Look1.wav b/public/audio/battle_anims/PRSFX- Tearful Look1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tearful Look1.wav rename to public/audio/battle_anims/PRSFX- Tearful Look1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tearful Look2.wav b/public/audio/battle_anims/PRSFX- Tearful Look2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tearful Look2.wav rename to public/audio/battle_anims/PRSFX- Tearful Look2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tearful Look3.wav b/public/audio/battle_anims/PRSFX- Tearful Look3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tearful Look3.wav rename to public/audio/battle_anims/PRSFX- Tearful Look3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Techno Blast 1.wav b/public/audio/battle_anims/PRSFX- Techno Blast 1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Techno Blast 1.wav rename to public/audio/battle_anims/PRSFX- Techno Blast 1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Techno Blast 2.wav b/public/audio/battle_anims/PRSFX- Techno Blast 2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Techno Blast 2.wav rename to public/audio/battle_anims/PRSFX- Techno Blast 2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Techno Blast 3.wav b/public/audio/battle_anims/PRSFX- Techno Blast 3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Techno Blast 3.wav rename to public/audio/battle_anims/PRSFX- Techno Blast 3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Teeter Dance.wav b/public/audio/battle_anims/PRSFX- Teeter Dance.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Teeter Dance.wav rename to public/audio/battle_anims/PRSFX- Teeter Dance.wav diff --git a/public/audio/se/battle_anims/PRSFX- Telekinesis.wav b/public/audio/battle_anims/PRSFX- Telekinesis.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Telekinesis.wav rename to public/audio/battle_anims/PRSFX- Telekinesis.wav diff --git a/public/audio/se/battle_anims/PRSFX- Teleport.wav b/public/audio/battle_anims/PRSFX- Teleport.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Teleport.wav rename to public/audio/battle_anims/PRSFX- Teleport.wav diff --git a/public/audio/se/battle_anims/PRSFX- Theif1.wav b/public/audio/battle_anims/PRSFX- Theif1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Theif1.wav rename to public/audio/battle_anims/PRSFX- Theif1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Theif2.wav b/public/audio/battle_anims/PRSFX- Theif2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Theif2.wav rename to public/audio/battle_anims/PRSFX- Theif2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thousand Arrows1.wav b/public/audio/battle_anims/PRSFX- Thousand Arrows1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thousand Arrows1.wav rename to public/audio/battle_anims/PRSFX- Thousand Arrows1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thousand Arrows2.wav b/public/audio/battle_anims/PRSFX- Thousand Arrows2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thousand Arrows2.wav rename to public/audio/battle_anims/PRSFX- Thousand Arrows2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thousand Waves1.wav b/public/audio/battle_anims/PRSFX- Thousand Waves1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thousand Waves1.wav rename to public/audio/battle_anims/PRSFX- Thousand Waves1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thousand Waves2.wav b/public/audio/battle_anims/PRSFX- Thousand Waves2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thousand Waves2.wav rename to public/audio/battle_anims/PRSFX- Thousand Waves2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thrash.wav b/public/audio/battle_anims/PRSFX- Thrash.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thrash.wav rename to public/audio/battle_anims/PRSFX- Thrash.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thrash2.wav b/public/audio/battle_anims/PRSFX- Thrash2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thrash2.wav rename to public/audio/battle_anims/PRSFX- Thrash2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Throat Chop1.wav b/public/audio/battle_anims/PRSFX- Throat Chop1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Throat Chop1.wav rename to public/audio/battle_anims/PRSFX- Throat Chop1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Throat Chop2.wav b/public/audio/battle_anims/PRSFX- Throat Chop2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Throat Chop2.wav rename to public/audio/battle_anims/PRSFX- Throat Chop2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Throat Chop3.wav b/public/audio/battle_anims/PRSFX- Throat Chop3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Throat Chop3.wav rename to public/audio/battle_anims/PRSFX- Throat Chop3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Throat Chop4.wav b/public/audio/battle_anims/PRSFX- Throat Chop4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Throat Chop4.wav rename to public/audio/battle_anims/PRSFX- Throat Chop4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Throat Chop5.wav b/public/audio/battle_anims/PRSFX- Throat Chop5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Throat Chop5.wav rename to public/audio/battle_anims/PRSFX- Throat Chop5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunder Fang.wav b/public/audio/battle_anims/PRSFX- Thunder Fang.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunder Fang.wav rename to public/audio/battle_anims/PRSFX- Thunder Fang.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunder Punch1.wav b/public/audio/battle_anims/PRSFX- Thunder Punch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunder Punch1.wav rename to public/audio/battle_anims/PRSFX- Thunder Punch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunder Punch2.wav b/public/audio/battle_anims/PRSFX- Thunder Punch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunder Punch2.wav rename to public/audio/battle_anims/PRSFX- Thunder Punch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunder Wave.wav b/public/audio/battle_anims/PRSFX- Thunder Wave.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunder Wave.wav rename to public/audio/battle_anims/PRSFX- Thunder Wave.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunder.wav b/public/audio/battle_anims/PRSFX- Thunder.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunder.wav rename to public/audio/battle_anims/PRSFX- Thunder.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunderbolt1.wav b/public/audio/battle_anims/PRSFX- Thunderbolt1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunderbolt1.wav rename to public/audio/battle_anims/PRSFX- Thunderbolt1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thunderbolt2.wav b/public/audio/battle_anims/PRSFX- Thunderbolt2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thunderbolt2.wav rename to public/audio/battle_anims/PRSFX- Thunderbolt2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Thundershock.wav b/public/audio/battle_anims/PRSFX- Thundershock.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Thundershock.wav rename to public/audio/battle_anims/PRSFX- Thundershock.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tickle.wav b/public/audio/battle_anims/PRSFX- Tickle.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tickle.wav rename to public/audio/battle_anims/PRSFX- Tickle.wav diff --git a/public/audio/se/battle_anims/PRSFX- Topsy Turvy.wav b/public/audio/battle_anims/PRSFX- Topsy Turvy.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Topsy Turvy.wav rename to public/audio/battle_anims/PRSFX- Topsy Turvy.wav diff --git a/public/audio/se/battle_anims/PRSFX- Torment1.wav b/public/audio/battle_anims/PRSFX- Torment1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Torment1.wav rename to public/audio/battle_anims/PRSFX- Torment1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Torment2.wav b/public/audio/battle_anims/PRSFX- Torment2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Torment2.wav rename to public/audio/battle_anims/PRSFX- Torment2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic Spikes1.wav b/public/audio/battle_anims/PRSFX- Toxic Spikes1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic Spikes1.wav rename to public/audio/battle_anims/PRSFX- Toxic Spikes1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic Spikes2.wav b/public/audio/battle_anims/PRSFX- Toxic Spikes2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic Spikes2.wav rename to public/audio/battle_anims/PRSFX- Toxic Spikes2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic Thread1.wav b/public/audio/battle_anims/PRSFX- Toxic Thread1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic Thread1.wav rename to public/audio/battle_anims/PRSFX- Toxic Thread1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic Thread2.wav b/public/audio/battle_anims/PRSFX- Toxic Thread2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic Thread2.wav rename to public/audio/battle_anims/PRSFX- Toxic Thread2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic Thread3.wav b/public/audio/battle_anims/PRSFX- Toxic Thread3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic Thread3.wav rename to public/audio/battle_anims/PRSFX- Toxic Thread3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic1.wav b/public/audio/battle_anims/PRSFX- Toxic1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic1.wav rename to public/audio/battle_anims/PRSFX- Toxic1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Toxic2.wav b/public/audio/battle_anims/PRSFX- Toxic2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Toxic2.wav rename to public/audio/battle_anims/PRSFX- Toxic2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trainer.wav b/public/audio/battle_anims/PRSFX- Trainer.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trainer.wav rename to public/audio/battle_anims/PRSFX- Trainer.wav diff --git a/public/audio/se/battle_anims/PRSFX- Transform.wav b/public/audio/battle_anims/PRSFX- Transform.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Transform.wav rename to public/audio/battle_anims/PRSFX- Transform.wav diff --git a/public/audio/se/battle_anims/PRSFX- Tri Attack.wav b/public/audio/battle_anims/PRSFX- Tri Attack.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Tri Attack.wav rename to public/audio/battle_anims/PRSFX- Tri Attack.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trick Room.wav b/public/audio/battle_anims/PRSFX- Trick Room.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trick Room.wav rename to public/audio/battle_anims/PRSFX- Trick Room.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trick or Treat.wav b/public/audio/battle_anims/PRSFX- Trick or Treat.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trick or Treat.wav rename to public/audio/battle_anims/PRSFX- Trick or Treat.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trick.wav b/public/audio/battle_anims/PRSFX- Trick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trick.wav rename to public/audio/battle_anims/PRSFX- Trick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Triple Kick.wav b/public/audio/battle_anims/PRSFX- Triple Kick.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Triple Kick.wav rename to public/audio/battle_anims/PRSFX- Triple Kick.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trop Kick1.wav b/public/audio/battle_anims/PRSFX- Trop Kick1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trop Kick1.wav rename to public/audio/battle_anims/PRSFX- Trop Kick1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trop Kick2.wav b/public/audio/battle_anims/PRSFX- Trop Kick2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trop Kick2.wav rename to public/audio/battle_anims/PRSFX- Trop Kick2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trop Kick3.wav b/public/audio/battle_anims/PRSFX- Trop Kick3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trop Kick3.wav rename to public/audio/battle_anims/PRSFX- Trop Kick3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trump Card1.wav b/public/audio/battle_anims/PRSFX- Trump Card1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trump Card1.wav rename to public/audio/battle_anims/PRSFX- Trump Card1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Trump Card2.wav b/public/audio/battle_anims/PRSFX- Trump Card2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Trump Card2.wav rename to public/audio/battle_anims/PRSFX- Trump Card2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Twineedle1.wav b/public/audio/battle_anims/PRSFX- Twineedle1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Twineedle1.wav rename to public/audio/battle_anims/PRSFX- Twineedle1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Twineedle2.wav b/public/audio/battle_anims/PRSFX- Twineedle2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Twineedle2.wav rename to public/audio/battle_anims/PRSFX- Twineedle2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Twinkle Tackle1.wav b/public/audio/battle_anims/PRSFX- Twinkle Tackle1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Twinkle Tackle1.wav rename to public/audio/battle_anims/PRSFX- Twinkle Tackle1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Twinkle Tackle2.wav b/public/audio/battle_anims/PRSFX- Twinkle Tackle2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Twinkle Tackle2.wav rename to public/audio/battle_anims/PRSFX- Twinkle Tackle2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Twinkle Tackle3.wav b/public/audio/battle_anims/PRSFX- Twinkle Tackle3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Twinkle Tackle3.wav rename to public/audio/battle_anims/PRSFX- Twinkle Tackle3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Twister.wav b/public/audio/battle_anims/PRSFX- Twister.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Twister.wav rename to public/audio/battle_anims/PRSFX- Twister.wav diff --git a/public/audio/se/battle_anims/PRSFX- U-Turn.wav b/public/audio/battle_anims/PRSFX- U-Turn.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- U-Turn.wav rename to public/audio/battle_anims/PRSFX- U-Turn.wav diff --git a/public/audio/se/battle_anims/PRSFX- U-Turn2.wav b/public/audio/battle_anims/PRSFX- U-Turn2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- U-Turn2.wav rename to public/audio/battle_anims/PRSFX- U-Turn2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Uproar1.wav b/public/audio/battle_anims/PRSFX- Uproar1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Uproar1.wav rename to public/audio/battle_anims/PRSFX- Uproar1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Uproar2.wav b/public/audio/battle_anims/PRSFX- Uproar2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Uproar2.wav rename to public/audio/battle_anims/PRSFX- Uproar2.wav diff --git a/public/audio/se/battle_anims/PRSFX- V-Create1.wav b/public/audio/battle_anims/PRSFX- V-Create1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- V-Create1.wav rename to public/audio/battle_anims/PRSFX- V-Create1.wav diff --git a/public/audio/se/battle_anims/PRSFX- V-Create2.wav b/public/audio/battle_anims/PRSFX- V-Create2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- V-Create2.wav rename to public/audio/battle_anims/PRSFX- V-Create2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Vacuum Wave1.wav b/public/audio/battle_anims/PRSFX- Vacuum Wave1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Vacuum Wave1.wav rename to public/audio/battle_anims/PRSFX- Vacuum Wave1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Vacuum Wave2.wav b/public/audio/battle_anims/PRSFX- Vacuum Wave2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Vacuum Wave2.wav rename to public/audio/battle_anims/PRSFX- Vacuum Wave2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Venom Drench.wav b/public/audio/battle_anims/PRSFX- Venom Drench.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Venom Drench.wav rename to public/audio/battle_anims/PRSFX- Venom Drench.wav diff --git a/public/audio/se/battle_anims/PRSFX- Venoshock1.wav b/public/audio/battle_anims/PRSFX- Venoshock1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Venoshock1.wav rename to public/audio/battle_anims/PRSFX- Venoshock1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Venoshock2.wav b/public/audio/battle_anims/PRSFX- Venoshock2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Venoshock2.wav rename to public/audio/battle_anims/PRSFX- Venoshock2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Vice Grip.wav b/public/audio/battle_anims/PRSFX- Vice Grip.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Vice Grip.wav rename to public/audio/battle_anims/PRSFX- Vice Grip.wav diff --git a/public/audio/se/battle_anims/PRSFX- Vine Whip.wav b/public/audio/battle_anims/PRSFX- Vine Whip.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Vine Whip.wav rename to public/audio/battle_anims/PRSFX- Vine Whip.wav diff --git a/public/audio/se/battle_anims/PRSFX- Vital Throw1.wav b/public/audio/battle_anims/PRSFX- Vital Throw1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Vital Throw1.wav rename to public/audio/battle_anims/PRSFX- Vital Throw1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Vital Throw2.wav b/public/audio/battle_anims/PRSFX- Vital Throw2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Vital Throw2.wav rename to public/audio/battle_anims/PRSFX- Vital Throw2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Volt Switch1.wav b/public/audio/battle_anims/PRSFX- Volt Switch1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Volt Switch1.wav rename to public/audio/battle_anims/PRSFX- Volt Switch1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Volt Switch2.wav b/public/audio/battle_anims/PRSFX- Volt Switch2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Volt Switch2.wav rename to public/audio/battle_anims/PRSFX- Volt Switch2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Volt Tackle1.wav b/public/audio/battle_anims/PRSFX- Volt Tackle1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Volt Tackle1.wav rename to public/audio/battle_anims/PRSFX- Volt Tackle1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Volt Tackle2.wav b/public/audio/battle_anims/PRSFX- Volt Tackle2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Volt Tackle2.wav rename to public/audio/battle_anims/PRSFX- Volt Tackle2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wake Up Slap.wav b/public/audio/battle_anims/PRSFX- Wake Up Slap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wake Up Slap.wav rename to public/audio/battle_anims/PRSFX- Wake Up Slap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Gun.wav b/public/audio/battle_anims/PRSFX- Water Gun.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Gun.wav rename to public/audio/battle_anims/PRSFX- Water Gun.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Pledge1.wav b/public/audio/battle_anims/PRSFX- Water Pledge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Pledge1.wav rename to public/audio/battle_anims/PRSFX- Water Pledge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Pledge2.wav b/public/audio/battle_anims/PRSFX- Water Pledge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Pledge2.wav rename to public/audio/battle_anims/PRSFX- Water Pledge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Pulse.wav b/public/audio/battle_anims/PRSFX- Water Pulse.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Pulse.wav rename to public/audio/battle_anims/PRSFX- Water Pulse.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Pulse2.wav b/public/audio/battle_anims/PRSFX- Water Pulse2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Pulse2.wav rename to public/audio/battle_anims/PRSFX- Water Pulse2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Shurkein.wav b/public/audio/battle_anims/PRSFX- Water Shurkein.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Shurkein.wav rename to public/audio/battle_anims/PRSFX- Water Shurkein.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Sport.wav b/public/audio/battle_anims/PRSFX- Water Sport.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Sport.wav rename to public/audio/battle_anims/PRSFX- Water Sport.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Spout1.wav b/public/audio/battle_anims/PRSFX- Water Spout1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Spout1.wav rename to public/audio/battle_anims/PRSFX- Water Spout1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Water Spout2.wav b/public/audio/battle_anims/PRSFX- Water Spout2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Water Spout2.wav rename to public/audio/battle_anims/PRSFX- Water Spout2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Waterfall1.wav b/public/audio/battle_anims/PRSFX- Waterfall1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Waterfall1.wav rename to public/audio/battle_anims/PRSFX- Waterfall1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Waterfall2.wav b/public/audio/battle_anims/PRSFX- Waterfall2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Waterfall2.wav rename to public/audio/battle_anims/PRSFX- Waterfall2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Weather Ball1.wav b/public/audio/battle_anims/PRSFX- Weather Ball1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Weather Ball1.wav rename to public/audio/battle_anims/PRSFX- Weather Ball1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Weather Ball2.wav b/public/audio/battle_anims/PRSFX- Weather Ball2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Weather Ball2.wav rename to public/audio/battle_anims/PRSFX- Weather Ball2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Weather Ball3.wav b/public/audio/battle_anims/PRSFX- Weather Ball3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Weather Ball3.wav rename to public/audio/battle_anims/PRSFX- Weather Ball3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Weather Ball4.wav b/public/audio/battle_anims/PRSFX- Weather Ball4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Weather Ball4.wav rename to public/audio/battle_anims/PRSFX- Weather Ball4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Weather Ball5.wav b/public/audio/battle_anims/PRSFX- Weather Ball5.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Weather Ball5.wav rename to public/audio/battle_anims/PRSFX- Weather Ball5.wav diff --git a/public/audio/se/battle_anims/PRSFX- Weather Ball6.wav b/public/audio/battle_anims/PRSFX- Weather Ball6.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Weather Ball6.wav rename to public/audio/battle_anims/PRSFX- Weather Ball6.wav diff --git a/public/audio/se/battle_anims/PRSFX- Whirlpool.wav b/public/audio/battle_anims/PRSFX- Whirlpool.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Whirlpool.wav rename to public/audio/battle_anims/PRSFX- Whirlpool.wav diff --git a/public/audio/se/battle_anims/PRSFX- Whirlpool2.wav b/public/audio/battle_anims/PRSFX- Whirlpool2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Whirlpool2.wav rename to public/audio/battle_anims/PRSFX- Whirlpool2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Whirlwind.wav b/public/audio/battle_anims/PRSFX- Whirlwind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Whirlwind.wav rename to public/audio/battle_anims/PRSFX- Whirlwind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wide Guard.wav b/public/audio/battle_anims/PRSFX- Wide Guard.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wide Guard.wav rename to public/audio/battle_anims/PRSFX- Wide Guard.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wild Charge1.wav b/public/audio/battle_anims/PRSFX- Wild Charge1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wild Charge1.wav rename to public/audio/battle_anims/PRSFX- Wild Charge1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wild Charge2.wav b/public/audio/battle_anims/PRSFX- Wild Charge2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wild Charge2.wav rename to public/audio/battle_anims/PRSFX- Wild Charge2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Will O Wisp1.wav b/public/audio/battle_anims/PRSFX- Will O Wisp1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Will O Wisp1.wav rename to public/audio/battle_anims/PRSFX- Will O Wisp1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Will O Wisp2.wav b/public/audio/battle_anims/PRSFX- Will O Wisp2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Will O Wisp2.wav rename to public/audio/battle_anims/PRSFX- Will O Wisp2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wind.wav b/public/audio/battle_anims/PRSFX- Wind.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wind.wav rename to public/audio/battle_anims/PRSFX- Wind.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wing Attack1.wav b/public/audio/battle_anims/PRSFX- Wing Attack1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wing Attack1.wav rename to public/audio/battle_anims/PRSFX- Wing Attack1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wing Attack2.wav b/public/audio/battle_anims/PRSFX- Wing Attack2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wing Attack2.wav rename to public/audio/battle_anims/PRSFX- Wing Attack2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wish.wav b/public/audio/battle_anims/PRSFX- Wish.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wish.wav rename to public/audio/battle_anims/PRSFX- Wish.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wish2.wav b/public/audio/battle_anims/PRSFX- Wish2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wish2.wav rename to public/audio/battle_anims/PRSFX- Wish2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Withdraw.wav b/public/audio/battle_anims/PRSFX- Withdraw.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Withdraw.wav rename to public/audio/battle_anims/PRSFX- Withdraw.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wonder Room.wav b/public/audio/battle_anims/PRSFX- Wonder Room.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wonder Room.wav rename to public/audio/battle_anims/PRSFX- Wonder Room.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wood Hammer.wav b/public/audio/battle_anims/PRSFX- Wood Hammer.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wood Hammer.wav rename to public/audio/battle_anims/PRSFX- Wood Hammer.wav diff --git a/public/audio/se/battle_anims/PRSFX- Work Up.wav b/public/audio/battle_anims/PRSFX- Work Up.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Work Up.wav rename to public/audio/battle_anims/PRSFX- Work Up.wav diff --git a/public/audio/se/battle_anims/PRSFX- Worry Seed1.wav b/public/audio/battle_anims/PRSFX- Worry Seed1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Worry Seed1.wav rename to public/audio/battle_anims/PRSFX- Worry Seed1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Worry Seed2.wav b/public/audio/battle_anims/PRSFX- Worry Seed2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Worry Seed2.wav rename to public/audio/battle_anims/PRSFX- Worry Seed2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wrap.wav b/public/audio/battle_anims/PRSFX- Wrap.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wrap.wav rename to public/audio/battle_anims/PRSFX- Wrap.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wring Out1.wav b/public/audio/battle_anims/PRSFX- Wring Out1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wring Out1.wav rename to public/audio/battle_anims/PRSFX- Wring Out1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Wring Out2.wav b/public/audio/battle_anims/PRSFX- Wring Out2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Wring Out2.wav rename to public/audio/battle_anims/PRSFX- Wring Out2.wav diff --git a/public/audio/se/battle_anims/PRSFX- X Scissor.wav b/public/audio/battle_anims/PRSFX- X Scissor.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- X Scissor.wav rename to public/audio/battle_anims/PRSFX- X Scissor.wav diff --git a/public/audio/se/battle_anims/PRSFX- Yawn.wav b/public/audio/battle_anims/PRSFX- Yawn.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Yawn.wav rename to public/audio/battle_anims/PRSFX- Yawn.wav diff --git a/public/audio/se/battle_anims/PRSFX- ZPower2.wav b/public/audio/battle_anims/PRSFX- ZPower2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- ZPower2.wav rename to public/audio/battle_anims/PRSFX- ZPower2.wav diff --git a/public/audio/se/battle_anims/PRSFX- ZPower3.wav b/public/audio/battle_anims/PRSFX- ZPower3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- ZPower3.wav rename to public/audio/battle_anims/PRSFX- ZPower3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zap Cannon1.wav b/public/audio/battle_anims/PRSFX- Zap Cannon1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zap Cannon1.wav rename to public/audio/battle_anims/PRSFX- Zap Cannon1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zap Cannon2.wav b/public/audio/battle_anims/PRSFX- Zap Cannon2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zap Cannon2.wav rename to public/audio/battle_anims/PRSFX- Zap Cannon2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zap Cannon3.wav b/public/audio/battle_anims/PRSFX- Zap Cannon3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zap Cannon3.wav rename to public/audio/battle_anims/PRSFX- Zap Cannon3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zen Headbutt1.wav b/public/audio/battle_anims/PRSFX- Zen Headbutt1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zen Headbutt1.wav rename to public/audio/battle_anims/PRSFX- Zen Headbutt1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zen Headbutt2.wav b/public/audio/battle_anims/PRSFX- Zen Headbutt2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zen Headbutt2.wav rename to public/audio/battle_anims/PRSFX- Zen Headbutt2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zing Zap1.wav b/public/audio/battle_anims/PRSFX- Zing Zap1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zing Zap1.wav rename to public/audio/battle_anims/PRSFX- Zing Zap1.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zing Zap2.wav b/public/audio/battle_anims/PRSFX- Zing Zap2.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zing Zap2.wav rename to public/audio/battle_anims/PRSFX- Zing Zap2.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zing Zap3.wav b/public/audio/battle_anims/PRSFX- Zing Zap3.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zing Zap3.wav rename to public/audio/battle_anims/PRSFX- Zing Zap3.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zing Zap4.wav b/public/audio/battle_anims/PRSFX- Zing Zap4.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zing Zap4.wav rename to public/audio/battle_anims/PRSFX- Zing Zap4.wav diff --git a/public/audio/se/battle_anims/PRSFX- Zpower1.wav b/public/audio/battle_anims/PRSFX- Zpower1.wav similarity index 100% rename from public/audio/se/battle_anims/PRSFX- Zpower1.wav rename to public/audio/battle_anims/PRSFX- Zpower1.wav diff --git a/public/audio/se/battle_anims/Paralyze1.m4a b/public/audio/battle_anims/Paralyze1.m4a similarity index 100% rename from public/audio/se/battle_anims/Paralyze1.m4a rename to public/audio/battle_anims/Paralyze1.m4a diff --git a/public/audio/se/battle_anims/Paralyze3.m4a b/public/audio/battle_anims/Paralyze3.m4a similarity index 100% rename from public/audio/se/battle_anims/Paralyze3.m4a rename to public/audio/battle_anims/Paralyze3.m4a diff --git a/public/audio/se/battle_anims/Poison.m4a b/public/audio/battle_anims/Poison.m4a similarity index 100% rename from public/audio/se/battle_anims/Poison.m4a rename to public/audio/battle_anims/Poison.m4a diff --git a/public/audio/se/battle_anims/Pollen.m4a b/public/audio/battle_anims/Pollen.m4a similarity index 100% rename from public/audio/se/battle_anims/Pollen.m4a rename to public/audio/battle_anims/Pollen.m4a diff --git a/public/audio/se/battle_anims/Present - Heal.mp3 b/public/audio/battle_anims/Present - Heal.mp3 similarity index 100% rename from public/audio/se/battle_anims/Present - Heal.mp3 rename to public/audio/battle_anims/Present - Heal.mp3 diff --git a/public/audio/se/battle_anims/Psych Up.mp3 b/public/audio/battle_anims/Psych Up.mp3 similarity index 100% rename from public/audio/se/battle_anims/Psych Up.mp3 rename to public/audio/battle_anims/Psych Up.mp3 diff --git a/public/audio/se/battle_anims/Psycho Cut.wav b/public/audio/battle_anims/Psycho Cut.wav similarity index 100% rename from public/audio/se/battle_anims/Psycho Cut.wav rename to public/audio/battle_anims/Psycho Cut.wav diff --git a/public/audio/se/battle_anims/Recovery.m4a b/public/audio/battle_anims/Recovery.m4a similarity index 100% rename from public/audio/se/battle_anims/Recovery.m4a rename to public/audio/battle_anims/Recovery.m4a diff --git a/public/audio/se/battle_anims/Refresh.mp3 b/public/audio/battle_anims/Refresh.mp3 similarity index 100% rename from public/audio/se/battle_anims/Refresh.mp3 rename to public/audio/battle_anims/Refresh.mp3 diff --git a/public/audio/se/battle_anims/RockFall1.wav b/public/audio/battle_anims/RockFall1.wav similarity index 100% rename from public/audio/se/battle_anims/RockFall1.wav rename to public/audio/battle_anims/RockFall1.wav diff --git a/public/audio/se/battle_anims/Saint1.m4a b/public/audio/battle_anims/Saint1.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint1.m4a rename to public/audio/battle_anims/Saint1.m4a diff --git a/public/audio/se/battle_anims/Saint3.m4a b/public/audio/battle_anims/Saint3.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint3.m4a rename to public/audio/battle_anims/Saint3.m4a diff --git a/public/audio/se/battle_anims/Saint4.m4a b/public/audio/battle_anims/Saint4.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint4.m4a rename to public/audio/battle_anims/Saint4.m4a diff --git a/public/audio/se/battle_anims/Saint6.m4a b/public/audio/battle_anims/Saint6.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint6.m4a rename to public/audio/battle_anims/Saint6.m4a diff --git a/public/audio/se/battle_anims/Saint7.m4a b/public/audio/battle_anims/Saint7.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint7.m4a rename to public/audio/battle_anims/Saint7.m4a diff --git a/public/audio/se/battle_anims/Saint8.m4a b/public/audio/battle_anims/Saint8.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint8.m4a rename to public/audio/battle_anims/Saint8.m4a diff --git a/public/audio/se/battle_anims/Saint9.m4a b/public/audio/battle_anims/Saint9.m4a similarity index 100% rename from public/audio/se/battle_anims/Saint9.m4a rename to public/audio/battle_anims/Saint9.m4a diff --git a/public/audio/se/battle_anims/Sand.m4a b/public/audio/battle_anims/Sand.m4a similarity index 100% rename from public/audio/se/battle_anims/Sand.m4a rename to public/audio/battle_anims/Sand.m4a diff --git a/public/audio/se/battle_anims/Scary Face.mp3 b/public/audio/battle_anims/Scary Face.mp3 similarity index 100% rename from public/audio/se/battle_anims/Scary Face.mp3 rename to public/audio/battle_anims/Scary Face.mp3 diff --git a/public/audio/se/battle_anims/Select.WAV b/public/audio/battle_anims/Select.WAV similarity index 100% rename from public/audio/se/battle_anims/Select.WAV rename to public/audio/battle_anims/Select.WAV diff --git a/public/audio/se/battle_anims/Shell Smash.mp3 b/public/audio/battle_anims/Shell Smash.mp3 similarity index 100% rename from public/audio/se/battle_anims/Shell Smash.mp3 rename to public/audio/battle_anims/Shell Smash.mp3 diff --git a/public/audio/se/battle_anims/Shiny sparkle.m4a b/public/audio/battle_anims/Shiny sparkle.m4a similarity index 100% rename from public/audio/se/battle_anims/Shiny sparkle.m4a rename to public/audio/battle_anims/Shiny sparkle.m4a diff --git a/public/audio/se/battle_anims/Sing.m4a b/public/audio/battle_anims/Sing.m4a similarity index 100% rename from public/audio/se/battle_anims/Sing.m4a rename to public/audio/battle_anims/Sing.m4a diff --git a/public/audio/se/battle_anims/Slam.mp3 b/public/audio/battle_anims/Slam.mp3 similarity index 100% rename from public/audio/se/battle_anims/Slam.mp3 rename to public/audio/battle_anims/Slam.mp3 diff --git a/public/audio/se/battle_anims/Slash.mp3 b/public/audio/battle_anims/Slash.mp3 similarity index 100% rename from public/audio/se/battle_anims/Slash.mp3 rename to public/audio/battle_anims/Slash.mp3 diff --git a/public/audio/se/battle_anims/Slash1.m4a b/public/audio/battle_anims/Slash1.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash1.m4a rename to public/audio/battle_anims/Slash1.m4a diff --git a/public/audio/se/battle_anims/Slash10.m4a b/public/audio/battle_anims/Slash10.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash10.m4a rename to public/audio/battle_anims/Slash10.m4a diff --git a/public/audio/se/battle_anims/Slash11.m4a b/public/audio/battle_anims/Slash11.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash11.m4a rename to public/audio/battle_anims/Slash11.m4a diff --git a/public/audio/se/battle_anims/Slash2.m4a b/public/audio/battle_anims/Slash2.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash2.m4a rename to public/audio/battle_anims/Slash2.m4a diff --git a/public/audio/se/battle_anims/Slash3.m4a b/public/audio/battle_anims/Slash3.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash3.m4a rename to public/audio/battle_anims/Slash3.m4a diff --git a/public/audio/se/battle_anims/Slash6.m4a b/public/audio/battle_anims/Slash6.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash6.m4a rename to public/audio/battle_anims/Slash6.m4a diff --git a/public/audio/se/battle_anims/Slash8.m4a b/public/audio/battle_anims/Slash8.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash8.m4a rename to public/audio/battle_anims/Slash8.m4a diff --git a/public/audio/se/battle_anims/Slash9.m4a b/public/audio/battle_anims/Slash9.m4a similarity index 100% rename from public/audio/se/battle_anims/Slash9.m4a rename to public/audio/battle_anims/Slash9.m4a diff --git a/public/audio/se/battle_anims/Sleep.m4a b/public/audio/battle_anims/Sleep.m4a similarity index 100% rename from public/audio/se/battle_anims/Sleep.m4a rename to public/audio/battle_anims/Sleep.m4a diff --git a/public/audio/se/battle_anims/Smokescreen.mp3 b/public/audio/battle_anims/Smokescreen.mp3 similarity index 100% rename from public/audio/se/battle_anims/Smokescreen.mp3 rename to public/audio/battle_anims/Smokescreen.mp3 diff --git a/public/audio/se/battle_anims/Snore.mp3 b/public/audio/battle_anims/Snore.mp3 similarity index 100% rename from public/audio/se/battle_anims/Snore.mp3 rename to public/audio/battle_anims/Snore.mp3 diff --git a/public/audio/se/battle_anims/Sound2.m4a b/public/audio/battle_anims/Sound2.m4a similarity index 100% rename from public/audio/se/battle_anims/Sound2.m4a rename to public/audio/battle_anims/Sound2.m4a diff --git a/public/audio/se/battle_anims/Stare.m4a b/public/audio/battle_anims/Stare.m4a similarity index 100% rename from public/audio/se/battle_anims/Stare.m4a rename to public/audio/battle_anims/Stare.m4a diff --git a/public/audio/se/battle_anims/Stone Axe 1.m4a b/public/audio/battle_anims/Stone Axe 1.m4a similarity index 100% rename from public/audio/se/battle_anims/Stone Axe 1.m4a rename to public/audio/battle_anims/Stone Axe 1.m4a diff --git a/public/audio/se/battle_anims/Stone Axe 2.wav b/public/audio/battle_anims/Stone Axe 2.wav similarity index 100% rename from public/audio/se/battle_anims/Stone Axe 2.wav rename to public/audio/battle_anims/Stone Axe 2.wav diff --git a/public/audio/se/battle_anims/Substitute.mp3 b/public/audio/battle_anims/Substitute.mp3 similarity index 100% rename from public/audio/se/battle_anims/Substitute.mp3 rename to public/audio/battle_anims/Substitute.mp3 diff --git a/public/audio/se/battle_anims/Super Fang.mp3 b/public/audio/battle_anims/Super Fang.mp3 similarity index 100% rename from public/audio/se/battle_anims/Super Fang.mp3 rename to public/audio/battle_anims/Super Fang.mp3 diff --git a/public/audio/se/battle_anims/Swagger.mp3 b/public/audio/battle_anims/Swagger.mp3 similarity index 100% rename from public/audio/se/battle_anims/Swagger.mp3 rename to public/audio/battle_anims/Swagger.mp3 diff --git a/public/audio/se/battle_anims/Sweet Scent.m4a b/public/audio/battle_anims/Sweet Scent.m4a similarity index 100% rename from public/audio/se/battle_anims/Sweet Scent.m4a rename to public/audio/battle_anims/Sweet Scent.m4a diff --git a/public/audio/se/battle_anims/Sword1.m4a b/public/audio/battle_anims/Sword1.m4a similarity index 100% rename from public/audio/se/battle_anims/Sword1.m4a rename to public/audio/battle_anims/Sword1.m4a diff --git a/public/audio/se/battle_anims/Sword2.m4a b/public/audio/battle_anims/Sword2.m4a similarity index 100% rename from public/audio/se/battle_anims/Sword2.m4a rename to public/audio/battle_anims/Sword2.m4a diff --git a/public/audio/se/battle_anims/Swords Dance.mp3 b/public/audio/battle_anims/Swords Dance.mp3 similarity index 100% rename from public/audio/se/battle_anims/Swords Dance.mp3 rename to public/audio/battle_anims/Swords Dance.mp3 diff --git a/public/audio/se/battle_anims/Take Down.mp3 b/public/audio/battle_anims/Take Down.mp3 similarity index 100% rename from public/audio/se/battle_anims/Take Down.mp3 rename to public/audio/battle_anims/Take Down.mp3 diff --git a/public/audio/se/battle_anims/Teleport.m4a b/public/audio/battle_anims/Teleport.m4a similarity index 100% rename from public/audio/se/battle_anims/Teleport.m4a rename to public/audio/battle_anims/Teleport.m4a diff --git a/public/audio/se/battle_anims/Thunder1.m4a b/public/audio/battle_anims/Thunder1.m4a similarity index 100% rename from public/audio/se/battle_anims/Thunder1.m4a rename to public/audio/battle_anims/Thunder1.m4a diff --git a/public/audio/se/battle_anims/Thunder3.m4a b/public/audio/battle_anims/Thunder3.m4a similarity index 100% rename from public/audio/se/battle_anims/Thunder3.m4a rename to public/audio/battle_anims/Thunder3.m4a diff --git a/public/audio/se/battle_anims/Thunder4.m4a b/public/audio/battle_anims/Thunder4.m4a similarity index 100% rename from public/audio/se/battle_anims/Thunder4.m4a rename to public/audio/battle_anims/Thunder4.m4a diff --git a/public/audio/se/battle_anims/Thunder9.m4a b/public/audio/battle_anims/Thunder9.m4a similarity index 100% rename from public/audio/se/battle_anims/Thunder9.m4a rename to public/audio/battle_anims/Thunder9.m4a diff --git a/public/audio/se/battle_anims/Trump Card.mp3 b/public/audio/battle_anims/Trump Card.mp3 similarity index 100% rename from public/audio/se/battle_anims/Trump Card.mp3 rename to public/audio/battle_anims/Trump Card.mp3 diff --git a/public/audio/se/battle_anims/Twine.m4a b/public/audio/battle_anims/Twine.m4a similarity index 100% rename from public/audio/se/battle_anims/Twine.m4a rename to public/audio/battle_anims/Twine.m4a diff --git a/public/audio/se/battle_anims/Up.m4a b/public/audio/battle_anims/Up.m4a similarity index 100% rename from public/audio/se/battle_anims/Up.m4a rename to public/audio/battle_anims/Up.m4a diff --git a/public/audio/se/battle_anims/Uproar.mp3 b/public/audio/battle_anims/Uproar.mp3 similarity index 100% rename from public/audio/se/battle_anims/Uproar.mp3 rename to public/audio/battle_anims/Uproar.mp3 diff --git a/public/audio/se/battle_anims/Vice Grip.mp3 b/public/audio/battle_anims/Vice Grip.mp3 similarity index 100% rename from public/audio/se/battle_anims/Vice Grip.mp3 rename to public/audio/battle_anims/Vice Grip.mp3 diff --git a/public/audio/se/battle_anims/Voltorb Flip Explosion.mp3 b/public/audio/battle_anims/Voltorb Flip Explosion.mp3 similarity index 100% rename from public/audio/se/battle_anims/Voltorb Flip Explosion.mp3 rename to public/audio/battle_anims/Voltorb Flip Explosion.mp3 diff --git a/public/audio/se/battle_anims/Voltorb Flip Mark.wav b/public/audio/battle_anims/Voltorb Flip Mark.wav similarity index 100% rename from public/audio/se/battle_anims/Voltorb Flip Mark.wav rename to public/audio/battle_anims/Voltorb Flip Mark.wav diff --git a/public/audio/se/battle_anims/Water1.m4a b/public/audio/battle_anims/Water1.m4a similarity index 100% rename from public/audio/se/battle_anims/Water1.m4a rename to public/audio/battle_anims/Water1.m4a diff --git a/public/audio/se/battle_anims/Water2.m4a b/public/audio/battle_anims/Water2.m4a similarity index 100% rename from public/audio/se/battle_anims/Water2.m4a rename to public/audio/battle_anims/Water2.m4a diff --git a/public/audio/se/battle_anims/Water3.m4a b/public/audio/battle_anims/Water3.m4a similarity index 100% rename from public/audio/se/battle_anims/Water3.m4a rename to public/audio/battle_anims/Water3.m4a diff --git a/public/audio/se/battle_anims/Water5.m4a b/public/audio/battle_anims/Water5.m4a similarity index 100% rename from public/audio/se/battle_anims/Water5.m4a rename to public/audio/battle_anims/Water5.m4a diff --git a/public/audio/se/battle_anims/Weatherball.mp3 b/public/audio/battle_anims/Weatherball.mp3 similarity index 100% rename from public/audio/se/battle_anims/Weatherball.mp3 rename to public/audio/battle_anims/Weatherball.mp3 diff --git a/public/audio/se/battle_anims/Whirlwind.mp3 b/public/audio/battle_anims/Whirlwind.mp3 similarity index 100% rename from public/audio/se/battle_anims/Whirlwind.mp3 rename to public/audio/battle_anims/Whirlwind.mp3 diff --git a/public/audio/se/battle_anims/Wind1.m4a b/public/audio/battle_anims/Wind1.m4a similarity index 100% rename from public/audio/se/battle_anims/Wind1.m4a rename to public/audio/battle_anims/Wind1.m4a diff --git a/public/audio/se/battle_anims/Wind5.m4a b/public/audio/battle_anims/Wind5.m4a similarity index 100% rename from public/audio/se/battle_anims/Wind5.m4a rename to public/audio/battle_anims/Wind5.m4a diff --git a/public/audio/se/battle_anims/Wind7.m4a b/public/audio/battle_anims/Wind7.m4a similarity index 100% rename from public/audio/se/battle_anims/Wind7.m4a rename to public/audio/battle_anims/Wind7.m4a diff --git a/public/audio/se/battle_anims/Wind8.m4a b/public/audio/battle_anims/Wind8.m4a similarity index 100% rename from public/audio/se/battle_anims/Wind8.m4a rename to public/audio/battle_anims/Wind8.m4a diff --git a/public/audio/se/battle_anims/Work Up.mp3 b/public/audio/battle_anims/Work Up.mp3 similarity index 100% rename from public/audio/se/battle_anims/Work Up.mp3 rename to public/audio/battle_anims/Work Up.mp3 diff --git a/public/audio/se/battle_anims/Wring Out.mp3 b/public/audio/battle_anims/Wring Out.mp3 similarity index 100% rename from public/audio/se/battle_anims/Wring Out.mp3 rename to public/audio/battle_anims/Wring Out.mp3 diff --git a/public/audio/se/battle_anims/Yawn.mp3 b/public/audio/battle_anims/Yawn.mp3 similarity index 100% rename from public/audio/se/battle_anims/Yawn.mp3 rename to public/audio/battle_anims/Yawn.mp3 diff --git a/public/audio/se/battle_anims/buzzer.wav b/public/audio/battle_anims/buzzer.wav similarity index 100% rename from public/audio/se/battle_anims/buzzer.wav rename to public/audio/battle_anims/buzzer.wav diff --git a/public/audio/se/battle_anims/decrease.m4a b/public/audio/battle_anims/decrease.m4a similarity index 100% rename from public/audio/se/battle_anims/decrease.m4a rename to public/audio/battle_anims/decrease.m4a diff --git a/public/audio/se/battle_anims/fog2.mp3 b/public/audio/battle_anims/fog2.mp3 similarity index 100% rename from public/audio/se/battle_anims/fog2.mp3 rename to public/audio/battle_anims/fog2.mp3 diff --git a/public/audio/se/battle_anims/gust.mp3 b/public/audio/battle_anims/gust.mp3 similarity index 100% rename from public/audio/se/battle_anims/gust.mp3 rename to public/audio/battle_anims/gust.mp3 diff --git a/public/audio/se/battle_anims/hit.wav b/public/audio/battle_anims/hit.wav similarity index 100% rename from public/audio/se/battle_anims/hit.wav rename to public/audio/battle_anims/hit.wav diff --git a/public/audio/se/battle_anims/increase.m4a b/public/audio/battle_anims/increase.m4a similarity index 100% rename from public/audio/se/battle_anims/increase.m4a rename to public/audio/battle_anims/increase.m4a diff --git a/public/audio/se/battle_anims/infatuated.mp3 b/public/audio/battle_anims/infatuated.mp3 similarity index 100% rename from public/audio/se/battle_anims/infatuated.mp3 rename to public/audio/battle_anims/infatuated.mp3 diff --git a/public/audio/se/battle_anims/metal.m4a b/public/audio/battle_anims/metal.m4a similarity index 100% rename from public/audio/se/battle_anims/metal.m4a rename to public/audio/battle_anims/metal.m4a diff --git a/public/audio/se/battle_anims/normaldamage.m4a b/public/audio/battle_anims/normaldamage.m4a similarity index 100% rename from public/audio/se/battle_anims/normaldamage.m4a rename to public/audio/battle_anims/normaldamage.m4a diff --git a/public/audio/se/battle_anims/punch5.wav b/public/audio/battle_anims/punch5.wav similarity index 100% rename from public/audio/se/battle_anims/punch5.wav rename to public/audio/battle_anims/punch5.wav diff --git a/public/audio/se/battle_anims/superdamage.m4a b/public/audio/battle_anims/superdamage.m4a similarity index 100% rename from public/audio/se/battle_anims/superdamage.m4a rename to public/audio/battle_anims/superdamage.m4a diff --git a/public/audio/se/battle_anims/throw.m4a b/public/audio/battle_anims/throw.m4a similarity index 100% rename from public/audio/se/battle_anims/throw.m4a rename to public/audio/battle_anims/throw.m4a diff --git a/public/audio/bgm/battle_legendary_origin_forme.mp3 b/public/audio/bgm/battle_legendary_origin_forme.mp3 new file mode 100644 index 00000000000..830eeff2f84 Binary files /dev/null and b/public/audio/bgm/battle_legendary_origin_forme.mp3 differ diff --git a/public/audio/bgm/battle_legendary_riders.mp3 b/public/audio/bgm/battle_legendary_riders.mp3 new file mode 100644 index 00000000000..8e9e5f47312 Binary files /dev/null and b/public/audio/bgm/battle_legendary_riders.mp3 differ diff --git a/public/audio/se/error.wav b/public/audio/ui/error.wav similarity index 100% rename from public/audio/se/error.wav rename to public/audio/ui/error.wav diff --git a/public/audio/se/menu_open.wav b/public/audio/ui/menu_open.wav similarity index 100% rename from public/audio/se/menu_open.wav rename to public/audio/ui/menu_open.wav diff --git a/public/audio/se/select.wav b/public/audio/ui/select.wav similarity index 100% rename from public/audio/se/select.wav rename to public/audio/ui/select.wav diff --git a/public/images/pokemon/469.png b/public/images/pokemon/469.png index 698f94fd61b..f9f9ea8af1a 100644 Binary files a/public/images/pokemon/469.png and b/public/images/pokemon/469.png differ diff --git a/public/images/pokemon/472.png b/public/images/pokemon/472.png index 56f3c91aa9b..cc13377bd53 100644 Binary files a/public/images/pokemon/472.png and b/public/images/pokemon/472.png differ diff --git a/public/images/pokemon/back/469.png b/public/images/pokemon/back/469.png index c9d40e7349a..f55bdd8f25f 100644 Binary files a/public/images/pokemon/back/469.png and b/public/images/pokemon/back/469.png differ diff --git a/public/images/pokemon/back/472.png b/public/images/pokemon/back/472.png index 223e43838d9..af5bfd64473 100644 Binary files a/public/images/pokemon/back/472.png and b/public/images/pokemon/back/472.png differ diff --git a/public/images/pokemon/exp/751.json b/public/images/pokemon/exp/751.json index 7ac34e0ac04..2e28048706d 100644 --- a/public/images/pokemon/exp/751.json +++ b/public/images/pokemon/exp/751.json @@ -4,71 +4,155 @@ "image": "751.png", "format": "RGBA8888", "size": { - "w": 146, - "h": 146 + "w": 169, + "h": 169 }, "scale": 1, "frames": [ { - "filename": "0005.png", + "filename": "0006.png", "rotated": false, "trimmed": true, "sourceSize": { - "w": 32, - "h": 55 + "w": 35, + "h": 43 }, "spriteSourceSize": { - "x": 0, - "y": 1, - "w": 32, - "h": 52 - }, - "frame": { "x": 0, "y": 0, - "w": 32, - "h": 52 - } - }, - { - "filename": "0004.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 55 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 32, - "h": 51 - }, - "frame": { - "x": 0, - "y": 52, - "w": 32, - "h": 51 - } - }, - { - "filename": "0011.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 55 - }, - "spriteSourceSize": { - "x": 0, - "y": 12, - "w": 32, + "w": 33, "h": 43 }, "frame": { "x": 0, - "y": 103, - "w": 32, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0046.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0084.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0085.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 43, + "w": 33, "h": 43 } }, @@ -77,104 +161,104 @@ "rotated": false, "trimmed": true, "sourceSize": { - "w": 32, - "h": 55 + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 0, - "y": 4, - "w": 32, - "h": 50 + "y": 0, + "w": 33, + "h": 43 }, "frame": { - "x": 32, - "y": 0, - "w": 32, - "h": 50 + "x": 0, + "y": 43, + "w": 33, + "h": 43 } }, { - "filename": "0006.png", + "filename": "0047.png", "rotated": false, "trimmed": true, "sourceSize": { - "w": 32, - "h": 55 - }, - "spriteSourceSize": { - "x": 1, - "y": 0, - "w": 30, - "h": 51 - }, - "frame": { - "x": 32, - "y": 50, - "w": 30, - "h": 51 - } - }, - { - "filename": "0003.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 55 + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 0, - "y": 10, - "w": 32, - "h": 45 - }, - "frame": { - "x": 32, - "y": 101, - "w": 32, - "h": 45 - } - }, - { - "filename": "0008.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 55 - }, - "spriteSourceSize": { - "x": 1, "y": 0, - "w": 31, - "h": 50 + "w": 33, + "h": 43 }, "frame": { - "x": 62, - "y": 50, - "w": 31, - "h": 50 + "x": 0, + "y": 43, + "w": 33, + "h": 43 } }, { - "filename": "0002.png", + "filename": "0048.png", "rotated": false, "trimmed": true, "sourceSize": { - "w": 32, - "h": 55 + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 0, - "y": 9, - "w": 32, - "h": 46 + "y": 0, + "w": 33, + "h": 43 }, "frame": { - "x": 64, - "y": 100, - "w": 32, - "h": 46 + "x": 0, + "y": 43, + "w": 33, + "h": 43 + } + }, + { + "filename": "0086.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 43, + "w": 33, + "h": 43 + } + }, + { + "filename": "0087.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 0, + "y": 43, + "w": 33, + "h": 43 } }, { @@ -182,62 +266,377 @@ "rotated": false, "trimmed": true, "sourceSize": { - "w": 32, - "h": 55 + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 0, - "y": 4, - "w": 32, - "h": 49 + "y": 0, + "w": 33, + "h": 43 }, "frame": { - "x": 64, + "x": 33, "y": 0, - "w": 32, - "h": 49 + "w": 33, + "h": 43 } }, { - "filename": "0007.png", + "filename": "0011.png", "rotated": false, "trimmed": true, "sourceSize": { - "w": 32, - "h": 55 + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 33, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 33, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 33, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0088.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 33, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0089.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 43 + }, + "frame": { + "x": 33, + "y": 0, + "w": 33, + "h": 43 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 1, "y": 0, - "w": 31, - "h": 49 + "w": 32, + "h": 43 }, "frame": { - "x": 93, - "y": 49, - "w": 31, - "h": 49 + "x": 0, + "y": 86, + "w": 32, + "h": 43 } }, { - "filename": "0001.png", + "filename": "0005.png", "rotated": false, "trimmed": true, "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, "w": 32, - "h": 55 + "h": 43 + }, + "frame": { + "x": 0, + "y": 86, + "w": 32, + "h": 43 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 0, + "y": 86, + "w": 32, + "h": 43 + } + }, + { + "filename": "0044.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 0, + "y": 86, + "w": 32, + "h": 43 + } + }, + { + "filename": "0082.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 0, + "y": 86, + "w": 32, + "h": 43 + } + }, + { + "filename": "0083.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 0, + "y": 86, + "w": 32, + "h": 43 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 0, - "y": 7, - "w": 32, - "h": 48 + "y": 3, + "w": 34, + "h": 40 }, "frame": { - "x": 96, - "y": 98, - "w": 32, - "h": 48 + "x": 0, + "y": 129, + "w": 34, + "h": 40 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 34, + "h": 40 + }, + "frame": { + "x": 0, + "y": 129, + "w": 34, + "h": 40 + } + }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 34, + "h": 40 + }, + "frame": { + "x": 0, + "y": 129, + "w": 34, + "h": 40 + } + }, + { + "filename": "0072.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 34, + "h": 40 + }, + "frame": { + "x": 0, + "y": 129, + "w": 34, + "h": 40 + } + }, + { + "filename": "0092.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 34, + "h": 40 + }, + "frame": { + "x": 0, + "y": 129, + "w": 34, + "h": 40 + } + }, + { + "filename": "0111.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 3, + "w": 34, + "h": 40 + }, + "frame": { + "x": 0, + "y": 129, + "w": 34, + "h": 40 } }, { @@ -245,20 +644,2393 @@ "rotated": false, "trimmed": true, "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, "w": 32, - "h": 55 + "h": 43 + }, + "frame": { + "x": 66, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 66, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0090.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 1, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 66, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 }, "spriteSourceSize": { "x": 0, - "y": 10, - "w": 32, - "h": 45 + "y": 2, + "w": 34, + "h": 41 }, "frame": { - "x": 96, + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0036.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0037.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0056.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0057.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0075.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0076.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0095.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0096.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0114.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0115.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 33, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, "y": 0, "w": 32, - "h": 45 + "h": 43 + }, + "frame": { + "x": 98, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0030.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 98, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0068.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 98, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0069.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 98, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0107.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 98, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0108.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 32, + "h": 43 + }, + "frame": { + "x": 98, + "y": 0, + "w": 32, + "h": 43 + } + }, + { + "filename": "0122.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 67, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0134.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 67, + "y": 43, + "w": 34, + "h": 41 + } + }, + { + "filename": "0123.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 130, + "y": 0, + "w": 34, + "h": 41 + } + }, + { + "filename": "0129.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 130, + "y": 0, + "w": 34, + "h": 41 + } + }, + { + "filename": "0135.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 130, + "y": 0, + "w": 34, + "h": 41 + } + }, + { + "filename": "0141.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 130, + "y": 0, + "w": 34, + "h": 41 + } + }, + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0020.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0021.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0022.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0034.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0038.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0039.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0040.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0054.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0055.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0058.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0059.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0060.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0061.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0073.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0074.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0077.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0078.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0079.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0080.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0081.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0093.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0094.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0097.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0098.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0099.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0100.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0112.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0113.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0116.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0117.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0118.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0124.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0130.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0136.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0142.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0143.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0144.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 31, + "h": 42 + }, + "frame": { + "x": 101, + "y": 43, + "w": 31, + "h": 42 + } + }, + { + "filename": "0023.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 132, + "y": 41, + "w": 31, + "h": 43 + } + }, + { + "filename": "0024.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 132, + "y": 41, + "w": 31, + "h": 43 + } + }, + { + "filename": "0062.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 132, + "y": 41, + "w": 31, + "h": 43 + } + }, + { + "filename": "0063.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 132, + "y": 41, + "w": 31, + "h": 43 + } + }, + { + "filename": "0101.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 132, + "y": 41, + "w": 31, + "h": 43 + } + }, + { + "filename": "0102.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 2, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 132, + "y": 41, + "w": 31, + "h": 43 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 32, + "y": 86, + "w": 31, + "h": 43 + } + }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 32, + "y": 86, + "w": 31, + "h": 43 + } + }, + { + "filename": "0064.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 32, + "y": 86, + "w": 31, + "h": 43 + } + }, + { + "filename": "0065.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 32, + "y": 86, + "w": 31, + "h": 43 + } + }, + { + "filename": "0103.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 32, + "y": 86, + "w": 31, + "h": 43 + } + }, + { + "filename": "0104.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 32, + "y": 86, + "w": 31, + "h": 43 + } + }, + { + "filename": "0128.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 63, + "y": 84, + "w": 34, + "h": 41 + } + }, + { + "filename": "0140.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 34, + "h": 41 + }, + "frame": { + "x": 63, + "y": 84, + "w": 34, + "h": 41 + } + }, + { + "filename": "0121.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 35, + "h": 39 + }, + "frame": { + "x": 97, + "y": 85, + "w": 35, + "h": 39 + } + }, + { + "filename": "0127.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 35, + "h": 39 + }, + "frame": { + "x": 97, + "y": 85, + "w": 35, + "h": 39 + } + }, + { + "filename": "0133.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 35, + "h": 39 + }, + "frame": { + "x": 97, + "y": 85, + "w": 35, + "h": 39 + } + }, + { + "filename": "0139.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 35, + "h": 39 + }, + "frame": { + "x": 97, + "y": 85, + "w": 35, + "h": 39 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 32, + "h": 42 + }, + "frame": { + "x": 132, + "y": 84, + "w": 32, + "h": 42 + } + }, + { + "filename": "0028.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 32, + "h": 42 + }, + "frame": { + "x": 132, + "y": 84, + "w": 32, + "h": 42 + } + }, + { + "filename": "0066.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 32, + "h": 42 + }, + "frame": { + "x": 132, + "y": 84, + "w": 32, + "h": 42 + } + }, + { + "filename": "0067.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 32, + "h": 42 + }, + "frame": { + "x": 132, + "y": 84, + "w": 32, + "h": 42 + } + }, + { + "filename": "0105.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 32, + "h": 42 + }, + "frame": { + "x": 132, + "y": 84, + "w": 32, + "h": 42 + } + }, + { + "filename": "0106.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 32, + "h": 42 + }, + "frame": { + "x": 132, + "y": 84, + "w": 32, + "h": 42 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 35, + "h": 38 + }, + "frame": { + "x": 34, + "y": 129, + "w": 35, + "h": 38 + } + }, + { + "filename": "0032.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 35, + "h": 38 + }, + "frame": { + "x": 34, + "y": 129, + "w": 35, + "h": 38 + } + }, + { + "filename": "0052.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 35, + "h": 38 + }, + "frame": { + "x": 34, + "y": 129, + "w": 35, + "h": 38 + } + }, + { + "filename": "0071.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 35, + "h": 38 + }, + "frame": { + "x": 34, + "y": 129, + "w": 35, + "h": 38 + } + }, + { + "filename": "0091.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 35, + "h": 38 + }, + "frame": { + "x": 34, + "y": 129, + "w": 35, + "h": 38 + } + }, + { + "filename": "0110.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 35, + "h": 38 + }, + "frame": { + "x": 34, + "y": 129, + "w": 35, + "h": 38 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 69, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0070.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 69, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0109.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 69, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0119.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 100, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0125.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 100, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0131.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 100, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0137.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 100, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0120.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 131, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0126.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 131, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0132.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 131, + "y": 126, + "w": 31, + "h": 43 + } + }, + { + "filename": "0138.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 35, + "h": 43 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 31, + "h": 43 + }, + "frame": { + "x": 131, + "y": 126, + "w": 31, + "h": 43 } } ] @@ -267,6 +3039,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:cc1e42833991a58e9cbe6f8a40a3d179:832e53524cd611a274742603a96b9ff4:1d193c65e68b1611f35fce7f3295865c$" + "smartupdate": "$TexturePacker:SmartUpdate:4cce3abef08fd679bfca3bda14d2e7a8:fa6cfa01fadaa0ac727b8c3a4d1d49fc:1d193c65e68b1611f35fce7f3295865c$" } } diff --git a/public/images/pokemon/exp/751.png b/public/images/pokemon/exp/751.png index 2f331ba746a..b670acad126 100644 Binary files a/public/images/pokemon/exp/751.png and b/public/images/pokemon/exp/751.png differ diff --git a/public/images/pokemon/exp/back/970.json b/public/images/pokemon/exp/back/970.json index 9be45f39fd2..a516771c02b 100644 --- a/public/images/pokemon/exp/back/970.json +++ b/public/images/pokemon/exp/back/970.json @@ -1,419 +1,167 @@ -{ - "textures": [ - { - "image": "970.png", - "format": "RGBA8888", - "size": { - "w": 296, - "h": 296 - }, - "scale": 1, - "frames": [ - { - "filename": "0007.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 59, - "h": 60 - }, - "frame": { - "x": 0, - "y": 0, - "w": 59, - "h": 60 - } - }, - { - "filename": "0008.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 59, - "h": 60 - }, - "frame": { - "x": 59, - "y": 0, - "w": 59, - "h": 60 - } - }, - { - "filename": "0006.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 6, - "w": 59, - "h": 62 - }, - "frame": { - "x": 118, - "y": 0, - "w": 59, - "h": 62 - } - }, - { - "filename": "0005.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 58, - "h": 63 - }, - "frame": { - "x": 177, - "y": 0, - "w": 58, - "h": 63 - } - }, - { - "filename": "0009.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 59, - "h": 66 - }, - "frame": { - "x": 235, - "y": 0, - "w": 59, - "h": 66 - } - }, - { - "filename": "0010.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 1, - "y": 4, - "w": 60, - "h": 66 - }, - "frame": { - "x": 0, - "y": 60, - "w": 60, - "h": 66 - } - }, - { - "filename": "0018.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 59, - "h": 66 - }, - "frame": { - "x": 60, - "y": 62, - "w": 59, - "h": 66 - } - }, - { - "filename": "0004.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 59, - "h": 67 - }, - "frame": { - "x": 119, - "y": 63, - "w": 59, - "h": 67 - } - }, - { - "filename": "0017.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 59, - "h": 67 - }, - "frame": { - "x": 178, - "y": 66, - "w": 59, - "h": 67 - } - }, - { - "filename": "0012.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 59, - "h": 68 - }, - "frame": { - "x": 237, - "y": 66, - "w": 59, - "h": 68 - } - }, - { - "filename": "0015.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 59, - "h": 68 - }, - "frame": { - "x": 0, - "y": 126, - "w": 59, - "h": 68 - } - }, - { - "filename": "0014.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 1, - "y": 1, - "w": 60, - "h": 69 - }, - "frame": { - "x": 59, - "y": 128, - "w": 60, - "h": 69 - } - }, - { - "filename": "0001.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 119, - "y": 133, - "w": 61, - "h": 69 - } - }, - { - "filename": "0011.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 119, - "y": 133, - "w": 61, - "h": 69 - } - }, - { - "filename": "0002.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 3, - "w": 61, - "h": 69 - }, - "frame": { - "x": 180, - "y": 134, - "w": 61, - "h": 69 - } - }, - { - "filename": "0003.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 0, - "y": 197, - "w": 61, - "h": 69 - } - }, - { - "filename": "0019.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 61, - "y": 202, - "w": 61, - "h": 69 - } - }, - { - "filename": "0013.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 0, - "w": 61, - "h": 71 - }, - "frame": { - "x": 122, - "y": 203, - "w": 61, - "h": 71 - } - }, - { - "filename": "0016.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 0, - "w": 61, - "h": 71 - }, - "frame": { - "x": 183, - "y": 203, - "w": 61, - "h": 71 - } - } - ] - } - ], - "meta": { - "app": "https://www.codeandweb.com/texturepacker", - "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:826f0c54b74572cfb274b9973fbd50bf:a0d3e34e9b94dc843d98c54879e0c70e:97e320d73d4227f4b083688478fb20b2$" - } +{ "textures": [ + { + "image": "970.png", + "format": "RGBA8888", + "size": { "w": 294, "h": 294 }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 3, "w": 59, "h": 67 }, + "frame": { "x": 179, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 67, "w": 59, "h": 67 } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 57, "h": 65 }, + "frame": { "x": 230, "y": 134, "w": 57, "h": 65 } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 5, "w": 56, "h": 61 }, + "frame": { "x": 238, "y": 0, "w": 56, "h": 61 } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 6, "w": 57, "h": 60 }, + "frame": { "x": 114, "y": 198, "w": 57, "h": 60 } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 2, "y": 8, "w": 57, "h": 58 }, + "frame": { "x": 57, "y": 199, "w": 57, "h": 58 } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 2, "y": 8, "w": 58, "h": 58 }, + "frame": { "x": 171, "y": 198, "w": 58, "h": 58 } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 2, "y": 5, "w": 58, "h": 64 }, + "frame": { "x": 114, "y": 134, "w": 58, "h": 64 } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 1, "y": 4, "w": 58, "h": 64 }, + "frame": { "x": 172, "y": 134, "w": 58, "h": 64 } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 4, "w": 57, "h": 66 }, + "frame": { "x": 0, "y": 69, "w": 57, "h": 66 } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 0, "w": 60, "h": 69 }, + "frame": { "x": 0, "y": 0, "w": 60, "h": 69 } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 1, "y": 1, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 4, "w": 57, "h": 66 }, + "frame": { "x": 57, "y": 69, "w": 57, "h": 66 } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 0, "w": 60, "h": 69 }, + "frame": { "x": 60, "y": 0, "w": 60, "h": 69 } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 57, "h": 65 }, + "frame": { "x": 0, "y": 135, "w": 57, "h": 65 } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 4, "w": 57, "h": 64 }, + "frame": { "x": 57, "y": 135, "w": 57, "h": 64 } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 179, "y": 67, "w": 59, "h": 67 } + } + ] +} +], + "meta": { + "app": "https://www.aseprite.org/", + "version": "1.3.7-x64" + } } diff --git a/public/images/pokemon/exp/back/970.png b/public/images/pokemon/exp/back/970.png index bd6464a7bfa..533b680c117 100644 Binary files a/public/images/pokemon/exp/back/970.png and b/public/images/pokemon/exp/back/970.png differ diff --git a/public/images/pokemon/exp/back/shiny/970.json b/public/images/pokemon/exp/back/shiny/970.json index 9be45f39fd2..a516771c02b 100644 --- a/public/images/pokemon/exp/back/shiny/970.json +++ b/public/images/pokemon/exp/back/shiny/970.json @@ -1,419 +1,167 @@ -{ - "textures": [ - { - "image": "970.png", - "format": "RGBA8888", - "size": { - "w": 296, - "h": 296 - }, - "scale": 1, - "frames": [ - { - "filename": "0007.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 59, - "h": 60 - }, - "frame": { - "x": 0, - "y": 0, - "w": 59, - "h": 60 - } - }, - { - "filename": "0008.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 2, - "y": 8, - "w": 59, - "h": 60 - }, - "frame": { - "x": 59, - "y": 0, - "w": 59, - "h": 60 - } - }, - { - "filename": "0006.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 6, - "w": 59, - "h": 62 - }, - "frame": { - "x": 118, - "y": 0, - "w": 59, - "h": 62 - } - }, - { - "filename": "0005.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 5, - "w": 58, - "h": 63 - }, - "frame": { - "x": 177, - "y": 0, - "w": 58, - "h": 63 - } - }, - { - "filename": "0009.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 2, - "y": 5, - "w": 59, - "h": 66 - }, - "frame": { - "x": 235, - "y": 0, - "w": 59, - "h": 66 - } - }, - { - "filename": "0010.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 1, - "y": 4, - "w": 60, - "h": 66 - }, - "frame": { - "x": 0, - "y": 60, - "w": 60, - "h": 66 - } - }, - { - "filename": "0018.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 59, - "h": 66 - }, - "frame": { - "x": 60, - "y": 62, - "w": 59, - "h": 66 - } - }, - { - "filename": "0004.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 59, - "h": 67 - }, - "frame": { - "x": 119, - "y": 63, - "w": 59, - "h": 67 - } - }, - { - "filename": "0017.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 59, - "h": 67 - }, - "frame": { - "x": 178, - "y": 66, - "w": 59, - "h": 67 - } - }, - { - "filename": "0012.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 59, - "h": 68 - }, - "frame": { - "x": 237, - "y": 66, - "w": 59, - "h": 68 - } - }, - { - "filename": "0015.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 4, - "w": 59, - "h": 68 - }, - "frame": { - "x": 0, - "y": 126, - "w": 59, - "h": 68 - } - }, - { - "filename": "0014.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 1, - "y": 1, - "w": 60, - "h": 69 - }, - "frame": { - "x": 59, - "y": 128, - "w": 60, - "h": 69 - } - }, - { - "filename": "0001.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 119, - "y": 133, - "w": 61, - "h": 69 - } - }, - { - "filename": "0011.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 119, - "y": 133, - "w": 61, - "h": 69 - } - }, - { - "filename": "0002.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 3, - "w": 61, - "h": 69 - }, - "frame": { - "x": 180, - "y": 134, - "w": 61, - "h": 69 - } - }, - { - "filename": "0003.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 0, - "y": 197, - "w": 61, - "h": 69 - } - }, - { - "filename": "0019.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 2, - "w": 61, - "h": 69 - }, - "frame": { - "x": 61, - "y": 202, - "w": 61, - "h": 69 - } - }, - { - "filename": "0013.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 0, - "w": 61, - "h": 71 - }, - "frame": { - "x": 122, - "y": 203, - "w": 61, - "h": 71 - } - }, - { - "filename": "0016.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 61, - "h": 77 - }, - "spriteSourceSize": { - "x": 0, - "y": 0, - "w": 61, - "h": 71 - }, - "frame": { - "x": 183, - "y": 203, - "w": 61, - "h": 71 - } - } - ] - } - ], - "meta": { - "app": "https://www.codeandweb.com/texturepacker", - "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:826f0c54b74572cfb274b9973fbd50bf:a0d3e34e9b94dc843d98c54879e0c70e:97e320d73d4227f4b083688478fb20b2$" - } +{ "textures": [ + { + "image": "970.png", + "format": "RGBA8888", + "size": { "w": 294, "h": 294 }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 3, "w": 59, "h": 67 }, + "frame": { "x": 179, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 67, "w": 59, "h": 67 } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 57, "h": 65 }, + "frame": { "x": 230, "y": 134, "w": 57, "h": 65 } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 5, "w": 56, "h": 61 }, + "frame": { "x": 238, "y": 0, "w": 56, "h": 61 } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 6, "w": 57, "h": 60 }, + "frame": { "x": 114, "y": 198, "w": 57, "h": 60 } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 2, "y": 8, "w": 57, "h": 58 }, + "frame": { "x": 57, "y": 199, "w": 57, "h": 58 } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 2, "y": 8, "w": 58, "h": 58 }, + "frame": { "x": 171, "y": 198, "w": 58, "h": 58 } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 2, "y": 5, "w": 58, "h": 64 }, + "frame": { "x": 114, "y": 134, "w": 58, "h": 64 } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 1, "y": 4, "w": 58, "h": 64 }, + "frame": { "x": 172, "y": 134, "w": 58, "h": 64 } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 4, "w": 57, "h": 66 }, + "frame": { "x": 0, "y": 69, "w": 57, "h": 66 } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 0, "w": 60, "h": 69 }, + "frame": { "x": 0, "y": 0, "w": 60, "h": 69 } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 1, "y": 1, "w": 59, "h": 67 }, + "frame": { "x": 120, "y": 0, "w": 59, "h": 67 } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 4, "w": 57, "h": 66 }, + "frame": { "x": 57, "y": 69, "w": 57, "h": 66 } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 0, "w": 60, "h": 69 }, + "frame": { "x": 60, "y": 0, "w": 60, "h": 69 } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 57, "h": 65 }, + "frame": { "x": 0, "y": 135, "w": 57, "h": 65 } + }, + { + "filename": "0018.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 4, "w": 57, "h": 64 }, + "frame": { "x": 57, "y": 135, "w": 57, "h": 64 } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { "w": 61, "h": 77 }, + "spriteSourceSize": { "x": 0, "y": 2, "w": 59, "h": 67 }, + "frame": { "x": 179, "y": 67, "w": 59, "h": 67 } + } + ] +} +], + "meta": { + "app": "https://www.aseprite.org/", + "version": "1.3.7-x64" + } } diff --git a/public/images/pokemon/exp/back/shiny/970.png b/public/images/pokemon/exp/back/shiny/970.png index 1d092da94cd..03ed35af776 100644 Binary files a/public/images/pokemon/exp/back/shiny/970.png and b/public/images/pokemon/exp/back/shiny/970.png differ diff --git a/public/images/pokemon/icons/variant/4/472_2.png b/public/images/pokemon/icons/variant/4/472_2.png index 80282fd1f75..29cb7014389 100644 Binary files a/public/images/pokemon/icons/variant/4/472_2.png and b/public/images/pokemon/icons/variant/4/472_2.png differ diff --git a/public/images/pokemon/variant/469.json b/public/images/pokemon/variant/469.json new file mode 100644 index 00000000000..afaaeab8796 --- /dev/null +++ b/public/images/pokemon/variant/469.json @@ -0,0 +1,38 @@ +{ + "1": { + "3a5a29": "8577e0", + "797982": "ba4369", + "f75a52": "5555ab", + "739c63": "dfbaff", + "733100": "322966", + "213a19": "534fab", + "4a4a52": "942b5a", + "ffffff": "c4f2ff", + "52844a": "c59eff", + "c5cee6": "91c2fa", + "7b7b84": "6143b3", + "797983": "6143b3", + "a5adc5": "6e8ce0", + "292931": "511d5e", + "b53119": "403a91", + "ff948c": "5c7db5" + }, + "2": { + "3a5a29": "965a2f", + "797982": "516d82", + "f75a52": "21b0a6", + "739c63": "ebcf7c", + "733100": "2e5785", + "213a19": "70331d", + "4a4a52": "2e4a52", + "ffffff": "c1dede", + "52844a": "e0a14f", + "c5cee6": "97c0c4", + "7b7b84": "4f6b80", + "797983": "4f6b80", + "a5adc5": "678ea6", + "292931": "1f3144", + "b53119": "2c8199", + "ff948c": "79d4ba" + } +} \ No newline at end of file diff --git a/public/images/pokemon/variant/472.json b/public/images/pokemon/variant/472.json index a98fd1a0355..937ea1334de 100644 --- a/public/images/pokemon/variant/472.json +++ b/public/images/pokemon/variant/472.json @@ -1,44 +1,33 @@ { "1": { "5a63a5": "974d16", - "293163": "5c2a09", - "9c8cef": "d28b36", - "b5a5ff": "e9bb57", - "ffffff": "ffffff", - "737bc5": "b86f27", - "101010": "101010", - "730800": "143262", - "ad2131": "2a6197", "de3a6b": "4c83a9", - "43050d": "5c2a09", - "ad9400": "4b64ff", - "ffde00": "84b8ff", - "2a2a2a": "130e27", + "293163": "5c2a09", "424252": "2a2752", - "c55294": "5270c5", - "d8d8d8": "d8d8d8", + "ffde00": "84b8ff", + "b5a5ff": "e9bb57", "6b6b7b": "48487a", - "103f47": "103f47" + "737bc5": "b86f27", + "730800": "143262", + "9c8cef": "d28b36", + "ad2131": "2a6197", + "c55294": "5270c5", + "ad9400": "4b64ff", + "2a2a2a": "130e27" }, "2": { "5a63a5": "731e37", - "293163": "43050d", - "9c8cef": "b3404a", - "b5a5ff": "eb6a64", - "ffffff": "ffffff", - "737bc5": "952b41", - "101010": "101010", - "730800": "262138", - "ad2131": "453b57", "de3a6b": "594b6a", - "43050d": "43050d", - "ad9400": "16a9c0", - "ffde00": "6bffd4", - "2a2a2a": "1a554f", + "293163": "43050d", "424252": "57b6a6", - "c55294": "c55294", - "d8d8d8": "d8d8d8", + "ffde00": "6bffd4", + "b5a5ff": "eb6a64", "6b6b7b": "81e4c2", - "103f47": "103f47" + "737bc5": "952b41", + "730800": "262138", + "9c8cef": "b3404a", + "ad2131": "453b57", + "ad9400": "16a9c0", + "2a2a2a": "103f47" } } \ No newline at end of file diff --git a/public/images/pokemon/variant/751.json b/public/images/pokemon/variant/751.json index 19dc7bedb56..f58b50b56a4 100644 --- a/public/images/pokemon/variant/751.json +++ b/public/images/pokemon/variant/751.json @@ -1,30 +1,33 @@ { "1": { - "8895ac": "ae504b", - "e8e8ea": "ffc8d1", + "5e9cbd": "cc7854", + "39628d": "a14835", + "516a7b": "812b3e", + "32455b": "4c152c", + "aed7ee": "f6e4c2", + "fcfcfd": "fffae3", + "cedf42": "673252", + "dee3f1": "ffc8d1", "9bad34": "4e1f42", "69670e": "3a112f", - "cedf42": "673252", - "fcfcfc": "fcfcfc", - "3c4459": "4c152c", - "aed7ee": "aed7ee", + "8895ac": "ae504b", + "8e99ad": "98433e", "79c4d4": "f3bd8a", - "101010": "101010", - "516a7b": "812b3e", - "5e9cbd": "cc7854" + "3a4055": "4c152c" }, "2": { - "8895ac": "ea9b43", - "e8e8ea": "f1dcc2", + "5e9cbd": "253155", + "39628d": "1c2246", + "516a7b": "ba5c2c", + "32455b": "7b3836", + "fcfcfd": "f0f0f2", + "cedf42": "72add9", + "dee3f1": "f1dcc2", "9bad34": "4980ac", "69670e": "263756", - "cedf42": "72add9", - "fcfcfc": "fcfcfc", - "3c4459": "73312f", - "aed7ee": "aed7ee", + "8895ac": "ea9b43", + "8e99ad": "cd8330", "79c4d4": "3b5373", - "101010": "101010", - "516a7b": "ba5c2c", - "5e9cbd": "253155" + "3a4055": "73312f" } } \ No newline at end of file diff --git a/public/images/pokemon/variant/_masterlist.json b/public/images/pokemon/variant/_masterlist.json index 11578f2e084..ff28e68160e 100644 --- a/public/images/pokemon/variant/_masterlist.json +++ b/public/images/pokemon/variant/_masterlist.json @@ -1711,8 +1711,8 @@ ], "469": [ 0, - 2, - 2 + 1, + 1 ], "470": [ 1, @@ -5704,7 +5704,7 @@ ], "469": [ 0, - 2, + 1, 1 ], "470": [ @@ -5720,7 +5720,7 @@ "472": [ 0, 1, - 2 + 1 ], "474": [ 0, @@ -9298,8 +9298,8 @@ ], "970": [ 0, - 2, - 2 + 1, + 1 ], "973": [ 1, diff --git a/public/images/pokemon/variant/back/469.json b/public/images/pokemon/variant/back/469.json index 21d89cec3d5..d07bfada1c8 100644 --- a/public/images/pokemon/variant/back/469.json +++ b/public/images/pokemon/variant/back/469.json @@ -1,19 +1,34 @@ { + "1": { + "797982": "ba4369", + "52844a": "c59eff", + "f75a52": "5555ab", + "47474f": "6143b3", + "a5adc5": "6e8ce0", + "b53119": "403a91", + "739c63": "dfbaff", + "4a4a52": "942b5a", + "213a19": "534fab", + "ffffff": "c4f2ff", + "733100": "322966", + "c5cee6": "91c2fa", + "3a5a29": "8577e0", + "7b7b84": "3b3687" + }, "2": { - "101010": "101010", "797982": "516d82", - "4a4a52": "2e4a52", - "b53119": "2c8199", + "52844a": "e0a14f", "f75a52": "21b0a6", + "47474f": "4f6b80", "a5adc5": "678ea6", + "b53119": "2c8199", + "739c63": "ebcf7c", + "4a4a52": "2e4a52", "213a19": "70331d", + "ffffff": "c1dede", + "733100": "2e5785", "c5cee6": "97c0c4", "3a5a29": "965a2f", - "ffffff": "c1dede", - "52844a": "e0a14f", - "739c63": "ebcf7c", - "733100": "2e5785", - "7b7b84": "4d687d", - "47474f": "4f6b80" + "7b7b84": "4d687d" } } \ No newline at end of file diff --git a/public/images/pokemon/variant/back/472.json b/public/images/pokemon/variant/back/472.json index a47102ad603..eedf44dc6ec 100644 --- a/public/images/pokemon/variant/back/472.json +++ b/public/images/pokemon/variant/back/472.json @@ -1,15 +1,25 @@ { "1": { "5a63a5": "974d16", - "293163": "401b02", - "9c8cef": "d28b36", - "b5a5ff": "e9bb57", "737bc5": "b86f27", - "ffffff": "ffffff", - "101010": "101010", - "6b6b7b": "48487a", - "424252": "2a2752", + "ad2131": "2a6197", + "9c8cef": "d28b36", "730800": "143262", - "ad2131": "2a6197" + "293163": "401b02", + "424252": "2a2752", + "b5a5ff": "e9bb57", + "6b6b7b": "48487a" + }, + "2": { + "5a63a5": "731e37", + "737bc5": "952b41", + "ad2131": "594b6a", + "9c8cef": "b3404a", + "730800": "262138", + "293163": "43050d", + "424252": "57b6a6", + "b5a5ff": "eb6a64", + "0d0d0d": "1a554f", + "6b6b7b": "81e4c2" } } \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/751.json b/public/images/pokemon/variant/exp/751.json index 70af2b6d7f4..fd1955824af 100644 --- a/public/images/pokemon/variant/exp/751.json +++ b/public/images/pokemon/variant/exp/751.json @@ -1,50 +1,33 @@ { "1": { - "85abc8": "ae504b", - "bdd9e5": "ffc8d1", - "acc38c": "a65f86", + "dee3f1": "ffc8d1", + "79c4d4": "f3bd8a", + "fcfcfd": "fffae3", + "39628d": "a14835", + "5e9cbd": "cc7854", + "32455b": "4c152c", + "8895ac": "ae504b", "9bad34": "4e1f42", - "c6dc93": "8a4d6d", - "cedf42": "673252", - "93a079": "6c3064", - "697d89": "8d4358", "69670e": "3a112f", - "8dd0e6": "f8b29c", - "101010": "101010", - "6893a5": "b0546e", - "8da0ac": "d37075", - "8397aa": "8397aa", - "66747a": "c75c5b", - "d3e1e8": "d3e1e8", - "81bbd1": "da826e", - "788a94": "9e4155", - "8ba8b8": "d37075", - "5d6773": "ae504b", - "15222d": "15222d", - "343c43": "812b3e" + "516a7b": "812b3e", + "aed7ee": "f6e4c2", + "cedf42": "673252", + "3a4055": "4c152c", + "8e99ad": "98433e" }, "2": { - "85abc8": "ecaa61", - "bdd9e5": "f1dcc2", - "acc38c": "7196b1", + "dee3f1": "f1dcc2", + "79c4d4": "3b5373", + "fcfcfd": "f0f0f2", + "39628d": "1c2246", + "5e9cbd": "253155", + "32455b": "7b3836", + "8895ac": "ea9b43", "9bad34": "4980ac", - "c6dc93": "90b8d4", - "cedf42": "72add9", - "93a079": "586d7a", - "697d89": "915952", "69670e": "263756", - "8dd0e6": "667386", - "101010": "101010", - "6893a5": "b76545", - "8da0ac": "ecaa61", - "8397aa": "8397aa", - "66747a": "66747a", - "d3e1e8": "d3e1e8", - "81bbd1": "55596f", - "788a94": "c77a4f", - "8ba8b8": "c77a4f", - "5d6773": "ea9b43", - "15222d": "15222d", - "343c43": "ba5c2c" + "516a7b": "ba5c2c", + "cedf42": "72add9", + "3a4055": "73312f", + "8e99ad": "cd8330" } } \ No newline at end of file diff --git a/public/images/pokemon/variant/exp/970.json b/public/images/pokemon/variant/exp/970.json new file mode 100644 index 00000000000..7e25970c4bc --- /dev/null +++ b/public/images/pokemon/variant/exp/970.json @@ -0,0 +1,36 @@ +{ + "1": { + "366956": "692915", + "ffff31": "dde4e6", + "5de0aa": "fbce5d", + "5a869c": "bd2646", + "2c369a": "435469", + "4d6076": "6b1933", + "3d464b": "44111b", + "000000": "ffffff", + "41968b": "c57833", + "e0548f": "758eb4", + "fd84ba": "bbe3ee", + "a02c75": "3f4a6f", + "3253d6": "577b81", + "242737": "171c28", + "262b6b": "323b51" + }, + "2": { + "366956": "6d171f", + "ffff31": "c0efff", + "5de0aa": "df543b", + "5a869c": "656b8b", + "2c369a": "e1a47a", + "4d6076": "433e53", + "3d464b": "2d293a", + "000000": "ffffff", + "41968b": "a51414", + "e0548f": "235c65", + "fd84ba": "3e8768", + "a02c75": "1b3842", + "3253d6": "ffedd1", + "242737": "352b2f", + "262b6b": "bb7154" + } +} \ No newline at end of file diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 8104d1d4fa9..922a145780b 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -49,8 +49,8 @@ import CandyBar from "./ui/candy-bar"; import { Variant, variantData } from "./data/variant"; import { Localizable } from "#app/interfaces/locales"; import Overrides from "#app/overrides"; -import {InputsController} from "./inputs-controller"; -import {UiInputs} from "./ui-inputs"; +import { InputsController } from "./inputs-controller"; +import { UiInputs } from "./ui-inputs"; import { NewArenaEvent } from "./events/battle-scene"; import { ArenaFlyout } from "./ui/arena-flyout"; import { EaseType } from "#enums/ease-type"; @@ -65,7 +65,7 @@ import { Species } from "#enums/species"; import { UiTheme } from "#enums/ui-theme"; import { TimedEventManager } from "#app/timed-event-manager.js"; import i18next from "i18next"; -import {TrainerType} from "#enums/trainer-type"; +import { TrainerType } from "#enums/trainer-type"; import { battleSpecDialogue } from "./data/dialogue"; import { LoadingScene } from "./loading-scene"; import { LevelCapPhase } from "./phases/level-cap-phase"; @@ -124,6 +124,7 @@ export default class BattleScene extends SceneBase { public lastSavePlayTime: integer | null = null; public masterVolume: number = 0.5; public bgmVolume: number = 1; + public fieldVolume: number = 1; public seVolume: number = 1; public gameSpeed: integer = 1; public damageNumbersMode: integer = 0; @@ -1748,8 +1749,25 @@ export default class BattleScene extends SceneBase { updateSoundVolume(): void { if (this.sound) { - for (const sound of this.sound.getAllPlaying()) { - (sound as AnySound).setVolume(this.masterVolume * (this.bgmCache.has(sound.key) ? this.bgmVolume : this.seVolume)); + for (const sound of this.sound.getAllPlaying() as AnySound[]) { + if (this.bgmCache.has(sound.key)) { + sound.setVolume(this.masterVolume * this.bgmVolume); + } else { + const soundDetails = sound.key.split("/"); + switch (soundDetails[0]) { + case "battle_anims": + case "cry": + if (soundDetails[1].startsWith("PRSFX- ")) { + sound.setVolume(this.masterVolume*this.fieldVolume*0.5); + } else { + sound.setVolume(this.masterVolume*this.fieldVolume); + } + break; + case "se": + case "ui": + sound.setVolume(this.masterVolume*this.seVolume); + } + } } } } @@ -1768,25 +1786,30 @@ export default class BattleScene extends SceneBase { } playSound(sound: string | AnySound, config?: object): AnySound { - if (config) { - if (config.hasOwnProperty("volume")) { - config["volume"] *= this.masterVolume * this.seVolume; - } else { + const key = typeof sound === "string" ? sound : sound.key; + config = config ?? {}; + try { + const keyDetails = key.split("/"); + switch (keyDetails[0]) { + case "battle_anims": + case "cry": + config["volume"] = this.masterVolume * this.fieldVolume; + //PRSFX sound files are unusually loud + if (key.startsWith("PRSFX- ")) { + config["volume"] *= 0.5; + } + break; + case "se": + case "ui": + default: config["volume"] = this.masterVolume * this.seVolume; + break; } - } else { - config = { volume: this.masterVolume * this.seVolume }; - } - // PRSFX sounds are mixed too loud - if ((typeof sound === "string" ? sound : sound.key).startsWith("PRSFX- ")) { - config["volume"] *= 0.5; - } - if (typeof sound === "string") { - this.sound.play(sound, config); - return this.sound.get(sound) as AnySound; - } else { - sound.play(config); - return sound; + this.sound.play(key, config); + return this.sound.get(key) as AnySound; + } catch { + console.log(`${key} not found`); + return sound as AnySound; } } @@ -1897,6 +1920,8 @@ export default class BattleScene extends SceneBase { return 22.770; case "battle_legendary_dia_pal": //ORAS Dialga & Palkia Battle return 16.009; + case "battle_legendary_origin_forme": //LA Origin Dialga & Palkia Battle + return 18.961; case "battle_legendary_giratina": //ORAS Giratina Battle return 10.451; case "battle_legendary_arceus": //HGSS Arceus Battle @@ -1925,6 +1950,8 @@ export default class BattleScene extends SceneBase { return 12.503; case "battle_legendary_calyrex": //SWSH Calyrex Battle return 50.641; + case "battle_legendary_riders": //SWSH Ice & Shadow Rider Calyrex Battle + return 18.155; case "battle_legendary_birds_galar": //SWSH Galarian Legendary Birds Battle return 0.175; case "battle_legendary_ruinous": //SV Treasures of Ruin Battle @@ -2668,7 +2695,8 @@ export default class BattleScene extends SceneBase { wave: this.currentBattle?.waveIndex || 0, party: this.party ? this.party.map(p => { return { name: p.name, level: p.level }; - }) : [] + }) : [], + modeChain: this.ui?.getModeChain() ?? [], }; (window as any).gameInfo = gameInfo; } diff --git a/src/battle.ts b/src/battle.ts index 0e10333e6de..88288ac8118 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -275,7 +275,12 @@ export default class Battle { return "battle_legendary_sinnoh"; } if (pokemon.species.speciesId === Species.DIALGA || pokemon.species.speciesId === Species.PALKIA) { - return "battle_legendary_dia_pal"; + if (pokemon.getFormKey() === "") { + return "battle_legendary_dia_pal"; + } + if (pokemon.getFormKey() === "origin") { + return "battle_legendary_origin_forme"; + } } if (pokemon.species.speciesId === Species.GIRATINA) { return "battle_legendary_giratina"; @@ -319,7 +324,12 @@ export default class Battle { return "battle_legendary_glas_spec"; } if (pokemon.species.speciesId === Species.CALYREX) { - return "battle_legendary_calyrex"; + if (pokemon.getFormKey() === "") { + return "battle_legendary_calyrex"; + } + if (pokemon.getFormKey() === "ice" || pokemon.getFormKey() === "shadow") { + return "battle_legendary_riders"; + } } if (pokemon.species.speciesId === Species.GALAR_ARTICUNO || pokemon.species.speciesId === Species.GALAR_ZAPDOS || pokemon.species.speciesId === Species.GALAR_MOLTRES) { return "battle_legendary_birds_galar"; @@ -504,7 +514,7 @@ export const classicFixedBattles: FixedBattleConfigs = { .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_1, TrainerType.MAXIE, TrainerType.ARCHIE, TrainerType.CYRUS, TrainerType.GHETSIS, TrainerType.LYSANDRE ])), [145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_5, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)), - [165]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35) + [165]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35) .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_2, TrainerType.MAXIE_2, TrainerType.ARCHIE_2, TrainerType.CYRUS_2, TrainerType.GHETSIS_2, TrainerType.LYSANDRE_2 ])), [182]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ], TrainerType.MARNIE_ELITE, TrainerType.RIKA, TrainerType.CRISPIN ])), diff --git a/src/data/ability.ts b/src/data/ability.ts index 75b828ca0db..a4b27fb2899 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -13,7 +13,7 @@ import { ArenaTagSide, ArenaTrapTag } from "./arena-tag"; import { Stat, getStatName } from "./pokemon-stat"; import { BerryModifier, PokemonHeldItemModifier } from "../modifier/modifier"; import { TerrainType } from "./terrain"; -import { SpeciesFormChangeManualTrigger } from "./pokemon-forms"; +import { SpeciesFormChangeManualTrigger, SpeciesFormChangeRevertWeatherFormTrigger, SpeciesFormChangeWeatherTrigger } from "./pokemon-forms"; import i18next from "i18next"; import { Localizable } from "#app/interfaces/locales.js"; import { Command } from "../ui/command-ui-handler"; @@ -25,10 +25,11 @@ import { ArenaTagType } from "#enums/arena-tag-type"; import { BattlerTagType } from "#enums/battler-tag-type"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; -import { MovePhase } from "#app/phases/move-phase.js"; -import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase.js"; -import { ShowAbilityPhase } from "#app/phases/show-ability-phase.js"; -import { StatChangePhase } from "#app/phases/stat-change-phase.js"; +import { MovePhase } from "#app/phases/move-phase"; +import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase"; +import { ShowAbilityPhase } from "#app/phases/show-ability-phase"; +import { StatChangePhase } from "#app/phases/stat-change-phase"; +import BattleScene from "#app/battle-scene"; export class Ability implements Localizable { public id: Abilities; @@ -2351,7 +2352,7 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr { pokemon.summonData.moveset = target.getMoveset().map(m => new PokemonMove(m!.moveId, m!.ppUsed, m!.ppUp)); // TODO: are those bangs correct? pokemon.summonData.types = target.getTypes(); - pokemon.scene.playSound("PRSFX- Transform"); + pokemon.scene.playSound("battle_anims/PRSFX- Transform"); pokemon.loadAssets(false).then(() => pokemon.playAnim()); @@ -2361,6 +2362,73 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr { } } +/** + * Reverts weather-based forms to their normal forms when the user is summoned. + * Used by Cloud Nine and Air Lock. + * @extends PostSummonAbAttr + */ +export class PostSummonWeatherSuppressedFormChangeAbAttr extends PostSummonAbAttr { + /** + * Triggers {@linkcode Arena.triggerWeatherBasedFormChangesToNormal | triggerWeatherBasedFormChangesToNormal} + * @param {Pokemon} pokemon the Pokemon with this ability + * @param passive n/a + * @param args n/a + * @returns whether a Pokemon was reverted to its normal form + */ + applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]) { + const pokemonToTransform = getPokemonWithWeatherBasedForms(pokemon.scene); + + if (pokemonToTransform.length < 1) { + return false; + } + + if (!simulated) { + pokemon.scene.arena.triggerWeatherBasedFormChangesToNormal(); + } + + return true; + } +} + +/** + * Triggers weather-based form change when summoned into an active weather. + * Used by Forecast. + * @extends PostSummonAbAttr + */ +export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr { + private ability: Abilities; + + constructor(ability: Abilities) { + super(false); + + this.ability = ability; + } + + /** + * Calls the {@linkcode BattleScene.triggerPokemonFormChange | triggerPokemonFormChange} for both + * {@linkcode SpeciesFormChange.SpeciesFormChangeWeatherTrigger | SpeciesFormChangeWeatherTrigger} and + * {@linkcode SpeciesFormChange.SpeciesFormChangeWeatherTrigger | SpeciesFormChangeRevertWeatherFormTrigger} if it + * is the specific Pokemon and ability + * @param {Pokemon} pokemon the Pokemon with this ability + * @param passive n/a + * @param args n/a + * @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) { + if (simulated) { + return simulated; + } + + pokemon.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeWeatherTrigger); + pokemon.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeRevertWeatherFormTrigger); + queueShowAbility(pokemon, passive); + return true; + } + return false; + } +} + export class PreSwitchOutAbAttr extends AbAttr { constructor() { super(true); @@ -3014,6 +3082,49 @@ export class PostWeatherChangeAbAttr extends AbAttr { } } +/** + * Triggers weather-based form change when weather changes. + * Used by Forecast. + * @extends PostWeatherChangeAbAttr + */ +export class PostWeatherChangeFormChangeAbAttr extends PostWeatherChangeAbAttr { + private ability: Abilities; + + constructor(ability: Abilities) { + super(false); + + this.ability = ability; + } + + /** + * 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 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) { + 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)) { + pokemon.scene.arena.triggerWeatherBasedFormChangesToNormal(); + } else { + pokemon.scene.arena.triggerWeatherBasedFormChanges(); + } + return true; + } + return false; + } +} + export class PostWeatherChangeAddBattlerTagAttr extends PostWeatherChangeAbAttr { private tagType: BattlerTagType; private turnCount: integer; @@ -3784,6 +3895,38 @@ export class PostFaintAbAttr extends AbAttr { } } +/** + * Used for weather suppressing abilities to trigger weather-based form changes upon being fainted. + * Used by Cloud Nine and Air Lock. + * @extends PostFaintAbAttr + */ +export class PostFaintUnsuppressedWeatherFormChangeAbAttr extends PostFaintAbAttr { + /** + * Triggers {@linkcode Arena.triggerWeatherBasedFormChanges | triggerWeatherBasedFormChanges} + * when the user of the ability faints + * @param {Pokemon} pokemon the fainted Pokemon + * @param passive n/a + * @param attacker n/a + * @param move n/a + * @param hitResult n/a + * @param args n/a + * @returns whether the form change was triggered + */ + applyPostFaint(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean { + const pokemonToTransform = getPokemonWithWeatherBasedForms(pokemon.scene); + + if (pokemonToTransform.length < 1) { + return false; + } + + if (!simulated) { + pokemon.scene.arena.triggerWeatherBasedFormChanges(); + } + + return true; + } +} + /** * Clears Desolate Land/Primordial Sea/Delta Stream upon the Pokemon fainting */ @@ -4243,7 +4386,7 @@ export class FormBlockDamageAbAttr extends ReceivedMoveDamageMultiplierAbAttr { (args[0] as Utils.NumberHolder).value = this.multiplier; pokemon.removeTag(this.tagType); if (this.recoilDamageFunc) { - pokemon.damageAndUpdate(this.recoilDamageFunc(pokemon), HitResult.OTHER); + pokemon.damageAndUpdate(this.recoilDamageFunc(pokemon), HitResult.OTHER, false, false, true, true); } } return true; @@ -4559,6 +4702,16 @@ function setAbilityRevealed(pokemon: Pokemon): void { } } +/** + * Returns the Pokemon with weather-based forms + * @param {BattleScene} scene - The current scene + */ +function getPokemonWithWeatherBasedForms(scene: BattleScene) { + return scene.getField(true).filter(p => + p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM + ); +} + export const allAbilities = [ new Ability(Abilities.NONE, 3) ]; export function initAbilities() { @@ -4605,7 +4758,10 @@ export function initAbilities() { .ignorable(), new Ability(Abilities.CLOUD_NINE, 3) .attr(SuppressWeatherEffectAbAttr, true) - .attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared")), + .attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared")) + .attr(PostSummonWeatherSuppressedFormChangeAbAttr) + .attr(PostFaintUnsuppressedWeatherFormChangeAbAttr) + .bypassFaint(), new Ability(Abilities.COMPOUND_EYES, 3) .attr(BattleStatMultiplierAbAttr, BattleStat.ACC, 1.3), new Ability(Abilities.INSOMNIA, 3) @@ -4750,7 +4906,8 @@ export function initAbilities() { new Ability(Abilities.FORECAST, 3) .attr(UncopiableAbilityAbAttr) .attr(NoFusionAbilityAbAttr) - .unimplemented(), + .attr(PostSummonFormChangeByWeatherAbAttr, Abilities.FORECAST) + .attr(PostWeatherChangeFormChangeAbAttr, Abilities.FORECAST), new Ability(Abilities.STICKY_HOLD, 3) .attr(BlockItemTheftAbAttr) .bypassFaint() @@ -4800,7 +4957,10 @@ export function initAbilities() { .ignorable(), new Ability(Abilities.AIR_LOCK, 3) .attr(SuppressWeatherEffectAbAttr, true) - .attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared")), + .attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared")) + .attr(PostSummonWeatherSuppressedFormChangeAbAttr) + .attr(PostFaintUnsuppressedWeatherFormChangeAbAttr) + .bypassFaint(), new Ability(Abilities.TANGLED_FEET, 4) .conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), BattleStatMultiplierAbAttr, BattleStat.EVA, 2) .ignorable(), diff --git a/src/data/battle-anims.ts b/src/data/battle-anims.ts index c86f3db5085..a2f6e41f4ae 100644 --- a/src/data/battle-anims.ts +++ b/src/data/battle-anims.ts @@ -325,11 +325,11 @@ class AnimTimedSoundEvent extends AnimTimedEvent { const soundConfig = { rate: (this.pitch * 0.01), volume: (this.volume * 0.01) }; if (this.resourceName) { try { - scene.playSound(this.resourceName, soundConfig); + scene.playSound(`battle_anims/${this.resourceName}`, soundConfig); } catch (err) { console.error(err); } - return Math.ceil((scene.sound.get(this.resourceName).totalDuration * 1000) / 33.33); + return Math.ceil((scene.sound.get(`battle_anims/${this.resourceName}`).totalDuration * 1000) / 33.33); } else { return Math.ceil((battleAnim.user!.cry(soundConfig).totalDuration * 1000) / 33.33); // TODO: is the bang behind user correct? } diff --git a/src/data/move.ts b/src/data/move.ts index 36d72bdb3e0..40ff3c2c725 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -26,17 +26,18 @@ import { BattlerTagType } from "#enums/battler-tag-type"; import { Biome } from "#enums/biome"; import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; -import { MoveUsedEvent } from "#app/events/battle-scene.js"; +import { MoveUsedEvent } from "#app/events/battle-scene"; +import { PartyStatusCurePhase } from "#app/phases/party-status-cure-phase"; +import { BattleEndPhase } from "#app/phases/battle-end-phase"; +import { MoveEndPhase } from "#app/phases/move-end-phase"; +import { MovePhase } from "#app/phases/move-phase"; +import { NewBattlePhase } from "#app/phases/new-battle-phase"; +import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase"; +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 { ModifierTier } from "#app/modifier/modifier-tier.js"; -import { PartyStatusCurePhase } from "#app/phases/party-status-cure-phase.js"; -import { BattleEndPhase } from "#app/phases/battle-end-phase.js"; -import { MoveEndPhase } from "#app/phases/move-end-phase.js"; -import { MovePhase } from "#app/phases/move-phase.js"; -import { NewBattlePhase } from "#app/phases/new-battle-phase.js"; -import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase.js"; -import { StatChangePhase } from "#app/phases/stat-change-phase.js"; -import { SwitchPhase } from "#app/phases/switch-phase.js"; -import { SwitchSummonPhase } from "#app/phases/switch-summon-phase.js"; export enum MoveCategory { PHYSICAL, @@ -5740,7 +5741,10 @@ export class AbilityChangeAttr extends MoveEffectAttr { return false; } - (this.selfTarget ? user : target).summonData.ability = this.ability; + const moveTarget = this.selfTarget ? user : target; + + moveTarget.summonData.ability = this.ability; + user.scene.triggerPokemonFormChange(moveTarget, SpeciesFormChangeRevertWeatherFormTrigger); user.scene.queueMessage(i18next.t("moveTriggers:acquiredAbility", {pokemonName: getPokemonNameWithAffix((this.selfTarget ? user : target)), abilityName: allAbilities[this.ability].name})); @@ -5826,6 +5830,10 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr { target.summonData.ability = tempAbilityId; user.scene.queueMessage(i18next.t("moveTriggers:swappedAbilitiesWithTarget", {pokemonName: getPokemonNameWithAffix(user)})); + // Swaps Forecast from Castform + user.scene.arena.triggerWeatherBasedFormChangesToNormal(); + // Swaps Forecast to Castform (edge case) + user.scene.arena.triggerWeatherBasedFormChanges(); return true; } @@ -5851,6 +5859,7 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr { } target.summonData.abilitySuppressed = true; + target.scene.arena.triggerWeatherBasedFormChangesToNormal(); target.scene.queueMessage(i18next.t("moveTriggers:suppressAbilities", {pokemonName: getPokemonNameWithAffix(target)})); @@ -8421,8 +8430,8 @@ export function initMoves() { .partial() .ignoresVirtual(), /* End Unused */ - new AttackMove(Moves.ZIPPY_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 80, 100, 10, 100, 2, 7) - .attr(StatChangeAttr, BattleStat.EVA, 1, true), + new AttackMove(Moves.ZIPPY_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 50, 100, 15, 100, 2, 7) //LGPE Implementation + .attr(CritOnlyAttr), new AttackMove(Moves.SPLISHY_SPLASH, Type.WATER, MoveCategory.SPECIAL, 90, 100, 15, 30, 0, 7) .attr(StatusEffectAttr, StatusEffect.PARALYSIS) .target(MoveTarget.ALL_NEAR_ENEMIES), @@ -8708,7 +8717,6 @@ export function initMoves() { .attr(StatusEffectAttr, StatusEffect.BURN), new StatusMove(Moves.JUNGLE_HEALING, Type.GRASS, -1, 10, -1, 0, 8) .attr(HealAttr, 0.25, true, false) - .attr(HealStatusEffectAttr, true, StatusEffect.PARALYSIS, StatusEffect.POISON, StatusEffect.TOXIC, StatusEffect.BURN, StatusEffect.SLEEP) .attr(HealStatusEffectAttr, false, StatusEffect.PARALYSIS, StatusEffect.POISON, StatusEffect.TOXIC, StatusEffect.BURN, StatusEffect.SLEEP) .target(MoveTarget.USER_AND_ALLIES), new AttackMove(Moves.WICKED_BLOW, Type.DARK, MoveCategory.PHYSICAL, 75, 100, 5, -1, 0, 8) @@ -8812,8 +8820,7 @@ export function initMoves() { .windMove() .target(MoveTarget.ALL_NEAR_ENEMIES), new StatusMove(Moves.LUNAR_BLESSING, Type.PSYCHIC, -1, 5, -1, 0, 8) - .attr(HealAttr, 0.25) - .attr(HealStatusEffectAttr, true, StatusEffect.PARALYSIS, StatusEffect.POISON, StatusEffect.TOXIC, StatusEffect.BURN, StatusEffect.SLEEP) + .attr(HealAttr, 0.25, true, false) .attr(HealStatusEffectAttr, false, StatusEffect.PARALYSIS, StatusEffect.POISON, StatusEffect.TOXIC, StatusEffect.BURN, StatusEffect.SLEEP) .target(MoveTarget.USER_AND_ALLIES) .triageMove(), diff --git a/src/data/pokeball.ts b/src/data/pokeball.ts index f26451b802b..59ff4ed86ce 100644 --- a/src/data/pokeball.ts +++ b/src/data/pokeball.ts @@ -95,7 +95,7 @@ export function doPokeballBounceAnim(scene: BattleScene, pokeball: Phaser.GameOb duration: bouncePower * baseBounceDuration, ease: "Cubic.easeIn", onComplete: () => { - scene.playSound("pb_bounce_1", { volume: bouncePower }); + scene.playSound("se/pb_bounce_1", { volume: bouncePower }); bouncePower = bouncePower > 0.01 ? bouncePower * 0.5 : 0; diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index 95a89c7c640..e4417f8e8bb 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -10,6 +10,7 @@ import { Species } from "#enums/species"; import { TimeOfDay } from "#enums/time-of-day"; import { getPokemonNameWithAffix } from "#app/messages.js"; import i18next from "i18next"; +import { WeatherType } from "./weather"; export enum FormChangeItem { NONE, @@ -356,6 +357,78 @@ export class SpeciesDefaultFormMatchTrigger extends SpeciesFormChangeTrigger { } } +/** + * Class used for triggering form changes based on weather. + * Used by Castform. + * @extends SpeciesFormChangeTrigger + */ +export class SpeciesFormChangeWeatherTrigger extends SpeciesFormChangeTrigger { + /** The ability that triggers the form change */ + public ability: Abilities; + /** The list of weathers that trigger the form change */ + public weathers: WeatherType[]; + + constructor(ability: Abilities, weathers: WeatherType[]) { + super(); + this.ability = ability; + this.weathers = weathers; + } + + /** + * Checks if the Pokemon has the required ability and is in the correct weather while + * the weather or ability is also not suppressed. + * @param {Pokemon} pokemon the pokemon that is trying to do the form change + * @returns `true` if the Pokemon can change forms, `false` otherwise + */ + canChange(pokemon: Pokemon): boolean { + const currentWeather = pokemon.scene.arena.weather?.weatherType ?? WeatherType.NONE; + const isWeatherSuppressed = pokemon.scene.arena.weather?.isEffectSuppressed(pokemon.scene); + const isAbilitySuppressed = pokemon.summonData.abilitySuppressed; + + return !isAbilitySuppressed && !isWeatherSuppressed && (pokemon.hasAbility(this.ability) && this.weathers.includes(currentWeather)); + } +} + +/** + * 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. + * @extends SpeciesFormChangeTrigger + */ +export class SpeciesFormChangeRevertWeatherFormTrigger extends SpeciesFormChangeTrigger { + /** The ability that triggers the form change*/ + public ability: Abilities; + /** The list of weathers that will also trigger a form change to original form */ + public weathers: WeatherType[]; + + constructor(ability: Abilities, weathers: WeatherType[]) { + super(); + this.ability = ability; + this.weathers = weathers; + } + + /** + * Checks if the Pokemon has the required ability and the weather is one that will revert + * the Pokemon to its original form or the weather or ability is suppressed + * @param {Pokemon} pokemon the pokemon that is trying to do the form change + * @returns `true` if the Pokemon will revert to its original form, `false` otherwise + */ + canChange(pokemon: Pokemon): boolean { + if (pokemon.hasAbility(this.ability, false, true)) { + const currentWeather = pokemon.scene.arena.weather?.weatherType ?? WeatherType.NONE; + const isWeatherSuppressed = pokemon.scene.arena.weather?.isEffectSuppressed(pokemon.scene); + const isAbilitySuppressed = pokemon.summonData.abilitySuppressed; + const summonDataAbility = pokemon.summonData.ability; + const isAbilityChanged = summonDataAbility !== this.ability && summonDataAbility !== Abilities.NONE; + + if (this.weathers.includes(currentWeather) || isWeatherSuppressed || isAbilitySuppressed || isAbilityChanged) { + return true; + } + } + return false; + } +} + export function getSpeciesFormChangeMessage(pokemon: Pokemon, formChange: SpeciesFormChange, preName: string): string { const isMega = formChange.formKey.indexOf(SpeciesFormKey.MEGA) > -1; const isGmax = formChange.formKey.indexOf(SpeciesFormKey.GIGANTAMAX) > -1; @@ -839,7 +912,24 @@ export const pokemonFormChanges: PokemonFormChanges = { new SpeciesFormChange(Species.CRAMORANT, "gorging", "", new SpeciesFormChangeManualTrigger, true), new SpeciesFormChange(Species.CRAMORANT, "gulping", "", new SpeciesFormChangeActiveTrigger(false), true), new SpeciesFormChange(Species.CRAMORANT, "gorging", "", new SpeciesFormChangeActiveTrigger(false), true), - ] + ], + [Species.CASTFORM]: [ + new SpeciesFormChange(Species.CASTFORM, "", "sunny", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.SUNNY, WeatherType.HARSH_SUN]), true), + new SpeciesFormChange(Species.CASTFORM, "rainy", "sunny", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.SUNNY, WeatherType.HARSH_SUN]), true), + new SpeciesFormChange(Species.CASTFORM, "snowy", "sunny", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.SUNNY, WeatherType.HARSH_SUN]), true), + new SpeciesFormChange(Species.CASTFORM, "", "rainy", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.RAIN, WeatherType.HEAVY_RAIN]), true), + new SpeciesFormChange(Species.CASTFORM, "sunny", "rainy", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.RAIN, WeatherType.HEAVY_RAIN]), true), + new SpeciesFormChange(Species.CASTFORM, "snowy", "rainy", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.RAIN, WeatherType.HEAVY_RAIN]), true), + new SpeciesFormChange(Species.CASTFORM, "", "snowy", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.HAIL, WeatherType.SNOW]), true), + new SpeciesFormChange(Species.CASTFORM, "sunny", "snowy", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.HAIL, WeatherType.SNOW]), true), + new SpeciesFormChange(Species.CASTFORM, "rainy", "snowy", new SpeciesFormChangeWeatherTrigger(Abilities.FORECAST, [WeatherType.HAIL, WeatherType.SNOW]), true), + new SpeciesFormChange(Species.CASTFORM, "sunny", "", new SpeciesFormChangeRevertWeatherFormTrigger(Abilities.FORECAST, [WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG]), true), + new SpeciesFormChange(Species.CASTFORM, "rainy", "", new SpeciesFormChangeRevertWeatherFormTrigger(Abilities.FORECAST, [WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG]), true), + new SpeciesFormChange(Species.CASTFORM, "snowy", "", new SpeciesFormChangeRevertWeatherFormTrigger(Abilities.FORECAST, [WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG]), true), + new SpeciesFormChange(Species.CASTFORM, "sunny", "", new SpeciesFormChangeActiveTrigger(), true), + new SpeciesFormChange(Species.CASTFORM, "rainy", "", new SpeciesFormChangeActiveTrigger(), true), + new SpeciesFormChange(Species.CASTFORM, "snowy", "", new SpeciesFormChangeActiveTrigger(), true), + ], }; export function initPokemonForms() { diff --git a/src/data/pokemon-level-moves.ts b/src/data/pokemon-level-moves.ts index 9e8c7053334..93bd57ae32c 100644 --- a/src/data/pokemon-level-moves.ts +++ b/src/data/pokemon-level-moves.ts @@ -18800,6 +18800,85 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = { [ 44, Moves.THUNDER ], [ 48, Moves.PIKA_PAPOW ], ], + 8: [ + [ 1, Moves.TAIL_WHIP ], + [ 1, Moves.GROWL ], + [ 1, Moves.THUNDER_SHOCK ], + [ 1, Moves.QUICK_ATTACK ], + [ 1, Moves.SWEET_KISS ], + [ 1, Moves.CHARM ], + [ 1, Moves.NASTY_PLOT ], + [ 1, Moves.PLAY_NICE ], + [ 1, Moves.NUZZLE ], + [ 4, Moves.THUNDER_WAVE ], + [ 8, Moves.DOUBLE_TEAM ], + [ 12, Moves.ELECTRO_BALL ], + [ 16, Moves.FEINT ], + [ 20, Moves.ZIPPY_ZAP ], //Custom + [ 24, Moves.AGILITY ], + [ 28, Moves.IRON_TAIL ], + [ 32, Moves.DISCHARGE ], + [ 34, Moves.FLOATY_FALL ], //Custom + [ 36, Moves.THUNDERBOLT ], + [ 40, Moves.LIGHT_SCREEN ], + [ 42, Moves.SPLISHY_SPLASH ], //Custom + [ 44, Moves.THUNDER ], + [ 48, Moves.PIKA_PAPOW ], + ], + }, + [Species.EEVEE]: { //Custom + 1: [ + [ 1, Moves.TACKLE ], + [ 1, Moves.TAIL_WHIP ], + [ 1, Moves.GROWL ], + [ 1, Moves.HELPING_HAND ], + [ 1, Moves.COVET ], + [ 5, Moves.SAND_ATTACK ], + [ 10, Moves.QUICK_ATTACK ], + [ 15, Moves.BABY_DOLL_EYES ], + [ 18, Moves.BOUNCY_BUBBLE ], //Custom + [ 18, Moves.SIZZLY_SLIDE ], //Custom + [ 18, Moves.BUZZY_BUZZ ], //Custom + [ 20, Moves.SWIFT ], + [ 25, Moves.BITE ], + [ 30, Moves.COPYCAT ], + [ 33, Moves.BADDY_BAD ], //Custom + [ 33, Moves.GLITZY_GLOW ], //Custom + [ 35, Moves.BATON_PASS ], + [ 40, Moves.VEEVEE_VOLLEY ], //Custom, replaces Take Down + [ 43, Moves.FREEZY_FROST ], //Custom + [ 43, Moves.SAPPY_SEED ], //Custom + [ 45, Moves.CHARM ], + [ 50, Moves.DOUBLE_EDGE ], + [ 53, Moves.SPARKLY_SWIRL ], //Custom + [ 55, Moves.LAST_RESORT ], + ], + 2: [ + [ 1, Moves.TACKLE ], + [ 1, Moves.TAIL_WHIP ], + [ 1, Moves.GROWL ], + [ 1, Moves.HELPING_HAND ], + [ 1, Moves.COVET ], + [ 5, Moves.SAND_ATTACK ], + [ 10, Moves.QUICK_ATTACK ], + [ 15, Moves.BABY_DOLL_EYES ], + [ 18, Moves.BOUNCY_BUBBLE ], //Custom + [ 18, Moves.SIZZLY_SLIDE ], //Custom + [ 18, Moves.BUZZY_BUZZ ], //Custom + [ 20, Moves.SWIFT ], + [ 25, Moves.BITE ], + [ 30, Moves.COPYCAT ], + [ 33, Moves.BADDY_BAD ], //Custom + [ 33, Moves.GLITZY_GLOW ], //Custom + [ 35, Moves.BATON_PASS ], + [ 40, Moves.VEEVEE_VOLLEY ], //Custom, replaces Take Down + [ 43, Moves.FREEZY_FROST ], //Custom + [ 43, Moves.SAPPY_SEED ], //Custom + [ 45, Moves.CHARM ], + [ 50, Moves.DOUBLE_EDGE ], + [ 53, Moves.SPARKLY_SWIRL ], //Custom + [ 55, Moves.LAST_RESORT ], + ], }, [Species.DEOXYS]: { 1: [ diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index a9958c200ed..dc12ca402cd 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -455,7 +455,7 @@ export abstract class PokemonSpeciesForm { return new Promise(resolve => { const spriteKey = this.getSpriteKey(female, formIndex, shiny, variant); scene.loadPokemonAtlas(spriteKey, this.getSpriteAtlasPath(female, formIndex, shiny, variant)); - scene.load.audio(this.getCryKey(formIndex), `audio/cry/${this.getCryKey(formIndex)}.m4a`); + scene.load.audio(`cry/${this.getCryKey(formIndex)}`, `audio/cry/${this.getCryKey(formIndex)}.m4a`); scene.load.once(Phaser.Loader.Events.COMPLETE, () => { const originalWarn = console.warn; // Ignore warnings for missing frames, because there will be a lot @@ -511,7 +511,7 @@ export abstract class PokemonSpeciesForm { if (cry?.pendingRemove) { cry = null; } - cry = scene.playSound(cry || cryKey, soundConfig); + cry = scene.playSound(`cry/${(cry ?? cryKey)}`, soundConfig); if (ignorePlay) { cry.stop(); } @@ -913,7 +913,7 @@ export function initSpecies() { new PokemonSpecies(Species.VENUSAUR, 1, false, false, false, "Seed Pokémon", Type.GRASS, Type.POISON, 2, 100, Abilities.OVERGROW, Abilities.NONE, Abilities.CHLOROPHYLL, 525, 80, 82, 83, 100, 100, 80, 45, 50, 263, GrowthRate.MEDIUM_SLOW, 87.5, true, true, new PokemonForm("Normal", "", Type.GRASS, Type.POISON, 2, 100, Abilities.OVERGROW, Abilities.NONE, Abilities.CHLOROPHYLL, 525, 80, 82, 83, 100, 100, 80, 45, 50, 263, true, null, true), new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GRASS, Type.POISON, 2.4, 155.5, Abilities.THICK_FAT, Abilities.THICK_FAT, Abilities.THICK_FAT, 625, 80, 100, 123, 122, 120, 80, 45, 50, 263, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, Type.POISON, 24, 100, Abilities.OVERGROW, Abilities.NONE, Abilities.CHLOROPHYLL, 625, 100, 90, 120, 110, 130, 75, 45, 50, 263, true), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, Type.POISON, 24, 100, Abilities.CHLOROPHYLL, Abilities.CHLOROPHYLL, Abilities.CHLOROPHYLL, 625, 120, 82, 98, 130, 115, 80, 45, 50, 263, true), ), new PokemonSpecies(Species.CHARMANDER, 1, false, false, false, "Lizard Pokémon", Type.FIRE, null, 0.6, 8.5, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 309, 39, 52, 43, 60, 50, 65, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.CHARMELEON, 1, false, false, false, "Flame Pokémon", Type.FIRE, null, 1.1, 19, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 405, 58, 64, 58, 80, 65, 80, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), @@ -921,20 +921,20 @@ export function initSpecies() { new PokemonForm("Normal", "", Type.FIRE, Type.FLYING, 1.7, 90.5, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 534, 78, 84, 78, 109, 85, 100, 45, 50, 267, false, null, true), new PokemonForm("Mega X", SpeciesFormKey.MEGA_X, Type.FIRE, Type.DRAGON, 1.7, 110.5, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.TOUGH_CLAWS, 634, 78, 130, 111, 130, 85, 100, 45, 50, 267), new PokemonForm("Mega Y", SpeciesFormKey.MEGA_Y, Type.FIRE, Type.FLYING, 1.7, 100.5, Abilities.DROUGHT, Abilities.NONE, Abilities.DROUGHT, 634, 78, 104, 78, 159, 115, 100, 45, 50, 267), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIRE, Type.FLYING, 28, 90.5, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 634, 98, 100, 96, 135, 110, 95, 45, 50, 267), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIRE, Type.FLYING, 28, 90.5, Abilities.SOLAR_POWER, Abilities.SOLAR_POWER, Abilities.SOLAR_POWER, 634, 118, 84, 93, 139, 110, 100, 45, 50, 267), ), new PokemonSpecies(Species.SQUIRTLE, 1, false, false, false, "Tiny Turtle Pokémon", Type.WATER, null, 0.5, 9, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 314, 44, 48, 65, 50, 64, 43, 45, 50, 63, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.WARTORTLE, 1, false, false, false, "Turtle Pokémon", Type.WATER, null, 1, 22.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 405, 59, 63, 80, 65, 80, 58, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.BLASTOISE, 1, false, false, false, "Shellfish Pokémon", Type.WATER, null, 1.6, 85.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 530, 79, 83, 100, 85, 105, 78, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.WATER, null, 1.6, 85.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 530, 79, 83, 100, 85, 105, 78, 45, 50, 265, false, null, true), new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.WATER, null, 1.6, 101.1, Abilities.MEGA_LAUNCHER, Abilities.NONE, Abilities.MEGA_LAUNCHER, 630, 79, 103, 120, 135, 115, 78, 45, 50, 265), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, null, 25, 85.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 630, 100, 95, 130, 105, 125, 75, 45, 50, 265), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, Type.STEEL, 25, 85.5, Abilities.SHELL_ARMOR, Abilities.SHELL_ARMOR, Abilities.SHELL_ARMOR, 630, 119, 83, 130, 115, 115, 68, 45, 50, 265), ), new PokemonSpecies(Species.CATERPIE, 1, false, false, false, "Worm Pokémon", Type.BUG, null, 0.3, 2.9, Abilities.SHIELD_DUST, Abilities.NONE, Abilities.RUN_AWAY, 195, 45, 30, 35, 20, 20, 45, 255, 50, 39, GrowthRate.MEDIUM_FAST, 50, false), 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.COMPOUND_EYES, Abilities.NONE, Abilities.TINTED_LENS, 495, 75, 50, 75, 120, 100, 75, 45, 50, 198, 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 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), @@ -963,7 +963,7 @@ export function initSpecies() { new PokemonForm("Cute Cosplay", "cute-cosplay", Type.ELECTRIC, null, 0.4, 6, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 430, 45, 80, 50, 75, 60, 120, 190, 50, 112, true, null, true), //Custom new PokemonForm("Smart Cosplay", "smart-cosplay", Type.ELECTRIC, null, 0.4, 6, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 430, 45, 80, 50, 75, 60, 120, 190, 50, 112, true, null, true), //Custom new PokemonForm("Tough Cosplay", "tough-cosplay", Type.ELECTRIC, null, 0.4, 6, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 430, 45, 80, 50, 75, 60, 120, 190, 50, 112, true, null, true), //Custom - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.ELECTRIC, null, 21, 6, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 420, 45, 60, 65, 100, 75, 75, 190, 50, 112), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.ELECTRIC, null, 21, 6, Abilities.LIGHTNING_ROD, Abilities.LIGHTNING_ROD, Abilities.LIGHTNING_ROD, 530, 125, 95, 60, 90, 70, 90, 190, 50, 112), //+100 BST from Partner Form ), new PokemonSpecies(Species.RAICHU, 1, false, false, false, "Mouse Pokémon", Type.ELECTRIC, null, 0.8, 30, Abilities.STATIC, Abilities.NONE, Abilities.LIGHTNING_ROD, 485, 60, 90, 55, 90, 80, 110, 75, 50, 243, GrowthRate.MEDIUM_FAST, 50, true), new PokemonSpecies(Species.SANDSHREW, 1, false, false, false, "Mouse Pokémon", Type.GROUND, null, 0.6, 12, Abilities.SAND_VEIL, Abilities.NONE, Abilities.SAND_RUSH, 300, 50, 75, 85, 20, 30, 40, 255, 50, 60, GrowthRate.MEDIUM_FAST, 50, false), @@ -993,7 +993,7 @@ export function initSpecies() { new PokemonSpecies(Species.DUGTRIO, 1, false, false, false, "Mole Pokémon", Type.GROUND, null, 0.7, 33.3, Abilities.SAND_VEIL, Abilities.ARENA_TRAP, Abilities.SAND_FORCE, 425, 35, 100, 50, 50, 70, 120, 50, 50, 149, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MEOWTH, 1, false, false, false, "Scratch Cat Pokémon", Type.NORMAL, null, 0.4, 4.2, Abilities.PICKUP, Abilities.TECHNICIAN, Abilities.UNNERVE, 290, 40, 45, 35, 40, 40, 90, 255, 50, 58, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 0.4, 4.2, Abilities.PICKUP, Abilities.TECHNICIAN, Abilities.UNNERVE, 290, 40, 45, 35, 40, 40, 90, 255, 50, 58, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 33, 4.2, Abilities.PICKUP, Abilities.TECHNICIAN, Abilities.UNNERVE, 390, 50, 85, 60, 70, 50, 75, 255, 50, 58), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 33, 4.2, Abilities.TECHNICIAN, Abilities.TECHNICIAN, Abilities.TECHNICIAN, 540, 115, 110, 65, 65, 70, 115, 255, 50, 58), //+100 BST from Persian ), new PokemonSpecies(Species.PERSIAN, 1, false, false, false, "Classy Cat Pokémon", Type.NORMAL, null, 1, 32, Abilities.LIMBER, Abilities.TECHNICIAN, Abilities.UNNERVE, 440, 65, 70, 60, 65, 65, 115, 90, 50, 154, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.PSYDUCK, 1, false, false, false, "Duck Pokémon", Type.WATER, null, 0.8, 19.6, Abilities.DAMP, Abilities.CLOUD_NINE, Abilities.SWIFT_SWIM, 320, 50, 52, 48, 65, 50, 55, 190, 50, 64, GrowthRate.MEDIUM_FAST, 50, false), @@ -1015,7 +1015,7 @@ export function initSpecies() { new PokemonSpecies(Species.MACHOKE, 1, false, false, false, "Superpower Pokémon", Type.FIGHTING, null, 1.5, 70.5, Abilities.GUTS, Abilities.NO_GUARD, Abilities.STEADFAST, 405, 80, 100, 70, 50, 60, 45, 90, 50, 142, GrowthRate.MEDIUM_SLOW, 75, false), new PokemonSpecies(Species.MACHAMP, 1, false, false, false, "Superpower Pokémon", Type.FIGHTING, null, 1.6, 130, Abilities.GUTS, Abilities.NO_GUARD, Abilities.STEADFAST, 505, 90, 130, 80, 65, 85, 55, 45, 50, 253, GrowthRate.MEDIUM_SLOW, 75, false, true, new PokemonForm("Normal", "", Type.FIGHTING, null, 1.6, 130, Abilities.GUTS, Abilities.NO_GUARD, Abilities.STEADFAST, 505, 90, 130, 80, 65, 85, 55, 45, 50, 253, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIGHTING, null, 25, 130, Abilities.GUTS, Abilities.NO_GUARD, Abilities.STEADFAST, 605, 113, 170, 90, 70, 95, 67, 45, 50, 253), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIGHTING, null, 25, 130, Abilities.GUTS, Abilities.GUTS, Abilities.GUTS, 605, 115, 170, 95, 65, 95, 65, 45, 50, 253), ), new PokemonSpecies(Species.BELLSPROUT, 1, false, false, false, "Flower Pokémon", Type.GRASS, Type.POISON, 0.7, 4, Abilities.CHLOROPHYLL, Abilities.NONE, Abilities.GLUTTONY, 300, 50, 75, 35, 70, 30, 40, 255, 70, 60, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.WEEPINBELL, 1, false, false, false, "Flycatcher Pokémon", Type.GRASS, Type.POISON, 1, 6.4, Abilities.CHLOROPHYLL, Abilities.NONE, Abilities.GLUTTONY, 390, 65, 90, 50, 85, 45, 55, 120, 70, 137, GrowthRate.MEDIUM_SLOW, 50, false), @@ -1048,7 +1048,7 @@ export function initSpecies() { new PokemonSpecies(Species.GENGAR, 1, false, false, false, "Shadow Pokémon", Type.GHOST, Type.POISON, 1.5, 40.5, Abilities.CURSED_BODY, Abilities.NONE, Abilities.NONE, 500, 60, 65, 60, 130, 75, 110, 45, 50, 250, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.GHOST, Type.POISON, 1.5, 40.5, Abilities.CURSED_BODY, Abilities.NONE, Abilities.NONE, 500, 60, 65, 60, 130, 75, 110, 45, 50, 250, false, null, true), new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GHOST, Type.POISON, 1.4, 40.5, Abilities.SHADOW_TAG, Abilities.NONE, Abilities.NONE, 600, 60, 65, 80, 170, 95, 130, 45, 50, 250), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GHOST, Type.POISON, 20, 40.5, Abilities.CURSED_BODY, Abilities.NONE, Abilities.NONE, 600, 75, 95, 85, 160, 95, 90, 45, 50, 250), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GHOST, Type.POISON, 20, 40.5, Abilities.CURSED_BODY, Abilities.CURSED_BODY, Abilities.CURSED_BODY, 600, 140, 65, 70, 140, 85, 100, 45, 50, 250), ), new PokemonSpecies(Species.ONIX, 1, false, false, false, "Rock Snake Pokémon", Type.ROCK, Type.GROUND, 8.8, 210, Abilities.ROCK_HEAD, Abilities.STURDY, Abilities.WEAK_ARMOR, 385, 35, 45, 160, 30, 45, 70, 45, 50, 77, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DROWZEE, 1, false, false, false, "Hypnosis Pokémon", Type.PSYCHIC, null, 1, 32.4, Abilities.INSOMNIA, Abilities.FOREWARN, Abilities.INNER_FOCUS, 328, 60, 48, 45, 43, 90, 42, 190, 70, 66, GrowthRate.MEDIUM_FAST, 50, false), @@ -1056,7 +1056,7 @@ export function initSpecies() { new PokemonSpecies(Species.KRABBY, 1, false, false, false, "River Crab Pokémon", Type.WATER, null, 0.4, 6.5, Abilities.HYPER_CUTTER, Abilities.SHELL_ARMOR, Abilities.SHEER_FORCE, 325, 30, 105, 90, 25, 25, 50, 225, 50, 65, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.KINGLER, 1, false, false, false, "Pincer Pokémon", Type.WATER, null, 1.3, 60, Abilities.HYPER_CUTTER, Abilities.SHELL_ARMOR, Abilities.SHEER_FORCE, 475, 55, 130, 115, 50, 50, 75, 60, 50, 166, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.WATER, null, 1.3, 60, Abilities.HYPER_CUTTER, Abilities.SHELL_ARMOR, Abilities.SHEER_FORCE, 475, 55, 130, 115, 50, 50, 75, 60, 50, 166, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, null, 19, 60, Abilities.HYPER_CUTTER, Abilities.SHELL_ARMOR, Abilities.SHEER_FORCE, 575, 70, 165, 145, 60, 70, 65, 60, 50, 166), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, null, 19, 60, Abilities.TOUGH_CLAWS, Abilities.TOUGH_CLAWS, Abilities.TOUGH_CLAWS, 575, 90, 155, 140, 50, 80, 70, 60, 50, 166), ), new PokemonSpecies(Species.VOLTORB, 1, false, false, false, "Ball Pokémon", Type.ELECTRIC, null, 0.5, 10.4, Abilities.SOUNDPROOF, Abilities.STATIC, Abilities.AFTERMATH, 330, 40, 30, 50, 55, 55, 100, 190, 70, 66, GrowthRate.MEDIUM_FAST, null, false), new PokemonSpecies(Species.ELECTRODE, 1, false, false, false, "Ball Pokémon", Type.ELECTRIC, null, 1.2, 66.6, Abilities.SOUNDPROOF, Abilities.STATIC, Abilities.AFTERMATH, 490, 60, 50, 70, 80, 80, 150, 60, 70, 172, GrowthRate.MEDIUM_FAST, null, false), @@ -1100,13 +1100,13 @@ export function initSpecies() { ), new PokemonSpecies(Species.LAPRAS, 1, false, false, false, "Transport Pokémon", Type.WATER, Type.ICE, 2.5, 220, Abilities.WATER_ABSORB, Abilities.SHELL_ARMOR, Abilities.HYDRATION, 535, 130, 85, 80, 85, 95, 60, 45, 50, 187, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.WATER, Type.ICE, 2.5, 220, Abilities.WATER_ABSORB, Abilities.SHELL_ARMOR, Abilities.HYDRATION, 535, 130, 85, 80, 85, 95, 60, 45, 50, 187, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, Type.ICE, 24, 220, Abilities.WATER_ABSORB, Abilities.SHELL_ARMOR, Abilities.HYDRATION, 635, 160, 95, 110, 95, 125, 50, 45, 50, 187), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, Type.ICE, 24, 220, Abilities.SHELL_ARMOR, Abilities.SHELL_ARMOR, Abilities.SHELL_ARMOR, 635, 170, 85, 95, 115, 110, 60, 45, 50, 187), ), new PokemonSpecies(Species.DITTO, 1, false, false, false, "Transform Pokémon", Type.NORMAL, null, 0.3, 4, Abilities.LIMBER, Abilities.NONE, Abilities.IMPOSTER, 288, 48, 48, 48, 48, 48, 48, 35, 50, 101, GrowthRate.MEDIUM_FAST, null, false), new PokemonSpecies(Species.EEVEE, 1, false, false, false, "Evolution Pokémon", Type.NORMAL, null, 0.3, 6.5, Abilities.RUN_AWAY, Abilities.ADAPTABILITY, Abilities.ANTICIPATION, 325, 55, 55, 50, 45, 65, 55, 45, 50, 65, GrowthRate.MEDIUM_FAST, 87.5, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 0.3, 6.5, Abilities.RUN_AWAY, Abilities.ADAPTABILITY, Abilities.ANTICIPATION, 325, 55, 55, 50, 45, 65, 55, 45, 50, 65, false, null, true), new PokemonForm("Partner", "partner", Type.NORMAL, null, 0.3, 6.5, Abilities.RUN_AWAY, Abilities.ADAPTABILITY, Abilities.ANTICIPATION, 435, 65, 75, 70, 65, 85, 75, 45, 50, 65, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 18, 6.5, Abilities.RUN_AWAY, Abilities.ADAPTABILITY, Abilities.ANTICIPATION, 425, 70, 75, 80, 60, 95, 45, 45, 50, 65), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.NORMAL, null, 18, 6.5, Abilities.PROTEAN, Abilities.PROTEAN, Abilities.PROTEAN, 535, 105, 95, 70, 95, 85, 85, 45, 50, 65), //+100 BST from Partner Form ), new PokemonSpecies(Species.VAPOREON, 1, false, false, false, "Bubble Jet Pokémon", Type.WATER, null, 1, 29, Abilities.WATER_ABSORB, Abilities.NONE, Abilities.HYDRATION, 525, 130, 65, 60, 110, 95, 65, 45, 50, 184, GrowthRate.MEDIUM_FAST, 87.5, false), new PokemonSpecies(Species.JOLTEON, 1, false, false, false, "Lightning Pokémon", Type.ELECTRIC, null, 0.8, 24.5, Abilities.VOLT_ABSORB, Abilities.NONE, Abilities.QUICK_FEET, 525, 65, 65, 60, 110, 95, 130, 45, 50, 184, GrowthRate.MEDIUM_FAST, 87.5, false), @@ -1122,7 +1122,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.IMMUNITY, Abilities.THICK_FAT, Abilities.GLUTTONY, 640, 200, 130, 85, 75, 130, 20, 25, 50, 189), + 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 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), @@ -1762,7 +1762,7 @@ export function initSpecies() { new PokemonSpecies(Species.TRUBBISH, 5, false, false, false, "Trash Bag Pokémon", Type.POISON, null, 0.6, 31, Abilities.STENCH, Abilities.STICKY_HOLD, Abilities.AFTERMATH, 329, 50, 50, 62, 40, 62, 65, 190, 50, 66, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.GARBODOR, 5, false, false, false, "Trash Heap Pokémon", Type.POISON, null, 1.9, 107.3, Abilities.STENCH, Abilities.WEAK_ARMOR, Abilities.AFTERMATH, 474, 80, 95, 82, 60, 82, 75, 60, 50, 166, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.POISON, null, 1.9, 107.3, Abilities.STENCH, Abilities.WEAK_ARMOR, Abilities.AFTERMATH, 474, 80, 95, 82, 60, 82, 75, 60, 50, 166, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.POISON, null, 21, 107.3, Abilities.STENCH, Abilities.WEAK_ARMOR, Abilities.AFTERMATH, 574, 100, 125, 102, 80, 102, 65, 60, 50, 166), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.POISON, Type.STEEL, 21, 107.3, Abilities.TOXIC_DEBRIS, Abilities.TOXIC_DEBRIS, Abilities.TOXIC_DEBRIS, 574, 135, 125, 102, 57, 102, 53, 60, 50, 166), ), new PokemonSpecies(Species.ZORUA, 5, false, false, false, "Tricky Fox Pokémon", Type.DARK, null, 0.7, 12.5, Abilities.ILLUSION, Abilities.NONE, Abilities.NONE, 330, 40, 65, 40, 80, 40, 65, 75, 50, 66, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.ZOROARK, 5, false, false, false, "Illusion Fox Pokémon", Type.DARK, null, 1.6, 81.1, Abilities.ILLUSION, Abilities.NONE, Abilities.NONE, 510, 60, 105, 60, 120, 60, 105, 45, 50, 179, GrowthRate.MEDIUM_SLOW, 87.5, false), @@ -2236,25 +2236,25 @@ export function initSpecies() { new PokemonSpecies(Species.MELTAN, 7, false, false, true, "Hex Nut Pokémon", Type.STEEL, null, 0.2, 8, Abilities.MAGNET_PULL, Abilities.NONE, Abilities.NONE, 300, 46, 65, 65, 55, 35, 34, 3, 0, 150, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.MELMETAL, 7, false, false, true, "Hex Nut Pokémon", Type.STEEL, null, 2.5, 800, Abilities.IRON_FIST, Abilities.NONE, Abilities.NONE, 600, 135, 143, 143, 80, 65, 34, 3, 0, 300, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.STEEL, null, 2.5, 800, Abilities.IRON_FIST, Abilities.NONE, Abilities.NONE, 600, 135, 143, 143, 80, 65, 34, 3, 0, 300, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.STEEL, null, 25, 800, Abilities.IRON_FIST, Abilities.NONE, Abilities.NONE, 700, 170, 165, 165, 95, 75, 30, 3, 0, 300), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.STEEL, null, 25, 800, Abilities.IRON_FIST, Abilities.IRON_FIST, Abilities.IRON_FIST, 700, 175, 165, 155, 85, 75, 45, 3, 0, 300), ), new PokemonSpecies(Species.GROOKEY, 8, false, false, false, "Chimp Pokémon", Type.GRASS, null, 0.3, 5, Abilities.OVERGROW, Abilities.NONE, Abilities.GRASSY_SURGE, 310, 50, 65, 50, 40, 40, 65, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), 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.OVERGROW, Abilities.NONE, Abilities.GRASSY_SURGE, 630, 125, 150, 115, 75, 90, 75, 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, 115, 65, 95, 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.BLAZE, Abilities.NONE, Abilities.LIBERO, 630, 100, 145, 90, 75, 90, 130, 45, 50, 265), + 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 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.TORRENT, Abilities.NONE, Abilities.SNIPER, 630, 90, 100, 90, 150, 90, 110, 45, 50, 265), + 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 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), @@ -2262,13 +2262,13 @@ export function initSpecies() { new PokemonSpecies(Species.CORVISQUIRE, 8, false, false, false, "Raven Pokémon", Type.FLYING, null, 0.8, 16, Abilities.KEEN_EYE, Abilities.UNNERVE, Abilities.BIG_PECKS, 365, 68, 67, 55, 43, 55, 77, 120, 50, 128, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.CORVIKNIGHT, 8, false, false, false, "Raven Pokémon", Type.FLYING, Type.STEEL, 2.2, 75, Abilities.PRESSURE, Abilities.UNNERVE, Abilities.MIRROR_ARMOR, 495, 98, 87, 105, 53, 85, 67, 45, 50, 248, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.FLYING, Type.STEEL, 2.2, 75, Abilities.PRESSURE, Abilities.UNNERVE, Abilities.MIRROR_ARMOR, 495, 98, 87, 105, 53, 85, 67, 45, 50, 248, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FLYING, Type.STEEL, 14, 75, Abilities.PRESSURE, Abilities.UNNERVE, Abilities.MIRROR_ARMOR, 595, 125, 100, 135, 60, 95, 80, 45, 50, 248), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FLYING, Type.STEEL, 14, 75, Abilities.MIRROR_ARMOR, Abilities.MIRROR_ARMOR, Abilities.MIRROR_ARMOR, 595, 128, 102, 140, 53, 95, 77, 45, 50, 248), ), new PokemonSpecies(Species.BLIPBUG, 8, false, false, false, "Larva Pokémon", Type.BUG, null, 0.4, 8, Abilities.SWARM, Abilities.COMPOUND_EYES, Abilities.TELEPATHY, 180, 25, 20, 20, 25, 45, 45, 255, 50, 36, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DOTTLER, 8, false, false, false, "Radome Pokémon", Type.BUG, Type.PSYCHIC, 0.4, 19.5, Abilities.SWARM, Abilities.COMPOUND_EYES, Abilities.TELEPATHY, 335, 50, 35, 80, 50, 90, 30, 120, 50, 117, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ORBEETLE, 8, false, false, false, "Seven Spot Pokémon", Type.BUG, Type.PSYCHIC, 0.4, 40.8, Abilities.SWARM, Abilities.FRISK, Abilities.TELEPATHY, 505, 60, 45, 110, 80, 120, 90, 45, 50, 253, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.BUG, Type.PSYCHIC, 0.4, 40.8, Abilities.SWARM, Abilities.FRISK, Abilities.TELEPATHY, 505, 60, 45, 110, 80, 120, 90, 45, 50, 253, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.BUG, Type.PSYCHIC, 14, 40.8, Abilities.SWARM, Abilities.FRISK, Abilities.TELEPATHY, 605, 75, 50, 140, 90, 150, 100, 45, 50, 253), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.BUG, Type.PSYCHIC, 14, 40.8, Abilities.TRACE, Abilities.TRACE, Abilities.TRACE, 605, 90, 45, 130, 110, 140, 90, 45, 50, 253), ), new PokemonSpecies(Species.NICKIT, 8, false, false, false, "Fox Pokémon", Type.DARK, null, 0.6, 8.9, Abilities.RUN_AWAY, Abilities.UNBURDEN, Abilities.STAKEOUT, 245, 40, 28, 28, 47, 52, 50, 255, 50, 49, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.THIEVUL, 8, false, false, false, "Fox Pokémon", Type.DARK, null, 1.2, 19.9, Abilities.RUN_AWAY, Abilities.UNBURDEN, Abilities.STAKEOUT, 455, 70, 58, 58, 87, 92, 90, 127, 50, 159, GrowthRate.FAST, 50, false), @@ -2279,7 +2279,7 @@ export function initSpecies() { new PokemonSpecies(Species.CHEWTLE, 8, false, false, false, "Snapping Pokémon", Type.WATER, null, 0.3, 8.5, Abilities.STRONG_JAW, Abilities.SHELL_ARMOR, Abilities.SWIFT_SWIM, 284, 50, 64, 50, 38, 38, 44, 255, 50, 57, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DREDNAW, 8, false, false, false, "Bite Pokémon", Type.WATER, Type.ROCK, 1, 115.5, Abilities.STRONG_JAW, Abilities.SHELL_ARMOR, Abilities.SWIFT_SWIM, 485, 90, 115, 90, 48, 68, 74, 75, 50, 170, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.WATER, Type.ROCK, 1, 115.5, Abilities.STRONG_JAW, Abilities.SHELL_ARMOR, Abilities.SWIFT_SWIM, 485, 90, 115, 90, 48, 68, 74, 75, 50, 170, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, Type.ROCK, 24, 115.5, Abilities.STRONG_JAW, Abilities.SHELL_ARMOR, Abilities.SWIFT_SWIM, 585, 115, 150, 110, 55, 85, 70, 75, 50, 170), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.WATER, Type.ROCK, 24, 115.5, Abilities.STRONG_JAW, Abilities.STRONG_JAW, Abilities.STRONG_JAW, 585, 115, 145, 115, 43, 83, 84, 75, 50, 170), ), new PokemonSpecies(Species.YAMPER, 8, false, false, false, "Puppy Pokémon", Type.ELECTRIC, null, 0.3, 13.5, Abilities.BALL_FETCH, Abilities.NONE, Abilities.RATTLED, 270, 59, 45, 50, 40, 50, 26, 255, 50, 54, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.BOLTUND, 8, false, false, false, "Dog Pokémon", Type.ELECTRIC, null, 1, 34, Abilities.STRONG_JAW, Abilities.NONE, Abilities.COMPETITIVE, 490, 69, 90, 60, 90, 60, 121, 45, 50, 172, GrowthRate.FAST, 50, false), @@ -2287,21 +2287,21 @@ export function initSpecies() { new PokemonSpecies(Species.CARKOL, 8, false, false, false, "Coal Pokémon", Type.ROCK, Type.FIRE, 1.1, 78, Abilities.STEAM_ENGINE, Abilities.FLAME_BODY, Abilities.FLASH_FIRE, 410, 80, 60, 90, 60, 70, 50, 120, 50, 144, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.COALOSSAL, 8, false, false, false, "Coal Pokémon", Type.ROCK, Type.FIRE, 2.8, 310.5, Abilities.STEAM_ENGINE, Abilities.FLAME_BODY, Abilities.FLASH_FIRE, 510, 110, 80, 120, 80, 90, 30, 45, 50, 255, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.ROCK, Type.FIRE, 2.8, 310.5, Abilities.STEAM_ENGINE, Abilities.FLAME_BODY, Abilities.FLASH_FIRE, 510, 110, 80, 120, 80, 90, 30, 45, 50, 255, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.ROCK, Type.FIRE, 42, 310.5, Abilities.STEAM_ENGINE, Abilities.FLAME_BODY, Abilities.FLASH_FIRE, 610, 140, 95, 150, 95, 105, 25, 45, 50, 255), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.ROCK, Type.FIRE, 42, 310.5, Abilities.STEAM_ENGINE, Abilities.STEAM_ENGINE, Abilities.STEAM_ENGINE, 610, 140, 95, 130, 95, 110, 40, 45, 50, 255), ), new PokemonSpecies(Species.APPLIN, 8, false, false, false, "Apple Core Pokémon", Type.GRASS, Type.DRAGON, 0.2, 0.5, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.BULLETPROOF, 260, 40, 40, 80, 40, 40, 20, 255, 50, 52, GrowthRate.ERRATIC, 50, false), new PokemonSpecies(Species.FLAPPLE, 8, false, false, false, "Apple Wing Pokémon", Type.GRASS, Type.DRAGON, 0.3, 1, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.HUSTLE, 485, 70, 110, 80, 95, 60, 70, 45, 50, 170, GrowthRate.ERRATIC, 50, false, true, new PokemonForm("Normal", "", Type.GRASS, Type.DRAGON, 0.3, 1, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.HUSTLE, 485, 70, 110, 80, 95, 60, 70, 45, 50, 170, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, Type.DRAGON, 24, 1, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.HUSTLE, 585, 90, 140, 90, 120, 75, 70, 45, 50, 170), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, Type.DRAGON, 24, 1, Abilities.HUSTLE, Abilities.HUSTLE, Abilities.HUSTLE, 585, 90, 130, 100, 85, 80, 100, 45, 50, 170), ), new PokemonSpecies(Species.APPLETUN, 8, false, false, false, "Apple Nectar Pokémon", Type.GRASS, Type.DRAGON, 0.4, 13, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.THICK_FAT, 485, 110, 85, 80, 100, 80, 30, 45, 50, 170, GrowthRate.ERRATIC, 50, false, true, new PokemonForm("Normal", "", Type.GRASS, Type.DRAGON, 0.4, 13, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.THICK_FAT, 485, 110, 85, 80, 100, 80, 30, 45, 50, 170, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, Type.DRAGON, 24, 13, Abilities.RIPEN, Abilities.GLUTTONY, Abilities.THICK_FAT, 585, 140, 95, 95, 135, 95, 25, 45, 50, 170), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GRASS, Type.DRAGON, 24, 13, Abilities.THICK_FAT, Abilities.THICK_FAT, Abilities.THICK_FAT, 585, 130, 75, 115, 125, 115, 25, 45, 50, 170), ), new PokemonSpecies(Species.SILICOBRA, 8, false, false, false, "Sand Snake Pokémon", Type.GROUND, null, 2.2, 7.6, Abilities.SAND_SPIT, Abilities.SHED_SKIN, Abilities.SAND_VEIL, 315, 52, 57, 75, 35, 50, 46, 255, 50, 63, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.SANDACONDA, 8, false, false, false, "Sand Snake Pokémon", Type.GROUND, null, 3.8, 65.5, Abilities.SAND_SPIT, Abilities.SHED_SKIN, Abilities.SAND_VEIL, 510, 72, 107, 125, 65, 70, 71, 120, 50, 179, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.GROUND, null, 3.8, 65.5, Abilities.SAND_SPIT, Abilities.SHED_SKIN, Abilities.SAND_VEIL, 510, 72, 107, 125, 65, 70, 71, 120, 50, 179, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GROUND, null, 22, 65.5, Abilities.SAND_SPIT, Abilities.SHED_SKIN, Abilities.SAND_VEIL, 610, 90, 135, 150, 75, 80, 80, 120, 50, 179), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.GROUND, null, 22, 65.5, Abilities.SAND_SPIT, Abilities.SAND_SPIT, Abilities.SAND_SPIT, 610, 117, 137, 140, 55, 80, 81, 120, 50, 179), ), new PokemonSpecies(Species.CRAMORANT, 8, false, false, false, "Gulp Pokémon", Type.FLYING, Type.WATER, 0.8, 18, Abilities.GULP_MISSILE, Abilities.NONE, Abilities.NONE, 475, 70, 85, 55, 85, 95, 85, 45, 50, 166, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("Normal", "", Type.FLYING, Type.WATER, 0.8, 18, Abilities.GULP_MISSILE, Abilities.NONE, Abilities.NONE, 475, 70, 85, 55, 85, 95, 85, 45, 50, 166, false, null, true), @@ -2314,12 +2314,12 @@ export function initSpecies() { new PokemonSpecies(Species.TOXTRICITY, 8, false, false, false, "Punk Pokémon", Type.ELECTRIC, Type.POISON, 1.6, 40, Abilities.PUNK_ROCK, Abilities.PLUS, Abilities.TECHNICIAN, 502, 75, 98, 70, 114, 70, 75, 45, 50, 176, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Amped Form", "amped", Type.ELECTRIC, Type.POISON, 1.6, 40, Abilities.PUNK_ROCK, Abilities.PLUS, Abilities.TECHNICIAN, 502, 75, 98, 70, 114, 70, 75, 45, 50, 176, false, "", true), new PokemonForm("Low-Key Form", "lowkey", Type.ELECTRIC, Type.POISON, 1.6, 40, Abilities.PUNK_ROCK, Abilities.MINUS, Abilities.TECHNICIAN, 502, 75, 98, 70, 114, 70, 75, 45, 50, 176, false, "lowkey", true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.ELECTRIC, Type.POISON, 24, 40, Abilities.PUNK_ROCK, Abilities.MINUS, Abilities.TECHNICIAN, 602, 95, 118, 80, 144, 80, 85, 45, 50, 176), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.ELECTRIC, Type.POISON, 24, 40, Abilities.PUNK_ROCK, Abilities.PUNK_ROCK, Abilities.PUNK_ROCK, 602, 114, 98, 82, 144, 82, 82, 45, 50, 176), ), new PokemonSpecies(Species.SIZZLIPEDE, 8, false, false, false, "Radiator Pokémon", Type.FIRE, Type.BUG, 0.7, 1, Abilities.FLASH_FIRE, Abilities.WHITE_SMOKE, Abilities.FLAME_BODY, 305, 50, 65, 45, 50, 50, 45, 190, 50, 61, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.CENTISKORCH, 8, false, false, false, "Radiator Pokémon", Type.FIRE, Type.BUG, 3, 120, Abilities.FLASH_FIRE, Abilities.WHITE_SMOKE, Abilities.FLAME_BODY, 525, 100, 115, 65, 90, 90, 65, 75, 50, 184, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.FIRE, Type.BUG, 3, 120, Abilities.FLASH_FIRE, Abilities.WHITE_SMOKE, Abilities.FLAME_BODY, 525, 100, 115, 65, 90, 90, 65, 75, 50, 184, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIRE, Type.BUG, 75, 120, Abilities.FLASH_FIRE, Abilities.WHITE_SMOKE, Abilities.FLAME_BODY, 625, 125, 145, 75, 105, 105, 70, 75, 50, 184), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FIRE, Type.BUG, 75, 120, Abilities.FLASH_FIRE, Abilities.FLASH_FIRE, Abilities.FLASH_FIRE, 625, 140, 145, 75, 90, 100, 75, 75, 50, 184), ), new PokemonSpecies(Species.CLOBBOPUS, 8, false, false, false, "Tantrum Pokémon", Type.FIGHTING, null, 0.6, 4, Abilities.LIMBER, Abilities.NONE, Abilities.TECHNICIAN, 310, 50, 68, 60, 50, 50, 32, 180, 50, 62, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.GRAPPLOCT, 8, false, false, false, "Jujitsu Pokémon", Type.FIGHTING, null, 1.6, 39, Abilities.LIMBER, Abilities.NONE, Abilities.TECHNICIAN, 480, 80, 118, 90, 70, 80, 42, 45, 50, 168, GrowthRate.MEDIUM_SLOW, 50, false), @@ -2335,13 +2335,13 @@ export function initSpecies() { new PokemonSpecies(Species.HATTREM, 8, false, false, false, "Serene Pokémon", Type.PSYCHIC, null, 0.6, 4.8, Abilities.HEALER, Abilities.ANTICIPATION, Abilities.MAGIC_BOUNCE, 370, 57, 40, 65, 86, 73, 49, 120, 50, 130, GrowthRate.SLOW, 0, false), new PokemonSpecies(Species.HATTERENE, 8, false, false, false, "Silent Pokémon", Type.PSYCHIC, Type.FAIRY, 2.1, 5.1, Abilities.HEALER, Abilities.ANTICIPATION, Abilities.MAGIC_BOUNCE, 510, 57, 90, 95, 136, 103, 29, 45, 50, 255, GrowthRate.SLOW, 0, false, true, new PokemonForm("Normal", "", Type.PSYCHIC, Type.FAIRY, 2.1, 5.1, Abilities.HEALER, Abilities.ANTICIPATION, Abilities.MAGIC_BOUNCE, 510, 57, 90, 95, 136, 103, 29, 45, 50, 255, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.PSYCHIC, Type.FAIRY, 26, 5.1, Abilities.HEALER, Abilities.ANTICIPATION, Abilities.MAGIC_BOUNCE, 610, 70, 105, 110, 160, 125, 40, 45, 50, 255), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.PSYCHIC, Type.FAIRY, 26, 5.1, Abilities.MAGIC_BOUNCE, Abilities.MAGIC_BOUNCE, Abilities.MAGIC_BOUNCE, 610, 97, 90, 105, 146, 122, 50, 45, 50, 255), ), new PokemonSpecies(Species.IMPIDIMP, 8, false, false, false, "Wily Pokémon", Type.DARK, Type.FAIRY, 0.4, 5.5, Abilities.PRANKSTER, Abilities.FRISK, Abilities.PICKPOCKET, 265, 45, 45, 30, 55, 40, 50, 255, 50, 53, GrowthRate.MEDIUM_FAST, 100, false), new PokemonSpecies(Species.MORGREM, 8, false, false, false, "Devious Pokémon", Type.DARK, Type.FAIRY, 0.8, 12.5, Abilities.PRANKSTER, Abilities.FRISK, Abilities.PICKPOCKET, 370, 65, 60, 45, 75, 55, 70, 120, 50, 130, GrowthRate.MEDIUM_FAST, 100, false), new PokemonSpecies(Species.GRIMMSNARL, 8, false, false, false, "Bulk Up Pokémon", Type.DARK, Type.FAIRY, 1.5, 61, Abilities.PRANKSTER, Abilities.FRISK, Abilities.PICKPOCKET, 510, 95, 120, 65, 95, 75, 60, 45, 50, 255, GrowthRate.MEDIUM_FAST, 100, false, true, new PokemonForm("Normal", "", Type.DARK, Type.FAIRY, 1.5, 61, Abilities.PRANKSTER, Abilities.FRISK, Abilities.PICKPOCKET, 510, 95, 120, 65, 95, 75, 60, 45, 50, 255, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.DARK, Type.FAIRY, 32, 61, Abilities.PRANKSTER, Abilities.FRISK, Abilities.PICKPOCKET, 610, 120, 155, 75, 110, 85, 65, 45, 50, 255), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.DARK, Type.FAIRY, 32, 61, Abilities.PRANKSTER, Abilities.PRANKSTER, Abilities.PRANKSTER, 610, 135, 138, 77, 110, 85, 65, 45, 50, 255), ), new PokemonSpecies(Species.OBSTAGOON, 8, false, false, false, "Blocking Pokémon", Type.DARK, Type.NORMAL, 1.6, 46, Abilities.RECKLESS, Abilities.GUTS, Abilities.DEFIANT, 520, 93, 90, 101, 60, 81, 95, 45, 50, 260, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.PERRSERKER, 8, false, false, false, "Viking Pokémon", Type.STEEL, null, 0.8, 28, Abilities.BATTLE_ARMOR, Abilities.TOUGH_CLAWS, Abilities.STEELY_SPIRIT, 440, 70, 110, 100, 50, 60, 50, 90, 50, 154, GrowthRate.MEDIUM_FAST, 50, false), @@ -2360,7 +2360,7 @@ export function initSpecies() { new PokemonForm("Ruby Swirl", "ruby-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), new PokemonForm("Caramel Swirl", "caramel-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), new PokemonForm("Rainbow Swirl", "rainbow-swirl", Type.FAIRY, null, 0.3, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 495, 65, 60, 75, 110, 121, 64, 100, 50, 173, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FAIRY, null, 30, 0.5, Abilities.SWEET_VEIL, Abilities.NONE, Abilities.AROMA_VEIL, 595, 85, 70, 85, 140, 150, 65, 100, 50, 173), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.FAIRY, null, 30, 0.5, Abilities.MISTY_SURGE, Abilities.MISTY_SURGE, Abilities.MISTY_SURGE, 595, 135, 60, 75, 130, 131, 64, 100, 50, 173), ), new PokemonSpecies(Species.FALINKS, 8, false, false, false, "Formation Pokémon", Type.FIGHTING, null, 3, 62, Abilities.BATTLE_ARMOR, Abilities.NONE, Abilities.DEFIANT, 470, 65, 100, 100, 70, 60, 75, 45, 50, 165, GrowthRate.MEDIUM_FAST, null, false), new PokemonSpecies(Species.PINCURCHIN, 8, false, false, false, "Sea Urchin Pokémon", Type.ELECTRIC, null, 0.3, 1, Abilities.LIGHTNING_ROD, Abilities.NONE, Abilities.ELECTRIC_SURGE, 435, 48, 101, 95, 91, 85, 15, 75, 50, 152, GrowthRate.MEDIUM_FAST, 50, false), @@ -2382,7 +2382,7 @@ export function initSpecies() { new PokemonSpecies(Species.CUFANT, 8, false, false, false, "Copperderm Pokémon", Type.STEEL, null, 1.2, 100, Abilities.SHEER_FORCE, Abilities.NONE, Abilities.HEAVY_METAL, 330, 72, 80, 49, 40, 49, 40, 190, 50, 66, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.COPPERAJAH, 8, false, false, false, "Copperderm Pokémon", Type.STEEL, null, 3, 650, Abilities.SHEER_FORCE, Abilities.NONE, Abilities.HEAVY_METAL, 500, 122, 130, 69, 80, 69, 30, 90, 50, 175, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.STEEL, null, 3, 650, Abilities.SHEER_FORCE, Abilities.NONE, Abilities.HEAVY_METAL, 500, 122, 130, 69, 80, 69, 30, 90, 50, 175, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.STEEL, null, 23, 650, Abilities.SHEER_FORCE, Abilities.NONE, Abilities.HEAVY_METAL, 600, 150, 160, 80, 90, 80, 40, 90, 50, 175), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.STEEL, Type.GROUND, 23, 650, Abilities.MOLD_BREAKER, Abilities.MOLD_BREAKER, Abilities.MOLD_BREAKER, 600, 167, 155, 89, 80, 89, 20, 90, 50, 175), ), new PokemonSpecies(Species.DRACOZOLT, 8, false, false, false, "Fossil Pokémon", Type.ELECTRIC, Type.DRAGON, 1.8, 190, Abilities.VOLT_ABSORB, Abilities.HUSTLE, Abilities.SAND_RUSH, 505, 90, 100, 90, 80, 70, 75, 45, 50, 177, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.ARCTOZOLT, 8, false, false, false, "Fossil Pokémon", Type.ELECTRIC, Type.ICE, 2.3, 150, Abilities.VOLT_ABSORB, Abilities.STATIC, Abilities.SLUSH_RUSH, 505, 90, 100, 90, 90, 80, 55, 45, 50, 177, GrowthRate.SLOW, null, false), @@ -2390,7 +2390,7 @@ export function initSpecies() { new PokemonSpecies(Species.ARCTOVISH, 8, false, false, false, "Fossil Pokémon", Type.WATER, Type.ICE, 2, 175, Abilities.WATER_ABSORB, Abilities.ICE_BODY, Abilities.SLUSH_RUSH, 505, 90, 90, 100, 80, 90, 55, 45, 50, 177, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.DURALUDON, 8, false, false, false, "Alloy Pokémon", Type.STEEL, Type.DRAGON, 1.8, 40, Abilities.LIGHT_METAL, Abilities.HEAVY_METAL, Abilities.STALWART, 535, 70, 95, 115, 120, 50, 85, 45, 50, 187, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.STEEL, Type.DRAGON, 1.8, 40, Abilities.LIGHT_METAL, Abilities.HEAVY_METAL, Abilities.STALWART, 535, 70, 95, 115, 120, 50, 85, 45, 50, 187, false, null, true), - new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.STEEL, Type.DRAGON, 43, 40, Abilities.LIGHT_METAL, Abilities.HEAVY_METAL, Abilities.STALWART, 635, 90, 110, 145, 140, 60, 90, 45, 50, 187), + new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, Type.STEEL, Type.DRAGON, 43, 40, Abilities.LIGHTNING_ROD, Abilities.LIGHTNING_ROD, Abilities.LIGHTNING_ROD, 635, 100, 105, 119, 166, 57, 88, 45, 50, 187), ), new PokemonSpecies(Species.DREEPY, 8, false, false, false, "Lingering Pokémon", Type.DRAGON, Type.GHOST, 0.5, 2, Abilities.CLEAR_BODY, Abilities.INFILTRATOR, Abilities.CURSED_BODY, 270, 28, 60, 30, 40, 30, 82, 45, 50, 54, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.DRAKLOAK, 8, false, false, false, "Caretaker Pokémon", Type.DRAGON, Type.GHOST, 1.4, 11, Abilities.CLEAR_BODY, Abilities.INFILTRATOR, Abilities.CURSED_BODY, 410, 68, 80, 50, 60, 50, 102, 45, 50, 144, GrowthRate.SLOW, 50, false), @@ -2411,8 +2411,8 @@ export function initSpecies() { new PokemonSpecies(Species.URSHIFU, 8, true, false, false, "Wushu Pokémon", Type.FIGHTING, Type.DARK, 1.9, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 550, 100, 130, 100, 63, 60, 97, 3, 50, 275, GrowthRate.SLOW, 87.5, false, true, new PokemonForm("Single Strike Style", "single-strike", Type.FIGHTING, Type.DARK, 1.9, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 550, 100, 130, 100, 63, 60, 97, 3, 50, 275, false, "", true), new PokemonForm("Rapid Strike Style", "rapid-strike", Type.FIGHTING, Type.WATER, 1.9, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 550, 100, 130, 100, 63, 60, 97, 3, 50, 275, false, null, true), - new PokemonForm("G-Max Single Strike Style", SpeciesFormKey.GIGANTAMAX_SINGLE, Type.FIGHTING, Type.DARK, 29, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 650, 125, 160, 120, 75, 70, 100, 3, 50, 275), - new PokemonForm("G-Max Rapid Strike Style", SpeciesFormKey.GIGANTAMAX_RAPID, Type.FIGHTING, Type.WATER, 26, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 650, 125, 160, 120, 75, 70, 100, 3, 50, 275), + new PokemonForm("G-Max Single Strike Style", SpeciesFormKey.GIGANTAMAX_SINGLE, Type.FIGHTING, Type.DARK, 29, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 650, 125, 150, 115, 73, 70, 117, 3, 50, 275), + new PokemonForm("G-Max Rapid Strike Style", SpeciesFormKey.GIGANTAMAX_RAPID, Type.FIGHTING, Type.WATER, 26, 105, Abilities.UNSEEN_FIST, Abilities.NONE, Abilities.NONE, 650, 125, 150, 115, 73, 70, 117, 3, 50, 275), ), new PokemonSpecies(Species.ZARUDE, 8, false, false, true, "Rogue Monkey Pokémon", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, GrowthRate.SLOW, null, false, false, new PokemonForm("Normal", "", Type.DARK, Type.GRASS, 1.8, 70, Abilities.LEAF_GUARD, Abilities.NONE, Abilities.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, false, null, true), @@ -3622,7 +3622,7 @@ export const starterPassiveAbilities = { [Species.YAMASK]: Abilities.PURIFYING_SALT, [Species.TIRTOUGA]: Abilities.WATER_ABSORB, [Species.ARCHEN]: Abilities.MULTISCALE, - [Species.TRUBBISH]: Abilities.TOXIC_DEBRIS, + [Species.TRUBBISH]: Abilities.NEUTRALIZING_GAS, [Species.ZORUA]: Abilities.DARK_AURA, [Species.MINCCINO]: Abilities.FUR_COAT, [Species.GOTHITA]: Abilities.UNNERVE, @@ -3783,7 +3783,7 @@ export const starterPassiveAbilities = { [Species.SINISTEA]: Abilities.SHADOW_SHIELD, [Species.HATENNA]: Abilities.FAIRY_AURA, [Species.IMPIDIMP]: Abilities.FUR_COAT, - [Species.MILCERY]: Abilities.MISTY_SURGE, + [Species.MILCERY]: Abilities.REGENERATOR, [Species.FALINKS]: Abilities.PARENTAL_BOND, [Species.PINCURCHIN]: Abilities.ELECTROMORPHOSIS, [Species.SNOM]: Abilities.SNOW_WARNING, diff --git a/src/data/tms.ts b/src/data/tms.ts index 761dcdf6be4..55f0602c84a 100644 --- a/src/data/tms.ts +++ b/src/data/tms.ts @@ -47576,6 +47576,7 @@ export const tmSpecies: TmSpecies = { Species.PIGNITE, Species.EMBOAR, Species.PANSEAR, + Species.SIMISEAR, Species.DARUMAKA, Species.DARMANITAN, Species.LITWICK, @@ -47617,6 +47618,7 @@ export const tmSpecies: TmSpecies = { Species.CHI_YU, Species.KORAIDON, Species.GOUGING_FIRE, + Species.TERAPAGOS, Species.ALOLA_MAROWAK, Species.GALAR_DARUMAKA, Species.GALAR_DARMANITAN, @@ -50733,6 +50735,7 @@ export const tmSpecies: TmSpecies = { Species.KECLEON, Species.SHUPPET, Species.BANETTE, + Species.DEOXYS, Species.CHIMCHAR, Species.MONFERNO, Species.INFERNAPE, @@ -50761,8 +50764,11 @@ export const tmSpecies: TmSpecies = { Species.PURRLOIN, Species.LIEPARD, Species.PANSAGE, + Species.SIMISAGE, Species.PANSEAR, + Species.SIMISEAR, Species.PANPOUR, + Species.SIMIPOUR, Species.WOOBAT, Species.SWOOBAT, Species.YAMASK, @@ -55614,8 +55620,14 @@ export const tmSpecies: TmSpecies = { Species.HISUI_DECIDUEYE, ], [Moves.ACID_SPRAY]: [ + Species.BULBASAUR, + Species.IVYSAUR, + Species.VENUSAUR, Species.EKANS, Species.ARBOK, + Species.ODDISH, + Species.GLOOM, + Species.VILEPLUME, Species.VENONAT, Species.VENOMOTH, Species.BELLSPROUT, @@ -55630,13 +55642,17 @@ export const tmSpecies: TmSpecies = { Species.GENGAR, Species.KOFFING, Species.WEEZING, + Species.MAGMAR, Species.MEW, Species.SPINARAK, Species.ARIADOS, + Species.BELLOSSOM, Species.WOOPER, Species.QUAGSIRE, Species.QWILFISH, Species.REMORAID, + Species.OCTILLERY, + Species.MAGBY, Species.GULPIN, Species.SWALOT, Species.SEVIPER, @@ -55645,13 +55661,16 @@ export const tmSpecies: TmSpecies = { Species.CROAGUNK, Species.TOXICROAK, Species.CARNIVINE, + Species.MAGMORTAR, Species.ARCEUS, Species.SCRAGGY, + Species.SCRAFTY, Species.TRUBBISH, Species.GARBODOR, Species.KARRABLAST, Species.ESCAVALIER, Species.FERROSEED, + Species.FERROTHORN, Species.EELEKTRIK, Species.EELEKTROSS, Species.ACCELGOR, @@ -55667,6 +55686,7 @@ export const tmSpecies: TmSpecies = { Species.FLAPPLE, Species.TOXTRICITY, Species.SNEASLER, + Species.OVERQWIL, Species.ARMAROUGE, Species.TADBULB, Species.BELLIBOLT, @@ -60261,6 +60281,7 @@ export const tmSpecies: TmSpecies = { Species.CHIMECHO, Species.GOREBYSS, Species.LUVDISC, + Species.LATIAS, Species.CHERUBI, Species.CHERRIM, Species.MISMAGIUS, @@ -63878,6 +63899,8 @@ export const tmSpecies: TmSpecies = { Species.ALAKAZAM, Species.SLOWPOKE, Species.SLOWBRO, + Species.DROWZEE, + Species.HYPNO, Species.EXEGGUTOR, Species.STARMIE, Species.MR_MIME, @@ -63888,12 +63911,18 @@ export const tmSpecies: TmSpecies = { Species.XATU, Species.ESPEON, Species.SLOWKING, + Species.GIRAFARIG, Species.CELEBI, Species.RALTS, Species.KIRLIA, Species.GARDEVOIR, + Species.MEDITITE, + Species.MEDICHAM, + Species.SPOINK, + Species.GRUMPIG, Species.BALTOY, Species.CLAYDOL, + Species.CHIMECHO, Species.METANG, Species.METAGROSS, Species.JIRACHI, @@ -63920,11 +63949,14 @@ export const tmSpecies: TmSpecies = { Species.REUNICLUS, Species.ELGYEM, Species.BEHEEYEM, + Species.DELPHOX, Species.ESPURR, Species.MEOWSTIC, Species.INKAY, Species.MALAMAR, + Species.HOOPA, Species.ORANGURU, + Species.BRUXISH, Species.SOLGALEO, Species.LUNALA, Species.NECROZMA, @@ -63954,6 +63986,7 @@ export const tmSpecies: TmSpecies = { Species.GALAR_MR_MIME, Species.GALAR_ARTICUNO, Species.GALAR_SLOWKING, + Species.HISUI_BRAVIARY, ], [Moves.STEEL_ROLLER]: [ Species.SANDSHREW, diff --git a/src/field/arena.ts b/src/field/arena.ts index 0443ef19544..7622b9a014f 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -20,7 +20,10 @@ import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import { TimeOfDay } from "#enums/time-of-day"; import { TrainerType } from "#enums/trainer-type"; -import { CommonAnimPhase } from "#app/phases/common-anim-phase.js"; +import { Abilities } from "#app/enums/abilities"; +import { SpeciesFormChangeRevertWeatherFormTrigger, SpeciesFormChangeWeatherTrigger } from "#app/data/pokemon-forms"; +import { CommonAnimPhase } from "#app/phases/common-anim-phase"; +import { ShowAbilityPhase } from "#app/phases/show-ability-phase"; export class Arena { public scene: BattleScene; @@ -331,6 +334,30 @@ export class Arena { return true; } + /** + * Function to trigger all weather based form changes + */ + triggerWeatherBasedFormChanges(): void { + this.scene.getField(true).forEach( p => { + if (p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM) { + new ShowAbilityPhase(this.scene, p.getBattlerIndex()); + this.scene.triggerPokemonFormChange(p, SpeciesFormChangeWeatherTrigger); + } + }); + } + + /** + * Function to trigger all weather based form changes back into their normal forms + */ + triggerWeatherBasedFormChangesToNormal(): void { + this.scene.getField(true).forEach( p => { + if (p.hasAbility(Abilities.FORECAST, false, true) && p.species.speciesId === Species.CASTFORM) { + new ShowAbilityPhase(this.scene, p.getBattlerIndex()); + return this.scene.triggerPokemonFormChange(p, SpeciesFormChangeRevertWeatherFormTrigger); + } + }); + } + trySetTerrain(terrain: TerrainType, hasPokemonSource: boolean, ignoreAnim: boolean = false): boolean { if (this.terrain?.terrainType === (terrain || undefined)) { return false; diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 234afae3f40..23d96c67d25 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1140,7 +1140,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { * effects which can affect whether an ability will be present or in effect, and both passive and * non-passive. This is the primary way to check whether a pokemon has a particular ability. * @param {Abilities} ability The ability to check for - * @param {boolean} canApply If false, it doesn't check whether the abiltiy is currently active + * @param {boolean} canApply If false, it doesn't check whether the ability is currently active * @param {boolean} ignoreOverride If true, it ignores ability changing effects * @returns {boolean} Whether the ability is present and active */ @@ -2572,7 +2572,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return this.fusionFaintCry(callback); } - const key = this.getSpeciesForm().getCryKey(this.formIndex); + const key = `cry/${this.getSpeciesForm().getCryKey(this.formIndex)}`; //eslint-disable-next-line @typescript-eslint/no-unused-vars let i = 0; let rate = 0.85; @@ -2997,7 +2997,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { sparkle(): void { if (this.shinySparkle) { this.shinySparkle.play(`sparkle${this.variant ? `_${this.variant + 1}` : ""}`); - this.scene.playSound("sparkle"); + this.scene.playSound("se/sparkle"); } } diff --git a/src/inputs-controller.ts b/src/inputs-controller.ts index 7b0cb9cb050..652e3d58062 100644 --- a/src/inputs-controller.ts +++ b/src/inputs-controller.ts @@ -51,21 +51,6 @@ export interface InterfaceConfig { const repeatInputDelayMillis = 250; -// Phaser.Input.Gamepad.GamepadPlugin#refreshPads -declare module "phaser" { - namespace Input { - namespace Gamepad { - interface GamepadPlugin { - /** - * Refreshes the list of connected Gamepads. - * This is called automatically when a gamepad is connected or disconnected, and during the update loop. - */ - refreshPads(): void; - } - } - } -} - /** * Manages and handles all input controls for the game, including keyboard and gamepad interactions. * diff --git a/src/loading-scene.ts b/src/loading-scene.ts index ae5149d28f6..f4aa12c56c6 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -282,8 +282,9 @@ export class LoadingScene extends SceneBase { this.loadAtlas("xbox", "inputs"); this.loadAtlas("keyboard", "inputs"); - this.loadSe("select"); - this.loadSe("menu_open"); + this.loadSe("select", "ui"); + this.loadSe("menu_open", "ui"); + this.loadSe("error", "ui"); this.loadSe("hit"); this.loadSe("hit_strong"); this.loadSe("hit_weak"); @@ -303,7 +304,6 @@ export class LoadingScene extends SceneBase { this.loadSe("upgrade"); this.loadSe("buy"); this.loadSe("achv"); - this.loadSe("error"); this.loadSe("pb_rel"); this.loadSe("pb_throw"); diff --git a/src/locales/ca_ES/config.ts b/src/locales/ca_ES/config.ts index 427dea40eda..4229b20a583 100644 --- a/src/locales/ca_ES/config.ts +++ b/src/locales/ca_ES/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const caEsConfig = { ability, diff --git a/src/locales/ca_ES/run-history-ui-handler.json b/src/locales/ca_ES/run-history.json similarity index 100% rename from src/locales/ca_ES/run-history-ui-handler.json rename to src/locales/ca_ES/run-history.json diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 988468ef476..28c3332a55f 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const deConfig = { ability, diff --git a/src/locales/de/menu-ui-handler.json b/src/locales/de/menu-ui-handler.json index 149bb6c0467..56c03102b9c 100644 --- a/src/locales/de/menu-ui-handler.json +++ b/src/locales/de/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "Erfolge", "STATS": "Statistiken", "RUN_HISTORY": "Laufhistorie", - "VOUCHERS": "Gutscheine", "EGG_LIST": "Eierliste", "EGG_GACHA": "Eier-Gacha", "MANAGE_DATA": "Daten verwalten", diff --git a/src/locales/de/run-history-ui-handler.json b/src/locales/de/run-history.json similarity index 100% rename from src/locales/de/run-history-ui-handler.json rename to src/locales/de/run-history.json diff --git a/src/locales/de/settings.json b/src/locales/de/settings.json index 1b25f5972ee..b2a2b3d743c 100644 --- a/src/locales/de/settings.json +++ b/src/locales/de/settings.json @@ -61,6 +61,7 @@ "typeHints": "Typhinweise", "masterVolume": "Gesamtlautstärke", "bgmVolume": "Hintergrundmusik", + "fieldVolume": "Rufe & Attacken", "seVolume": "Spezialeffekte", "musicPreference": "Musik Präferenz", "mixed": "Gemischt", diff --git a/src/locales/en/bgm-name.json b/src/locales/en/bgm-name.json index 9be8a4b28c7..d35b9f2b917 100644 --- a/src/locales/en/bgm-name.json +++ b/src/locales/en/bgm-name.json @@ -45,6 +45,7 @@ "battle_legendary_lake_trio": "ORAS Lake Guardians Battle", "battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle", "battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle", + "battle_legendary_origin_forme": "LA Origin Dialga & Palkia Battle", "battle_legendary_giratina": "ORAS Giratina Battle", "battle_legendary_arceus": "HGSS Arceus Battle", "battle_legendary_unova": "BW Unova Legendary Battle", @@ -59,6 +60,7 @@ "battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle", "battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle", "battle_legendary_calyrex": "SWSH Calyrex Battle", + "battle_legendary_riders": "SWSH Ice & Shadow Rider Calyrex Battle", "battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle", "battle_legendary_ruinous": "SV Treasures of Ruin Battle", "battle_legendary_kor_mir": "SV Depths of Area Zero Battle", diff --git a/src/locales/en/menu-ui-handler.json b/src/locales/en/menu-ui-handler.json index 00bf89f127a..8230a675b39 100644 --- a/src/locales/en/menu-ui-handler.json +++ b/src/locales/en/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "Achievements", "STATS": "Stats", "RUN_HISTORY": "Run History", - "VOUCHERS": "Vouchers", "EGG_LIST": "Egg List", "EGG_GACHA": "Egg Gacha", "MANAGE_DATA": "Manage Data", diff --git a/src/locales/en/move.json b/src/locales/en/move.json index e6c8b718e17..7a10335ed06 100644 --- a/src/locales/en/move.json +++ b/src/locales/en/move.json @@ -2913,7 +2913,7 @@ }, "zippyZap": { "name": "Zippy Zap", - "effect": "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness." + "effect": "The user attacks the target with bursts of electricity at high speed. This move always goes first and results in a critical hit." }, "splishySplash": { "name": "Splishy Splash", @@ -3807,4 +3807,4 @@ "name": "Malignant Chain", "effect": "The user pours toxins into the target by wrapping them in a toxic, corrosive chain. This may also leave the target badly poisoned." } -} \ No newline at end of file +} diff --git a/src/locales/en/settings.json b/src/locales/en/settings.json index 314e4f89dd8..947dfe98bb4 100644 --- a/src/locales/en/settings.json +++ b/src/locales/en/settings.json @@ -61,6 +61,7 @@ "typeHints": "Type Hints", "masterVolume": "Master Volume", "bgmVolume": "BGM Volume", + "fieldVolume": "Field Volume", "seVolume": "SE Volume", "musicPreference": "Music Preference", "mixed": "Mixed", diff --git a/src/locales/es/menu-ui-handler.json b/src/locales/es/menu-ui-handler.json index 0b18ba5d343..c906324cdbf 100644 --- a/src/locales/es/menu-ui-handler.json +++ b/src/locales/es/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "Logros", "STATS": "Estadísticas", "RUN_HISTORY": "Historial de partida", - "VOUCHERS": "Vales", "EGG_LIST": "Lista de Huevos", "EGG_GACHA": "Gacha de Huevos", "MANAGE_DATA": "Gestionar Datos", diff --git a/src/locales/es/menu.json b/src/locales/es/menu.json index 3c6587fa462..bd2479a02df 100644 --- a/src/locales/es/menu.json +++ b/src/locales/es/menu.json @@ -16,7 +16,7 @@ "invalidLoginUsername": "El usuario no es válido", "invalidRegisterUsername": "El usuario solo puede contener letras, números y guiones bajos", "invalidLoginPassword": "La contraseña no es válida", - "invalidRegisterPassword": "Contraseña debe tener 6 o más caracter.", + "invalidRegisterPassword": "La contraseña debe tener 6 o más caracteres.", "usernameAlreadyUsed": "El usuario ya está en uso", "accountNonExistent": "El usuario no existe", "unmatchingPassword": "La contraseña no coincide", @@ -37,12 +37,19 @@ "weeklyRankings": "Rankings Semanales", "noRankings": "Sin Rankings", "positionIcon": "#", + "usernameScoreboard": "Usuario", + "score": "Puntos", + "wave": "Oleada", "loading": "Cargando…", "loadingAsset": "Cargando recurso: {{assetName}}", "playersOnline": "Jugadores en Línea", "yes": "Sí", "no": "No", "disclaimer": "AVISO", - "disclaimerDescription": "Este juego es un producto inacabado; puede tener problemas de jugabilidad (incluyendo la posible pérdida\n de datos de guardado),cambiar sin avisar, y puede o no puede ser actualizado hasta ser completado.", - "errorServerDown": "¡Ups! Ha habido un problema al contactar con el servidor.\n\nPuedes mantener esta ventana abierta,\nel juego se reconectará automáticamente." -} \ No newline at end of file + "disclaimerDescription": "Este juego es un producto inacabado; puede tener problemas de jugabilidad (incluyendo la posible pérdida\n de datos de guardado), cambiar sin avisar, y puede o no puede ser actualizado hasta ser completado.", + "choosePokemon": "Elige un Pokémon.", + "renamePokemon": "Renombrar Pokémon.", + "rename": "Renombrar", + "nickname": "Apodo", + "errorServerDown": "¡Ups! Ha habido un problema al contactar con el servidor.\n\nPuedes mantener esta ventana abierta, el juego se reconectará automáticamente." +} diff --git a/src/locales/es/modifier-type.json b/src/locales/es/modifier-type.json index ef6d5acbfa2..95325788bf4 100644 --- a/src/locales/es/modifier-type.json +++ b/src/locales/es/modifier-type.json @@ -97,6 +97,10 @@ "name": "MT{{moveId}} - {{moveName}}", "description": "Enseña {{moveName}} a un Pokémon." }, + "TmModifierTypeWithInfo": { + "name": "MT{{moveId}} - {{moveName}}", + "description": "Enseña {{moveName}} a un Pokémon\n(Mantén pulsado C o Shift para más info)." + }, "EvolutionItemModifierType": { "description": "Hace que ciertos Pokémon evolucionen." }, @@ -129,12 +133,12 @@ "name": "Caramelorarísimo" }, "MEGA_BRACELET": { - "name": "Mega-aro", - "description": "Las Megapiedras están disponibles." + "name": "Megapulsera", + "description": "Las megapiedras se vuelven disponibles." }, "DYNAMAX_BAND": { "name": "Maximuñequera", - "description": "Las Maxisetas están disponibles." + "description": "Las maxisetas se vuelven disponibles." }, "TERA_ORB": { "name": "Orbe Teracristal", @@ -154,42 +158,42 @@ "name": "Hiperpoción" }, "MAX_POTION": { - "name": "Máx. Poción" + "name": "Máx. poción" }, "FULL_RESTORE": { - "name": "Restau. Todo" + "name": "Restau. todo" }, "REVIVE": { "name": "Revivir" }, "MAX_REVIVE": { - "name": "Máx. Revivir" + "name": "Máx. revivir" }, "FULL_HEAL": { - "name": "Cura Total" + "name": "Cura total" }, "SACRED_ASH": { - "name": "Cen. Sagrada" + "name": "Ceniza sagrada" }, "REVIVER_SEED": { - "name": "Semilla Revivir", + "name": "Semilla revivir", "description": "Revive al portador con la mitad de sus PS al debilitarse por un golpe directo." }, "WHITE_HERB": { - "name": "White Herb", - "description": "An item to be held by a Pokémon. It will restore any lowered stat in battle." + "name": "Hierba blanca", + "description": "Un objeto que puede llevar un Pokémon. Restaurará cualquier estadística reducida en combate." }, "ETHER": { "name": "Éter" }, "MAX_ETHER": { - "name": "Éter Máx." + "name": "Éter máx." }, "ELIXIR": { "name": "Elixir" }, "MAX_ELIXIR": { - "name": "Elixir Máx." + "name": "Elixir máx." }, "PP_UP": { "name": "Más PP" @@ -204,10 +208,10 @@ "name": "Superincienso" }, "MAX_LURE": { - "name": "Incienso Máximo" + "name": "Incienso máximo" }, "MEMORY_MUSHROOM": { - "name": "Seta Recuerdo", + "name": "Seta recuerdo", "description": "Recuerda un movimiento olvidado de un Pokémon." }, "EXP_SHARE": { @@ -215,8 +219,8 @@ "description": "Los que no combatan reciben el 20% de la EXP." }, "EXP_BALANCE": { - "name": "Equilibrar EXP", - "description": "Da mayor parte de la EXP recibida a los miembros del equipo que tengan menos nivel." + "name": "Equilibrador EXP", + "description": "Da una mayor parte de la EXP recibida a los miembros del equipo que tengan menos nivel." }, "OVAL_CHARM": { "name": "Amuleto Oval", @@ -232,13 +236,13 @@ "name": "Amuleto EXP Dorado" }, "LUCKY_EGG": { - "name": "Huevo Suerte" + "name": "Huevo suerte" }, "GOLDEN_EGG": { - "name": "Huevo Dorado" + "name": "Huevo dorado" }, "SOOTHE_BELL": { - "name": "Camp. Alivio" + "name": "Camp. alivio" }, "SCOPE_LENS": { "name": "Periscopio", @@ -249,7 +253,7 @@ "description": "Puerro muy largo y duro que aumenta la probabilidad de asestar un golpe crítico. Debe llevarlo Farfetch'd." }, "EVIOLITE": { - "name": "Mineral Evolutivo", + "name": "Mineral evolutivo", "description": "Roca misteriosa. El Pokémon portador aumentará su Defensa y su Defensa Especial si aún puede evolucionar." }, "SOUL_DEW": { @@ -266,7 +270,7 @@ "name": "Real de oro" }, "AMULET_COIN": { - "name": "Moneda Amuleto", + "name": "Moneda amuleto", "description": "Aumenta el dinero ganado en un 20%." }, "GOLDEN_PUNCH": { @@ -279,10 +283,10 @@ }, "LOCK_CAPSULE": { "name": "Cápsula candado", - "description": "Le permite bloquear las rarezas de los objetos al cambiar de objetos." + "description": "Permite bloquear las rarezas de los objetos al refrescar objetos." }, "GRIP_CLAW": { - "name": "Garra Garfio" + "name": "Garra garfio" }, "WIDE_LENS": { "name": "Lupa" @@ -294,20 +298,24 @@ "name": "Amuleto curación", "description": "Aumenta la efectividad de los movimientos y objetos de curacion de PS en un 10% (excepto revivir)." }, + "CANDY_JAR": { + "name": "Tarrón de caramelos", + "description": "Aumenta la cantidad de niveles otorgados por los ítems Caramelos Raros en 1." + }, "BERRY_POUCH": { - "name": "Saco Bayas", - "description": "Agrega un 30% de posibilidades de que una baya usada no se consuma." + "name": "Saco bayas", + "description": "Añade un 30% de posibilidades de que una baya no se gaste al usarla." }, "FOCUS_BAND": { - "name": "Cinta Focus", + "name": "Banda aguante", "description": "Agrega un 10% de probabilidad de resistir un ataque que lo debilitaría." }, "QUICK_CLAW": { - "name": "Garra Rápida", + "name": "Garra rápida", "description": "Agrega un 10% de probabilidad de atacar primero independientemente de la velocidad (después de la prioridad)." }, "KINGS_ROCK": { - "name": "Roca del Rey", + "name": "Roca del rey", "description": "Agrega un 10% de probabilidad de que un ataque haga que el oponente retroceda." }, "LEFTOVERS": { @@ -315,7 +323,7 @@ "description": "Cura 1/16 de los PS máximo de un Pokémon cada turno." }, "SHELL_BELL": { - "name": "Camp Concha", + "name": "Cascabel concha", "description": "Cura 1/8 del daño infligido por un Pokémon." }, "TOXIC_ORB": { @@ -327,15 +335,15 @@ "description": "Extraña esfera que causa quemaduras a quien la usa en combate." }, "BATON": { - "name": "Relevo", + "name": "Testigo", "description": "Permite pasar los efectos al cambiar de Pokémon, también evita las trampas." }, "SHINY_CHARM": { - "name": "Amuleto Iris", + "name": "Amuleto iris", "description": "Aumenta drásticamente la posibilidad de que un Pokémon salvaje sea Shiny." }, "ABILITY_CHARM": { - "name": "Amuleto Habilidad", + "name": "Amuleto habilidad", "description": "Aumenta drásticamente la posibilidad de que un Pokémon salvaje tenga una habilidad oculta." }, "IV_SCANNER": { @@ -346,60 +354,60 @@ "name": "Punta ADN" }, "MINI_BLACK_HOLE": { - "name": "Mini Agujero Negro" + "name": "Mini agujero negro" }, "GOLDEN_POKEBALL": { "name": "Poké Ball Dorada", "description": "Agrega 1 opción de objeto extra al final de cada combate." }, "ENEMY_DAMAGE_BOOSTER": { - "name": "Ficha Daño", + "name": "Ficha de daño", "description": "Aumenta el daño en un 5%." }, "ENEMY_DAMAGE_REDUCTION": { - "name": "Ficha Protección", + "name": "Ficha de protección", "description": "Reduce el daño recibido en un 2,5%." }, "ENEMY_HEAL": { - "name": "Ficha Curación", + "name": "Ficha de curación", "description": "Cura el 2% de los PS máximo en cada turno." }, "ENEMY_ATTACK_POISON_CHANCE": { - "name": "Ficha Veneno" + "name": "Ficha veneno" }, "ENEMY_ATTACK_PARALYZE_CHANCE": { - "name": "Ficha Parálisis" + "name": "Ficha parálisis" }, "ENEMY_ATTACK_BURN_CHANCE": { - "name": "Ficha Quemadura" + "name": "Ficha quemadura" }, "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { - "name": "Ficha Cura Total", + "name": "Ficha cura total", "description": "Agrega un 2.5% de probabilidad cada turno de curar un problema de estado." }, "ENEMY_ENDURE_CHANCE": { - "name": "Ficha Aguante" + "name": "Ficha aguante" }, "ENEMY_FUSED_CHANCE": { - "name": "Ficha Fusión", + "name": "Ficha fusión", "description": "Agrega un 1% de probabilidad de que un Pokémon salvaje sea una fusión." } }, "SpeciesBoosterItem": { "LIGHT_BALL": { - "name": "Bola Luminosa", + "name": "Bola luminosa", "description": "Asombrosa esfera que aumenta el Ataque y el Ataque Especial. Debe llevarla Pikachu." }, "THICK_CLUB": { - "name": "Hueso Grueso", + "name": "Hueso grueso", "description": "Extraño tipo de hueso que potencia los ataques físicos. Debe llevarlo Cubone o Marowak." }, "METAL_POWDER": { - "name": "Polvo Metálico", + "name": "Polvo metálico", "description": "Polvo muy fino, pero a la vez poderoso, que aumenta la Defensa. Debe llevarlo Ditto." }, "QUICK_POWDER": { - "name": "Polvo Veloz", + "name": "Polvo veloz", "description": "Polvo muy fino, pero a la vez poderoso, que aumenta la Velocidad. Debe llevarlo Ditto." } }, @@ -413,35 +421,35 @@ "dire_hit": "Crítico X" }, "TempBattleStatBoosterStatName": { - "ATK": "Attack", - "DEF": "Defense", - "SPATK": "Sp. Atk", - "SPDEF": "Sp. Def", - "SPD": "Speed", - "ACC": "Accuracy", - "CRIT": "Critical Hit Ratio", - "EVA": "Evasiveness", + "ATK": "Ataque", + "DEF": "Defensa", + "SPATK": "Ataq. Esp.", + "SPDEF": "Def. Esp.", + "SPD": "Velocidad", + "ACC": "Precisión", + "CRIT": "Tasa de crítico", + "EVA": "Evasión", "DEFAULT": "???" }, "AttackTypeBoosterItem": { - "silk_scarf": "Pañuelo Seda", - "black_belt": "Cinturón Negro", - "sharp_beak": "Pico Afilado", - "poison_barb": "Flecha Venenosa", - "soft_sand": "Arena Fina", - "hard_stone": "Piedra Dura", - "silver_powder": "Polvo Plata", + "silk_scarf": "Pañuelo seda", + "black_belt": "Cinturón negro", + "sharp_beak": "Pico afilado", + "poison_barb": "Flecha venenosa", + "soft_sand": "Arena fina", + "hard_stone": "Piedra dura", + "silver_powder": "Polvo plata", "spell_tag": "Hechizo", - "metal_coat": "Rev. Metálico", + "metal_coat": "Revest. metálico", "charcoal": "Carbón", - "mystic_water": "Agua Mística", - "miracle_seed": "Semilla Milagro", + "mystic_water": "Agua mística", + "miracle_seed": "Semilla milagro", "magnet": "Imán", - "twisted_spoon": "Cuchara Torcida", + "twisted_spoon": "Cuchara torcida", "never_melt_ice": "Antiderretir", - "dragon_fang": "Colmillo Dragón", - "black_glasses": "Gafas de Sol", - "fairy_feather": "Pluma Hada" + "dragon_fang": "Colmillo dragón", + "black_glasses": "Gafas de sol", + "fairy_feather": "Pluma feérica" }, "BaseStatBoosterItem": { "hp_up": "Más PS", @@ -452,38 +460,38 @@ "carbos": "Carburante" }, "EvolutionItem": { - "NONE": "None", - "LINKING_CORD": "Cordón Unión", - "SUN_STONE": "Piedra Solar", - "MOON_STONE": "Piedra Lunar", - "LEAF_STONE": "Piedra Hoja", - "FIRE_STONE": "Piedra Fuego", - "WATER_STONE": "Piedra Agua", - "THUNDER_STONE": "Piedra Trueno", - "ICE_STONE": "Piedra Hielo", - "DUSK_STONE": "Piedra Noche", - "DAWN_STONE": "Piedra Alba", - "SHINY_STONE": "Piedra Día", - "CRACKED_POT": "Tetera Agrietada", - "SWEET_APPLE": "Manzana Dulce", - "TART_APPLE": "Manzana Ácida", - "STRAWBERRY_SWEET": "Confite Fresa", - "UNREMARKABLE_TEACUP": "Cuenco Mediocre", - "CHIPPED_POT": "Tetera Rota", - "BLACK_AUGURITE": "Mineral Negro", - "GALARICA_CUFF": "Brazal Galanuez", - "GALARICA_WREATH": "Corona Galanuez", - "PEAT_BLOCK": "Bloque de Turba", - "AUSPICIOUS_ARMOR": "Armadura Auspiciosa", - "MALICIOUS_ARMOR": "Armadura Maldita", - "MASTERPIECE_TEACUP": "Cuenco Exquisito", - "METAL_ALLOY": "Metal Compuesto", - "SCROLL_OF_DARKNESS": "Manuscrito Sombras", - "SCROLL_OF_WATERS": "Manuscrito Aguas", - "SYRUPY_APPLE": "Manzana Melosa" + "NONE": "Ninguno", + "LINKING_CORD": "Cordón unión", + "SUN_STONE": "Piedra solar", + "MOON_STONE": "Piedra lunar", + "LEAF_STONE": "Piedra hoja", + "FIRE_STONE": "Piedra fuego", + "WATER_STONE": "Piedra agua", + "THUNDER_STONE": "Piedra trueno", + "ICE_STONE": "Piedra hielo", + "DUSK_STONE": "Piedra noche", + "DAWN_STONE": "Piedra alba", + "SHINY_STONE": "Piedra día", + "CRACKED_POT": "Tetera agrietada", + "SWEET_APPLE": "Manzana dulce", + "TART_APPLE": "Manzana ácida", + "STRAWBERRY_SWEET": "Confite fresa", + "UNREMARKABLE_TEACUP": "Cuenco mediocre", + "CHIPPED_POT": "Tetera rota", + "BLACK_AUGURITE": "Mineral negro", + "GALARICA_CUFF": "Brazal galanuez", + "GALARICA_WREATH": "Corona galanuez", + "PEAT_BLOCK": "Bloque de turba", + "AUSPICIOUS_ARMOR": "Armadura auspiciosa", + "MALICIOUS_ARMOR": "Armadura maldita", + "MASTERPIECE_TEACUP": "Cuenco exquisito", + "METAL_ALLOY": "Metal compuesto", + "SCROLL_OF_DARKNESS": "Manuscrito sombras", + "SCROLL_OF_WATERS": "Manuscrito aguas", + "SYRUPY_APPLE": "Manzana melosa" }, "FormChangeItem": { - "NONE": "None", + "NONE": "Ninguno", "ABOMASITE": "Abomasnowita", "ABSOLITE": "Absolita", "AERODACTYLITE": "Aerodactylita", @@ -532,70 +540,70 @@ "SWAMPERTITE": "Swampertita", "TYRANITARITE": "Tyranitarita", "VENUSAURITE": "Venusaurita", - "BLUE_ORB": "Prisma Azul", - "RED_ORB": "Prisma Rojo", - "SHARP_METEORITE": "Meteorito Afilado", - "HARD_METEORITE": "Meteorito Duro", - "SMOOTH_METEORITE": "Meteorito Suave", - "ADAMANT_CRYSTAL": "Gran Diamansfera", - "LUSTROUS_GLOBE": "Gran Lustresfera", - "GRISEOUS_CORE": "Gran Griseosfera", - "REVEAL_GLASS": "Espejo Veraz", + "BLUE_ORB": "Prisma azul", + "RED_ORB": "Prisma rojo", + "SHARP_METEORITE": "Meteorito afilado", + "HARD_METEORITE": "Meteorito duro", + "SMOOTH_METEORITE": "Meteorito suave", + "ADAMANT_CRYSTAL": "Gran diamansfera", + "LUSTROUS_GLOBE": "Gran lustresfera", + "GRISEOUS_CORE": "Gran griseosfera", + "REVEAL_GLASS": "Espejo veraz", "GRACIDEA": "Gracídea", - "MAX_MUSHROOMS": "MaxiSetas", - "DARK_STONE": "Piedra Oscura", - "LIGHT_STONE": "Piedra Luminosa", - "PRISON_BOTTLE": "Vasija Castigo", + "MAX_MUSHROOMS": "Maxisetas", + "DARK_STONE": "Orbe oscuro", + "LIGHT_STONE": "Orbe claro", + "PRISON_BOTTLE": "Vasija castigo", "N_LUNARIZER": "Necroluna", "N_SOLARIZER": "Necrosol", - "RUSTED_SWORD": "Espada Oxidada", - "RUSTED_SHIELD": "Escudo Oxidado", - "ICY_REINS_OF_UNITY": "Riendas Unión Heladas", - "SHADOW_REINS_OF_UNITY": "Riendas Unión Oscuras", - "WELLSPRING_MASK": "Máscara Fuente", - "HEARTHFLAME_MASK": "Máscara Horno", - "CORNERSTONE_MASK": "Máscara Cimiento", + "RUSTED_SWORD": "Espada oxidada", + "RUSTED_SHIELD": "Escudo oxidado", + "ICY_REINS_OF_UNITY": "Riendas unión heladas", + "SHADOW_REINS_OF_UNITY": "Riendas unión oscuras", + "WELLSPRING_MASK": "Máscara fuente", + "HEARTHFLAME_MASK": "Máscara horno", + "CORNERSTONE_MASK": "Máscara cimiento", "SHOCK_DRIVE": "FulgoROM", "BURN_DRIVE": "PiroROM", "CHILL_DRIVE": "CrioROM", "DOUSE_DRIVE": "HidroROM", "ULTRANECROZIUM_Z": "Ultranecrostal Z", - "FIST_PLATE": "Tabla Fuerte", - "SKY_PLATE": "Tabla Cielo", - "TOXIC_PLATE": "Tabla Tóxica", - "EARTH_PLATE": "Tabla Terrax", - "STONE_PLATE": "Tabla Pétrea", - "INSECT_PLATE": "Tabla Bicho", - "SPOOKY_PLATE": "Tabla Terror", - "IRON_PLATE": "Tabla Acero", - "FLAME_PLATE": "Tabla Llama", - "SPLASH_PLATE": "Tabla Linfa", - "MEADOW_PLATE": "Tabla Pradal", - "ZAP_PLATE": "Tabla Trueno", - "MIND_PLATE": "Tabla Mental", - "ICICLE_PLATE": "Tabla Helada", - "DRACO_PLATE": "Tabla Draco", - "DREAD_PLATE": "Tabla Oscura", - "PIXIE_PLATE": "Tabla Duende", - "BLANK_PLATE": "Tabla Neutra", - "LEGEND_PLATE": "Tabla Legendaria", - "FIGHTING_MEMORY": "Disco Lucha", - "FLYING_MEMORY": "Disco Volador", - "POISON_MEMORY": "Disco Veneno", - "GROUND_MEMORY": "Disco Tierra", - "ROCK_MEMORY": "Disco Roca", - "BUG_MEMORY": "Disco Bicho", - "GHOST_MEMORY": "Disco Fantasma", - "STEEL_MEMORY": "Disco Acero", - "FIRE_MEMORY": "Disco Fuego", - "WATER_MEMORY": "Disco Agua", - "GRASS_MEMORY": "Disco Planta", - "ELECTRIC_MEMORY": "Disco Eléctrico", - "PSYCHIC_MEMORY": "Disco Psíquico", - "ICE_MEMORY": "Disco Hielo", - "DRAGON_MEMORY": "Disco Dragón", - "DARK_MEMORY": "Disco Siniestro", - "FAIRY_MEMORY": "Disco Hada", - "BLANK_MEMORY": "Disco Blanco" + "FIST_PLATE": "Tabla fuerte", + "SKY_PLATE": "Tabla cielo", + "TOXIC_PLATE": "Tabla tóxica", + "EARTH_PLATE": "Tabla terrax", + "STONE_PLATE": "Tabla pétrea", + "INSECT_PLATE": "Tabla bicho", + "SPOOKY_PLATE": "Tabla terror", + "IRON_PLATE": "Tabla acero", + "FLAME_PLATE": "Tabla llama", + "SPLASH_PLATE": "Tabla linfa", + "MEADOW_PLATE": "Tabla pradal", + "ZAP_PLATE": "Tabla trueno", + "MIND_PLATE": "Tabla mental", + "ICICLE_PLATE": "Tabla helada", + "DRACO_PLATE": "Tabla draco", + "DREAD_PLATE": "Tabla oscura", + "PIXIE_PLATE": "Tabla duende", + "BLANK_PLATE": "Tabla neutra", + "LEGEND_PLATE": "Tabla legendaria", + "FIGHTING_MEMORY": "Disco lucha", + "FLYING_MEMORY": "Disco volador", + "POISON_MEMORY": "Disco veneno", + "GROUND_MEMORY": "Disco tierra", + "ROCK_MEMORY": "Disco roca", + "BUG_MEMORY": "Disco bicho", + "GHOST_MEMORY": "Disco fantasma", + "STEEL_MEMORY": "Disco acero", + "FIRE_MEMORY": "Disco fuego", + "WATER_MEMORY": "Disco agua", + "GRASS_MEMORY": "Disco planta", + "ELECTRIC_MEMORY": "Disco eléctrico", + "PSYCHIC_MEMORY": "Disco psíquico", + "ICE_MEMORY": "Disco hielo", + "DRAGON_MEMORY": "Disco dragón", + "DARK_MEMORY": "Disco siniestro", + "FAIRY_MEMORY": "Disco hada", + "BLANK_MEMORY": "Disco en blanco" } -} \ No newline at end of file +} diff --git a/src/locales/es/move.json b/src/locales/es/move.json index f8ec3be9ca1..f4c28dd02e7 100644 --- a/src/locales/es/move.json +++ b/src/locales/es/move.json @@ -3807,4 +3807,4 @@ "name": "Cadena Virulenta", "effect": "Apresa al objetivo con una cadena hecha de ponzoña que le inocula toxinas para minarle las fuerzas. Puede envenenar gravemente." } -} \ No newline at end of file +} diff --git a/src/locales/es/pokemon-info.json b/src/locales/es/pokemon-info.json index 385970171f3..241f5e7c5d0 100644 --- a/src/locales/es/pokemon-info.json +++ b/src/locales/es/pokemon-info.json @@ -3,17 +3,18 @@ "HP": "PS", "HPshortened": "PS", "ATK": "Ataque", - "ATKshortened": "Ata", + "ATKshortened": "Atq.", "DEF": "Defensa", - "DEFshortened": "Def", - "SPATK": "At. Esp.", - "SPATKshortened": "AtEsp", + "DEFshortened": "Def.", + "SPATK": "Atq. Esp.", + "SPATKshortened": "AtqEs.", "SPDEF": "Def. Esp.", - "SPDEFshortened": "DefEsp", + "SPDEFshortened": "DefEs.", "SPD": "Velocidad", "SPDshortened": "Veloc.", - "ACC": "Accuracy", - "EVA": "Evasiveness" + "ACC": "Precisión", + "EVA": "Evasión", + "HPStat": "PS" }, "Type": { "UNKNOWN": "Desconocido", @@ -37,4 +38,4 @@ "FAIRY": "Hada", "STELLAR": "Astral" } -} \ No newline at end of file +} diff --git a/src/locales/fr/ability-trigger.json b/src/locales/fr/ability-trigger.json index 0f91f6e2209..d10fc18a146 100644 --- a/src/locales/fr/ability-trigger.json +++ b/src/locales/fr/ability-trigger.json @@ -12,7 +12,7 @@ "typeImmunityHeal": "{{abilityName}} de {{pokemonNameWithAffix}}\nrestaure un peu ses PV !", "nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}} évite\nles dégâts avec {{abilityName}} !", "disguiseAvoidedDamage": "Le déguisement de {{pokemonNameWithAffix}}\ntombe !", - "moveImmunity": "Ça n'affecte pas {{pokemonNameWithAffix}}…", + "moveImmunity": "Ça n’affecte pas {{pokemonNameWithAffix}}…", "reverseDrain": "{{pokemonNameWithAffix}} aspire\nle suintement !", "postDefendTypeChange": "{{abilityName}} de {{pokemonNameWithAffix}}\nle transforme en type {{typeName}} !", "postDefendContactDamage": "{{pokemonNameWithAffix}} est blessé\npar son talent {{abilityName}} !", @@ -23,7 +23,7 @@ "postAttackStealHeldItem": "{{pokemonNameWithAffix}} vole\nl’objet {{stolenItemType}} de {{defenderName}} !", "postDefendStealHeldItem": "{{pokemonNameWithAffix}} vole\nl’objet {{stolenItemType}} de {{attackerName}} !", "copyFaintedAllyAbility": "{{pokemonNameWithAffix}} reçoit\nle talent {{abilityName}} !", - "intimidateImmunity": "{{abilityName}} de {{pokemonNameWithAffix}}\nl’empêche d'être intimidé !", + "intimidateImmunity": "{{abilityName}} de {{pokemonNameWithAffix}}\nl’empêche d’être intimidé !", "postSummonAllyHeal": "{{pokemonNameWithAffix}} boit le thé\npréparé par {{pokemonName}} !", "postSummonClearAllyStats": "Les stats de {{pokemonNameWithAffix}}\nsont revenues à la normale !", "postSummonTransform": "{{pokemonNameWithAffix}} prend\nl’apparence de {{targetName}} !", @@ -59,4 +59,4 @@ "postSummonTabletsOfRuin": "Le Bois du Fléau de {{pokemonNameWithAffix}}\naffaiblit l’{{statName}} des Pokémon alentour !", "postSummonBeadsOfRuin": "Les Perles du Fléau de {{pokemonNameWithAffix}}\naffaiblissent la {{statName}} des Pokémon alentour !", "preventBerryUse": "{{pokemonNameWithAffix}} est tendu\net ne peut plus manger de Baies !" -} \ No newline at end of file +} diff --git a/src/locales/fr/ability.json b/src/locales/fr/ability.json index 0993fcde3a9..7db44c45fa7 100644 --- a/src/locales/fr/ability.json +++ b/src/locales/fr/ability.json @@ -469,11 +469,11 @@ }, "honeyGather": { "name": "Cherche Miel", - "description": "The Pokémon gathers Honey after a battle. The Honey is then sold for money." + "description": "Le Pokémon trouve du Miel après un combat et est directement revendu contre de l’argent." }, "frisk": { "name": "Fouille", - "description": "Lorsqu'il entre en combat, le Pokémon peut vérifier la capacité d'un Pokémon adverse." + "description": "Lorsqu’il entre en combat, le Pokémon peut vérifier la capacité d’un Pokémon adverse." }, "reckless": { "name": "Téméraire", @@ -1239,4 +1239,4 @@ "name": "Emprise Toxique", "description": "Lorsque Pêchaminus empoisonne un Pokémon grâce à l’une de ses capacités, ce dernier devient également confus." } -} \ No newline at end of file +} diff --git a/src/locales/fr/achv-female.json b/src/locales/fr/achv-female.json index 0f82f612a6c..68e114965cd 100644 --- a/src/locales/fr/achv-female.json +++ b/src/locales/fr/achv-female.json @@ -62,7 +62,7 @@ "name": "Caïd" }, "HealAchv": { - "description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité, un talent ou un objet tenu." + "description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité,\nun talent ou un objet tenu." }, "1000_HEAL": { "name": "Médecin" @@ -261,4 +261,4 @@ "name": "Du premier coup !", "description": "Terminer un challenge « Nouveau départ »." } -} \ No newline at end of file +} diff --git a/src/locales/fr/achv-male.json b/src/locales/fr/achv-male.json index c51da04ecc8..077d37b4500 100644 --- a/src/locales/fr/achv-male.json +++ b/src/locales/fr/achv-male.json @@ -36,7 +36,7 @@ "name": "One Punch Man" }, "HealAchv": { - "description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité, un talent ou un objet tenu." + "description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité,\nun talent ou un objet tenu." }, "250_HEAL": { "name": "Infirmier" @@ -261,4 +261,4 @@ "name": "Du premier coup !", "description": "Terminer un challenge « Nouveau départ »." } -} \ No newline at end of file +} diff --git a/src/locales/fr/battle-info.json b/src/locales/fr/battle-info.json index 1fd968a8bd4..1408fd4d602 100644 --- a/src/locales/fr/battle-info.json +++ b/src/locales/fr/battle-info.json @@ -1,3 +1,3 @@ { - "generation": "Génération {{generation}}" -} \ No newline at end of file + "generation": "{{generation}}" +} diff --git a/src/locales/fr/bgm-name.json b/src/locales/fr/bgm-name.json index e32855990f7..f97523e109b 100644 --- a/src/locales/fr/bgm-name.json +++ b/src/locales/fr/bgm-name.json @@ -1,5 +1,5 @@ { - "music": "Musique : ", + "music": "♪ : ", "missing_entries": "{{name}}", "battle_kanto_champion": "N2B2 - Vs. Maitre de Kanto", "battle_johto_champion": "N2B2 - Vs. Maitre de Johto", @@ -83,41 +83,41 @@ "battle_galactic_boss": "DÉPS - Vs. Hélio", "battle_plasma_boss": "N2B2 - Vs. Ghetis", "battle_flare_boss": "XY - Vs. Lysandre", - "abyss": "PDM EdS - Cratère Obscur", - "badlands": "PDM EdS - Vallée Stérile", - "beach": "PDM EdS - Falaise Trempée", - "cave": "PDM EdS - Pic Céleste (grotte)", - "construction_site": "PDM EdS - Carrière Rocher", - "desert": "PDM EdS - Désert du Nord", - "dojo": "PDM EdS - Dojo Ossatueur", - "end": "PDM EdS - Tour Céleste", - "factory": "PDM EdS - Ruines Cachées", - "fairy_cave": "PDM EdS - Caverne Étoile", - "forest": "PDM EdS - Forêt Crépuscule", - "grass": "PDM EdS - Bois aux Pommes", - "graveyard": "PDM EdS - Forêt Trompeuse", - "ice_cave": "PDM EdS - Montagne Glacier", - "island": "PDM EdS - Côte Escarpée", + "abyss": "PDM EdC - Cratère Obscur", + "badlands": "PDM EdC - Vallée Stérile", + "beach": "PDM EdC - Falaise Trempée", + "cave": "PDM EdC - Pic Céleste (grotte)", + "construction_site": "PDM EdC - Carrière Rocher", + "desert": "PDM EdC - Désert du Nord", + "dojo": "PDM EdC - Dojo Ossatueur", + "end": "PDM EdC - Tour Céleste", + "factory": "PDM EdC - Ruines Cachées", + "fairy_cave": "PDM EdC - Caverne Étoile", + "forest": "PDM EdC - Forêt Crépuscule", + "grass": "PDM EdC - Bois aux Pommes", + "graveyard": "PDM EdC - Forêt Trompeuse", + "ice_cave": "PDM EdC - Montagne Glacier", + "island": "PDM EdC - Côte Escarpée", "jungle": "Lmz - Jungle", "laboratory": "Firel - Laboratory", - "lake": "PDM EdS - Caverne Cristal", - "meadow": "PDM EdS - Pic Céleste (forêt)", + "lake": "PDM EdC - Caverne Cristal", + "meadow": "PDM EdC - Pic Céleste (forêt)", "metropolis": "Firel - Metropolis", - "mountain": "PDM EdS - Mt Corne", - "plains": "PDM EdS - Pic Céleste (prairie)", - "power_plant": "PDM EdS - Plaines Élek", - "ruins": "PDM EdS - Ruine Scellée", + "mountain": "PDM EdC - Mont Corne", + "plains": "PDM EdC - Pic Céleste (prairie)", + "power_plant": "PDM EdC - Plaines Élek", + "ruins": "PDM EdC - Ruine Scellée", "sea": "Andr06 - Marine Mystique", "seabed": "Firel - Seabed", "slum": "Andr06 - Sneaky Snom", - "snowy_forest": "PDM EdS - Pic Céleste (plaine enneigée)", + "snowy_forest": "PDM EdC - Pic Céleste (plaine enneigée)", "space": "Firel - Aether", - "swamp": "PDM EdS - Mer Fermée", - "tall_grass": "PDM EdS - Forêt Brumeuse", - "temple": "PDM EdS - Grotte Égide", - "town": "PDM EdS - Donjon aléatoire - Thème 3", - "volcano": "PDM EdS - Grotte Étuve", - "wasteland": "PDM EdS - Terres Illusoires", + "swamp": "PDM EdC - Mer Fermée", + "tall_grass": "PDM EdC - Forêt Brumeuse", + "temple": "PDM EdC - Grotte Égide", + "town": "PDM EdC - Donjon aléatoire - Thème 3", + "volcano": "PDM EdC - Grotte Étuve", + "wasteland": "PDM EdC - Terres Illusoires", "encounter_ace_trainer": "NB - Regards croisés (Topdresseur·euse)", "encounter_backpacker": "NB - Regards croisés (Randonneur·euse)", "encounter_clerk": "NB - Regards croisés (Employé·e)", @@ -133,6 +133,6 @@ "encounter_twins": "NB - Regards croisés (Jumelles)", "encounter_youngster": "NB - Regards croisés (Gamin)", "heal": "NB - Soin de Pokémon", - "menu": "PDM EdS - Bienvenue dans le monde de Pokémon !", - "title": "PDM EdS - Menu Principal" -} \ No newline at end of file + "menu": "PDM EdC - Bienvenue dans le monde de Pokémon !", + "title": "PDM EdC - Menu Principal" +} diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index a9ca99781fc..37ec76f3a20 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const frConfig = { ability, diff --git a/src/locales/fr/dialogue-double-battle-female.json b/src/locales/fr/dialogue-double-battle-female.json index 078149783a9..55bb5da9800 100644 --- a/src/locales/fr/dialogue-double-battle-female.json +++ b/src/locales/fr/dialogue-double-battle-female.json @@ -1,7 +1,7 @@ { "blue_red_double": { "encounter": { - "1": "Blue : Hé Red, montrons-leur de quel bois on se chauffe !\n$Red : …\n$Blue : Voilà la puissance du Bourg Palette !" + "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 : …" @@ -79,4 +79,4 @@ "1": "Peterson : Ça c’est du rock !\n$Rosemary : Frérot…" } } -} \ No newline at end of file +} diff --git a/src/locales/fr/dialogue-double-battle-male.json b/src/locales/fr/dialogue-double-battle-male.json index a31e855cf4b..188b27ca143 100644 --- a/src/locales/fr/dialogue-double-battle-male.json +++ b/src/locales/fr/dialogue-double-battle-male.json @@ -1,7 +1,7 @@ { "blue_red_double": { "encounter": { - "1": "Blue : Hé Red, montrons-leur de quel bois on se chauffe !\n$Red : …\n$Blue : Voilà la puissance du Bourg Palette !" + "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 : …" @@ -79,4 +79,4 @@ "1": "Peterson : Ça c’est du rock !\n$Rosemary : Frérot…" } } -} \ No newline at end of file +} diff --git a/src/locales/fr/dialogue-female.json b/src/locales/fr/dialogue-female.json index 1aaadbb6449..82e3a4efd46 100644 --- a/src/locales/fr/dialogue-female.json +++ b/src/locales/fr/dialogue-female.json @@ -38,7 +38,7 @@ "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 être pris au sérieux. T’es prête à te battre ?", + "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." @@ -69,7 +69,7 @@ "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": "Peut importe à quel point t’aimes tes Pokémon, il faut toujours de la discipline s’ils se comportent mal." + "3": "Peu importe à quel point t’aimes tes Pokémon, il faut toujours de la discipline s’ils se comportent mal." } }, "breeder_female": { @@ -148,7 +148,7 @@ }, "victory": { "1": "Très bien… T’as de bons Pokémon…", - "2": "Quoi ?! Mais c'est moi le génie des combats !", + "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 !" }, @@ -169,50 +169,98 @@ }, "rocket_grunt": { "encounter": { - "1": "Nous sommes de retour !" + "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 !" + "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 !" + "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 ?!" + "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 une gamine !" + "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 ?" + "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 !" + "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…" + "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 !" + "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 !" + "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": "Le style et le bon gout, il n’y a que ça qui compte !" + "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 me semble guère radieux." + "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": { @@ -223,7 +271,7 @@ "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." + "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": { @@ -336,6 +384,77 @@ "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." @@ -349,7 +468,7 @@ }, "rival": { "encounter": { - "1": "@c{smile}Ah, je te cherchais ! 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 !" + "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 !" @@ -441,7 +560,7 @@ }, "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." + "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." @@ -455,4 +574,4 @@ "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." } } -} \ No newline at end of file +} diff --git a/src/locales/fr/dialogue-male.json b/src/locales/fr/dialogue-male.json index d0642641d0f..26636a15e4f 100644 --- a/src/locales/fr/dialogue-male.json +++ b/src/locales/fr/dialogue-male.json @@ -38,7 +38,7 @@ "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 être pris au sérieux. T’es prêt à te battre ?", + "6": "Un combat doit toujours être pris au sérieux.\nT’es prêt à 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." @@ -69,7 +69,7 @@ "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": "Peut importe à quel point t’aimes tes Pokémon, il faut toujours de la discipline s’ils se comportent mal." + "3": "Peu importe à quel point t’aimes tes Pokémon, il faut toujours de la discipline s’ils se comportent mal." } }, "breeder_female": { @@ -93,7 +93,7 @@ "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 !" + "3": "Voyons si t’arrives à ferrer une victoire !" }, "victory": { "1": "Vas-y là, oublie.", @@ -148,7 +148,7 @@ }, "victory": { "1": "Très bien… T’as de bons Pokémon…", - "2": "Quoi ?! Mais c'est moi le génie des combats !", + "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 !" }, @@ -170,81 +170,97 @@ "rocket_grunt": { "encounter": { "1": "Nous sommes de retour !", - "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!" + "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 !" }, "victory": { "1": "Une fois de plus la Team Rocket s’envole vers d’autres cieux !", - "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?" + "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": "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!" + "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": "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?" + "2": "Je peux pas croire que j’ai pas pris mon déjeuner juste pour ça…", + "3": "Impossible ! T’es qu’un 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... 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!" + "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": "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?" + "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": "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!" + "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 !" }, "victory": { "1": "Désactivation…", - "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." + "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": "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." + "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": "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!" + "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 ébloui !", + "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": { @@ -379,6 +395,77 @@ "1": "Les ignorants sans aucune vision n’auront donc de cesse de souiller ce monde." } }, + "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 endormi…", + "3": "Ce combat était si apaisant…", + "4": "Oh non… C’est tout ?" + } + }, "alder": { "encounter": { "1": "Prépare-toi pour un combat contre le meilleur Dresseur d’Unys !" @@ -411,7 +498,7 @@ }, "rival_female": { "encounter": { - "1": "@c{smile_wave}Ah, je te cherchais ! Je t’ai cherché 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 ?" + "1": "@c{smile_wave}Ah, te voilà ! Je t’ai cherché 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 fort ?!@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 !" @@ -509,4 +596,4 @@ "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 sain et sauf.\n$@c{smile_ehalf}… Merci." } } -} \ No newline at end of file +} diff --git a/src/locales/fr/egg.json b/src/locales/fr/egg.json index 0cd6f0b3750..64f22aa330d 100644 --- a/src/locales/fr/egg.json +++ b/src/locales/fr/egg.json @@ -4,23 +4,23 @@ "ultraTier": "Épique", "masterTier": "Légendaire", "defaultTier": "Commun", - "hatchWavesMessageSoon": "Il fait du bruit. Il va éclore !", + "hatchWavesMessageSoon": "Il fait du bruit. Il va éclore !", "hatchWavesMessageClose": "Il bouge de temps en temps. Il devrait bientôt éclore.", "hatchWavesMessageNotClose": "Qu’est-ce qui va en sortir ? Ça va mettre du temps.", - "hatchWavesMessageLongTime": "Cet Œuf va sûrement mettre du temps à éclore.", + "hatchWavesMessageLongTime": "Cet Œuf va surement mettre du temps à éclore.", "gachaTypeLegendary": "Taux de Légendaires élevé", "gachaTypeMove": "Taux de Capacité Œuf Rare élevé", "gachaTypeShiny": "Taux de Chromatiques élevé", "selectMachine": "Sélectionnez une machine.", - "notEnoughVouchers": "Vous n’avez pas assez de coupons !", - "tooManyEggs": "Vous avez trop d’Œufs !", + "notEnoughVouchers": "Vous n’avez pas assez de coupons !", + "tooManyEggs": "Vous avez trop d’Œufs !", "pull": "Tirage", "pulls": "Tirages", "sameSpeciesEgg": "{{species}} sortira de cet Œuf !", - "hatchFromTheEgg": "{{pokemonName}} sort de l’Œuf !", + "hatchFromTheEgg": "{{pokemonName}} sort de l’Œuf !", "eggMoveUnlock": "Capacité Œuf débloquée :\n{{moveName}}", "rareEggMoveUnlock": "Capacité Œuf Rare débloquée :\n{{moveName}}", - "moveUPGacha": "Bonus Capacité\nŒuf Rare !", - "shinyUPGacha": "Bonus\nChromatique !", - "legendaryUPGacha": "Bonus !" -} \ No newline at end of file + "moveUPGacha": "Bonus Capacité\nŒuf Rare !", + "shinyUPGacha": "Bonus\nChromatique !", + "legendaryUPGacha": "Bonus !" +} diff --git a/src/locales/fr/menu-ui-handler.json b/src/locales/fr/menu-ui-handler.json index 089e52d55a4..807b34f1315 100644 --- a/src/locales/fr/menu-ui-handler.json +++ b/src/locales/fr/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "Succès", "STATS": "Statistiques", "RUN_HISTORY": "Historique", - "VOUCHERS": "Coupons", "EGG_LIST": "Liste des Œufs", "EGG_GACHA": "Gacha-Œufs", "MANAGE_DATA": "Mes données", diff --git a/src/locales/fr/menu.json b/src/locales/fr/menu.json index d6823b43009..83626a1f33f 100644 --- a/src/locales/fr/menu.json +++ b/src/locales/fr/menu.json @@ -42,14 +42,14 @@ "wave": "Vague", "loading": "Chargement…", "loadingAsset": "Chargement de la ressource : {{assetName}}", - "playersOnline": "Joueurs Connectés", + "playersOnline": "Joueurs connectés", "yes": "Oui", "no": "Non", "disclaimer": "AVERTISSEMENT", "disclaimerDescription": "Ce jeu n’est pas un produit fini et peut contenir des problèmes de jouabilité, dont de possibles pertes de sauvegardes,\ndes modifications sans avertissement et pourrait ou non encore être mis à jour ou terminé.", "choosePokemon": "Sélectionnez un Pokémon.", - "renamePokemon": "Renommer Pokémon", + "renamePokemon": "Renommer le Pokémon", "rename": "Renommer", "nickname": "Surnom", "errorServerDown": "Oupsi ! Un problème de connexion au serveur est survenu.\n\nVous pouvez garder cette fenêtre ouverte,\nle jeu se reconnectera automatiquement." -} \ No newline at end of file +} diff --git a/src/locales/fr/modifier-type.json b/src/locales/fr/modifier-type.json index c041adbf6d5..6d5cfb098ef 100644 --- a/src/locales/fr/modifier-type.json +++ b/src/locales/fr/modifier-type.json @@ -11,7 +11,7 @@ "PokemonHeldItemModifierType": { "extra": { "inoperable": "{{pokemonName}} ne peut pas\nporter cet objet !", - "tooMany": "{{pokemonName}} possède trop\nd’exemplaires de cet objet !" + "tooMany": "{{pokemonName}} porte trop\nd’exemplaires de cet objet !" } }, "PokemonHpRestoreModifierType": { @@ -108,7 +108,7 @@ "description": "Permet à certains Pokémon de changer de forme." }, "FusePokemonModifierType": { - "description": "Fusionne deux Pokémon (transfère le talent, sépare les stats de base et les types, partage le movepool)." + "description": "Fusionne deux Pokémon (transfère le talent, sépare les stats de base et les types, partage les capacités)." }, "TerastallizeModifierType": { "name": "Téra-Éclat {{teraType}}", @@ -194,7 +194,7 @@ "RELIC_GOLD": { "name": "Vieux Ducat" }, "AMULET_COIN": { "name": "Pièce Rune", "description": "Augmente de 20% les gains d’argent." }, - "GOLDEN_PUNCH": { "name": "Poing Doré", "description": "50% des dégâts infligés sont convertis en argent." }, + "GOLDEN_PUNCH": { "name": "Poing Doré", "description": "La moitié des dégâts infligés sont convertis en argent." }, "COIN_CASE": { "name": "Boite Jetons", "description": "Tous les 10 combats, recevez 10% de votre argent en intérêts." }, "LOCK_CAPSULE": { "name": "Poké Écrin", "description": "Permet de conserver la rareté des objets si vous relancez les objets proposés." }, @@ -205,13 +205,13 @@ "MULTI_LENS": { "name": "Lentille Multi" }, "HEALING_CHARM": { "name": "Charme Soin", "description": "Augmente de 10% l’efficacité des capacités et objets de soin de PV (hors Rappels)." }, - "CANDY_JAR": { "name": "Bonbonnière", "description": "Augmente de 1 le nombre de niveaux gagnés à l’utilisation d’un Super Bonbon." }, + "CANDY_JAR": { "name": "Bonbonnière", "description": "Augmente de 1 le nombre de niveaux gagnés à l’utilisation d’un Super Bonbon ou d’un Hyper Bonbon." }, "BERRY_POUCH": { "name": "Sac à Baies", "description": "Ajoute 30% de chances qu’une Baie utilisée ne soit pas consommée." }, "FOCUS_BAND": { "name": "Bandeau", "description": "Ajoute 10% de chances de survivre avec 1 PV si les dégâts reçus pouvaient mettre K.O. ." }, - "QUICK_CLAW": { "name": "Vive Griffe", "description": "Ajoute 10% de chances d’agir en premier, indépendamment de la vitesse (après la priorité)." }, + "QUICK_CLAW": { "name": "Vive Griffe", "description": "Ajoute 10% de chances d’agir en premier, indépendamment de la Vitesse (après la priorité)." }, "KINGS_ROCK": { "name": "Roche Royale", "description": "Ajoute 10% de chances qu’une capacité offensive apeure l’adversaire." }, @@ -261,14 +261,14 @@ }, "TempBattleStatBoosterStatName": { - "ATK": "Attaque", - "DEF": "Défense", - "SPATK": "Atq. Spé.", - "SPDEF": "Déf. Spé.", - "SPD": "Vitesse", - "ACC": "Précision", - "CRIT": "Taux de critique", - "EVA": "Esquive", + "ATK": "l’Attaque", + "DEF": "la Défense", + "SPATK": "l’Atq. Spé.", + "SPDEF": "la Déf. Spé.", + "SPD": "la Vitesse", + "ACC": "la précision", + "CRIT": "le taux de critique", + "EVA": "l’esquive", "DEFAULT": "???" }, @@ -452,4 +452,4 @@ "FAIRY_MEMORY": "ROM Fée", "BLANK_MEMORY": "ROM Vierge" } -} \ No newline at end of file +} diff --git a/src/locales/fr/modifier.json b/src/locales/fr/modifier.json index afc15b2cb88..8a15c9e5ddf 100644 --- a/src/locales/fr/modifier.json +++ b/src/locales/fr/modifier.json @@ -3,10 +3,10 @@ "turnHealApply": "Les PV de {{pokemonNameWithAffix}}\nsont un peu restaurés par les {{typeName}} !", "hitHealApply": "Les PV de {{pokemonNameWithAffix}}\nsont un peu restaurés par le {{typeName}} !", "pokemonInstantReviveApply": "{{pokemonNameWithAffix}} a repris connaissance\navec sa {{typeName}} et est prêt à se battre de nouveau !", - "pokemonResetNegativeStatStageApply": "{{pokemonNameWithAffix}}'s lowered stats were restored\nby its {{typeName}}!", + "pokemonResetNegativeStatStageApply": "Les stats baissées de {{pokemonNameWithAffix}}\nsont restaurées par l’{{typeName}} !", "moneyInterestApply": "La {{typeName}} vous rapporte\n{{moneyAmount}} ₽ d’intérêts !", "turnHeldItemTransferApply": "{{itemName}} de {{pokemonNameWithAffix}} est absorbé·e\npar le {{typeName}} de {{pokemonName}} !", "contactHeldItemTransferApply": "{{itemName}} de {{pokemonNameWithAffix}} est volé·e\npar l’{{typeName}} de {{pokemonName}} !", "enemyTurnHealApply": "{{pokemonNameWithAffix}}\nrestaure un peu ses PV !", "bypassSpeedChanceApply": "{{itemName}} de {{pokemonName}}\nlui permet d’agir plus vite que d’habitude !" -} \ No newline at end of file +} diff --git a/src/locales/fr/move.json b/src/locales/fr/move.json index 8ad216a2501..a48e17b3fd9 100644 --- a/src/locales/fr/move.json +++ b/src/locales/fr/move.json @@ -25,7 +25,7 @@ }, "firePunch": { "name": "Poing Feu", - "effect": "Un coup de poing enflammé vient frapper la cible, ce qui peut la brûler (10% de chances)." + "effect": "Un coup de poing enflammé vient frapper la cible, ce qui peut la bruler (10% de chances)." }, "icePunch": { "name": "Poing Glace", @@ -205,11 +205,11 @@ }, "ember": { "name": "Flammèche", - "effect": "La cible est attaquée par une faible flamme qui peut aussi la brûler." + "effect": "La cible est attaquée par une faible flamme qui peut aussi la bruler." }, "flamethrower": { "name": "Lance-Flammes", - "effect": "La cible reçoit un torrent de flammes qui peut aussi la brûler (10% de chances)." + "effect": "La cible reçoit un torrent de flammes qui peut aussi la bruler (10% de chances)." }, "mist": { "name": "Brume", @@ -356,7 +356,7 @@ "effect": "Le lanceur provoque un tremblement de terre touchant tous les Pokémon autour de lui." }, "fissure": { - "name": "Abîme", + "name": "Abime", "effect": "Le lanceur fait tomber la cible dans une crevasse. Si cette attaque réussit, elle met K.O. sur le coup." }, "dig": { @@ -489,7 +489,7 @@ }, "smog": { "name": "Purédpois", - "effect": "Le lanceur attaque à l'aide d'une éruption de gaz répugnants qui peuvent aussi empoisonner la cible." + "effect": "Le lanceur attaque à l’aide d’une éruption de gaz répugnants qui peuvent aussi empoisonner la cible." }, "sludge": { "name": "Détritus", @@ -501,7 +501,7 @@ }, "fireBlast": { "name": "Déflagration", - "effect": "Un déluge de flammes ardentes submerge la cible, ce qui peut aussi la brûler (10% de chances)." + "effect": "Un déluge de flammes ardentes submerge la cible, ce qui peut aussi la bruler (10% de chances)." }, "waterfall": { "name": "Cascade", @@ -581,7 +581,7 @@ }, "dizzyPunch": { "name": "Uppercut", - "effect": "Un enchaînement de coups de poing cadencés frappe l’ennemi. Peut aussi le rendre confus." + "effect": "Un enchainement de coups de poing cadencés frappe l’ennemi. Peut aussi le rendre confus." }, "spore": { "name": "Spore", @@ -632,7 +632,7 @@ "effect": "Le lanceur mord l’ennemi à l’aide de ses incisives aiguisées. Peut aussi l’apeurer (10% de chances)." }, "sharpen": { - "name": "Affûtage", + "name": "Affutage", "effect": "Le lanceur réduit son nombre de polygones pour accentuer ses angles et augmenter son Attaque." }, "conversion": { @@ -641,7 +641,7 @@ }, "triAttack": { "name": "Triplattaque", - "effect": "Le lanceur envoie trois boules d’énergie simultanément qui peuvent aussi paralyser, brûler ou geler la cible (6.67% de chances)." + "effect": "Le lanceur envoie trois boules d’énergie simultanément qui peuvent aussi paralyser, bruler ou geler la cible (6.67% de chances)." }, "superFang": { "name": "Croc Fatal", @@ -661,7 +661,7 @@ }, "sketch": { "name": "Gribouille", - "effect": "Le lanceur apprend la dernière capacité utilisée par la cible. Gribouille disparaît après utilisation." + "effect": "Le lanceur apprend la dernière capacité utilisée par la cible. Gribouille disparait après utilisation." }, "tripleKick": { "name": "Triple Pied", @@ -685,7 +685,7 @@ }, "flameWheel": { "name": "Roue de Feu", - "effect": "Le lanceur s’entoure de feu et charge la cible, ce qui peut aussi la brûler (10% de chances)." + "effect": "Le lanceur s’entoure de feu et charge la cible, ce qui peut aussi la bruler (10% de chances)." }, "snore": { "name": "Ronflement", @@ -881,7 +881,7 @@ }, "sacredFire": { "name": "Feu Sacré", - "effect": "Le lanceur génère un feu mystique d’une intensité redoutable pour attaquer l’ennemi. Peut aussi le brûler (50% de chances)." + "effect": "Le lanceur génère un feu mystique d’une intensité redoutable pour attaquer l’ennemi. Peut aussi le bruler (50% de chances)." }, "magnitude": { "name": "Ampleur", @@ -1025,7 +1025,7 @@ }, "heatWave": { "name": "Canicule", - "effect": "Le lanceur provoque une vague de chaleur qui peut aussi brûler la cible (10% de chances)." + "effect": "Le lanceur provoque une vague de chaleur qui peut aussi bruler la cible (10% de chances)." }, "hail": { "name": "Grêle", @@ -1041,7 +1041,7 @@ }, "willOWisp": { "name": "Feu Follet", - "effect": "Le lanceur projette des flammes maléfiques à la cible pour lui infliger une brûlure." + "effect": "Le lanceur projette des flammes maléfiques à la cible pour lui infliger une brulure." }, "memento": { "name": "Souvenir", @@ -1049,7 +1049,7 @@ }, "facade": { "name": "Façade", - "effect": "Une capacité dont la puissance double lorsque le lanceur est empoisonné, paralysé ou brûlé." + "effect": "Une capacité dont la puissance double lorsque le lanceur est empoisonné, paralysé ou brulé." }, "focusPunch": { "name": "Mitra-Poing", @@ -1145,7 +1145,7 @@ }, "refresh": { "name": "Régénération", - "effect": "Le lanceur se repose pour guérir d’un empoisonnement, d’une brûlure ou d’une paralysie." + "effect": "Le lanceur se repose pour guérir d’un empoisonnement, d’une brulure ou d’une paralysie." }, "grudge": { "name": "Rancune", @@ -1192,8 +1192,8 @@ "effect": "Danse qui rend confus tous les Pokémon autour du lanceur." }, "blazeKick": { - "name": "Pied Brûleur", - "effect": "Le lanceur envoie un coup de pied au taux de critiques élevé. Peut aussi brûler la cible (10% de chances)." + "name": "Pied Bruleur", + "effect": "Le lanceur envoie un coup de pied au taux de critiques élevé. Peut aussi bruler la cible (10% de chances)." }, "mudSport": { "name": "Lance-Boue", @@ -1573,7 +1573,7 @@ }, "flareBlitz": { "name": "Boutefeu", - "effect": "Le lanceur s’embrase avant de charger la cible, ce qui peut la brûler (10% de chances). Le choc blesse aussi gravement le lanceur." + "effect": "Le lanceur s’embrase avant de charger la cible, ce qui peut la bruler (10% de chances). Le choc blesse aussi gravement le lanceur." }, "forcePalm": { "name": "Forte-Paume", @@ -1693,7 +1693,7 @@ }, "fireFang": { "name": "Crocs Feu", - "effect": "Le lanceur utilise une morsure enflammée qui peut aussi brûler (10% de chances) ou apeurer (10% de chances) la cible." + "effect": "Le lanceur utilise une morsure enflammée qui peut aussi bruler (10% de chances) ou apeurer (10% de chances) la cible." }, "shadowSneak": { "name": "Ombre Portée", @@ -1741,7 +1741,7 @@ }, "lavaPlume": { "name": "Ébullilave", - "effect": "Des flammes s’abattent sur tous les Pokémon autour du lanceur, ce qui peut aussi les brûler (10% de chances)." + "effect": "Des flammes s’abattent sur tous les Pokémon autour du lanceur, ce qui peut aussi les bruler (10% de chances)." }, "leafStorm": { "name": "Tempête Verte", @@ -1796,7 +1796,7 @@ "effect": "Le lanceur libère une myriade de rayons de lumière. Le type varie selon la plaque que tient le lanceur." }, "bugBite": { - "name": "Piqûre", + "name": "Piqure", "effect": "Le lanceur pique la cible. Si celle-ci tient une Baie, le lanceur la dévore et obtient son effet." }, "chargeBeam": { @@ -1865,7 +1865,7 @@ }, "shadowForce": { "name": "Revenant", - "effect": "Le lanceur disparaît au premier tour et frappe la cible au deuxième. Cette capacité fonctionne même si la cible se protège." + "effect": "Le lanceur disparait au premier tour et frappe la cible au deuxième. Cette capacité fonctionne même si la cible se protège." }, "honeClaws": { "name": "Aiguisage", @@ -2009,7 +2009,7 @@ }, "scald": { "name": "Ébullition", - "effect": "Le lanceur projette un jet d’eau bouillante sur la cible, ce qui peut aussi la brûler (30% de chances)." + "effect": "Le lanceur projette un jet d’eau bouillante sur la cible, ce qui peut aussi la bruler (30% de chances)." }, "shellSmash": { "name": "Exuviation", @@ -2037,7 +2037,7 @@ }, "incinerate": { "name": "Calcination", - "effect": "Des flammes calcinent la cible. Si elle tient un objet, une Baie par exemple, celui-ci est brûlé et devient inutilisable." + "effect": "Des flammes calcinent la cible. Si elle tient un objet, une Baie par exemple, celui-ci est brulé et devient inutilisable." }, "quash": { "name": "À la Queue", @@ -2065,19 +2065,19 @@ }, "inferno": { "name": "Feu d’Enfer", - "effect": "La cible est entourée d’un torrent de flammes ardentes qui la brûlent." + "effect": "La cible est entourée d’un torrent de flammes ardentes qui la brulent." }, "waterPledge": { "name": "Aire d’Eau", - "effect": "Une masse d’eau s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire de Feu, la puissance augmente et un arc-en-ciel apparaît." + "effect": "Une masse d’eau s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire de Feu, la puissance augmente et un arc-en-ciel apparait." }, "firePledge": { "name": "Aire de Feu", - "effect": "Une masse de feu s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire d’Herbe, la puissance augmente et une mer de feu apparaît." + "effect": "Une masse de feu s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire d’Herbe, la puissance augmente et une mer de feu apparait." }, "grassPledge": { "name": "Aire d’Herbe", - "effect": "Une masse végétale s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire d’Eau, la puissance augmente et un marécage apparaît." + "effect": "Une masse végétale s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire d’Eau, la puissance augmente et un marécage apparait." }, "voltSwitch": { "name": "Change Éclair", @@ -2177,7 +2177,7 @@ }, "searingShot": { "name": "Incendie", - "effect": "Des boules de feu s’abattent sur tous les Pokémon autour du lanceur. Peut aussi les brûler (30% de chances)." + "effect": "Des boules de feu s’abattent sur tous les Pokémon autour du lanceur. Peut aussi les bruler (30% de chances)." }, "technoBlast": { "name": "Techno-Buster", @@ -2201,7 +2201,7 @@ }, "blueFlare": { "name": "Flamme Bleue", - "effect": "De magnifiques et redoutables flammes bleues fondent sur l’ennemi. Peut aussi le brûler (20% de chances)." + "effect": "De magnifiques et redoutables flammes bleues fondent sur l’ennemi. Peut aussi le bruler (20% de chances)." }, "fieryDance": { "name": "Danse du Feu", @@ -2213,7 +2213,7 @@ }, "iceBurn": { "name": "Feu Glacé", - "effect": "Au second tour, le lanceur projette un souffle de vent glacial dévastateur sur l’ennemi. Peut aussi le brûler (30% de chances)." + "effect": "Au second tour, le lanceur projette un souffle de vent glacial dévastateur sur l’ennemi. Peut aussi le bruler (30% de chances)." }, "snarl": { "name": "Aboiement", @@ -2261,7 +2261,7 @@ }, "phantomForce": { "name": "Hantise", - "effect": "Le lanceur disparaît au premier tour et frappe au second. Cette attaque passe outre les protections." + "effect": "Le lanceur disparait au premier tour et frappe au second. Cette attaque passe outre les protections." }, "trickOrTreat": { "name": "Halloween", @@ -2333,7 +2333,7 @@ }, "fairyWind": { "name": "Vent Féérique", - "effect": "Le lanceur déchaîne un vent magique qui cingle la cible." + "effect": "Le lanceur déchaine un vent magique qui cingle la cible." }, "moonblast": { "name": "Pouvoir Lunaire", @@ -2345,7 +2345,7 @@ }, "fairyLock": { "name": "Verrou Enchanté", - "effect": "Des chaînes entourent la zone de combat, empêchant tous les Pokémon de quitter le terrain au tour suivant." + "effect": "Des chaines entourent la zone de combat, empêchant tous les Pokémon de quitter le terrain au tour suivant." }, "kingsShield": { "name": "Bouclier Royal", @@ -2365,7 +2365,7 @@ }, "steamEruption": { "name": "Jet de Vapeur", - "effect": "Le lanceur projette de la vapeur extrêmement chaude sur la cible, ce qui peut aussi la brûler (30% de chances)." + "effect": "Le lanceur projette de la vapeur extrêmement chaude sur la cible, ce qui peut aussi la bruler (30% de chances)." }, "hyperspaceHole": { "name": "TrouDimensionnel", @@ -2377,7 +2377,7 @@ }, "mysticalFire": { "name": "Feu Ensorcelé", - "effect": "Le lanceur attaque en soufflant des flammes brûlantes par la bouche et diminue l’Attaque Spéciale de la cible." + "effect": "Le lanceur attaque en soufflant des flammes brulantes par la bouche et diminue l’Attaque Spéciale de la cible." }, "spikyShield": { "name": "Pico-Défense", @@ -2517,7 +2517,7 @@ }, "tectonicRagePhysical": { "name": "Éruption Géo-Sismique", - "effect": "Le Pokémon utilise la Force Z pour entraîner l’adversaire dans les profondeurs de la terre. La puissance varie selon celle de la capacité originale." + "effect": "Le Pokémon utilise la Force Z pour entrainer l’adversaire dans les profondeurs de la terre. La puissance varie selon celle de la capacité originale." }, "tectonicRageSpecial": { "name": "Éruption Géo-Sismique", @@ -2653,7 +2653,7 @@ }, "sparklingAria": { "name": "Aria de l’Écume", - "effect": "Le lanceur émet plusieurs bulles en chantant. Soigne les brûlures des Pokémon touchés par ces bulles." + "effect": "Le lanceur émet plusieurs bulles en chantant. Soigne les brulures des Pokémon touchés par ces bulles." }, "iceHammer": { "name": "Marteau de Glace", @@ -2757,7 +2757,7 @@ }, "beakBlast": { "name": "Bec-Canon", - "effect": "Le lanceur fait chauffer son bec avant d’attaquer. S’il subit une attaque directe pendant la montée en température, l’attaquant sera brûlé." + "effect": "Le lanceur fait chauffer son bec avant d’attaquer. S’il subit une attaque directe pendant la montée en température, l’attaquant sera brulé." }, "clangingScales": { "name": "Vibrécaille", @@ -2789,7 +2789,7 @@ }, "guardianOfAlola": { "name": "Colère du Gardien d’Alola", - "effect": "Le Pokémon Tutélaire utilise la Force Z et déchaîne toute la puissance d’Alola sur sa cible. Inflige des dégâts en fonction des PV restants de celle-ci." + "effect": "Le Pokémon Tutélaire utilise la Force Z et déchaine toute la puissance d’Alola sur sa cible. Inflige des dégâts en fonction des PV restants de celle-ci." }, "soulStealing7StarStrike": { "name": "Fauche-Âme des Sept Étoiles", @@ -2865,7 +2865,7 @@ }, "naturesMadness": { "name": "Ire de la Nature", - "effect": "Le lanceur déchaîne toute la colère de la nature pour baisser les PV de la cible de moitié." + "effect": "Le lanceur déchaine toute la colère de la nature pour baisser les PV de la cible de moitié." }, "multiAttack": { "name": "Coup Varia-Type", @@ -2873,7 +2873,7 @@ }, "tenMillionVoltThunderbolt": { "name": "Giga-Tonnerre", - "effect": "Le Pikachu à casquette utilise la Force Z pour augmenter sa puissance électrique avant de la déchaîner sur la cible. Taux de critique élevé." + "effect": "Le Pikachu à casquette utilise la Force Z pour augmenter sa puissance électrique avant de la déchainer sur la cible. Taux de critique élevé." }, "mindBlown": { "name": "Caboche-Kaboum", @@ -2893,11 +2893,11 @@ }, "searingSunrazeSmash": { "name": "Hélio-Choc Dévastateur", - "effect": "Baigné dans la Force Z, Solgaleo attaque en déchaînant toute sa puissance. Ignore le talent de la cible." + "effect": "Baigné dans la Force Z, Solgaleo attaque en déchainant toute sa puissance. Ignore le talent de la cible." }, "menacingMoonrazeMaelstrom": { "name": "Rayons Séléno-Explosifs", - "effect": "Baigné dans la Force Z, Lunala attaque en déchaînant toute sa puissance. Ignore le talent de la cible." + "effect": "Baigné dans la Force Z, Lunala attaque en déchainant toute sa puissance. Ignore le talent de la cible." }, "letsSnuggleForever": { "name": "Patati-Patattrape", @@ -2913,7 +2913,7 @@ }, "zippyZap": { "name": "Pika-Sprint", - "effect": "Une attaque électrique rapide comme l’éclair qui augmente l’esquive. Frappe en priorité." + "effect": "Une attaque électrique rapide comme l’éclair qui inflige un coup critique à coup sûr. Frappe en priorité." }, "splishySplash": { "name": "Pika-Splash", @@ -2937,7 +2937,7 @@ }, "sizzlySlide": { "name": "Évo-Flambo", - "effect": "Évoli s’embrase et percure violemment l’adversaire. Brûle aussi l’ennemi." + "effect": "Évoli s’embrase et percure violemment l’adversaire. Brule aussi l’ennemi." }, "glitzyGlow": { "name": "Évo-Psycho", @@ -2961,7 +2961,7 @@ }, "veeveeVolley": { "name": "Évo-Chardasso", - "effect": "Le lanceur lance une attaque dès lors qu’un signe apparaît sur le terrain. Les dégâts infligés sont proportionnels à l’affection de votre Pokémon" + "effect": "Le lanceur lance une attaque dès lors qu’un signe apparait sur le terrain. Les dégâts infligés sont proportionnels à l’affection de votre Pokémon" }, "doubleIronBash": { "name": "Écrous d’Poing", @@ -3005,7 +3005,7 @@ }, "teatime": { "name": "Thérémonie", - "effect": "Le lanceur invite tous les Pokémon sur le terrain à prendre le goûter autour d’une tasse de thé. Ceux qui tiennent une Baie la mangent." + "effect": "Le lanceur invite tous les Pokémon sur le terrain à prendre le gouter autour d’une tasse de thé. Ceux qui tiennent une Baie la mangent." }, "octolock": { "name": "Octoprise", @@ -3105,7 +3105,7 @@ }, "decorate": { "name": "Nappage", - "effect": "Augmente fortement l’Attaque et l’Attaque Spéciale du lanceur." + "effect": "Augmente fortement l’Attaque et l’Attaque Spéciale de la cible." }, "drumBeating": { "name": "Tambour Battant", @@ -3116,8 +3116,8 @@ "effect": "Bloque l’ennemi pendant 4 à 5 tours." }, "pyroBall": { - "name": "Ballon Brûlant", - "effect": "Le lanceur attaque avec un ballon fait à partir d’un caillou enflammé. Peut aussi brûler la cible (10% de chances)." + "name": "Ballon Brulant", + "effect": "Le lanceur attaque avec un ballon fait à partir d’un caillou enflammé. Peut aussi bruler la cible (10% de chances)." }, "behemothBlade": { "name": "Gladius Maximus", @@ -3189,7 +3189,7 @@ }, "steelRoller": { "name": "Métalliroue", - "effect": "Une attaque qui inflige des dégâts et fait disparaître le champ actif, mais qui échoue s’il n’y en a pas à ce moment." + "effect": "Une attaque qui inflige des dégâts et fait disparaitre le champ actif, mais qui échoue s’il n’y en a pas à ce moment." }, "scaleShot": { "name": "Rafale Écailles", @@ -3225,7 +3225,7 @@ }, "burningJealousy": { "name": "Feu Envieux", - "effect": "Le lanceur attaque sa cible avec toute sa jalousie. Cette capacité brûle tout Pokémon dont les stats ont augmenté pendant ce tour." + "effect": "Le lanceur attaque sa cible avec toute sa jalousie. Cette capacité brule tout Pokémon dont les stats ont augmenté pendant ce tour." }, "lashOut": { "name": "Cent Rancunes", @@ -3257,7 +3257,7 @@ }, "scorchingSands": { "name": "Sable Ardent", - "effect": "Le lanceur projette du sable chauffé à blanc sur la cible, ce qui peut aussi la brûler (30% de chances)." + "effect": "Le lanceur projette du sable chauffé à blanc sur la cible, ce qui peut aussi la bruler (30% de chances)." }, "jungleHealing": { "name": "Selve Salvatrice", @@ -3265,11 +3265,11 @@ }, "wickedBlow": { "name": "Poing Obscur", - "effect": "Le lanceur assène un coup puissant à la cible. Cette technique qui inflige toujours un coup critique est réservée à ceux qui maîtrisent la puissance des Ténèbres." + "effect": "Le lanceur assène un coup puissant à la cible. Cette technique qui inflige toujours un coup critique est réservée à ceux qui maitrisent la puissance des Ténèbres." }, "surgingStrikes": { "name": "Torrent de Coups", - "effect": "Le lanceur assène trois coups fluides à la cible. Cette technique qui inflige toujours un coup critique est réservée à ceux qui maîtrisent la puissance de l’Eau." + "effect": "Le lanceur assène trois coups fluides à la cible. Cette technique qui inflige toujours un coup critique est réservée à ceux qui maitrisent la puissance de l’Eau." }, "thunderCage": { "name": "Voltageôle", @@ -3285,7 +3285,7 @@ }, "fieryWrath": { "name": "Fureur Ardente", - "effect": "Le lanceur canalise sa colère et la transforme en émanation brûlante, avec laquelle il attaque la cible, ce qui peut aussi apeurer celle-ci (20% de chances)." + "effect": "Le lanceur canalise sa colère et la transforme en émanation brulante, avec laquelle il attaque la cible, ce qui peut aussi apeurer celle-ci (20% de chances)." }, "thunderousKick": { "name": "Coup Fulgurant", @@ -3329,7 +3329,7 @@ }, "ragingFury": { "name": "Grand Courroux", - "effect": "Le lanceur se déchaîne et attaque en projetant de violentes flammes pendant deux ou trois tours. Il devient ensuite confus." + "effect": "Le lanceur se déchaine et attaque en projetant de violentes flammes pendant deux ou trois tours. Il devient ensuite confus." }, "waveCrash": { "name": "Aquatacle", @@ -3373,7 +3373,7 @@ }, "infernalParade": { "name": "Cortège Funèbre", - "effect": "Une multitude de boules de feu frappent la cible, ce qui peut aussi la brûler (30% de chances et 50% en Style Puissant). La puissance est doublée si celle-ci souffre d’une altération de statut." + "effect": "Une multitude de boules de feu frappent la cible, ce qui peut aussi la bruler (30% de chances et 50% en Style Puissant). La puissance est doublée si celle-ci souffre d’une altération de statut." }, "ceaselessEdge": { "name": "Vagues à Lames", @@ -3389,7 +3389,7 @@ }, "sandsearStorm": { "name": "Typhon Pyrosable", - "effect": "Le lanceur déclenche un violent typhon mêlé à du sable ardent qui s’abat sur la cible, ce qui peut la brûler (30% de chances et 50% en Style Puissant)." + "effect": "Le lanceur déclenche un violent typhon mêlé à du sable ardent qui s’abat sur la cible, ce qui peut la bruler (30% de chances et 50% en Style Puissant)." }, "lunarBlessing": { "name": "Prière Lunaire", @@ -3529,7 +3529,7 @@ }, "gMaxRapidFlow": { "name": "Multicoup G-Max", - "effect": "Une attaque de type Eau que seul un Shifours Gigamax peut utiliser. Cet enchaînement de coups permet d’ignorer la capacité Gardomax." + "effect": "Une attaque de type Eau que seul un Shifours Gigamax peut utiliser. Cet enchainement de coups permet d’ignorer la capacité Gardomax." }, "teraBlast": { "name": "Téra Explosion", @@ -3712,8 +3712,8 @@ "effect": "Le lanceur projette de l’eau pressurisée qui entaille la cible comme une lame. Taux de critiques élevé." }, "blazingTorque": { - "name": "Crash Brûlant", - "effect": "Crash Brûlant inflige des dégâts et possède 30 % de chances de brûler l’adversaire." + "name": "Crash Brulant", + "effect": "Crash Brulant inflige des dégâts et possède 30 % de chances de bruler l’adversaire." }, "wickedTorque": { "name": "Crash Obscur", @@ -3737,7 +3737,7 @@ }, "matchaGotcha": { "name": "Mortier Matcha", - "effect": "Le lanceur remue son thé et en bombarde la cible. La moitié des dégâts infligés sont convertis en PV pour le lanceur. Cette capacité peut aussi brûler la cible." + "effect": "Le lanceur remue son thé et en bombarde la cible. La moitié des dégâts infligés sont convertis en PV pour le lanceur. Cette capacité peut aussi bruler la cible." }, "syrupBomb": { "name": "Bombe au Sirop", @@ -3760,8 +3760,8 @@ "effect": "Le lanceur attaque en tirant un rayon lumineux. Il arrive parfois que toutes les têtes agissent ensemble, ce qui double la puissance de la capacité." }, "burningBulwark": { - "name": "Rempart Brûlant", - "effect": "Le lanceur se protège contre les attaques grâce à son pelage incandescent, et si un assaillant utilise une attaque directe contre lui, il le brûle." + "name": "Rempart Brulant", + "effect": "Le lanceur se protège contre les attaques grâce à son pelage incandescent, et si un assaillant utilise une attaque directe contre lui, il le brule." }, "thunderclap": { "name": "Vif Éclair", @@ -3784,7 +3784,7 @@ "effect": "Le lanceur galvanise ses alliés avec un encouragement draconique qui augmente leur taux de critiques. L’effet est plus puissant si les alliés ont le type Dragon." }, "alluringVoice": { - "name": "Voix Envoûtante", + "name": "Voix Envoutante", "effect": "Le lanceur attaque la cible avec sa voix angélique. Cette capacité rend la cible confuse si ses stats ont augmenté pendant ce tour." }, "temperFlare": { @@ -3804,7 +3804,7 @@ "effect": "Le lanceur réagit instinctivement au moindre mouvement et donne un coup de paume qui apeure la cible. Échoue si cette dernière n’a pas utilisé une attaque prioritaire." }, "malignantChain": { - "name": "Chaîne Malsaine", - "effect": "Le lanceur ligote la cible avec une chaîne faite de poison et lui injecte un venin corrosif, ce qui peut aussi gravement l’empoisonner." + "name": "Chaine Malsaine", + "effect": "Le lanceur ligote la cible avec une chaine faite de poison et lui injecte un venin corrosif, ce qui peut aussi gravement l’empoisonner." } -} \ No newline at end of file +} diff --git a/src/locales/fr/run-history-ui-handler.json b/src/locales/fr/run-history.json similarity index 100% rename from src/locales/fr/run-history-ui-handler.json rename to src/locales/fr/run-history.json diff --git a/src/locales/fr/settings.json b/src/locales/fr/settings.json index deee95a124a..3b0794c502d 100644 --- a/src/locales/fr/settings.json +++ b/src/locales/fr/settings.json @@ -61,6 +61,7 @@ "typeHints": "Indications de type", "masterVolume": "Vol. principal", "bgmVolume": "Vol. musique", + "fieldVolume": "Vol. combats", "seVolume": "Vol. effets", "musicPreference": "Préf. musicale", "mixed": "Mixte", diff --git a/src/locales/fr/trainer-classes.json b/src/locales/fr/trainer-classes.json index 34768d0a31f..55ad0a3db8b 100644 --- a/src/locales/fr/trainer-classes.json +++ b/src/locales/fr/trainer-classes.json @@ -11,7 +11,7 @@ "baker": "Boulangère", "battle_girl": "Combattante", "beauty": "Canon", - "beginners": "Beginners", + "beginners": "Débutants", "biker": "Motard", "black_belt": "Karatéka", "breeder": "Éleveur", @@ -29,7 +29,7 @@ "depot_agent": "Cheminot", "doctor": "Docteur", "doctor_female": "Docteure", - "firebreather": "Firebreather", + "firebreather": "Crache-Feu", "fisherman": "Pêcheur", "fisherman_female": "Pêcheuse", "gentleman": "Gentleman", @@ -68,7 +68,7 @@ "pokémon_rangers": "Pokémon Rangers", "ranger": "Ranger", "restaurant_staff": "Serveurs", - "rich": "Rich", + "rich": "Gentleman", "rich_female": "Mondaine", "rich_boy": "Gentleman", "rich_couple": "Couple de Bourgeois", @@ -118,4 +118,4 @@ "flare_grunt": "Sbire de la Team Flare", "flare_grunt_female": "Sbire de la Team Flare", "flare_grunts": "Sbires de la Team Flare" -} \ No newline at end of file +} diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 19d2f92f04e..c671851f6a9 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const itConfig = { ability, diff --git a/src/locales/it/menu-ui-handler.json b/src/locales/it/menu-ui-handler.json index 091942082ad..7776825f1fe 100644 --- a/src/locales/it/menu-ui-handler.json +++ b/src/locales/it/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "Obiettivi", "STATS": "Statistiche", "RUN_HISTORY": "Run precedenti", - "VOUCHERS": "Biglietti", "EGG_LIST": "Lista uova", "EGG_GACHA": "Macchine uova", "MANAGE_DATA": "Gestisci dati", diff --git a/src/locales/it/move.json b/src/locales/it/move.json index 4c3a831197d..f5bb1954278 100644 --- a/src/locales/it/move.json +++ b/src/locales/it/move.json @@ -2913,7 +2913,7 @@ }, "zippyZap": { "name": "Sprintaboom", - "effect": "Un attacco elettrico ad altissima velocità. Questa mossa ha priorità alta e aumenta l'elusione dell'utilizzatore." + "effect": "Un attacco elettrico ad altissima velocità. Questa mossa ha priorità alta e infligge sicuramente un brutto colpo." }, "splishySplash": { "name": "Surfasplash", @@ -3807,4 +3807,4 @@ "name": "Intossicatena", "effect": "Il Pokémon logora il bersaglio avvolgendolo con le sue catene fatte di veleno e iniettandogli delle tossine che possono anche iperavvelenarlo." } -} \ No newline at end of file +} diff --git a/src/locales/it/party-ui-handler.json b/src/locales/it/party-ui-handler.json index 9e26dfeeb6e..f5582e5b630 100644 --- a/src/locales/it/party-ui-handler.json +++ b/src/locales/it/party-ui-handler.json @@ -1 +1,42 @@ -{} \ 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", + "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 diff --git a/src/locales/it/pokemon-form-battle.json b/src/locales/it/pokemon-form-battle.json index 911f4fcf7c9..3c9b36f8150 100644 --- a/src/locales/it/pokemon-form-battle.json +++ b/src/locales/it/pokemon-form-battle.json @@ -10,5 +10,5 @@ "eternamaxChange": "{{preName}} si Dynamaxxa infinitamente\nin {{pokemonName}}!", "revertChange": "{{pokemonName}} è tornato\nalla sua forma originaria!", "formChange": "{{preName}} ha cambiato forma!", - "disguiseChange": "Its disguise served it as a decoy!" + "disguiseChange": "Il costume ha assorbito l’attacco!" } \ No newline at end of file diff --git a/src/locales/it/run-history-ui-handler.json b/src/locales/it/run-history.json similarity index 100% rename from src/locales/it/run-history-ui-handler.json rename to src/locales/it/run-history.json diff --git a/src/locales/it/settings.json b/src/locales/it/settings.json index 1a0f05d368c..002ea6ad4db 100644 --- a/src/locales/it/settings.json +++ b/src/locales/it/settings.json @@ -4,6 +4,7 @@ "general": "Generale", "gamepadSupport": "Supporto Gamepad", "showBgmBar": "Mostra Nomi Musica", + "fieldVolume": "Volume Campo", "moveTouchControls": "Move Touch Controls", "shopOverlayOpacity": "Opacità Finestra Negozio", "shopCursorTarget": "Target Cursore Negozio", diff --git a/src/locales/it/starter-select-ui-handler.json b/src/locales/it/starter-select-ui-handler.json index 2bdc267d5f6..04137993d33 100644 --- a/src/locales/it/starter-select-ui-handler.json +++ b/src/locales/it/starter-select-ui-handler.json @@ -1,6 +1,6 @@ { "confirmStartTeam": "Vuoi iniziare con questi Pokémon?", - "confirmExit": "Do you want to exit?", + "confirmExit": "Vuoi tornare alla schermata principale?", "invalidParty": "Questo squadra iniziale non è valida!", "gen1": "1ª", "gen2": "2ª", @@ -21,13 +21,13 @@ "toggleIVs": "Vedi/Nascondi IV", "manageMoves": "Gestisci mosse", "manageNature": "Gestisci natura", - "addToFavorites": "Add to Favorites", - "removeFromFavorites": "Remove from Favorites", + "addToFavorites": "Aggiungi ai preferiti", + "removeFromFavorites": "Rimuovi dai preferiti", "useCandies": "Usa caramelle", "selectNature": "Seleziona natura.", "selectMoveSwapOut": "Seleziona una mossa da scambiare.", "selectMoveSwapWith": "Seleziona una mossa da scambiare con", - "sameSpeciesEgg": "Buy an Egg", + "sameSpeciesEgg": "Compra un uovo", "unlockPassive": "Sblocca passiva", "reduceCost": "Riduci costo", "cycleShiny": ": Shiny", @@ -36,7 +36,7 @@ "cycleAbility": ": Abilità", "cycleNature": ": Natura", "cycleVariant": ": Variante", - "goFilter": ": Go to filters", + "goFilter": ": Vai ai filtri", "enablePassive": "Attiva passiva", "disablePassive": "Disattiva passiva", "locked": "Bloccato", diff --git a/src/locales/it/terrain.json b/src/locales/it/terrain.json index 9e26dfeeb6e..d0a584d74ab 100644 --- a/src/locales/it/terrain.json +++ b/src/locales/it/terrain.json @@ -1 +1,16 @@ -{} \ No newline at end of file +{ + "misty": "Nebbioso", + "mistyStartMessage": "Ai piedi dei Pokémon si addensa la nebbia.", + "mistyClearMessage": "La nebbia si dissolve.", + "mistyBlockMessage": "Il Campo Nebbioso protegge {{pokemonNameWithAffix}}!", + "electric": "Elettrico", + "electricStartMessage": "Ai piedi dei Pokémon si accumula dell’elettricità.", + "electricClearMessage": "L’elettricità svanisce.", + "grassy": "Erboso", + "grassyStartMessage": "Ai piedi dei Pokémon cresce rigogliosa l’erba.", + "grassyClearMessage": "L’erba sparisce.", + "psychic": "Psichico", + "psychicStartMessage": "Nel campo si avverte una strana sensazione...", + "psychicClearMessage": "La strana sensazione nel campo è svanita!", + "defaultBlockMessage": "Il Campo {{terrainName}} protegge {{pokemonNameWithAffix}}!" +} diff --git a/src/locales/it/trainer-names.json b/src/locales/it/trainer-names.json index e5ad03321a8..bd66fbae647 100644 --- a/src/locales/it/trainer-names.json +++ b/src/locales/it/trainer-names.json @@ -124,25 +124,25 @@ "rival": "Finn", "rival_female": "Ivy", "archer": "Archer", - "ariana": "Ariana", - "proton": "Proton", - "petrel": "Petrel", - "tabitha": "Tabitha", - "courtney": "Courtney", - "shelly": "Shelly", - "matt": "Matt", - "mars": "Mars", - "jupiter": "Jupiter", - "saturn": "Saturn", - "zinzolin": "Zinzolin", - "rood": "Rood", - "xerosic": "Xerosic", - "bryony": "Bryony", - "maxie": "Maxie", - "archie": "Archie", + "ariana": "Atena", + "proton": "Milas", + "petrel": "Maxus", + "tabitha": "Ottavio", + "courtney": "Rossella", + "shelly": "Ada", + "matt": "Alan", + "mars": "Martes", + "jupiter": "Giovia", + "saturn": "Saturno", + "zinzolin": "Violante", + "rood": "Ross", + "xerosic": "Xante", + "bryony": "Bromelia", + "maxie": "Max", + "archie": "Ivan", "cyrus": "Cyrus", - "ghetsis": "Ghetsis", - "lysandre": "Lysandre", + "ghetsis": "Ghecis", + "lysandre": "Elisio", "blue_red_double": "Blu & Rosso", "red_blue_double": "Rosso & Blu", "tate_liza_double": "Tell & Pat", diff --git a/src/locales/it/trainer-titles.json b/src/locales/it/trainer-titles.json index c7f0dd8b323..f8132d2b817 100644 --- a/src/locales/it/trainer-titles.json +++ b/src/locales/it/trainer-titles.json @@ -10,22 +10,22 @@ "rival": "Rivale", "professor": "Professore", "frontier_brain": "Asso lotta", - "rocket_boss": "Team Rocket Boss", - "magma_boss": "Team Magma Boss", - "aqua_boss": "Team Aqua Boss", - "galactic_boss": "Team Galactic Boss", - "plasma_boss": "Team Plasma Boss", - "flare_boss": "Team Flare Boss", - "rocket_admin": "Team Rocket Admin", - "rocket_admin_female": "Team Rocket Admin", - "magma_admin": "Team Magma Admin", - "magma_admin_female": "Team Magma Admin", - "aqua_admin": "Team Aqua Admin", - "aqua_admin_female": "Team Aqua Admin", - "galactic_commander": "Team Galactic Commander", - "galactic_commander_female": "Team Galactic Commander", - "plasma_sage": "Team Plasma Sage", - "plasma_admin": "Team Plasma Admin", - "flare_admin": "Team Flare Admin", - "flare_admin_female": "Team Flare Admin" + "rocket_boss": "Capo Rocket", + "magma_boss": "Capo Magma", + "aqua_boss": "Capo Idro", + "galactic_boss": "Capo Galassia", + "plasma_boss": "Capo Plasma", + "flare_boss": "Capo Flare", + "rocket_admin": "Tenente Team Rocket", + "rocket_admin_female": "Tenente Team Rocket", + "magma_admin": "Magmatenente", + "magma_admin_female": "Magmatenente", + "aqua_admin": "Idrotenente", + "aqua_admin_female": "Idrotenente", + "galactic_commander": "Comandante Galassia", + "galactic_commander_female": "Comandante Galassia", + "plasma_sage": "Saggio Team Plasma", + "plasma_admin": "Tenente Team Plasma", + "flare_admin": "Ufficiale Team Flare", + "flare_admin_female": "Ufficiale Team Flare" } \ No newline at end of file diff --git a/src/locales/ja/config.ts b/src/locales/ja/config.ts index fade2cd258f..b459ee12a9a 100644 --- a/src/locales/ja/config.ts +++ b/src/locales/ja/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const jaConfig = { ability, diff --git a/src/locales/ja/menu-ui-handler.json b/src/locales/ja/menu-ui-handler.json index fbab18bb9eb..e9bec2cf0ae 100644 --- a/src/locales/ja/menu-ui-handler.json +++ b/src/locales/ja/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "じっせき", "STATS": "とうけい", "RUN_HISTORY":"ラン履歴", - "VOUCHERS": "クーポン", "EGG_LIST": "タマゴリスト", "EGG_GACHA": "タマゴガチャ", "MANAGE_DATA": "データかんり", diff --git a/src/locales/ja/run-history-ui-handler.json b/src/locales/ja/run-history.json similarity index 100% rename from src/locales/ja/run-history-ui-handler.json rename to src/locales/ja/run-history.json diff --git a/src/locales/ko/config.ts b/src/locales/ko/config.ts index e570742bb73..b5b34cea0ae 100644 --- a/src/locales/ko/config.ts +++ b/src/locales/ko/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const koConfig = { ability, diff --git a/src/locales/ko/menu-ui-handler.json b/src/locales/ko/menu-ui-handler.json index c97b57396e3..7fecbf7c25f 100644 --- a/src/locales/ko/menu-ui-handler.json +++ b/src/locales/ko/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "업적", "STATS": "통계", "RUN_HISTORY": "플레이 이력", - "VOUCHERS": "바우처", "EGG_LIST": "알 목록", "EGG_GACHA": "알 뽑기", "MANAGE_DATA": "데이터 관리", diff --git a/src/locales/ko/modifier.json b/src/locales/ko/modifier.json index 4a030c4e64f..281ecf61943 100644 --- a/src/locales/ko/modifier.json +++ b/src/locales/ko/modifier.json @@ -3,9 +3,10 @@ "turnHealApply": "{{pokemonNameWithAffix}}[[는]]\n{{typeName}}[[로]] 인해 조금 회복했다.", "hitHealApply": "{{pokemonNameWithAffix}}[[는]]\n{{typeName}}[[로]] 인해 조금 회복했다.", "pokemonInstantReviveApply": "{{pokemonNameWithAffix}}[[는]] {{typeName}}[[로]]\n정신을 차려 싸울 수 있게 되었다!", + "pokemonResetNegativeStatStageApply": "{{pokemonNameWithAffix}}[[는]] {{typeName}}[[로]]\n상태를 원래대로 되돌렸다!", "moneyInterestApply": "{{typeName}}[[로]]부터\n₽{{moneyAmount}}[[를]] 받았다!", "turnHeldItemTransferApply": "{{pokemonName}}의 {{typeName}}[[는]]\n{{pokemonNameWithAffix}}의 {{itemName}}[[를]] 흡수했다!", "contactHeldItemTransferApply": "{{pokemonName}}의 {{typeName}}[[는]]\n{{pokemonNameWithAffix}}의 {{itemName}}[[를]] 가로챘다!", "enemyTurnHealApply": "{{pokemonNameWithAffix}}의\n체력이 약간 회복되었다!", "bypassSpeedChanceApply": "{{pokemonName}}[[는]] {{itemName}}[[로]]\n행동이 빨라졌다!" -} \ No newline at end of file +} diff --git a/src/locales/ko/move.json b/src/locales/ko/move.json index a52d839aeb9..a06bb2b3e27 100644 --- a/src/locales/ko/move.json +++ b/src/locales/ko/move.json @@ -2913,7 +2913,7 @@ }, "zippyZap": { "name": "파찌파찌액셀", - "effect": "맹렬한 속도의 전격 공격. 반드시 선제공격할 수 있고 자신의 회피율을 높인다." + "effect": "맹렬한 속도의 전격 공격. 반드시 선제공격할 수 있고 급소에 맞는다." }, "splishySplash": { "name": "참방참방서핑", @@ -3807,4 +3807,4 @@ "name": "악독사슬", "effect": "독으로 된 사슬로 상대를 휘감은 뒤 독소를 흘려보내어 해치운다. 맹독 상태로 만들 때가 있다." } -} \ No newline at end of file +} diff --git a/src/locales/ko/run-history-ui-handler.json b/src/locales/ko/run-history.json similarity index 100% rename from src/locales/ko/run-history-ui-handler.json rename to src/locales/ko/run-history.json diff --git a/src/locales/ko/settings.json b/src/locales/ko/settings.json index 34fff42adb2..d867d86a91a 100644 --- a/src/locales/ko/settings.json +++ b/src/locales/ko/settings.json @@ -59,9 +59,10 @@ "fusionPaletteSwaps": "셰이더 적용", "playerGender": "플레이어 성별", "typeHints": "상성 힌트", - "masterVolume": "마스터 볼륨", - "bgmVolume": "BGM 볼륨", - "seVolume": "SE 볼륨", + "masterVolume": "전체 볼륨", + "bgmVolume": "배경음악 볼륨", + "fieldVolume": "전투효과 볼륨", + "seVolume": "조작 볼륨", "musicPreference": "음악 설정", "mixed": "믹스", "gamepadPleasePlug": "게임패드를 연결하거나 버튼을 입력하세요", diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 74dce2dec3e..9cc8fe313a2 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const ptBrConfig = { ability, diff --git a/src/locales/pt_BR/menu-ui-handler.json b/src/locales/pt_BR/menu-ui-handler.json index c59865e41f9..cc087c8335e 100644 --- a/src/locales/pt_BR/menu-ui-handler.json +++ b/src/locales/pt_BR/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "Conquistas", "STATS": "Estatísticas", "RUN_HISTORY": "Histórico de Jogos", - "VOUCHERS": "Vouchers", "EGG_LIST": "Incubadora", "EGG_GACHA": "Gacha de ovos", "MANAGE_DATA": "Gerenciar dados", diff --git a/src/locales/pt_BR/move.json b/src/locales/pt_BR/move.json index 043a095159c..f3ba21a637d 100644 --- a/src/locales/pt_BR/move.json +++ b/src/locales/pt_BR/move.json @@ -2913,7 +2913,7 @@ }, "zippyZap": { "name": "Zippy Zap", - "effect": "O usuário ataca o alvo com rajadas de eletricidade em alta velocidade. Esse movimento sempre vai primeiro e aumenta a Evasão do usuário." + "effect": "O usuário ataca o alvo com rajadas de eletricidade em alta velocidade. Esse movimento sempre vai primeiro e resulta em um golpe crítico." }, "splishySplash": { "name": "Splishy Splash", @@ -3807,4 +3807,4 @@ "name": "Malignant Chain", "effect": "O usuário derrama toxinas no alvo envolvendo-o em uma corrente tóxica e corrosiva. Isso também pode deixar o alvo seriamente envenenado." } -} \ No newline at end of file +} diff --git a/src/locales/pt_BR/run-history-ui-handler.json b/src/locales/pt_BR/run-history.json similarity index 100% rename from src/locales/pt_BR/run-history-ui-handler.json rename to src/locales/pt_BR/run-history.json diff --git a/src/locales/pt_BR/settings.json b/src/locales/pt_BR/settings.json index d1b4bd33c76..e2fd6d5c8d2 100644 --- a/src/locales/pt_BR/settings.json +++ b/src/locales/pt_BR/settings.json @@ -59,10 +59,11 @@ "fusionPaletteSwaps": "Cores da Paleta de Fusão", "playerGender": "Gênero do Jogador", "typeHints": "Dicas de Tipo", - "masterVolume": "Volume Mestre", - "bgmVolume": "Volume de BGM", - "seVolume": "Volume de SE", - "musicPreference": "Preferência de Música", + "masterVolume": "Volume Geral", + "bgmVolume": "Músicas", + "fieldVolume": "Ambiente", + "seVolume": "Ef. Sonoros", + "musicPreference": "Estilo da Música", "mixed": "Misto", "gamepadPleasePlug": "Conecte um controle ou pressione um botão", "delete": "Deletar", diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 63e3f46f7b3..7c29262ac1a 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const zhCnConfig = { ability, diff --git a/src/locales/zh_CN/menu-ui-handler.json b/src/locales/zh_CN/menu-ui-handler.json index beea79f34f2..c8ecaa6dd98 100644 --- a/src/locales/zh_CN/menu-ui-handler.json +++ b/src/locales/zh_CN/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "成就", "STATS": "数据统计", "RUN_HISTORY": "历史记录", - "VOUCHERS": "兑换券", "EGG_LIST": "蛋列表", "EGG_GACHA": "扭蛋机", "MANAGE_DATA": "管理数据", diff --git a/src/locales/zh_CN/move.json b/src/locales/zh_CN/move.json index ad7212c3f67..5974271abb2 100644 --- a/src/locales/zh_CN/move.json +++ b/src/locales/zh_CN/move.json @@ -2913,7 +2913,7 @@ }, "zippyZap": { "name": "电电加速", - "effect": "迅猛无比的电击。必定能够先制攻击,\n并且提高自己的闪避率。" + "effect": "迅猛无比的电击。必定能够先制攻击,击中对方的要害。" }, "splishySplash": { "name": "滔滔冲浪", @@ -3807,4 +3807,4 @@ "name": "邪毒锁链", "effect": "用由毒形成的锁链缠住对手注入毒\n素加以侵蚀。有时会让对手陷入剧毒状态" } -} \ No newline at end of file +} diff --git a/src/locales/zh_CN/run-history-ui-handler.json b/src/locales/zh_CN/run-history.json similarity index 100% rename from src/locales/zh_CN/run-history-ui-handler.json rename to src/locales/zh_CN/run-history.json diff --git a/src/locales/zh_CN/settings.json b/src/locales/zh_CN/settings.json index 140ed3b78ad..3ae0fa8204c 100644 --- a/src/locales/zh_CN/settings.json +++ b/src/locales/zh_CN/settings.json @@ -61,6 +61,7 @@ "typeHints": "属性提示", "masterVolume": "主音量", "bgmVolume": "音乐", + "fieldVolume": "场景音量", "seVolume": "音效", "musicPreference": "音乐偏好", "mixed": "全曲混合", diff --git a/src/locales/zh_CN/weather.json b/src/locales/zh_CN/weather.json index a67f5193c48..65f677044ac 100644 --- a/src/locales/zh_CN/weather.json +++ b/src/locales/zh_CN/weather.json @@ -27,6 +27,5 @@ "harshSunClearMessage": "日照复原了。", "strongWindsStartMessage": "吹起了神秘的乱流!", "strongWindsLapseMessage": "神秘的乱流势头不减。", - "strongWindsEffectMessage": "The mysterious air current weakened the attack!", "strongWindsClearMessage": "神秘的乱流停止了。" } \ No newline at end of file diff --git a/src/locales/zh_TW/challenges.json b/src/locales/zh_TW/challenges.json index 288a59ccace..c6c4f90e65e 100644 --- a/src/locales/zh_TW/challenges.json +++ b/src/locales/zh_TW/challenges.json @@ -19,11 +19,5 @@ "name": "單屬性", "desc": "你只能使用{{type}}\n屬性的寶可夢", "desc_default": "你只能使用所選\n屬性的寶可夢" - }, - "freshStart": { - "name": "Fresh Start", - "desc": "You can only use the original starters, and only as if you had just started PokéRogue.", - "value.0": "Off", - "value.1": "On" } } \ No newline at end of file diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index b0dfca1757c..8d9fb7f4a37 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -57,7 +57,7 @@ import weather from "./weather.json"; import terrain from "./terrain.json"; import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history-ui-handler.json"; +import runHistory from "./run-history.json"; export const zhTwConfig = { ability, diff --git a/src/locales/zh_TW/menu-ui-handler.json b/src/locales/zh_TW/menu-ui-handler.json index 645b147b9a5..33e6b44d73d 100644 --- a/src/locales/zh_TW/menu-ui-handler.json +++ b/src/locales/zh_TW/menu-ui-handler.json @@ -3,7 +3,6 @@ "ACHIEVEMENTS": "成就", "STATS": "數據", "RUN_HISTORY": "歷史記錄", - "VOUCHERS": "兌換劵", "EGG_LIST": "蛋列表", "EGG_GACHA": "扭蛋機", "MANAGE_DATA": "管理數據", diff --git a/src/locales/zh_TW/party-ui-handler.json b/src/locales/zh_TW/party-ui-handler.json index d46555c3c50..975212bbdad 100644 --- a/src/locales/zh_TW/party-ui-handler.json +++ b/src/locales/zh_TW/party-ui-handler.json @@ -4,44 +4,5 @@ "CANCEL": "取消", "RELEASE": "放生", "APPLY": "應用", - "TEACH": "教授", - "SPLICE": "Splice", - "UNSPLICE": "Unsplice", - "ACTIVATE": "Activate", - "DEACTIVATE": "Deactivate", - "TRANSFER": "Transfer", - "ALL": "All", - "PASS_BATON": "Pass Baton", - "UNPAUSE_EVOLUTION": "Unpause Evolution", - "REVIVE": "Revive", - "RENAME": "Rename", - "choosePokemon": "Choose a Pokémon.", - "doWhatWithThisPokemon": "Do what with this Pokémon?", - "noEnergy": "{{pokemonName}} has no energy\nleft to battle!", - "hasEnergy": "{{pokemonName}} still has energy\nto battle!", - "cantBeUsed": "{{pokemonName}} can't be used in\nthis challenge!", - "tooManyItems": "{{pokemonName}} has too many\nof this item!", - "anyEffect": "It won't have any effect.", - "unpausedEvolutions": "Evolutions have been unpaused for {{pokemonName}}.", - "unspliceConfirmation": "Do you really want to unsplice {{fusionName}}\nfrom {{pokemonName}}? {{fusionName}} will be lost.", - "wasReverted": "{{fusionName}} was reverted to {{pokemonName}}.", - "releaseConfirmation": "Do you really want to release {{pokemonName}}?", - "releaseInBattle": "You can't release a Pokémon that's in battle!", - "selectAMove": "Select a move.", - "changeQuantity": "Select a held item to transfer.\nUse < and > to change the quantity.", - "selectAnotherPokemonToSplice": "Select another Pokémon to splice.", - "cancel": "Cancel", - "able": "Able", - "notAble": "Not able", - "learned": "Learned", - "goodbye": "Goodbye, {{pokemonName}}!", - "byebye": "Byebye, {{pokemonName}}!", - "farewell": "Farewell, {{pokemonName}}!", - "soLong": "So long, {{pokemonName}}!", - "thisIsWhereWePart": "This is where we part, {{pokemonName}}!", - "illMissYou": "I'll miss you, {{pokemonName}}!", - "illNeverForgetYou": "I'll never forget you, {{pokemonName}}!", - "untilWeMeetAgain": "Until we meet again, {{pokemonName}}!", - "sayonara": "Sayonara, {{pokemonName}}!", - "smellYaLater": "Smell ya later, {{pokemonName}}!" + "TEACH": "教授" } \ No newline at end of file diff --git a/src/locales/zh_TW/run-history-ui-handler.json b/src/locales/zh_TW/run-history.json similarity index 100% rename from src/locales/zh_TW/run-history-ui-handler.json rename to src/locales/zh_TW/run-history.json diff --git a/src/locales/zh_TW/settings.json b/src/locales/zh_TW/settings.json index eac573f2cba..b077e0216a3 100644 --- a/src/locales/zh_TW/settings.json +++ b/src/locales/zh_TW/settings.json @@ -61,6 +61,7 @@ "typeHints": "屬性提示", "masterVolume": "主音量", "bgmVolume": "音樂", + "fieldVolume": "場景音量", "seVolume": "音效", "musicPreference": "音樂偏好", "mixed": "全曲混合", diff --git a/src/main.ts b/src/main.ts index 41cd68afc1e..8a69d3f1b72 100644 --- a/src/main.ts +++ b/src/main.ts @@ -73,75 +73,13 @@ const config: Phaser.Types.Core.GameConfig = { /** * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position */ -const setPositionRelative = function (guideObject: any, x: number, y: number) { +const setPositionRelative = function (guideObject: Phaser.GameObjects.GameObject, x: number, y: number) { const offsetX = guideObject.width * (-0.5 + (0.5 - guideObject.originX)); const offsetY = guideObject.height * (-0.5 + (0.5 - guideObject.originY)); this.setPosition(guideObject.x + offsetX + x, guideObject.y + offsetY + y); }; -declare module "phaser" { - namespace GameObjects { - interface Container { - /** - * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position - */ - setPositionRelative(guideObject: any, x: number, y: number): void; - } - interface Sprite { - /** - * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position - */ - setPositionRelative(guideObject: any, x: number, y: number): void; - } - interface Image { - /** - * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position - */ - setPositionRelative(guideObject: any, x: number, y: number): void; - } - interface NineSlice { - /** - * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position - */ - setPositionRelative(guideObject: any, x: number, y: number): void; - } - interface Text { - /** - * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position - */ - setPositionRelative(guideObject: any, x: number, y: number): void; - } - interface Rectangle { - /** - * Sets this object's position relative to another object with a given offset - * @param guideObject {@linkcode Phaser.GameObjects.GameObject} to base the position off of - * @param x The relative x position - * @param y The relative y position - */ - setPositionRelative(guideObject: any, x: number, y: number): void; - } - } -} - Phaser.GameObjects.Container.prototype.setPositionRelative = setPositionRelative; Phaser.GameObjects.Sprite.prototype.setPositionRelative = setPositionRelative; Phaser.GameObjects.Image.prototype.setPositionRelative = setPositionRelative; diff --git a/src/phases/attempt-capture-phase.ts b/src/phases/attempt-capture-phase.ts index 3c165a25157..72995c0f006 100644 --- a/src/phases/attempt-capture-phase.ts +++ b/src/phases/attempt-capture-phase.ts @@ -54,7 +54,7 @@ export class AttemptCapturePhase extends PokemonPhase { this.pokeball.setOrigin(0.5, 0.625); this.scene.field.add(this.pokeball); - this.scene.playSound("pb_throw"); + this.scene.playSound("se/pb_throw"); this.scene.time.delayedCall(300, () => { this.scene.field.moveBelow(this.pokeball as Phaser.GameObjects.GameObject, pokemon); }); @@ -67,7 +67,7 @@ export class AttemptCapturePhase extends PokemonPhase { onComplete: () => { this.pokeball.setTexture("pb", `${pokeballAtlasKey}_opening`); this.scene.time.delayedCall(17, () => this.pokeball.setTexture("pb", `${pokeballAtlasKey}_open`)); - this.scene.playSound("pb_rel"); + this.scene.playSound("se/pb_rel"); pokemon.tint(getPokeballTintColor(this.pokeballType)); addPokeballOpenParticles(this.scene, this.pokeball.x, this.pokeball.y, this.pokeballType); @@ -81,7 +81,7 @@ export class AttemptCapturePhase extends PokemonPhase { onComplete: () => { this.pokeball.setTexture("pb", `${pokeballAtlasKey}_opening`); pokemon.setVisible(false); - this.scene.playSound("pb_catch"); + this.scene.playSound("se/pb_catch"); this.scene.time.delayedCall(17, () => this.pokeball.setTexture("pb", `${pokeballAtlasKey}`)); const doShake = () => { @@ -109,13 +109,13 @@ export class AttemptCapturePhase extends PokemonPhase { this.failCatch(shakeCount); } else if (shakeCount++ < 3) { if (pokeballMultiplier === -1 || pokemon.randSeedInt(65536) < y) { - this.scene.playSound("pb_move"); + this.scene.playSound("se/pb_move"); } else { shakeCounter.stop(); this.failCatch(shakeCount); } } else { - this.scene.playSound("pb_lock"); + this.scene.playSound("se/pb_lock"); addPokeballCaptureStars(this.scene, this.pokeball); const pbTint = this.scene.add.sprite(this.pokeball.x, this.pokeball.y, "pb", "pb"); @@ -156,7 +156,7 @@ export class AttemptCapturePhase extends PokemonPhase { failCatch(shakeCount: integer) { const pokemon = this.getPokemon(); - this.scene.playSound("pb_rel"); + this.scene.playSound("se/pb_rel"); pokemon.setY(this.originalY); if (pokemon.status?.effect !== StatusEffect.SLEEP) { pokemon.cry(pokemon.getHpRatio() > 0.25 ? undefined : { rate: 0.85 }); diff --git a/src/phases/attempt-run-phase.ts b/src/phases/attempt-run-phase.ts index 17625c57fc6..817801985d2 100644 --- a/src/phases/attempt-run-phase.ts +++ b/src/phases/attempt-run-phase.ts @@ -26,7 +26,7 @@ export class AttemptRunPhase extends PokemonPhase { applyAbAttrs(RunSuccessAbAttr, playerPokemon, null, false, escapeChance); if (playerPokemon.randSeedInt(256) < escapeChance.value) { - this.scene.playSound("flee"); + this.scene.playSound("se/flee"); this.scene.queueMessage(i18next.t("battle:runAwaySuccess"), null, true, 500); this.scene.tweens.add({ diff --git a/src/phases/damage-phase.ts b/src/phases/damage-phase.ts index 9f63ce35cf2..029c1e717f1 100644 --- a/src/phases/damage-phase.ts +++ b/src/phases/damage-phase.ts @@ -42,14 +42,14 @@ export class DamagePhase extends PokemonPhase { applyDamage() { switch (this.damageResult) { case HitResult.EFFECTIVE: - this.scene.playSound("hit"); + this.scene.playSound("se/hit"); break; case HitResult.SUPER_EFFECTIVE: case HitResult.ONE_HIT_KO: - this.scene.playSound("hit_strong"); + this.scene.playSound("se/hit_strong"); break; case HitResult.NOT_VERY_EFFECTIVE: - this.scene.playSound("hit_weak"); + this.scene.playSound("se/hit_weak"); break; } diff --git a/src/phases/egg-hatch-phase.ts b/src/phases/egg-hatch-phase.ts index 6f3f0b37905..a5b0252d4de 100644 --- a/src/phases/egg-hatch-phase.ts +++ b/src/phases/egg-hatch-phase.ts @@ -178,7 +178,7 @@ export class EggHatchPhase extends Phase { if (this.hatched) { return; } - this.scene.playSound("egg_crack"); + this.scene.playSound("se/egg_crack"); this.doSpray(4); this.eggCrackSprite.setFrame("3"); this.scene.time.delayedCall(125, () => this.eggCrackSprite.setFrame("4")); @@ -220,7 +220,7 @@ export class EggHatchPhase extends Phase { if (count === undefined) { count = 0; } - this.scene.playSound("pb_move"); + this.scene.playSound("se/pb_move"); this.scene.tweens.add({ targets: this.eggContainer, x: `-=${intensity / (count ? 1 : 2)}`, @@ -281,7 +281,7 @@ export class EggHatchPhase extends Phase { SoundFade.fadeOut(this.scene, this.evolutionBgm, Utils.fixedInt(100)); } for (let e = 0; e < 5; e++) { - this.scene.time.delayedCall(Utils.fixedInt(375 * e), () => this.scene.playSound("egg_hatch", { volume: 1 - (e * 0.2) })); + this.scene.time.delayedCall(Utils.fixedInt(375 * e), () => this.scene.playSound("se/egg_hatch", { volume: 1 - (e * 0.2) })); } this.eggLightraysOverlay.setVisible(true); this.eggLightraysOverlay.play("egg_lightrays"); @@ -334,7 +334,7 @@ export class EggHatchPhase extends Phase { if (isShiny) { this.scene.time.delayedCall(Utils.fixedInt(500), () => { this.pokemonShinySparkle.play(`sparkle${this.pokemon.variant ? `_${this.pokemon.variant + 1}` : ""}`); - this.scene.playSound("sparkle"); + this.scene.playSound("se/sparkle"); }); } this.scene.time.delayedCall(Utils.fixedInt(!this.skipped ? !isShiny ? 1250 : 1750 : !isShiny ? 250 : 750), () => { diff --git a/src/phases/evolution-phase.ts b/src/phases/evolution-phase.ts index 398450ec693..0c3c2fa5bcf 100644 --- a/src/phases/evolution-phase.ts +++ b/src/phases/evolution-phase.ts @@ -157,7 +157,7 @@ export class EvolutionPhase extends Phase { this.evolutionBg.setVisible(true); this.evolutionBg.play(); }); - this.scene.playSound("charge"); + this.scene.playSound("se/charge"); this.doSpiralUpward(); this.scene.tweens.addCounter({ from: 0, @@ -169,7 +169,7 @@ export class EvolutionPhase extends Phase { onComplete: () => { this.pokemonSprite.setVisible(false); this.scene.time.delayedCall(1100, () => { - this.scene.playSound("beam"); + this.scene.playSound("se/beam"); this.doArcDownward(); this.scene.time.delayedCall(1500, () => { this.pokemonEvoTintSprite.setScale(0.25); @@ -214,7 +214,7 @@ export class EvolutionPhase extends Phase { return; } - this.scene.playSound("sparkle"); + this.scene.playSound("se/sparkle"); this.pokemonEvoSprite.setVisible(true); this.doCircleInward(); this.scene.time.delayedCall(900, () => { @@ -227,7 +227,7 @@ export class EvolutionPhase extends Phase { } this.scene.unshiftPhase(new EndEvolutionPhase(this.scene)); - this.scene.playSound("shine"); + this.scene.playSound("se/shine"); this.doSpray(); this.scene.tweens.add({ targets: this.evolutionOverlay, diff --git a/src/phases/faint-phase.ts b/src/phases/faint-phase.ts index 14727f992d2..66946d268cb 100644 --- a/src/phases/faint-phase.ts +++ b/src/phases/faint-phase.ts @@ -126,7 +126,7 @@ export class FaintPhase extends PokemonPhase { pokemon.addFriendship(-10); } pokemon.hideInfo(); - this.scene.playSound("faint"); + this.scene.playSound("se/faint"); this.scene.tweens.add({ targets: pokemon, duration: 500, diff --git a/src/phases/form-change-phase.ts b/src/phases/form-change-phase.ts index 88e0dd00ce1..33c1f8e8cef 100644 --- a/src/phases/form-change-phase.ts +++ b/src/phases/form-change-phase.ts @@ -68,7 +68,7 @@ export class FormChangePhase extends EvolutionPhase { this.evolutionBg.setVisible(true); this.evolutionBg.play(); }); - this.scene.playSound("charge"); + this.scene.playSound("se/charge"); this.doSpiralUpward(); this.scene.tweens.addCounter({ from: 0, @@ -80,13 +80,13 @@ export class FormChangePhase extends EvolutionPhase { onComplete: () => { this.pokemonSprite.setVisible(false); this.scene.time.delayedCall(1100, () => { - this.scene.playSound("beam"); + this.scene.playSound("se/beam"); this.doArcDownward(); this.scene.time.delayedCall(1000, () => { this.pokemonEvoTintSprite.setScale(0.25); this.pokemonEvoTintSprite.setVisible(true); this.doCycle(1, 1).then(_success => { - this.scene.playSound("sparkle"); + this.scene.playSound("se/sparkle"); this.pokemonEvoSprite.setVisible(true); this.doCircleInward(); this.scene.time.delayedCall(900, () => { @@ -95,7 +95,7 @@ export class FormChangePhase extends EvolutionPhase { this.scene.unshiftPhase(new EndEvolutionPhase(this.scene)); } - this.scene.playSound("shine"); + this.scene.playSound("se/shine"); this.doSpray(); this.scene.tweens.add({ targets: this.evolutionOverlay, diff --git a/src/phases/game-over-modifier-reward-phase.ts b/src/phases/game-over-modifier-reward-phase.ts index e2f4d134cba..c27659bf9d4 100644 --- a/src/phases/game-over-modifier-reward-phase.ts +++ b/src/phases/game-over-modifier-reward-phase.ts @@ -13,6 +13,7 @@ export class GameOverModifierRewardPhase extends ModifierRewardPhase { return new Promise(resolve => { const newModifier = this.modifierType.newModifier(); this.scene.addModifier(newModifier).then(() => { + // Sound loaded into game as is this.scene.playSound("level_up_fanfare"); this.scene.ui.setMode(Mode.MESSAGE); this.scene.ui.fadeIn(250).then(() => { diff --git a/src/phases/learn-move-phase.ts b/src/phases/learn-move-phase.ts index e30fc0c3d10..5a9a16b6f5e 100644 --- a/src/phases/learn-move-phase.ts +++ b/src/phases/learn-move-phase.ts @@ -45,6 +45,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase { loadMoveAnimAssets(this.scene, [this.moveId], true) .then(() => { this.scene.ui.setMode(messageMode).then(() => { + // Sound loaded into game as is this.scene.playSound("level_up_fanfare"); this.scene.ui.showText(i18next.t("battle:learnMove", { pokemonName: getPokemonNameWithAffix(pokemon), moveName: move.name }), null, () => { this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeMoveLearnedTrigger, true); diff --git a/src/phases/level-cap-phase.ts b/src/phases/level-cap-phase.ts index 4a07e7d131e..db59fbd6473 100644 --- a/src/phases/level-cap-phase.ts +++ b/src/phases/level-cap-phase.ts @@ -12,6 +12,7 @@ export class LevelCapPhase extends FieldPhase { super.start(); this.scene.ui.setMode(Mode.MESSAGE).then(() => { + // Sound loaded into game as is this.scene.playSound("level_up_fanfare"); this.scene.ui.showText(i18next.t("battle:levelCapUp", { levelCap: this.scene.getMaxExpLevel() }), null, () => this.end(), null, true); this.executeForAll(pokemon => pokemon.updateInfo(true)); diff --git a/src/phases/select-modifier-phase.ts b/src/phases/select-modifier-phase.ts index 57b842e7b38..1c96d278d69 100644 --- a/src/phases/select-modifier-phase.ts +++ b/src/phases/select-modifier-phase.ts @@ -69,7 +69,7 @@ export class SelectModifierPhase extends BattlePhase { this.scene.updateMoneyText(); this.scene.animateMoneyChanged(false); } - this.scene.playSound("buy"); + this.scene.playSound("se/buy"); } break; case 1: @@ -128,7 +128,7 @@ export class SelectModifierPhase extends BattlePhase { this.scene.updateMoneyText(); this.scene.animateMoneyChanged(false); } - this.scene.playSound("buy"); + this.scene.playSound("se/buy"); (this.scene.ui.getHandler() as ModifierSelectUiHandler).updateCostText(); } else { this.scene.ui.playError(); diff --git a/src/phases/stat-change-phase.ts b/src/phases/stat-change-phase.ts index 99f30304502..856d0a33eea 100644 --- a/src/phases/stat-change-phase.ts +++ b/src/phases/stat-change-phase.ts @@ -134,7 +134,7 @@ export class StatChangePhase extends PokemonPhase { statSprite.setScale(6); statSprite.setOrigin(0.5, 1); - this.scene.playSound(`stat_${levels.value >= 1 ? "up" : "down"}`); + this.scene.playSound(`se/stat_${levels.value >= 1 ? "up" : "down"}`); statSprite.setMask(new Phaser.Display.Masks.BitmapMask(this.scene, pokemonMaskSprite ?? undefined)); diff --git a/src/phases/summon-phase.ts b/src/phases/summon-phase.ts index 50424170ea7..f65a2063d4c 100644 --- a/src/phases/summon-phase.ts +++ b/src/phases/summon-phase.ts @@ -127,7 +127,7 @@ export class SummonPhase extends PartyMemberPokemonPhase { angle: 1440, y: (this.player ? 132 : 86) + fpOffset[1], onComplete: () => { - this.scene.playSound("pb_rel"); + this.scene.playSound("se/pb_rel"); pokeball.destroy(); this.scene.add.existing(pokemon); this.scene.field.add(pokemon); diff --git a/src/phases/switch-summon-phase.ts b/src/phases/switch-summon-phase.ts index 3e401925cea..68dc8f8bf65 100644 --- a/src/phases/switch-summon-phase.ts +++ b/src/phases/switch-summon-phase.ts @@ -74,7 +74,7 @@ export class SwitchSummonPhase extends SummonPhase { pokemonName: getPokemonNameWithAffix(pokemon) }) ); - this.scene.playSound("pb_rel"); + this.scene.playSound("se/pb_rel"); pokemon.hideInfo(); pokemon.tint(getPokeballTintColor(pokemon.pokeball), 1, 250, "Sine.easeIn"); this.scene.tweens.add({ @@ -160,6 +160,8 @@ export class SwitchSummonPhase extends SummonPhase { this.lastPokemon?.resetSummonData(); this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeActiveTrigger, true); + // Reverts to weather-based forms when weather suppressors (Cloud Nine/Air Lock) are switched out + this.scene.arena.triggerWeatherBasedFormChanges(); } queuePostSummon(): void { diff --git a/src/phases/trainer-victory-phase.ts b/src/phases/trainer-victory-phase.ts index 7b8ee05de44..a38874c9acd 100644 --- a/src/phases/trainer-victory-phase.ts +++ b/src/phases/trainer-victory-phase.ts @@ -1,6 +1,5 @@ import BattleScene from "#app/battle-scene.js"; import { getCharVariantFromDialogue } from "#app/data/dialogue.js"; -import { TrainerSlot } from "#app/data/trainer-config.js"; import { TrainerType } from "#app/enums/trainer-type.js"; import { modifierTypes } from "#app/modifier/modifier-type.js"; import { vouchers } from "#app/system/voucher.js"; @@ -9,6 +8,7 @@ import * as Utils from "#app/utils.js"; import { BattlePhase } from "./battle-phase"; import { ModifierRewardPhase } from "./modifier-reward-phase"; import { MoneyRewardPhase } from "./money-reward-phase"; +import { TrainerSlot } from "#app/data/trainer-config"; export class TrainerVictoryPhase extends BattlePhase { constructor(scene: BattleScene) { @@ -42,7 +42,7 @@ export class TrainerVictoryPhase extends BattlePhase { const showMessage = () => { const originalFunc = showMessageOrEnd; - showMessageOrEnd = () => this.scene.ui.showDialogue(message, this.scene.currentBattle.trainer?.getName(), null, originalFunc); + showMessageOrEnd = () => this.scene.ui.showDialogue(message, this.scene.currentBattle.trainer?.getName(TrainerSlot.TRAINER, true), null, originalFunc); showMessageOrEnd(); }; diff --git a/src/phases/turn-end-phase.ts b/src/phases/turn-end-phase.ts index 62589e99b79..9f4de46b0fa 100644 --- a/src/phases/turn-end-phase.ts +++ b/src/phases/turn-end-phase.ts @@ -60,6 +60,7 @@ export class TurnEndPhase extends FieldPhase { if (this.scene.arena.weather && !this.scene.arena.weather.lapse()) { this.scene.arena.trySetWeather(WeatherType.NONE, false); + this.scene.arena.triggerWeatherBasedFormChangesToNormal(); } if (this.scene.arena.terrain && !this.scene.arena.terrain.lapse()) { diff --git a/src/phases/unlock-phase.ts b/src/phases/unlock-phase.ts index ce06e2445ac..1662afaa758 100644 --- a/src/phases/unlock-phase.ts +++ b/src/phases/unlock-phase.ts @@ -16,6 +16,7 @@ export class UnlockPhase extends Phase { start(): void { this.scene.time.delayedCall(2000, () => { this.scene.gameData.unlocks[this.unlockable] = true; + // Sound loaded into game as is this.scene.playSound("level_up_fanfare"); this.scene.ui.setMode(Mode.MESSAGE); this.scene.ui.showText(i18next.t("battle:unlockedSomething", { unlockedThing: getUnlockableName(this.unlockable) }), null, () => { diff --git a/src/scene-base.ts b/src/scene-base.ts index 1d7a2518300..298b8096e54 100644 --- a/src/scene-base.ts +++ b/src/scene-base.ts @@ -73,7 +73,7 @@ export class SceneBase extends Phaser.Scene { filenames = `${key}.wav`; } if (!folder) { - folder = ""; + folder = "se/"; } else { folder += "/"; } @@ -81,7 +81,7 @@ export class SceneBase extends Phaser.Scene { filenames = [ filenames ]; } for (const f of filenames as string[]) { - this.load.audio(key, this.getCachedUrl(`audio/se/${folder}${f}`)); + this.load.audio(folder+key, this.getCachedUrl(`audio/${folder}${f}`)); } } diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 74558b255e1..e7bc85d9037 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -1411,6 +1411,7 @@ export class GameData { case GameDataType.RUN_HISTORY: const data = JSON.parse(dataStr); const keys = Object.keys(data); + dataName = i18next.t("menuUiHandler:RUN_HISTORY").toLowerCase(); keys.forEach((key) => { const entryKeys = Object.keys(data[key]); valid = ["isFavorite", "isVictory", "entry"].every(v => entryKeys.includes(v)) && entryKeys.length === 3; diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index 4bd69788f04..a7ad3f6697e 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -117,6 +117,7 @@ export const SettingKeys = { Type_Hints: "TYPE_HINTS", Master_Volume: "MASTER_VOLUME", BGM_Volume: "BGM_VOLUME", + Field_Volume: "FIELD_VOLUME", SE_Volume: "SE_VOLUME", Music_Preference: "MUSIC_PREFERENCE", Show_BGM_Bar: "SHOW_BGM_BAR", @@ -541,6 +542,13 @@ export const Setting: Array = [ default: 10, type: SettingType.AUDIO }, + { + key: SettingKeys.Field_Volume, + label: i18next.t("settings:fieldVolume"), + options: VOLUME_OPTIONS, + default: 10, + type: SettingType.AUDIO + }, { key: SettingKeys.SE_Volume, label: i18next.t("settings:seVolume"), @@ -654,6 +662,10 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): scene.bgmVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; scene.updateSoundVolume(); break; + case SettingKeys.Field_Volume: + scene.fieldVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; + scene.updateSoundVolume(); + break; case SettingKeys.SE_Volume: scene.seVolume = value ? parseInt(Setting[index].options[value].value) * 0.01 : 0; scene.updateSoundVolume(); diff --git a/src/test/abilities/disguise.test.ts b/src/test/abilities/disguise.test.ts index 58087b408a5..85141fdb491 100644 --- a/src/test/abilities/disguise.test.ts +++ b/src/test/abilities/disguise.test.ts @@ -207,4 +207,18 @@ describe("Abilities - Disguise", () => { expect(mimikyu1.formIndex).toBe(disguisedForm); }, TIMEOUT); + + it("doesn't faint twice when fainting due to Disguise break damage, nor prevent faint from Disguise break damage if using Endure", async () => { + game.override.enemyMoveset(Array(4).fill(Moves.ENDURE)); + await game.startBattle(); + + const mimikyu = game.scene.getEnemyPokemon()!; + mimikyu.hp = 1; + + game.move.select(Moves.SHADOW_SNEAK); + await game.toNextWave(); + + expect(game.scene.getCurrentPhase()?.constructor.name).toBe("CommandPhase"); + expect(game.scene.currentBattle.waveIndex).toBe(2); + }, TIMEOUT); }); diff --git a/src/test/abilities/forecast.test.ts b/src/test/abilities/forecast.test.ts new file mode 100644 index 00000000000..78453c5f4d2 --- /dev/null +++ b/src/test/abilities/forecast.test.ts @@ -0,0 +1,298 @@ +import { BattlerIndex } from "#app/battle"; +import { allAbilities } from "#app/data/ability"; +import { Abilities } from "#app/enums/abilities"; +import { WeatherType } from "#app/enums/weather-type"; +import { DamagePhase } from "#app/phases/damage-phase"; +import { MovePhase } from "#app/phases/move-phase"; +import { PostSummonPhase } from "#app/phases/post-summon-phase"; +import { QuietFormChangePhase } from "#app/phases/quiet-form-change-phase"; +import { TurnEndPhase } from "#app/phases/turn-end-phase"; +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, vi } from "vitest"; + +describe("Abilities - Forecast", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + const NORMAL_FORM = 0; + const SUNNY_FORM = 1; + const RAINY_FORM = 2; + const SNOWY_FORM = 3; + + /** + * Tests form changes based on weather changes + * @param {GameManager} game The game manager instance + * @param {WeatherType} weather The active weather to set + * @param form The expected form based on the active weather + * @param initialForm The initial form pre form change + */ + const testWeatherFormChange = async (game: GameManager, weather: WeatherType, form: number, initialForm?: number) => { + game.override.weather(weather).starterForms({ [Species.CASTFORM]: initialForm }); + await game.startBattle([Species.CASTFORM]); + + game.move.select(Moves.SPLASH); + + expect(game.scene.getPlayerPokemon()?.formIndex).toBe(form); + }; + + /** + * 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]: SUNNY_FORM }).enemyAbility(ability); + await game.startBattle([Species.CASTFORM]); + + game.move.select(Moves.SPLASH); + + expect(game.scene.getPlayerPokemon()?.formIndex).toBe(NORMAL_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.TACKLE]) + .enemySpecies(Species.MAGIKARP) + .enemyMoveset(SPLASH_ONLY) + .enemyAbility(Abilities.BALL_FETCH); + }); + + it("changes form based on weather", async () => { + game.override + .moveset([Moves.RAIN_DANCE, Moves.SUNNY_DAY, Moves.SNOWSCAPE, Moves.SPLASH]) + .battleType("double") + .starterForms({ + [Species.KYOGRE]: 1, + [Species.GROUDON]: 1, + [Species.RAYQUAZA]: 1 + }); + await game.startBattle([Species.CASTFORM, Species.FEEBAS, Species.KYOGRE, Species.GROUDON, Species.RAYQUAZA, Species.ALTARIA]); + + vi.spyOn(game.scene.getParty()[5], "getAbility").mockReturnValue(allAbilities[Abilities.CLOUD_NINE]); + + const castform = game.scene.getPlayerField()[0]; + expect(castform.formIndex).toBe(NORMAL_FORM); + + game.move.select(Moves.RAIN_DANCE); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(RAINY_FORM); + + game.move.select(Moves.SUNNY_DAY); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(SUNNY_FORM); + + game.move.select(Moves.SNOWSCAPE); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(SNOWY_FORM); + + game.override.moveset([Moves.HAIL, Moves.SANDSTORM, Moves.SNOWSCAPE, Moves.SPLASH]); + + game.move.select(Moves.SANDSTORM); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(NORMAL_FORM); + + game.move.select(Moves.HAIL); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(SNOWY_FORM); + + game.move.select(Moves.SPLASH); + game.doSwitchPokemon(2); // Feebas now 2, Kyogre 1 + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(RAINY_FORM); + + game.move.select(Moves.SPLASH); + game.doSwitchPokemon(3); // Kyogre now 3, Groudon 1 + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(SUNNY_FORM); + + game.move.select(Moves.SPLASH); + game.doSwitchPokemon(4); // Groudon now 4, Rayquaza 1 + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(NORMAL_FORM); + + game.move.select(Moves.SPLASH); + game.doSwitchPokemon(2); // Rayquaza now 2, Feebas 1 + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(NORMAL_FORM); + + game.move.select(Moves.SNOWSCAPE); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(SNOWY_FORM); + + game.move.select(Moves.SPLASH); + game.doSwitchPokemon(5); // Feebas now 5, Altaria 1 + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(NORMAL_FORM); + + game.move.select(Moves.SPLASH); + game.doSwitchPokemon(5); // Altaria now 5, Feebas 1 + await game.phaseInterceptor.to("MovePhase"); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(SNOWY_FORM); + + game.scene.arena.trySetWeather(WeatherType.FOG, false); + game.move.select(Moves.SPLASH); + game.move.select(Moves.SPLASH, 1); + await game.phaseInterceptor.to("TurnStartPhase"); + + expect(castform.formIndex).toBe(NORMAL_FORM); + }, 30 * 1000); + + it("reverts to Normal Form during Clear weather", async () => { + await testWeatherFormChange(game, WeatherType.NONE, NORMAL_FORM, SUNNY_FORM); + }); + + it("reverts to Normal Form if a Pokémon on the field has Air Lock", async () => { + await testRevertFormAgainstAbility(game, Abilities.AIR_LOCK); + }); + + it("has no effect on Pokémon other than Castform", async () => { + game.override.enemyAbility(Abilities.FORECAST).enemySpecies(Species.SHUCKLE); + await game.startBattle([Species.CASTFORM]); + + game.move.select(Moves.RAIN_DANCE); + await game.phaseInterceptor.to(TurnEndPhase); + + expect(game.scene.getPlayerPokemon()?.formIndex).toBe(RAINY_FORM); + expect(game.scene.getEnemyPokemon()?.formIndex).not.toBe(RAINY_FORM); + }); + + it("reverts to Normal Form when Castform loses Forecast, changes form to match the weather when it regains it", async () => { + game.override.moveset([Moves.SKILL_SWAP, Moves.WORRY_SEED, Moves.SPLASH]).weather(WeatherType.RAIN).battleType("double"); + await game.startBattle([Species.CASTFORM, Species.FEEBAS]); + + const castform = game.scene.getPlayerField()[0]; + + expect(castform.formIndex).toBe(RAINY_FORM); + + game.move.select(Moves.SKILL_SWAP, 0, BattlerIndex.PLAYER_2); + game.move.select(Moves.SKILL_SWAP, 1, BattlerIndex.PLAYER); + await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.PLAYER_2, BattlerIndex.ENEMY, BattlerIndex.ENEMY_2]); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(castform.formIndex).toBe(NORMAL_FORM); + + await game.phaseInterceptor.to("MoveEndPhase"); + expect(castform.formIndex).toBe(RAINY_FORM); + + await game.toNextTurn(); + + game.move.select(Moves.SPLASH); + game.move.select(Moves.WORRY_SEED, 1, BattlerIndex.PLAYER); + await game.setTurnOrder([BattlerIndex.PLAYER_2, BattlerIndex.PLAYER, BattlerIndex.ENEMY, BattlerIndex.ENEMY_2]); + await game.phaseInterceptor.to("MoveEndPhase"); + + expect(castform.formIndex).toBe(NORMAL_FORM); + }); + + it("reverts to Normal Form when Forecast is suppressed, changes form to match the weather when it regains it", async () => { + game.override.enemyMoveset(Array(4).fill(Moves.GASTRO_ACID)).weather(WeatherType.RAIN); + await game.startBattle([Species.CASTFORM, Species.PIKACHU]); + const castform = game.scene.getPlayerPokemon()!; + + expect(castform.formIndex).toBe(RAINY_FORM); + + // First turn - Forecast is suppressed + game.move.select(Moves.SPLASH); + await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); + await game.move.forceHit(); + + await game.phaseInterceptor.to(TurnEndPhase); + + expect(castform.summonData.abilitySuppressed).toBe(true); + expect(castform.formIndex).toBe(NORMAL_FORM); + + await game.toNextTurn(); + + // Second turn - switch out Castform, regains Forecast + game.doSwitchPokemon(1); + await game.toNextTurn(); + + // Third turn - switch in Castform + game.doSwitchPokemon(1); + await game.phaseInterceptor.to(MovePhase); + + expect(castform.summonData.abilitySuppressed).toBe(false); + expect(castform.formIndex).toBe(RAINY_FORM); + }); + + it("does not change Castform's form until after Stealth Rock deals damage", async () => { + game.override.weather(WeatherType.RAIN).enemyMoveset(Array(4).fill(Moves.STEALTH_ROCK)); + await game.startBattle([Species.PIKACHU, Species.CASTFORM]); + + // First turn - set up stealth rock + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + // Second turn - switch in Castform, regains Forecast + game.doSwitchPokemon(1); + await game.phaseInterceptor.to(PostSummonPhase); + + const castform = game.scene.getPlayerPokemon()!; + + // Damage phase should come first + await game.phaseInterceptor.to(DamagePhase); + expect(castform.hp).toBeLessThan(castform.getMaxHp()); + + // Then change form + await game.phaseInterceptor.to(QuietFormChangePhase); + expect(castform.formIndex).toBe(RAINY_FORM); + }); + + it("should be in Normal Form after the user is switched out", async () => { + game.override.weather(WeatherType.RAIN); + + await game.startBattle([Species.CASTFORM, Species.MAGIKARP]); + const castform = game.scene.getPlayerPokemon()!; + + expect(castform.formIndex).toBe(RAINY_FORM); + + game.doSwitchPokemon(1); + await game.toNextTurn(); + + expect(castform.formIndex).toBe(NORMAL_FORM); + }); +}); diff --git a/src/test/eggs/egg.test.ts b/src/test/eggs/egg.test.ts index 7f3d92fa51c..28f1b7f0a6c 100644 --- a/src/test/eggs/egg.test.ts +++ b/src/test/eggs/egg.test.ts @@ -8,7 +8,6 @@ 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 BattleScene from "../../battle-scene"; describe("Egg Generation Tests", () => { let phaserGame: Phaser.Game; @@ -18,6 +17,7 @@ describe("Egg Generation Tests", () => { phaserGame = new Phaser.Game({ type: Phaser.HEADLESS, }); + game = new GameManager(phaserGame); }); afterEach(() => { @@ -25,13 +25,12 @@ describe("Egg Generation Tests", () => { vi.restoreAllMocks(); }); - beforeEach(async() => { - game = new GameManager(phaserGame); + beforeEach(async () => { await game.importData("src/test/utils/saves/everything.prsv"); }); it("should return Arceus for the 10th of June", () => { - const scene = new BattleScene(); + const scene = game.scene; const timestamp = new Date(2024, 5, 10, 15, 0, 0, 0).getTime(); const expectedSpecies = Species.ARCEUS; @@ -40,7 +39,7 @@ describe("Egg Generation Tests", () => { expect(result).toBe(expectedSpecies); }); it("should return Arceus for the 10th of July", () => { - const scene = new BattleScene(); + const scene = game.scene; const timestamp = new Date(2024, 6, 10, 15, 0, 0, 0).getTime(); const expectedSpecies = Species.ARCEUS; @@ -48,12 +47,12 @@ describe("Egg Generation Tests", () => { expect(result).toBe(expectedSpecies); }); - it("should hatch an Arceus. Set from legendary gacha", async() => { + it("should hatch an Arceus. Set from legendary gacha", async () => { const scene = game.scene; const timestamp = new Date(2024, 6, 10, 15, 0, 0, 0).getTime(); const expectedSpecies = Species.ARCEUS; - const result = new Egg({scene, timestamp, sourceType: EggSourceType.GACHA_LEGENDARY, tier: EggTier.MASTER}).generatePlayerPokemon(scene).species.speciesId; + const result = new Egg({ scene, timestamp, sourceType: EggSourceType.GACHA_LEGENDARY, tier: EggTier.MASTER }).generatePlayerPokemon(scene).species.speciesId; expect(result).toBe(expectedSpecies); }); @@ -61,7 +60,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedSpecies = Species.ARCEUS; - const result = new Egg({scene, species: expectedSpecies}).generatePlayerPokemon(scene).species.speciesId; + const result = new Egg({ scene, species: expectedSpecies }).generatePlayerPokemon(scene).species.speciesId; expect(result).toBe(expectedSpecies); }); @@ -69,7 +68,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedTier = EggTier.COMMON; - const result = new Egg({scene, tier: expectedTier}).tier; + const result = new Egg({ scene, tier: expectedTier }).tier; expect(result).toBe(expectedTier); }); @@ -77,7 +76,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedTier = EggTier.GREAT; - const result = new Egg({scene, tier: expectedTier}).tier; + const result = new Egg({ scene, tier: expectedTier }).tier; expect(result).toBe(expectedTier); }); @@ -85,7 +84,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedTier = EggTier.ULTRA; - const result = new Egg({scene, tier: expectedTier}).tier; + const result = new Egg({ scene, tier: expectedTier }).tier; expect(result).toBe(expectedTier); }); @@ -93,7 +92,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedTier = EggTier.MASTER; - const result = new Egg({scene, tier: expectedTier}).tier; + const result = new Egg({ scene, tier: expectedTier }).tier; expect(result).toBe(expectedTier); }); @@ -101,7 +100,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedResult = true; - const result = new Egg({scene, species: Species.MANAPHY}).isManaphyEgg(); + const result = new Egg({ scene, species: Species.MANAPHY }).isManaphyEgg(); expect(result).toBe(expectedResult); }); @@ -109,7 +108,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedResult = true; - const result = new Egg({scene, tier: EggTier.COMMON, id: 204}).isManaphyEgg(); + const result = new Egg({ scene, tier: EggTier.COMMON, id: 204 }).isManaphyEgg(); expect(result).toBe(expectedResult); }); @@ -117,7 +116,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedHatchWaves = 1000; - const result = new Egg({scene, hatchWaves: expectedHatchWaves}).hatchWaves; + const result = new Egg({ scene, hatchWaves: expectedHatchWaves }).hatchWaves; expect(result).toBe(expectedHatchWaves); }); @@ -125,7 +124,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedResult = true; - const result = new Egg({scene, isShiny: expectedResult, species: Species.BULBASAUR}).generatePlayerPokemon(scene).isShiny(); + const result = new Egg({ scene, isShiny: expectedResult, species: Species.BULBASAUR }).generatePlayerPokemon(scene).isShiny(); expect(result).toBe(expectedResult); }); @@ -133,7 +132,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedVariantTier = VariantTier.COMMON; - const result = new Egg({scene, isShiny: true, variantTier: expectedVariantTier, species: Species.BULBASAUR}).generatePlayerPokemon(scene).variant; + const result = new Egg({ scene, isShiny: true, variantTier: expectedVariantTier, species: Species.BULBASAUR }).generatePlayerPokemon(scene).variant; expect(result).toBe(expectedVariantTier); }); @@ -141,7 +140,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedVariantTier = VariantTier.RARE; - const result = new Egg({scene, isShiny: true, variantTier: expectedVariantTier, species: Species.BULBASAUR}).generatePlayerPokemon(scene).variant; + const result = new Egg({ scene, isShiny: true, variantTier: expectedVariantTier, species: Species.BULBASAUR }).generatePlayerPokemon(scene).variant; expect(result).toBe(expectedVariantTier); }); @@ -149,14 +148,14 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedVariantTier = VariantTier.EPIC; - const result = new Egg({scene, isShiny: true, variantTier: expectedVariantTier, species: Species.BULBASAUR}).generatePlayerPokemon(scene).variant; + const result = new Egg({ scene, isShiny: true, variantTier: expectedVariantTier, species: Species.BULBASAUR }).generatePlayerPokemon(scene).variant; expect(result).toBe(expectedVariantTier); }); it("should return an egg with an egg move index of 0, 1, 2 or 3", () => { const scene = game.scene; - const eggMoveIndex = new Egg({scene}).eggMoveIndex; + const eggMoveIndex = new Egg({ scene }).eggMoveIndex; const result = eggMoveIndex && eggMoveIndex >= 0 && eggMoveIndex <= 3; expect(result).toBe(true); @@ -165,14 +164,14 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedEggMoveIndex = 3; - const result = new Egg({scene, eggMoveIndex: expectedEggMoveIndex}).eggMoveIndex; + const result = new Egg({ scene, eggMoveIndex: expectedEggMoveIndex }).eggMoveIndex; expect(result).toBe(expectedEggMoveIndex); }); it("should return a hatched pokemon with a hidden ability", () => { const scene = game.scene; - const playerPokemon = new Egg({scene, overrideHiddenAbility: true, species: Species.BULBASAUR}).generatePlayerPokemon(scene); + const playerPokemon = new Egg({ scene, overrideHiddenAbility: true, species: Species.BULBASAUR }).generatePlayerPokemon(scene); const expectedAbilityIndex = playerPokemon.species.ability2 ? 2 : 1; const result = playerPokemon.abilityIndex; @@ -183,7 +182,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedEggCount = 1; - new Egg({scene, sourceType: EggSourceType.GACHA_LEGENDARY, pulled: true}); + new Egg({ scene, sourceType: EggSourceType.GACHA_LEGENDARY, pulled: true }); const result = scene.gameData.eggs.length; @@ -193,7 +192,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedEggTier = EggTier.COMMON; - const result = new Egg({scene, tier: EggTier.MASTER, species: Species.BULBASAUR}).tier; + const result = new Egg({ scene, tier: EggTier.MASTER, species: Species.BULBASAUR }).tier; expect(result).toBe(expectedEggTier); }); @@ -201,7 +200,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const expectedHatchWaves = 10; - const result = new Egg({scene, tier: EggTier.MASTER, species: Species.BULBASAUR}).hatchWaves; + const result = new Egg({ scene, tier: EggTier.MASTER, species: Species.BULBASAUR }).hatchWaves; expect(result).toBe(expectedHatchWaves); }); @@ -232,7 +231,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const startPityValues = [...scene.gameData.eggPity]; - new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.COMMON}); + new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.COMMON }); expect(scene.gameData.eggPity[EggTier.GREAT]).toBe(startPityValues[EggTier.GREAT] + 1); expect(scene.gameData.eggPity[EggTier.ULTRA]).toBe(startPityValues[EggTier.ULTRA] + 1); @@ -242,7 +241,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const startPityValues = [...scene.gameData.eggPity]; - new Egg({scene, sourceType: EggSourceType.GACHA_LEGENDARY, pulled: true, tier: EggTier.COMMON}); + new Egg({ scene, sourceType: EggSourceType.GACHA_LEGENDARY, pulled: true, tier: EggTier.COMMON }); expect(scene.gameData.eggPity[EggTier.GREAT]).toBe(startPityValues[EggTier.GREAT] + 1); expect(scene.gameData.eggPity[EggTier.ULTRA]).toBe(startPityValues[EggTier.ULTRA] + 1); @@ -253,7 +252,7 @@ describe("Egg Generation Tests", () => { const startingManaphyEggCount = scene.gameData.gameStats.manaphyEggsPulled; for (let i = 0; i < 200; i++) { - new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, species: Species.BULBASAUR}); + new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, species: Species.BULBASAUR }); } expect(scene.gameData.gameStats.manaphyEggsPulled).toBe(startingManaphyEggCount); @@ -262,7 +261,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const startingManaphyEggCount = scene.gameData.gameStats.manaphyEggsPulled; - new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, id: 204, tier: EggTier.COMMON}); + new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, id: 204, tier: EggTier.COMMON }); expect(scene.gameData.gameStats.manaphyEggsPulled).toBe(startingManaphyEggCount + 1); }); @@ -270,7 +269,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const startingRareEggsPulled = scene.gameData.gameStats.rareEggsPulled; - new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.GREAT}); + new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.GREAT }); expect(scene.gameData.gameStats.rareEggsPulled).toBe(startingRareEggsPulled + 1); }); @@ -278,7 +277,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const startingEpicEggsPulled = scene.gameData.gameStats.epicEggsPulled; - new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.ULTRA}); + new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.ULTRA }); expect(scene.gameData.gameStats.epicEggsPulled).toBe(startingEpicEggsPulled + 1); }); @@ -286,7 +285,7 @@ describe("Egg Generation Tests", () => { const scene = game.scene; const startingLegendaryEggsPulled = scene.gameData.gameStats.legendaryEggsPulled; - new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.MASTER}); + new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true, tier: EggTier.MASTER }); expect(scene.gameData.gameStats.legendaryEggsPulled).toBe(startingLegendaryEggsPulled + 1); }); @@ -297,8 +296,8 @@ describe("Egg Generation Tests", () => { const expectedTier1 = EggTier.MASTER; const expectedTier2 = EggTier.ULTRA; - const result1 = new Egg({scene, sourceType: EggSourceType.GACHA_LEGENDARY, pulled: true}).tier; - const result2 = new Egg({scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true}).tier; + const result1 = new Egg({ scene, sourceType: EggSourceType.GACHA_LEGENDARY, pulled: true }).tier; + const result2 = new Egg({ scene, sourceType: EggSourceType.GACHA_MOVE, pulled: true }).tier; expect(result1).toBe(expectedTier1); expect(result2).toBe(expectedTier2); @@ -306,7 +305,7 @@ describe("Egg Generation Tests", () => { it("should generate an epic shiny from pokemon with a different form", () => { const scene = game.scene; - const egg = new Egg({scene, isShiny: true, variantTier: VariantTier.EPIC, species: Species.MIRAIDON}); + const egg = new Egg({ scene, isShiny: true, variantTier: VariantTier.EPIC, species: Species.MIRAIDON }); expect(egg.variantTier).toBe(VariantTier.EPIC); }); diff --git a/src/test/moves/lunar_blessing.test.ts b/src/test/moves/lunar_blessing.test.ts new file mode 100644 index 00000000000..73647716f06 --- /dev/null +++ b/src/test/moves/lunar_blessing.test.ts @@ -0,0 +1,83 @@ +import { StatusEffect } from "#app/enums/status-effect.js"; +import { CommandPhase } from "#app/phases/command-phase.js"; +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, vi } from "vitest"; + +describe("Moves - Lunar Blessing", () => { + 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"); + + game.override.enemySpecies(Species.SHUCKLE); + game.override.enemyMoveset(SPLASH_ONLY); + game.override.enemyAbility(Abilities.BALL_FETCH); + + game.override.moveset([Moves.LUNAR_BLESSING, Moves.SPLASH]); + game.override.ability(Abilities.BALL_FETCH); + }); + + it("should restore 25% HP of the user and its ally", async () => { + await game.startBattle([Species.RATTATA, Species.RATTATA]); + const [leftPlayer, rightPlayer] = game.scene.getPlayerField(); + + vi.spyOn(leftPlayer, "getMaxHp").mockReturnValue(100); + vi.spyOn(rightPlayer, "getMaxHp").mockReturnValue(100); + + const initialHp = 1; + leftPlayer["hp"] = initialHp; + rightPlayer["hp"] = initialHp; + const expectedHeal = 25; + + vi.spyOn(leftPlayer, "heal"); + vi.spyOn(rightPlayer, "heal"); + + + game.move.select(Moves.LUNAR_BLESSING, 0); + await game.phaseInterceptor.to(CommandPhase); + game.move.select(Moves.SPLASH, 1); + await game.toNextTurn(); + + expect(leftPlayer.heal).toHaveBeenCalledOnce(); + expect(leftPlayer.heal).toHaveReturnedWith(expectedHeal); + + expect(rightPlayer.heal).toHaveBeenCalledOnce(); + expect(rightPlayer.heal).toHaveReturnedWith(expectedHeal); + }); + + it("should cure status effect of the user and its ally", async () => { + game.override.statusEffect(StatusEffect.BURN); + await game.startBattle([Species.RATTATA, Species.RATTATA]); + const [leftPlayer, rightPlayer] = game.scene.getPlayerField(); + + vi.spyOn(leftPlayer, "resetStatus"); + vi.spyOn(rightPlayer, "resetStatus"); + + game.move.select(Moves.LUNAR_BLESSING, 0); + await game.phaseInterceptor.to(CommandPhase); + game.move.select(Moves.SPLASH, 1); + await game.toNextTurn(); + + expect(leftPlayer.resetStatus).toHaveBeenCalledOnce(); + expect(rightPlayer.resetStatus).toHaveBeenCalledOnce(); + + expect(leftPlayer.status?.effect).toBeUndefined(); + expect(rightPlayer.status?.effect).toBeUndefined(); + }); +}); diff --git a/src/typings/phaser/index.d.ts b/src/typings/phaser/index.d.ts new file mode 100644 index 00000000000..f3665768cec --- /dev/null +++ b/src/typings/phaser/index.d.ts @@ -0,0 +1,68 @@ +import "phaser"; + +declare module "phaser" { + namespace GameObjects { + interface GameObject { + width: number; + + height: number; + + originX: number; + + originY: number; + + x: number; + + y: number; + } + + interface Container { + /** + * Sets this object's position relative to another object with a given offset + */ + setPositionRelative(guideObject: any, x: number, y: number): void; + } + interface Sprite { + /** + * Sets this object's position relative to another object with a given offset + */ + setPositionRelative(guideObject: any, x: number, y: number): void; + } + interface Image { + /** + * Sets this object's position relative to another object with a given offset + */ + setPositionRelative(guideObject: any, x: number, y: number): void; + } + interface NineSlice { + /** + * Sets this object's position relative to another object with a given offset + */ + setPositionRelative(guideObject: any, x: number, y: number): void; + } + interface Text { + /** + * Sets this object's position relative to another object with a given offset + */ + setPositionRelative(guideObject: any, x: number, y: number): void; + } + interface Rectangle { + /** + * Sets this object's position relative to another object with a given offset + */ + setPositionRelative(guideObject: any, x: number, y: number): void; + } + } + + namespace Input { + namespace Gamepad { + interface GamepadPlugin { + /** + * Refreshes the list of connected Gamepads. + * This is called automatically when a gamepad is connected or disconnected, and during the update loop. + */ + refreshPads(): void; + } + } + } +} diff --git a/src/ui-inputs.ts b/src/ui-inputs.ts index a8ecc860aab..5860702a15b 100644 --- a/src/ui-inputs.ts +++ b/src/ui-inputs.ts @@ -182,7 +182,7 @@ export class UiInputs { break; case Mode.MENU: this.scene.ui.revertMode(); - this.scene.playSound("select"); + this.scene.playSound("ui/select"); break; default: return; diff --git a/src/ui/achv-bar.ts b/src/ui/achv-bar.ts index 0f3ab7c2e47..6e7b3185024 100644 --- a/src/ui/achv-bar.ts +++ b/src/ui/achv-bar.ts @@ -25,7 +25,7 @@ export default class AchvBar extends Phaser.GameObjects.Container { } setup(): void { - this.defaultWidth = 160; + this.defaultWidth = 200; this.defaultHeight = 40; this.bg = this.scene.add.nineslice(0, 0, "achv_bar", undefined, this.defaultWidth, this.defaultHeight, 41, 6, 16, 4); @@ -90,7 +90,7 @@ export default class AchvBar extends Phaser.GameObjects.Container { this.bg.height = Math.max(this.defaultHeight, this.titleText.displayHeight + this.descriptionText.displayHeight + 8); this.icon.y = (this.bg.height / 2) - (this.icon.height / 2); - (this.scene as BattleScene).playSound("achv"); + (this.scene as BattleScene).playSound("se/achv"); this.scene.tweens.add({ targets: this, diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index ad707fb52e1..a3e698c63ba 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -2,6 +2,7 @@ import BattleScene from "../battle-scene"; import { Button } from "#enums/buttons"; import i18next from "i18next"; import { Achv, achvs, getAchievementDescription } from "../system/achv"; +import { Voucher, getVoucherTypeIcon, getVoucherTypeName, vouchers } from "../system/voucher"; import MessageUiHandler from "./message-ui-handler"; import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; @@ -9,40 +10,77 @@ import { addWindow } from "./ui-theme"; import { ParseKeys } from "i18next"; import { PlayerGender } from "#enums/player-gender"; +enum Page { + ACHIEVEMENTS, + VOUCHERS +} + +interface LanguageSetting { + TextSize: string, +} + +const languageSettings: { [key: string]: LanguageSetting } = { + "de":{ + TextSize: "80px" + } +}; + export default class AchvsUiHandler extends MessageUiHandler { - private readonly ACHV_ROWS = 4; - private readonly ACHV_COLS = 17; + private readonly ROWS = 4; + private readonly COLS = 17; - private achvsContainer: Phaser.GameObjects.Container; - private achvIconsContainer: Phaser.GameObjects.Container; + private mainContainer: Phaser.GameObjects.Container; + private iconsContainer: Phaser.GameObjects.Container; + + private headerBg: Phaser.GameObjects.NineSlice; + private headerText: Phaser.GameObjects.Text; + private headerActionText: Phaser.GameObjects.Text; + private headerActionButton: Phaser.GameObjects.Sprite; + private headerBgX: number; + private iconsBg: Phaser.GameObjects.NineSlice; + private icons: Phaser.GameObjects.Sprite[]; - private achvIconsBg: Phaser.GameObjects.NineSlice; - private achvIcons: Phaser.GameObjects.Sprite[]; private titleText: Phaser.GameObjects.Text; private scoreText: Phaser.GameObjects.Text; private unlockText: Phaser.GameObjects.Text; + private achvsName: string; private achvsTotal: number; - private scrollCursor: number; + private vouchersName: string; + private vouchersTotal: number; + private currentTotal: number; + private scrollCursor: number; private cursorObj: Phaser.GameObjects.NineSlice | null; + private currentPage: Page; constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.achvsTotal = Object.keys(achvs).length; + this.vouchersTotal = Object.keys(vouchers).length; this.scrollCursor = 0; } setup() { const ui = this.getUi(); - this.achvsContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); + this.mainContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); - this.achvsContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); + this.mainContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); - const headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24); - headerBg.setOrigin(0, 0); + this.headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24); + this.headerBg.setOrigin(0, 0); + + this.headerText = addTextObject(this.scene, 0, 0, "", TextStyle.SETTINGS_LABEL); + this.headerText.setOrigin(0, 0); + this.headerText.setPositionRelative(this.headerBg, 8, 4); + this.headerActionButton = new Phaser.GameObjects.Sprite(this.scene, 0, 0, "keyboard", "SPACE.png"); + this.headerActionButton.setOrigin(0, 0); + this.headerActionButton.setPositionRelative(this.headerBg, 236, 6); + this.headerActionText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW, {fontSize:"60px"}); + this.headerActionText.setOrigin(0, 0); + this.headerActionText.setPositionRelative(this.headerBg, 264, 8); // We need to get the player gender from the game data to add the correct prefix to the achievement name const playerGender = this.scene.gameData.gender; @@ -51,35 +89,39 @@ export default class AchvsUiHandler extends MessageUiHandler { genderPrefix = "PGF"; } - const headerText = addTextObject(this.scene, 0, 0, i18next.t(`${genderPrefix}achv:Achievements.name` as ParseKeys), TextStyle.SETTINGS_LABEL); - headerText.setOrigin(0, 0); - headerText.setPositionRelative(headerBg, 8, 4); + this.achvsName = i18next.t(`${genderPrefix}achv:Achievements.name` as ParseKeys); + this.vouchersName = i18next.t("voucher:vouchers"); - this.achvIconsBg = addWindow(this.scene, 0, headerBg.height, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - headerBg.height - 68); - this.achvIconsBg.setOrigin(0, 0); + this.iconsBg = addWindow(this.scene, 0, this.headerBg.height, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - this.headerBg.height - 68); + this.iconsBg.setOrigin(0, 0); - this.achvIconsContainer = this.scene.add.container(6, headerBg.height + 6); + this.iconsContainer = this.scene.add.container(6, this.headerBg.height + 6); - this.achvIcons = []; + this.icons = []; - for (let a = 0; a < this.ACHV_ROWS * this.ACHV_COLS; a++) { - const x = (a % this.ACHV_COLS) * 18; - const y = Math.floor(a / this.ACHV_COLS) * 18; + for (let a = 0; a < this.ROWS * this.COLS; a++) { + const x = (a % this.COLS) * 18; + const y = Math.floor(a / this.COLS) * 18; const icon = this.scene.add.sprite(x, y, "items", "unknown"); icon.setOrigin(0, 0); icon.setScale(0.5); - this.achvIcons.push(icon); - this.achvIconsContainer.add(icon); + this.icons.push(icon); + this.iconsContainer.add(icon); } - const titleBg = addWindow(this.scene, 0, headerBg.height + this.achvIconsBg.height, 174, 24); + const titleBg = addWindow(this.scene, 0, this.headerBg.height + this.iconsBg.height, 174, 24); titleBg.setOrigin(0, 0); this.titleText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW); + const textSize = languageSettings[i18next.language]?.TextSize ?? this.titleText.style.fontSize; + this.titleText.setFontSize(textSize); this.titleText.setOrigin(0, 0); - this.titleText.setPositionRelative(titleBg, 8, 4); + const titleBgCenterX = titleBg.x + titleBg.width / 2; + const titleBgCenterY = titleBg.y + titleBg.height / 2; + this.titleText.setOrigin(0.5, 0.5); + this.titleText.setPosition(titleBgCenterX, titleBgCenterY); const scoreBg = addWindow(this.scene, titleBg.x + titleBg.width, titleBg.y, 46, 24); scoreBg.setOrigin(0, 0); @@ -105,36 +147,40 @@ export default class AchvsUiHandler extends MessageUiHandler { this.message = descriptionText; - this.achvsContainer.add(headerBg); - this.achvsContainer.add(headerText); - this.achvsContainer.add(this.achvIconsBg); - this.achvsContainer.add(this.achvIconsContainer); - this.achvsContainer.add(titleBg); - this.achvsContainer.add(this.titleText); - this.achvsContainer.add(scoreBg); - this.achvsContainer.add(this.scoreText); - this.achvsContainer.add(unlockBg); - this.achvsContainer.add(this.unlockText); - this.achvsContainer.add(descriptionBg); - this.achvsContainer.add(descriptionText); + this.mainContainer.add(this.headerBg); + this.mainContainer.add(this.headerActionButton); + this.mainContainer.add(this.headerText); + this.mainContainer.add(this.headerActionText); + this.mainContainer.add(this.iconsBg); + this.mainContainer.add(this.iconsContainer); + this.mainContainer.add(titleBg); + this.mainContainer.add(this.titleText); + this.mainContainer.add(scoreBg); + this.mainContainer.add(this.scoreText); + this.mainContainer.add(unlockBg); + this.mainContainer.add(this.unlockText); + this.mainContainer.add(descriptionBg); + this.mainContainer.add(descriptionText); - ui.add(this.achvsContainer); + ui.add(this.mainContainer); + this.currentPage = Page.ACHIEVEMENTS; this.setCursor(0); - this.achvsContainer.setVisible(false); + this.mainContainer.setVisible(false); } show(args: any[]): boolean { super.show(args); + this.headerBgX = this.headerBg.getTopRight().x; this.updateAchvIcons(); - this.achvsContainer.setVisible(true); + this.mainContainer.setVisible(true); this.setCursor(0); this.setScrollCursor(0); - this.getUi().moveTo(this.achvsContainer, this.getUi().length - 1); + this.getUi().moveTo(this.mainContainer, this.getUi().length - 1); this.getUi().hideTooltip(); @@ -160,48 +206,70 @@ export default class AchvsUiHandler extends MessageUiHandler { this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t(`${genderPrefix}achv:Locked.name` as ParseKeys)); } + protected showVoucher(voucher: Voucher) { + const voucherUnlocks = this.scene.gameData.voucherUnlocks; + const unlocked = voucherUnlocks.hasOwnProperty(voucher.id); + + this.titleText.setText(getVoucherTypeName(voucher.voucherType)); + this.showText(voucher.description); + this.unlockText.setText(unlocked ? new Date(voucherUnlocks[voucher.id]).toLocaleDateString() : i18next.t("voucher:locked")); + } + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; + if (button === Button.ACTION) { + success = true; + this.setScrollCursor(0); + if (this.currentPage === Page.ACHIEVEMENTS) { + this.currentPage = Page.VOUCHERS; + this.updateVoucherIcons(); + } else if (this.currentPage === Page.VOUCHERS) { + this.currentPage = Page.ACHIEVEMENTS; + this.updateAchvIcons(); + } + this.setCursor(0, true); + this.mainContainer.update(); + } if (button === Button.CANCEL) { success = true; this.scene.ui.revertMode(); } else { - const rowIndex = Math.floor(this.cursor / this.ACHV_COLS); - const itemOffset = (this.scrollCursor * this.ACHV_COLS); + const rowIndex = Math.floor(this.cursor / this.COLS); + const itemOffset = (this.scrollCursor * this.COLS); switch (button) { case Button.UP: - if (this.cursor < this.ACHV_COLS) { + if (this.cursor < this.COLS) { if (this.scrollCursor) { success = this.setScrollCursor(this.scrollCursor - 1); } } else { - success = this.setCursor(this.cursor - this.ACHV_COLS); + success = this.setCursor(this.cursor - this.COLS); } break; case Button.DOWN: - const canMoveDown = (this.cursor + itemOffset) + this.ACHV_COLS < this.achvsTotal; - if (rowIndex >= this.ACHV_ROWS - 1) { - if (this.scrollCursor < Math.ceil(this.achvsTotal / this.ACHV_COLS) - this.ACHV_ROWS && canMoveDown) { + const canMoveDown = (this.cursor + itemOffset) + this.COLS < this.currentTotal; + if (rowIndex >= this.ROWS - 1) { + if (this.scrollCursor < Math.ceil(this.currentTotal / this.COLS) - this.ROWS && canMoveDown) { success = this.setScrollCursor(this.scrollCursor + 1); } } else if (canMoveDown) { - success = this.setCursor(this.cursor + this.ACHV_COLS); + success = this.setCursor(this.cursor + this.COLS); } break; case Button.LEFT: if (!this.cursor && this.scrollCursor) { - success = this.setScrollCursor(this.scrollCursor - 1) && this.setCursor(this.cursor + (this.ACHV_COLS - 1)); + success = this.setScrollCursor(this.scrollCursor - 1) && this.setCursor(this.cursor + (this.COLS - 1)); } else if (this.cursor) { success = this.setCursor(this.cursor - 1); } break; case Button.RIGHT: - if (this.cursor + 1 === this.ACHV_ROWS * this.ACHV_COLS && this.scrollCursor < Math.ceil(this.achvsTotal / this.ACHV_COLS) - this.ACHV_ROWS) { - success = this.setScrollCursor(this.scrollCursor + 1) && this.setCursor(this.cursor - (this.ACHV_COLS - 1)); - } else if (this.cursor + itemOffset < this.achvsTotal - 1) { + if (this.cursor + 1 === this.ROWS * this.COLS && this.scrollCursor < Math.ceil(this.currentTotal / this.COLS) - this.ROWS) { + success = this.setScrollCursor(this.scrollCursor + 1) && this.setCursor(this.cursor - (this.COLS - 1)); + } else if (this.cursor + itemOffset < this.currentTotal - 1) { success = this.setCursor(this.cursor + 1); } break; @@ -215,24 +283,30 @@ export default class AchvsUiHandler extends MessageUiHandler { return success; } - setCursor(cursor: integer): boolean { + setCursor(cursor: integer, pageChange?: boolean): boolean { const ret = super.setCursor(cursor); - let updateAchv = ret; + let update = ret; if (!this.cursorObj) { this.cursorObj = this.scene.add.nineslice(0, 0, "select_cursor_highlight", undefined, 16, 16, 1, 1, 1, 1); this.cursorObj.setOrigin(0, 0); - this.achvIconsContainer.add(this.cursorObj); - updateAchv = true; + this.iconsContainer.add(this.cursorObj); + update = true; } - this.cursorObj.setPositionRelative(this.achvIcons[this.cursor], 0, 0); + this.cursorObj.setPositionRelative(this.icons[this.cursor], 0, 0); - if (updateAchv) { - this.showAchv(achvs[Object.keys(achvs)[cursor + this.scrollCursor * this.ACHV_COLS]]); + if (update || pageChange) { + switch (this.currentPage) { + case Page.ACHIEVEMENTS: + this.showAchv(achvs[Object.keys(achvs)[cursor + this.scrollCursor * this.COLS]]); + break; + case Page.VOUCHERS: + this.showVoucher(vouchers[Object.keys(vouchers)[cursor + this.scrollCursor * this.COLS]]); + break; + } } - return ret; } @@ -249,10 +323,16 @@ export default class AchvsUiHandler extends MessageUiHandler { this.scrollCursor = scrollCursor; - this.updateAchvIcons(); - - this.showAchv(achvs[Object.keys(achvs)[Math.min(this.cursor + this.scrollCursor * this.ACHV_COLS, Object.values(achvs).length - 1)]]); - + switch (this.currentPage) { + case Page.ACHIEVEMENTS: + this.updateAchvIcons(); + this.showAchv(achvs[Object.keys(achvs)[Math.min(this.cursor + this.scrollCursor * this.COLS, Object.values(achvs).length - 1)]]); + break; + case Page.VOUCHERS: + this.updateVoucherIcons(); + this.showVoucher(vouchers[Object.keys(vouchers)[Math.min(this.cursor + this.scrollCursor * this.COLS, Object.values(vouchers).length - 1)]]); + break; + } return true; } @@ -262,15 +342,21 @@ export default class AchvsUiHandler extends MessageUiHandler { * Determines what data is to be displayed on the UI and updates it accordingly based on the current value of this.scrollCursor */ updateAchvIcons(): void { + this.headerText.text = this.achvsName; + this.headerActionText.text = this.vouchersName; + const textPosition = this.headerBgX - this.headerActionText.displayWidth - 8; + this.headerActionText.setX(textPosition); + this.headerActionButton.setX(textPosition - this.headerActionButton.displayWidth - 4); + const achvUnlocks = this.scene.gameData.achvUnlocks; - const itemOffset = this.scrollCursor * this.ACHV_COLS; - const itemLimit = this.ACHV_ROWS * this.ACHV_COLS; + const itemOffset = this.scrollCursor * this.COLS; + const itemLimit = this.ROWS * this.COLS; const achvRange = Object.values(achvs).slice(itemOffset, itemLimit + itemOffset); achvRange.forEach((achv: Achv, i: integer) => { - const icon = this.achvIcons[i]; + const icon = this.icons[i]; const unlocked = achvUnlocks.hasOwnProperty(achv.id); const hidden = !unlocked && achv.secret && (!achv.parentId || !achvUnlocks.hasOwnProperty(achv.parentId)); const tinted = !hidden && !unlocked; @@ -284,14 +370,54 @@ export default class AchvsUiHandler extends MessageUiHandler { } }); - if (achvRange.length < this.achvIcons.length) { - this.achvIcons.slice(achvRange.length).map(i => i.setVisible(false)); + if (achvRange.length < this.icons.length) { + this.icons.slice(achvRange.length).map(i => i.setVisible(false)); } + + this.currentTotal = this.achvsTotal; + } + + /** + * updateVoucherIcons(): void + * Determines what data is to be displayed on the UI and updates it accordingly based on the current value of this.scrollCursor + */ + updateVoucherIcons(): void { + this.headerText.text = this.vouchersName; + this.headerActionText.text = this.achvsName; + const textPosition = this.headerBgX - this.headerActionText.displayWidth - 8; + this.headerActionText.setX(textPosition); + this.headerActionButton.setX(textPosition - this.headerActionButton.displayWidth - 4); + + const voucherUnlocks = this.scene.gameData.voucherUnlocks; + + const itemOffset = this.scrollCursor * this.COLS; + const itemLimit = this.ROWS * this.COLS; + + const voucherRange = Object.values(vouchers).slice(itemOffset, itemLimit + itemOffset); + + voucherRange.forEach((voucher: Voucher, i: integer) => { + const icon = this.icons[i]; + const unlocked = voucherUnlocks.hasOwnProperty(voucher.id); + + icon.setFrame(getVoucherTypeIcon(voucher.voucherType)); + icon.setVisible(true); + if (!unlocked) { + icon.setTintFill(0); + } else { + icon.clearTint(); + } + }); + + if (voucherRange.length < this.icons.length) { + this.icons.slice(voucherRange.length).map(i => i.setVisible(false)); + } + this.currentTotal = this.vouchersTotal; } clear() { super.clear(); - this.achvsContainer.setVisible(false); + this.currentPage = Page.ACHIEVEMENTS; + this.mainContainer.setVisible(false); this.eraseCursor(); } diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index dbf0d5911c8..11b807e8ab7 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -713,7 +713,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.lastLevelExp = pokemon.levelExp; } if (duration) { - (this.scene as BattleScene).playSound("exp"); + (this.scene as BattleScene).playSound("se/exp"); } this.scene.tweens.add({ targets: this.expMaskRect, @@ -725,10 +725,10 @@ export default class BattleInfo extends Phaser.GameObjects.Container { return resolve(); } if (duration) { - this.scene.sound.stopByKey("exp"); + this.scene.sound.stopByKey("se/exp"); } if (ratio === 1) { - (this.scene as BattleScene).playSound("level_up"); + (this.scene as BattleScene).playSound("se/level_up"); this.setLevel(this.lastLevel); this.scene.time.delayedCall(500 * levelDurationMultiplier, () => { this.expMaskRect.x = 0; diff --git a/src/ui/candy-bar.ts b/src/ui/candy-bar.ts index 5496ce9afce..14015f02259 100644 --- a/src/ui/candy-bar.ts +++ b/src/ui/candy-bar.ts @@ -71,7 +71,7 @@ export default class CandyBar extends Phaser.GameObjects.Container { this.tween.stop(); } - (this.scene as BattleScene).playSound("shing"); + (this.scene as BattleScene).playSound("se/shing"); this.tween = this.scene.tweens.add({ targets: this, diff --git a/src/ui/challenges-select-ui-handler.ts b/src/ui/challenges-select-ui-handler.ts index 73c47da41fe..42e5e902315 100644 --- a/src/ui/challenges-select-ui-handler.ts +++ b/src/ui/challenges-select-ui-handler.ts @@ -35,6 +35,8 @@ export default class GameChallengesUiHandler extends UiHandler { private startCursor: Phaser.GameObjects.NineSlice; + private optionsWidth: number; + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); } @@ -74,18 +76,19 @@ export default class GameChallengesUiHandler extends UiHandler { // difficultyName.setOrigin(0, 0); // difficultyName.setPositionRelative(difficultyBg, difficultyBg.width - difficultyName.displayWidth - 8, 4); - this.optionsBg = addWindow(this.scene, 0, headerBg.height, (this.scene.game.canvas.width / 9), (this.scene.game.canvas.height / 6) - headerBg.height - 2); + this.optionsWidth = this.scene.scaledCanvas.width * 0.6; + this.optionsBg = addWindow(this.scene, 0, headerBg.height, this.optionsWidth, this.scene.scaledCanvas.height - headerBg.height - 2); this.optionsBg.setName("window-options-bg"); this.optionsBg.setOrigin(0, 0); - const descriptionBg = addWindow(this.scene, 0, headerBg.height, (this.scene.game.canvas.width / 18) - 2, (this.scene.game.canvas.height / 6) - headerBg.height - 26); + const descriptionBg = addWindow(this.scene, 0, headerBg.height, this.scene.scaledCanvas.width - this.optionsWidth, this.scene.scaledCanvas.height - headerBg.height - 26); descriptionBg.setName("window-desc-bg"); descriptionBg.setOrigin(0, 0); descriptionBg.setPositionRelative(this.optionsBg, this.optionsBg.width, 0); this.descriptionText = new BBCodeText(this.scene, descriptionBg.x + 6, descriptionBg.y + 4, "", { fontFamily: "emerald", - fontSize: 96, + fontSize: 84, color: Color.ORANGE, padding: { bottom: 6 @@ -109,12 +112,12 @@ export default class GameChallengesUiHandler extends UiHandler { 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, 8, 4); + startText.setPositionRelative(startBg, (startBg.width - startText.displayWidth) / 2, 4); - this.startCursor = this.scene.add.nineslice(0, 0, "summary_moves_cursor", undefined, (this.scene.game.canvas.width / 18) - 10, 16, 1, 1, 1, 1); + 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, 4); + this.startCursor.setPositionRelative(startBg, 4, 3); this.startCursor.setVisible(false); this.valuesContainer = this.scene.add.container(0, 0); @@ -355,7 +358,7 @@ export default class GameChallengesUiHandler extends UiHandler { let ret = super.setCursor(cursor); if (!this.cursorObj) { - this.cursorObj = this.scene.add.nineslice(0, 0, "summary_moves_cursor", undefined, (this.scene.game.canvas.width / 9) - 10, 16, 1, 1, 1, 1); + this.cursorObj = this.scene.add.nineslice(0, 0, "summary_moves_cursor", undefined, this.optionsWidth - 8, 16, 1, 1, 1, 1); this.cursorObj.setOrigin(0, 0); this.valuesContainer.add(this.cursorObj); } diff --git a/src/ui/egg-gacha-ui-handler.ts b/src/ui/egg-gacha-ui-handler.ts index 1c3140158b7..a4a57e25924 100644 --- a/src/ui/egg-gacha-ui-handler.ts +++ b/src/ui/egg-gacha-ui-handler.ts @@ -355,9 +355,9 @@ export default class EggGachaUiHandler extends MessageUiHandler { this.gachaContainers[this.gachaCursor].moveTo(egg, 2); const doPullAnim = () => { - this.scene.playSound("gacha_running", { loop: true }); + this.scene.playSound("se/gacha_running", { loop: true }); this.scene.time.delayedCall(this.getDelayValue(count ? 500 : 1250), () => { - this.scene.playSound("gacha_dispense"); + this.scene.playSound("se/gacha_dispense"); this.scene.time.delayedCall(this.getDelayValue(750), () => { this.scene.sound.stopByKey("gacha_running"); this.scene.tweens.add({ @@ -367,7 +367,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { ease: "Bounce.easeOut", onComplete: () => { this.scene.time.delayedCall(this.getDelayValue(125), () => { - this.scene.playSound("pb_catch"); + this.scene.playSound("se/pb_catch"); this.gachaHatches[this.gachaCursor].play("open"); this.scene.tweens.add({ targets: egg, @@ -405,7 +405,7 @@ export default class EggGachaUiHandler extends MessageUiHandler { }; if (!count) { - this.scene.playSound("gacha_dial"); + this.scene.playSound("se/gacha_dial"); this.scene.tweens.add({ targets: this.gachaKnobs[this.gachaCursor], duration: this.getDelayValue(350), diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index c28e5d851a2..967b3ae0dc4 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -9,6 +9,7 @@ import { DexAttr, GameData } from "../system/game-data"; import { speciesStarters } from "../data/pokemon-species"; import {Button} from "#enums/buttons"; import i18next from "i18next"; +import { UiTheme } from "#app/enums/ui-theme"; interface DisplayStat { label_key?: string; @@ -218,6 +219,9 @@ export default class GameStatsUiHandler extends UiHandler { private statLabels: Phaser.GameObjects.Text[]; private statValues: Phaser.GameObjects.Text[]; + private arrowUp: Phaser.GameObjects.Sprite; + private arrowDown: Phaser.GameObjects.Sprite; + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); @@ -241,11 +245,9 @@ export default class GameStatsUiHandler extends UiHandler { const statsBgWidth = ((this.scene.game.canvas.width / 6) - 2) / 2; const [ statsBgLeft, statsBgRight ] = new Array(2).fill(null).map((_, i) => { - let width = statsBgWidth; - if (!i) { - width += 5; - } - const statsBg = addWindow(this.scene, statsBgWidth * i, headerBg.height, width, (this.scene.game.canvas.height / 6) - headerBg.height - 2, false, !!i, 2); + const width = statsBgWidth + 2; + const height = Math.floor((this.scene.game.canvas.height / 6) - headerBg.height - 2); + const statsBg = addWindow(this.scene, (statsBgWidth - 2) * i, headerBg.height, width, height, false, false, i>0?-3:0, 1); statsBg.setOrigin(0, 0); return statsBg; }); @@ -272,6 +274,14 @@ export default class GameStatsUiHandler extends UiHandler { this.gameStatsContainer.add(statsBgRight); this.gameStatsContainer.add(this.statsContainer); + // arrows to show that we can scroll through the stats + const isLegacyTheme = this.scene.uiTheme === UiTheme.LEGACY; + this.arrowDown = this.scene.add.sprite(statsBgWidth, this.scene.game.canvas.height / 6 - (isLegacyTheme? 9 : 5), "prompt"); + this.gameStatsContainer.add(this.arrowDown); + this.arrowUp = this.scene.add.sprite(statsBgWidth, headerBg.height + (isLegacyTheme? 7 : 3), "prompt"); + this.arrowUp.flipY = true; + this.gameStatsContainer.add(this.arrowUp); + ui.add(this.gameStatsContainer); this.setCursor(0); @@ -286,6 +296,15 @@ export default class GameStatsUiHandler extends UiHandler { this.updateStats(); + this.arrowUp.play("prompt"); + this.arrowDown.play("prompt"); + if (this.scene.uiTheme === UiTheme.LEGACY) { + this.arrowUp.setTint(0x484848); + this.arrowDown.setTint(0x484848); + } + + this.updateArrows(); + this.gameStatsContainer.setVisible(true); this.getUi().moveTo(this.gameStatsContainer, this.getUi().length - 1); @@ -311,6 +330,17 @@ export default class GameStatsUiHandler extends UiHandler { } } + /** + * Show arrows at the top / bottom of the page if it's possible to scroll in that direction + */ + updateArrows(): void { + const showUpArrow = this.cursor > 0; + this.arrowUp.setVisible(showUpArrow); + + const showDownArrow = this.cursor < Math.ceil((Object.keys(displayStats).length - 18) / 2); + this.arrowDown.setVisible(showDownArrow); + } + processInput(button: Button): boolean { const ui = this.getUi(); @@ -346,6 +376,7 @@ export default class GameStatsUiHandler extends UiHandler { if (ret) { this.updateStats(); + this.updateArrows(); } return ret; diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 8adf9eee094..6fdf98d14a3 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -8,7 +8,7 @@ import { OptionSelectConfig, OptionSelectItem } from "./abstact-option-select-ui import { Tutorial, handleTutorial } from "../tutorial"; import { loggedInUser, updateUserInfo } from "../account"; import i18next from "i18next"; -import {Button} from "#enums/buttons"; +import { Button } from "#enums/buttons"; import { GameDataType } from "#enums/game-data-type"; import BgmBar from "#app/ui/bgm-bar"; @@ -17,7 +17,6 @@ enum MenuOptions { ACHIEVEMENTS, STATS, RUN_HISTORY, - VOUCHERS, EGG_LIST, EGG_GACHA, MANAGE_DATA, @@ -98,7 +97,6 @@ export default class MenuUiHandler extends MessageUiHandler { render() { const ui = this.getUi(); - console.log(ui.getModeChain()); this.excludedMenus = () => [ { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain()[0]), options: [ MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, { condition: bypassLogin, options: [ MenuOptions.LOG_OUT ] } @@ -342,7 +340,7 @@ export default class MenuUiHandler extends MessageUiHandler { this.getUi().hideTooltip(); - this.scene.playSound("menu_open"); + this.scene.playSound("ui/menu_open"); handleTutorial(this.scene, Tutorial.Menu); @@ -388,10 +386,6 @@ export default class MenuUiHandler extends MessageUiHandler { ui.setOverlayMode(Mode.RUN_HISTORY); success = true; break; - case MenuOptions.VOUCHERS: - ui.setOverlayMode(Mode.VOUCHERS); - success = true; - break; case MenuOptions.EGG_LIST: if (this.scene.gameData.eggs.length) { ui.revertMode(); diff --git a/src/ui/message-ui-handler.ts b/src/ui/message-ui-handler.ts index a78887e1581..446445fe86f 100644 --- a/src/ui/message-ui-handler.ts +++ b/src/ui/message-ui-handler.ts @@ -109,7 +109,7 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler { this.scene.charSprite.setVariant(charVar); } if (charSound) { - this.scene.playSound(charSound); + this.scene.playSound(`se/${charSound}`); } if (callback && !this.textTimer?.repeatCount) { if (callbackDelay && !prompt) { diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index bb1f970fe1c..4a567c926d7 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -334,7 +334,11 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { success = false; break; case 1: - success = this.rerollButtonContainer.visible && this.setCursor(0); + if (this.lockRarityButtonContainer.visible) { + success = this.setCursor(3); + } else { + success = this.rerollButtonContainer.visible && this.setCursor(0); + } break; case 2: if (this.transferButtonContainer.visible) { @@ -368,6 +372,13 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { case 2: success = false; break; + case 3: + if (this.transferButtonContainer.visible) { + success = this.setCursor(1); + } else { + success = this.setCursor(2); + } + break; } } else if (this.cursor < this.getRowItems(this.rowCursor) - 1) { success = this.setCursor(this.cursor + 1); @@ -643,7 +654,7 @@ class ModifierOption extends Phaser.GameObjects.Container { } const value = t.getValue(); if (!bounce && value > lastValue) { - (this.scene as BattleScene).playSound("pb_bounce_1", { volume: 1 / ++bounceCount }); + (this.scene as BattleScene).playSound("se/pb_bounce_1", { volume: 1 / ++bounceCount }); bounce = true; } else if (bounce && value < lastValue) { bounce = false; @@ -655,7 +666,7 @@ class ModifierOption extends Phaser.GameObjects.Container { for (let u = 0; u < this.modifierTypeOption.upgradeCount; u++) { const upgradeIndex = u; this.scene.time.delayedCall(remainingDuration - 2000 * (this.modifierTypeOption.upgradeCount - (upgradeIndex + 1 + upgradeCountOffset)), () => { - (this.scene as BattleScene).playSound("upgrade", { rate: 1 + 0.25 * upgradeIndex }); + (this.scene as BattleScene).playSound("se/upgrade", { rate: 1 + 0.25 * upgradeIndex }); this.pbTint.setPosition(this.pb.x, this.pb.y); this.pbTint.setTintFill(0xFFFFFF); this.pbTint.setAlpha(0); @@ -689,7 +700,7 @@ class ModifierOption extends Phaser.GameObjects.Container { if (!this.modifierTypeOption.cost) { this.pb.setTexture("pb", `${this.getPbAtlasKey(0)}_open`); - (this.scene as BattleScene).playSound("pb_rel"); + (this.scene as BattleScene).playSound("se/pb_rel"); this.scene.tweens.add({ targets: this.pb, diff --git a/src/ui/pokeball-tray.ts b/src/ui/pokeball-tray.ts index cf3b24c4d11..0313812ef79 100644 --- a/src/ui/pokeball-tray.ts +++ b/src/ui/pokeball-tray.ts @@ -57,7 +57,7 @@ export default class PokeballTray extends Phaser.GameObjects.Container { ball.setFrame(ballFrame); }); - (this.scene as BattleScene).playSound("pb_tray_enter"); + (this.scene as BattleScene).playSound("se/pb_tray_enter"); this.scene.tweens.add({ targets: this, @@ -71,7 +71,7 @@ export default class PokeballTray extends Phaser.GameObjects.Container { x: `${this.player ? "-" : "+"}=104`, duration: b * 100, ease: "Sine.easeIn", - onComplete: () => (this.scene as BattleScene).playSound(b < party.length ? "pb_tray_ball" : "pb_tray_empty") + onComplete: () => (this.scene as BattleScene).playSound(`se/${(b < party.length ? "pb_tray_ball" : "pb_tray_empty")}`) }); }); } diff --git a/src/ui/run-info-ui-handler.ts b/src/ui/run-info-ui-handler.ts index 79fc61596a0..8a4d430a1b6 100644 --- a/src/ui/run-info-ui-handler.ts +++ b/src/ui/run-info-ui-handler.ts @@ -409,10 +409,12 @@ export default class RunInfoUiHandler extends UiHandler { // Duration + Money const runInfoTextContainer = this.scene.add.container(0, 0); - const runInfoText = addBBCodeTextObject(this.scene, 7, 0, "", TextStyle.WINDOW, {fontSize : "50px", lineSpacing:3}); + // Japanese is set to a greater line spacing of 35px in addBBCodeTextObject() if lineSpacing < 12. + const lineSpacing = (i18next.resolvedLanguage === "ja") ? 12 : 3; + const runInfoText = addBBCodeTextObject(this.scene, 7, 0, "", TextStyle.WINDOW, {fontSize: "50px", lineSpacing: lineSpacing}); const runTime = Utils.getPlayTimeString(this.runInfo.playTime); runInfoText.appendText(`${i18next.t("runHistory:runLength")}: ${runTime}`, false); - const runMoney = Utils.formatMoney(this.runInfo.money, 1000); + const runMoney = Utils.formatMoney(this.scene.moneyFormat, this.runInfo.money); runInfoText.appendText(`[color=${getTextColor(TextStyle.MONEY)}]${i18next.t("battleScene:moneyOwned", {formattedMoney : runMoney})}[/color]`); runInfoText.setPosition(7, 70); runInfoTextContainer.add(runInfoText); @@ -513,7 +515,9 @@ export default class RunInfoUiHandler extends UiHandler { } const pPassiveInfo = pokemon.passive ? passiveLabel+": "+pokemon.getPassiveAbility().name : ""; const pAbilityInfo = abilityLabel + ": " + pokemon.getAbility().name; - const pokeInfoText = addBBCodeTextObject(this.scene, 0, 0, pName, TextStyle.SUMMARY, {fontSize: textContainerFontSize, lineSpacing:3}); + // Japanese is set to a greater line spacing of 35px in addBBCodeTextObject() if lineSpacing < 12. + const lineSpacing = (i18next.resolvedLanguage === "ja") ? 12 : 3; + const pokeInfoText = addBBCodeTextObject(this.scene, 0, 0, pName, TextStyle.SUMMARY, {fontSize: textContainerFontSize, lineSpacing: lineSpacing}); pokeInfoText.appendText(`${i18next.t("saveSlotSelectUiHandler:lv")}${Utils.formatFancyLargeNumber(pokemon.level, 1)} - ${pNature}`); pokeInfoText.appendText(pAbilityInfo); pokeInfoText.appendText(pPassiveInfo); @@ -537,12 +541,12 @@ export default class RunInfoUiHandler extends UiHandler { const speedLabel = (currentLanguage==="es"||currentLanguage==="pt_BR") ? i18next.t("runHistory:SPDshortened") : i18next.t("pokemonInfo:Stat.SPDshortened"); const speed = speedLabel+": "+pStats[5]; // Column 1: HP Atk Def - const pokeStatText1 = addBBCodeTextObject(this.scene, -5, 0, hp, TextStyle.SUMMARY, {fontSize: textContainerFontSize, lineSpacing:3}); + const pokeStatText1 = addBBCodeTextObject(this.scene, -5, 0, hp, TextStyle.SUMMARY, {fontSize: textContainerFontSize, lineSpacing: lineSpacing}); pokeStatText1.appendText(atk); pokeStatText1.appendText(def); pokeStatTextContainer.add(pokeStatText1); // Column 2: SpAtk SpDef Speed - const pokeStatText2 = addBBCodeTextObject(this.scene, 25, 0, spatk, TextStyle.SUMMARY, {fontSize: textContainerFontSize, lineSpacing:3}); + const pokeStatText2 = addBBCodeTextObject(this.scene, 25, 0, spatk, TextStyle.SUMMARY, {fontSize: textContainerFontSize, lineSpacing: lineSpacing}); pokeStatText2.appendText(spdef); pokeStatText2.appendText(speed); pokeStatTextContainer.add(pokeStatText2); diff --git a/src/ui/scroll-bar.ts b/src/ui/scroll-bar.ts index 02282edb4cd..e756393ae1a 100644 --- a/src/ui/scroll-bar.ts +++ b/src/ui/scroll-bar.ts @@ -29,8 +29,8 @@ export class ScrollBar extends Phaser.GameObjects.Container { setPages(pages: number): void { this.pages = pages; - this.handleBody.height = (this.bg.displayHeight - 1 - this.handleBottom.displayHeight) / this.pages; + this.handleBody.height = (this.bg.displayHeight - 1 - this.handleBottom.displayHeight) * 9 / this.pages; - this.setVisible(this.pages > 1); + this.setVisible(this.pages > 9); } } diff --git a/src/ui/settings/settings-audio-ui-handler.ts b/src/ui/settings/settings-audio-ui-handler.ts index b834e37efe5..27ca7e35354 100644 --- a/src/ui/settings/settings-audio-ui-handler.ts +++ b/src/ui/settings/settings-audio-ui-handler.ts @@ -15,6 +15,6 @@ export default class SettingsAudioUiHandler extends AbstractSettingsUiHandler { super(scene, SettingType.AUDIO, mode); this.title = "Audio"; this.localStorageKey = "settings"; - this.rowsToDisplay = 4; + this.rowsToDisplay = 5; } } diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index fe6c39cc6f1..a96434efc65 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -131,6 +131,8 @@ const starterCandyCosts: { passive: integer, costReduction: [integer, integer], { passive: 10, costReduction: [5, 15], egg: 10 }, // 10 Cost ]; +const valueReductionMax = 2; + // Position of UI elements const filterBarHeight = 17; const speciesContainerX = 109; // if team on the RIGHT: 109 / if on the LEFT: 143 @@ -1009,11 +1011,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler { const starterData = this.scene.gameData.starterData[speciesId]; return starterData.candyCount >= getValueReductionCandyCounts(speciesStarters[speciesId])[starterData.valueReduction] - && starterData.valueReduction < 2; + && starterData.valueReduction < valueReductionMax; } /** - * Determines if an same species egg can be baught for the given species ID + * Determines if an same species egg can be bought for the given species ID * @param speciesId The ID of the species to check the value reduction of * @returns true if the user has enough candies */ @@ -1062,15 +1064,18 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } ],}; - const passiveAvailable = this.isPassiveAvailable(species.speciesId); - // 'Only Passives' mode + const isPassiveAvailable = this.isPassiveAvailable(species.speciesId); + const isValueReductionAvailable = this.isValueReductionAvailable(species.speciesId); + const isSameSpeciesEggAvailable = this.isSameSpeciesEggAvailable(species.speciesId); + + // 'Passives Only' mode if (this.scene.candyUpgradeNotification === 1) { - if (passiveAvailable) { + if (isPassiveAvailable) { this.scene.tweens.chain(tweenChain).paused = startPaused; } // 'On' mode } else if (this.scene.candyUpgradeNotification === 2) { - if (passiveAvailable || this.isValueReductionAvailable(species.speciesId)) { + if (isPassiveAvailable || isValueReductionAvailable || isSameSpeciesEggAvailable) { this.scene.tweens.chain(tweenChain).paused = startPaused; } } @@ -1089,16 +1094,19 @@ export default class StarterSelectUiHandler extends MessageUiHandler { return; } - const passiveAvailable = this.isPassiveAvailable(species.speciesId); - // 'Only Passive Unlocks' mode + const isPassiveAvailable = this.isPassiveAvailable(species.speciesId); + const isValueReductionAvailable = this.isValueReductionAvailable(species.speciesId); + const isSameSpeciesEggAvailable = this.isSameSpeciesEggAvailable(species.speciesId); + + // 'Passive Only' mode if (this.scene.candyUpgradeNotification === 1) { - starter.candyUpgradeIcon.setVisible(slotVisible && passiveAvailable); + starter.candyUpgradeIcon.setVisible(slotVisible && isPassiveAvailable); starter.candyUpgradeOverlayIcon.setVisible(slotVisible && starter.candyUpgradeIcon.visible); // 'On' mode } else if (this.scene.candyUpgradeNotification === 2) { starter.candyUpgradeIcon.setVisible( - slotVisible && ( passiveAvailable || this.isValueReductionAvailable(species.speciesId))); + slotVisible && ( isPassiveAvailable || isValueReductionAvailable || isSameSpeciesEggAvailable )); starter.candyUpgradeOverlayIcon.setVisible(slotVisible && starter.candyUpgradeIcon.visible); } } @@ -1630,7 +1638,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); } const valueReduction = starterData.valueReduction; - if (valueReduction < 2) { + if (valueReduction < valueReductionMax) { const reductionCost = getValueReductionCandyCounts(speciesStarters[this.lastSpecies.speciesId])[valueReduction]; options.push({ label: `x${reductionCost} ${i18next.t("starterSelectUiHandler:reduceCost")}`, @@ -1648,7 +1656,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); this.tryUpdateValue(0); ui.setMode(Mode.STARTER_SELECT); - this.scene.playSound("buy"); + this.scene.playSound("se/buy"); // if starterContainer exists, update the value reduction background if (starterContainer) { @@ -1787,15 +1795,17 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (this.canCycleAbility) { const abilityCount = this.lastSpecies.getAbilityCount(); const abilityAttr = this.scene.gameData.starterData[this.lastSpecies.speciesId].abilityAttr; + const hasAbility1 = abilityAttr & AbilityAttr.ABILITY_1; let newAbilityIndex = this.abilityCursor; do { newAbilityIndex = (newAbilityIndex + 1) % abilityCount; - if (!newAbilityIndex) { - if (abilityAttr & AbilityAttr.ABILITY_1) { + if (newAbilityIndex === 0) { + if (hasAbility1) { break; } } else if (newAbilityIndex === 1) { - if (this.lastSpecies.ability1 === this.lastSpecies.ability2) { + // If ability 1 and 2 are the same and ability 1 is unlocked, skip over ability 2 + if (this.lastSpecies.ability1 === this.lastSpecies.ability2 && hasAbility1) { newAbilityIndex = (newAbilityIndex + 1) % abilityCount; } break; @@ -2386,7 +2396,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } }); - this.starterSelectScrollBar.setPages(Math.ceil((this.filteredStarterContainers.length - 81) / 9) + 1); + this.starterSelectScrollBar.setPages(Math.max(Math.ceil(this.filteredStarterContainers.length / 9), 1)); this.starterSelectScrollBar.setPage(0); // sort @@ -3037,7 +3047,20 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.canCycleShiny = isVariantCaught || isVariant2Caught || isVariant3Caught; this.canCycleGender = isMaleCaught && isFemaleCaught; - this.canCycleAbility = [ abilityAttr & AbilityAttr.ABILITY_1, (abilityAttr & AbilityAttr.ABILITY_2) && species.ability2, abilityAttr & AbilityAttr.ABILITY_HIDDEN ].filter(a => a).length > 1; + const hasAbility1 = abilityAttr & AbilityAttr.ABILITY_1; + let hasAbility2 = abilityAttr & AbilityAttr.ABILITY_2; + const hasHiddenAbility = abilityAttr & AbilityAttr.ABILITY_HIDDEN; + + /* + * Check for Pokemon with a single ability (at some point it was possible to catch them with their ability 2 attribute) + * This prevents cycling between ability 1 and 2 if they are both unlocked and the same + * but we still need to account for the possibility ability 1 was never unlocked and fallback on ability 2 in this case + */ + if (hasAbility1 && hasAbility2 && species.ability1 === species.ability2) { + hasAbility2 = 0; + } + + 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; diff --git a/src/ui/text.ts b/src/ui/text.ts index c1d7fe091c0..99a0436bba3 100644 --- a/src/ui/text.ts +++ b/src/ui/text.ts @@ -5,7 +5,7 @@ import BBCodeText from "phaser3-rex-plugins/plugins/gameobjects/tagtext/bbcodete import InputText from "phaser3-rex-plugins/plugins/inputtext"; import BattleScene from "../battle-scene"; import { ModifierTier } from "../modifier/modifier-tier"; -import i18next from "#app/plugins/i18n.js"; +import i18next from "#app/plugins/i18n"; export enum TextStyle { MESSAGE, @@ -227,6 +227,7 @@ export function getBBCodeFrag(content: string, textStyle: TextStyle, uiTheme: Ui } export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: UiTheme = UiTheme.DEFAULT): string { + const isLegacyTheme = uiTheme === UiTheme.LEGACY; switch (textStyle) { case TextStyle.MESSAGE: return !shadow ? "#f8f8f8" : "#6b5a73"; @@ -235,29 +236,29 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui case TextStyle.MOVE_PP_FULL: case TextStyle.TOOLTIP_CONTENT: case TextStyle.SETTINGS_VALUE: - if (uiTheme) { + if (isLegacyTheme) { return !shadow ? "#484848" : "#d0d0c8"; } return !shadow ? "#f8f8f8" : "#6b5a73"; case TextStyle.MOVE_PP_HALF_FULL: - if (uiTheme) { + if (isLegacyTheme) { return !shadow ? "#a68e17" : "#ebd773"; } return !shadow ? "#ccbe00" : "#6e672c"; case TextStyle.MOVE_PP_NEAR_EMPTY: - if (uiTheme) { + if (isLegacyTheme) { return !shadow ? "#d64b00" : "#f7b18b"; } return !shadow ? "#d64b00" : "#69402a"; case TextStyle.MOVE_PP_EMPTY: - if (uiTheme) { + if (isLegacyTheme) { return !shadow ? "#e13d3d" : "#fca2a2"; } return !shadow ? "#e13d3d" : "#632929"; case TextStyle.WINDOW_ALT: return !shadow ? "#484848" : "#d0d0c8"; case TextStyle.BATTLE_INFO: - if (uiTheme) { + if (isLegacyTheme) { return !shadow ? "#404040" : "#ded6b5"; } return !shadow ? "#f8f8f8" : "#6b5a73"; @@ -268,7 +269,7 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui case TextStyle.SUMMARY: return !shadow ? "#f8f8f8" : "#636363"; case TextStyle.SUMMARY_ALT: - if (uiTheme) { + if (isLegacyTheme) { return !shadow ? "#f8f8f8" : "#636363"; } return !shadow ? "#484848" : "#d0d0c8"; @@ -288,6 +289,9 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui case TextStyle.STATS_LABEL: return !shadow ? "#f8b050" : "#c07800"; case TextStyle.STATS_VALUE: + if (isLegacyTheme) { + return !shadow ? "#484848" : "#d0d0c8"; + } return !shadow ? "#f8f8f8" : "#6b5a73"; case TextStyle.SUMMARY_GREEN: return !shadow ? "#78c850" : "#306850"; diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 1f4a0b3a51e..250a21544dc 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -1,4 +1,4 @@ -import {default as BattleScene} from "../battle-scene"; +import { default as BattleScene } from "../battle-scene"; import UiHandler from "./ui-handler"; import BattleMessageUiHandler from "./battle-message-ui-handler"; import CommandUiHandler from "./command-ui-handler"; @@ -23,7 +23,6 @@ import OptionSelectUiHandler from "./settings/option-select-ui-handler"; import EggHatchSceneHandler from "./egg-hatch-scene-handler"; import EggListUiHandler from "./egg-list-ui-handler"; import EggGachaUiHandler from "./egg-gacha-ui-handler"; -import VouchersUiHandler from "./vouchers-ui-handler"; import {addWindow} from "./ui-theme"; import LoginFormUiHandler from "./login-form-ui-handler"; import RegistrationFormUiHandler from "./registration-form-ui-handler"; @@ -37,8 +36,8 @@ import SavingIconHandler from "./saving-icon-handler"; 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 { Button } from "#enums/buttons"; +import i18next, { ParseKeys } 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"; @@ -77,7 +76,6 @@ export enum Mode { KEYBOARD_BINDING, ACHIEVEMENTS, GAME_STATS, - VOUCHERS, EGG_LIST, EGG_GACHA, LOGIN_FORM, @@ -120,7 +118,6 @@ const noTransitionModes = [ Mode.SETTINGS_KEYBOARD, Mode.ACHIEVEMENTS, Mode.GAME_STATS, - Mode.VOUCHERS, Mode.LOGIN_FORM, Mode.REGISTRATION_FORM, Mode.LOADING, @@ -179,7 +176,6 @@ export default class UI extends Phaser.GameObjects.Container { new KeyboardBindingUiHandler(scene), new AchvsUiHandler(scene), new GameStatsUiHandler(scene), - new VouchersUiHandler(scene), new EggListUiHandler(scene), new EggGachaUiHandler(scene), new LoginFormUiHandler(scene), @@ -403,11 +399,11 @@ export default class UI extends Phaser.GameObjects.Container { } playSelect(): void { - (this.scene as BattleScene).playSound("select"); + (this.scene as BattleScene).playSound("ui/select"); } playError(): void { - (this.scene as BattleScene).playSound("error"); + (this.scene as BattleScene).playSound("ui/error"); } fadeOut(duration: integer): Promise { @@ -460,6 +456,7 @@ export default class UI extends Phaser.GameObjects.Container { } if (chainMode && this.mode && !clear) { this.modeChain.push(this.mode); + (this.scene as BattleScene).updateGameInfo(); } this.mode = mode; const touchControls = document?.getElementById("touchControls"); @@ -507,6 +504,7 @@ export default class UI extends Phaser.GameObjects.Container { resetModeChain(): void { this.modeChain = []; + (this.scene as BattleScene).updateGameInfo(); } revertMode(): Promise { @@ -520,6 +518,7 @@ export default class UI extends Phaser.GameObjects.Container { const doRevertMode = () => { this.getHandler().clear(); this.mode = this.modeChain.pop()!; // TODO: is this bang correct? + (this.scene as BattleScene).updateGameInfo(); const touchControls = document.getElementById("touchControls"); if (touchControls) { touchControls.dataset.uiMode = Mode[this.mode]; diff --git a/src/ui/unavailable-modal-ui-handler.ts b/src/ui/unavailable-modal-ui-handler.ts index dab1a8c3be8..3375fb930e6 100644 --- a/src/ui/unavailable-modal-ui-handler.ts +++ b/src/ui/unavailable-modal-ui-handler.ts @@ -55,7 +55,7 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { if (response[0] || [200, 400].includes(response[1])) { this.reconnectTimer = null; this.reconnectDuration = this.minTime; - this.scene.playSound("pb_bounce_1"); + this.scene.playSound("se/pb_bounce_1"); this.reconnectCallback(); } else if (response[1] === 401) { Utils.removeCookie(Utils.sessionIdKey); diff --git a/src/ui/vouchers-ui-handler.ts b/src/ui/vouchers-ui-handler.ts deleted file mode 100644 index bb2dc2cd0be..00000000000 --- a/src/ui/vouchers-ui-handler.ts +++ /dev/null @@ -1,262 +0,0 @@ -import BattleScene from "../battle-scene"; -import { Button } from "#enums/buttons"; -import i18next from "i18next"; -import { Voucher, getVoucherTypeIcon, getVoucherTypeName, vouchers } from "../system/voucher"; -import MessageUiHandler from "./message-ui-handler"; -import { TextStyle, addTextObject } from "./text"; -import { Mode } from "./ui"; -import { addWindow } from "./ui-theme"; - -const itemRows = 4; -const itemCols = 17; - -export default class VouchersUiHandler extends MessageUiHandler { - private vouchersContainer: Phaser.GameObjects.Container; - private voucherIconsContainer: Phaser.GameObjects.Container; - - private voucherIconsBg: Phaser.GameObjects.NineSlice; - private voucherIcons: Phaser.GameObjects.Sprite[]; - private titleText: Phaser.GameObjects.Text; - private unlockText: Phaser.GameObjects.Text; - - private itemsTotal: integer; - private scrollCursor: integer; - - private cursorObj: Phaser.GameObjects.NineSlice | null; - - constructor(scene: BattleScene, mode: Mode | null = null) { - super(scene, mode); - - this.itemsTotal = Object.keys(vouchers).length; - this.scrollCursor = 0; - } - - setup() { - const ui = this.getUi(); - - this.vouchersContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); - - this.vouchersContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); - - const headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24); - headerBg.setOrigin(0, 0); - - const headerText = addTextObject(this.scene, 0, 0, i18next.t("voucher:vouchers"), TextStyle.SETTINGS_LABEL); - headerText.setOrigin(0, 0); - headerText.setPositionRelative(headerBg, 8, 4); - - this.voucherIconsBg = addWindow(this.scene, 0, headerBg.height, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - headerBg.height - 68); - this.voucherIconsBg.setOrigin(0, 0); - - this.voucherIconsContainer = this.scene.add.container(6, headerBg.height + 6); - - this.voucherIcons = []; - - for (let a = 0; a < itemRows * itemCols; a++) { - const x = (a % itemCols) * 18; - const y = Math.floor(a / itemCols) * 18; - - const icon = this.scene.add.sprite(x, y, "items", "unknown"); - icon.setOrigin(0, 0); - icon.setScale(0.5); - - this.voucherIcons.push(icon); - this.voucherIconsContainer.add(icon); - } - - const titleBg = addWindow(this.scene, 0, headerBg.height + this.voucherIconsBg.height, 220, 24); - titleBg.setOrigin(0, 0); - - this.titleText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW); - this.titleText.setOrigin(0, 0); - this.titleText.setPositionRelative(titleBg, 8, 4); - - const unlockBg = addWindow(this.scene, titleBg.x + titleBg.width, titleBg.y, 98, 24); - unlockBg.setOrigin(0, 0); - - this.unlockText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW); - this.unlockText.setOrigin(0, 0); - this.unlockText.setPositionRelative(unlockBg, 8, 4); - - const descriptionBg = addWindow(this.scene, 0, titleBg.y + titleBg.height, (this.scene.game.canvas.width / 6) - 2, 42); - descriptionBg.setOrigin(0, 0); - - const descriptionText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW, { maxLines: 2 }); - descriptionText.setWordWrapWidth(1870); - descriptionText.setOrigin(0, 0); - descriptionText.setPositionRelative(descriptionBg, 8, 4); - - this.message = descriptionText; - - this.vouchersContainer.add(headerBg); - this.vouchersContainer.add(headerText); - this.vouchersContainer.add(this.voucherIconsBg); - this.vouchersContainer.add(this.voucherIconsContainer); - this.vouchersContainer.add(titleBg); - this.vouchersContainer.add(this.titleText); - this.vouchersContainer.add(unlockBg); - this.vouchersContainer.add(this.unlockText); - this.vouchersContainer.add(descriptionBg); - this.vouchersContainer.add(descriptionText); - - ui.add(this.vouchersContainer); - - this.setCursor(0); - - this.vouchersContainer.setVisible(false); - } - - show(args: any[]): boolean { - super.show(args); - - this.vouchersContainer.setVisible(true); - this.setCursor(0); - this.setScrollCursor(0); - - this.updateVoucherIcons(); - - this.getUi().moveTo(this.vouchersContainer, this.getUi().length - 1); - - this.getUi().hideTooltip(); - - return true; - } - - protected showVoucher(voucher: Voucher) { - const voucherUnlocks = this.scene.gameData.voucherUnlocks; - const unlocked = voucherUnlocks.hasOwnProperty(voucher.id); - - this.titleText.setText(getVoucherTypeName(voucher.voucherType)); - this.showText(voucher.description); - this.unlockText.setText(unlocked ? new Date(voucherUnlocks[voucher.id]).toLocaleDateString() : i18next.t("voucher:locked")); - } - - processInput(button: Button): boolean { - const ui = this.getUi(); - - let success = false; - - if (button === Button.CANCEL) { - success = true; - this.scene.ui.revertMode(); - } else { - const rowIndex = Math.floor(this.cursor / itemCols); - const itemOffset = (this.scrollCursor * itemCols); - switch (button) { - case Button.UP: - if (this.cursor < itemCols) { - if (this.scrollCursor) { - success = this.setScrollCursor(this.scrollCursor - 1); - } - } else { - success = this.setCursor(this.cursor - itemCols); - } - break; - case Button.DOWN: - const canMoveDown = (this.cursor + itemOffset) + itemCols < this.itemsTotal; - if (rowIndex >= itemRows - 1) { - if (this.scrollCursor < Math.ceil(this.itemsTotal / itemCols) - itemRows && canMoveDown) { - success = this.setScrollCursor(this.scrollCursor + 1); - } - } else if (canMoveDown) { - success = this.setCursor(this.cursor + itemCols); - } - break; - case Button.LEFT: - if (!this.cursor && this.scrollCursor) { - success = this.setScrollCursor(this.scrollCursor - 1) && this.setCursor(this.cursor + (itemCols - 1)); - } else if (this.cursor) { - success = this.setCursor(this.cursor - 1); - } - break; - case Button.RIGHT: - if (this.cursor + 1 === itemRows * itemCols && this.scrollCursor < Math.ceil(this.itemsTotal / itemCols) - itemRows) { - success = this.setScrollCursor(this.scrollCursor + 1) && this.setCursor(this.cursor - (itemCols - 1)); - } else if (this.cursor + itemOffset < Object.keys(vouchers).length - 1) { - success = this.setCursor(this.cursor + 1); - } - break; - } - } - - if (success) { - ui.playSelect(); - } - - return success; - } - - setCursor(cursor: integer): boolean { - const ret = super.setCursor(cursor); - - let updateVoucher = ret; - - if (!this.cursorObj) { - this.cursorObj = this.scene.add.nineslice(0, 0, "select_cursor_highlight", undefined, 16, 16, 1, 1, 1, 1); - this.cursorObj.setOrigin(0, 0); - this.voucherIconsContainer.add(this.cursorObj); - updateVoucher = true; - } - - this.cursorObj.setPositionRelative(this.voucherIcons[this.cursor], 0, 0); - - if (updateVoucher) { - this.showVoucher(vouchers[Object.keys(vouchers)[cursor + this.scrollCursor * itemCols]]); - } - - return ret; - } - - setScrollCursor(scrollCursor: integer): boolean { - if (scrollCursor === this.scrollCursor) { - return false; - } - - this.scrollCursor = scrollCursor; - - this.updateVoucherIcons(); - - this.showVoucher(vouchers[Object.keys(vouchers)[Math.min(this.cursor + this.scrollCursor * itemCols, Object.values(vouchers).length - 1)]]); - - return true; - } - - updateVoucherIcons(): void { - const voucherUnlocks = this.scene.gameData.voucherUnlocks; - - const itemOffset = this.scrollCursor * itemCols; - const itemLimit = itemRows * itemCols; - - const voucherRange = Object.values(vouchers).slice(itemOffset, itemLimit + itemOffset); - - voucherRange.forEach((voucher: Voucher, i: integer) => { - const icon = this.voucherIcons[i]; - const unlocked = voucherUnlocks.hasOwnProperty(voucher.id); - - icon.setFrame(getVoucherTypeIcon(voucher.voucherType)); - icon.setVisible(true); - if (!unlocked) { - icon.setTintFill(0); - } else { - icon.clearTint(); - } - }); - - if (voucherRange.length < this.voucherIcons.length) { - this.voucherIcons.slice(voucherRange.length).map(i => i.setVisible(false)); - } - } - - clear() { - super.clear(); - this.vouchersContainer.setVisible(false); - this.eraseCursor(); - } - - eraseCursor() { - if (this.cursorObj) { - this.cursorObj.destroy(); - } - this.cursorObj = null; - } -}