mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-02-25 13:38:37 +00:00
merge conflicts
This commit is contained in:
commit
964692fd05
45
.github/CODEOWNERS
vendored
Normal file
45
.github/CODEOWNERS
vendored
Normal file
@ -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
|
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
github: patapancakes
|
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,7 +1,7 @@
|
|||||||
name: Feature Request
|
name: Feature Request
|
||||||
description: Suggest an idea for this project
|
description: Suggest an idea for this project
|
||||||
title: "[Feature] "
|
title: "[Feature] "
|
||||||
labels: ["enhancement"]
|
labels: ["Enhancement"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
|
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@ -30,7 +30,7 @@
|
|||||||
- [ ] The PR is self-contained and cannot be split into smaller PRs?
|
- [ ] The PR is self-contained and cannot be split into smaller PRs?
|
||||||
- [ ] Have I provided a clear explanation of the changes?
|
- [ ] Have I provided a clear explanation of the changes?
|
||||||
- [ ] Have I considered writing automated tests for the issue?
|
- [ ] 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)?
|
- [ ] Have I tested the changes (manually)?
|
||||||
- [ ] Are all unit tests still passing? (`npm run test`)
|
- [ ] Are all unit tests still passing? (`npm run test`)
|
||||||
- [ ] Are the changes visual?
|
- [ ] Are the changes visual?
|
||||||
|
@ -53,6 +53,7 @@ Check out [Github Issues](https://github.com/pagefaultgames/pokerogue/issues) to
|
|||||||
- Pokémon Sun/Moon
|
- Pokémon Sun/Moon
|
||||||
- Pokémon Ultra Sun/Ultra Moon
|
- Pokémon Ultra Sun/Ultra Moon
|
||||||
- Pokémon Sword/Shield
|
- Pokémon Sword/Shield
|
||||||
|
- Pokémon Legends: Arceus
|
||||||
- Pokémon Scarlet/Violet
|
- Pokémon Scarlet/Violet
|
||||||
- Firel (Custom Laboratory, Metropolis, Seabed, and Space biome music)
|
- Firel (Custom Laboratory, Metropolis, Seabed, and Space biome music)
|
||||||
- Lmz (Custom Jungle biome music)
|
- Lmz (Custom Jungle biome music)
|
||||||
|
@ -38,7 +38,8 @@ export default [
|
|||||||
"ignoreComments": false // Enforces the rule on lines containing comments
|
"ignoreComments": false // Enforces the rule on lines containing comments
|
||||||
}],
|
}],
|
||||||
"space-before-blocks": ["error", "always"], // Enforces a space before blocks
|
"space-before-blocks": ["error", "always"], // Enforces a space before blocks
|
||||||
"keyword-spacing": ["error", { "before": true, "after": true }] // Enforces spacing before and after keywords
|
"keyword-spacing": ["error", { "before": true, "after": true }], // Enforces spacing before and after keywords
|
||||||
|
"comma-spacing": ["error", { "before": false, "after": true }] // Enforces spacing after comma
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -17,6 +17,12 @@ body {
|
|||||||
background: #484050;
|
background: #484050;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (display-mode: fullscreen) {
|
||||||
|
body {
|
||||||
|
background: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#links {
|
#links {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
BIN
public/audio/bgm/battle_legendary_origin_forme.mp3
Normal file
BIN
public/audio/bgm/battle_legendary_origin_forme.mp3
Normal file
Binary file not shown.
BIN
public/audio/bgm/battle_legendary_riders.mp3
Normal file
BIN
public/audio/bgm/battle_legendary_riders.mp3
Normal file
Binary file not shown.
BIN
public/images/ui/hall_of_fame_blue.png
Normal file
BIN
public/images/ui/hall_of_fame_blue.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/ui/hall_of_fame_red.png
Normal file
BIN
public/images/ui/hall_of_fame_red.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/ui/legacy/hall_of_fame_blue.png
Normal file
BIN
public/images/ui/legacy/hall_of_fame_blue.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/ui/legacy/hall_of_fame_red.png
Normal file
BIN
public/images/ui/legacy/hall_of_fame_red.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
9
src/@types/i18next.d.ts
vendored
9
src/@types/i18next.d.ts
vendored
@ -1,9 +1,18 @@
|
|||||||
import { type enConfig } from "#app/locales/en/config.js";
|
import { type enConfig } from "#app/locales/en/config.js";
|
||||||
|
import { TOptions } from "i18next";
|
||||||
|
|
||||||
|
//TODO: this needs to be type properly in the future
|
||||||
// Module declared to make referencing keys in the localization files type-safe.
|
// Module declared to make referencing keys in the localization files type-safe.
|
||||||
declare module "i18next" {
|
declare module "i18next" {
|
||||||
interface CustomTypeOptions {
|
interface CustomTypeOptions {
|
||||||
defaultNS: "menu", // needed here as well for typedoc
|
defaultNS: "menu", // needed here as well for typedoc
|
||||||
resources: typeof enConfig
|
resources: typeof enConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface TFunction {
|
||||||
|
(
|
||||||
|
key: string | string[],
|
||||||
|
options?: TOptions & Record<string, unknown>
|
||||||
|
): string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,8 +49,8 @@ import CandyBar from "./ui/candy-bar";
|
|||||||
import { Variant, variantData } from "./data/variant";
|
import { Variant, variantData } from "./data/variant";
|
||||||
import { Localizable } from "#app/interfaces/locales";
|
import { Localizable } from "#app/interfaces/locales";
|
||||||
import Overrides from "#app/overrides";
|
import Overrides from "#app/overrides";
|
||||||
import {InputsController} from "./inputs-controller";
|
import { InputsController } from "./inputs-controller";
|
||||||
import {UiInputs} from "./ui-inputs";
|
import { UiInputs } from "./ui-inputs";
|
||||||
import { NewArenaEvent } from "./events/battle-scene";
|
import { NewArenaEvent } from "./events/battle-scene";
|
||||||
import { ArenaFlyout } from "./ui/arena-flyout";
|
import { ArenaFlyout } from "./ui/arena-flyout";
|
||||||
import { EaseType } from "#enums/ease-type";
|
import { EaseType } from "#enums/ease-type";
|
||||||
@ -65,7 +65,7 @@ import { Species } from "#enums/species";
|
|||||||
import { UiTheme } from "#enums/ui-theme";
|
import { UiTheme } from "#enums/ui-theme";
|
||||||
import { TimedEventManager } from "#app/timed-event-manager.js";
|
import { TimedEventManager } from "#app/timed-event-manager.js";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import {TrainerType} from "#enums/trainer-type";
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
import { battleSpecDialogue } from "./data/dialogue";
|
import { battleSpecDialogue } from "./data/dialogue";
|
||||||
import { LoadingScene } from "./loading-scene";
|
import { LoadingScene } from "./loading-scene";
|
||||||
import { LevelCapPhase } from "./phases/level-cap-phase";
|
import { LevelCapPhase } from "./phases/level-cap-phase";
|
||||||
@ -83,6 +83,7 @@ import { SwitchPhase } from "./phases/switch-phase";
|
|||||||
import { TitlePhase } from "./phases/title-phase";
|
import { TitlePhase } from "./phases/title-phase";
|
||||||
import { ToggleDoublePositionPhase } from "./phases/toggle-double-position-phase";
|
import { ToggleDoublePositionPhase } from "./phases/toggle-double-position-phase";
|
||||||
import { TurnInitPhase } from "./phases/turn-init-phase";
|
import { TurnInitPhase } from "./phases/turn-init-phase";
|
||||||
|
import { ShopCursorTarget } from "./enums/shop-cursor-target";
|
||||||
|
|
||||||
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
||||||
|
|
||||||
@ -127,6 +128,7 @@ export default class BattleScene extends SceneBase {
|
|||||||
public gameSpeed: integer = 1;
|
public gameSpeed: integer = 1;
|
||||||
public damageNumbersMode: integer = 0;
|
public damageNumbersMode: integer = 0;
|
||||||
public reroll: boolean = false;
|
public reroll: boolean = false;
|
||||||
|
public shopCursorTarget: number = ShopCursorTarget.CHECK_TEAM;
|
||||||
public showMovesetFlyout: boolean = true;
|
public showMovesetFlyout: boolean = true;
|
||||||
public showArenaFlyout: boolean = true;
|
public showArenaFlyout: boolean = true;
|
||||||
public showTimeOfDayWidget: boolean = true;
|
public showTimeOfDayWidget: boolean = true;
|
||||||
@ -1627,7 +1629,7 @@ export default class BattleScene extends SceneBase {
|
|||||||
|
|
||||||
randomSpecies(waveIndex: integer, level: integer, fromArenaPool?: boolean, speciesFilter?: PokemonSpeciesFilter, filterAllEvolutions?: boolean): PokemonSpecies {
|
randomSpecies(waveIndex: integer, level: integer, fromArenaPool?: boolean, speciesFilter?: PokemonSpeciesFilter, filterAllEvolutions?: boolean): PokemonSpecies {
|
||||||
if (fromArenaPool) {
|
if (fromArenaPool) {
|
||||||
return this.arena.randomSpecies(waveIndex, level, undefined , getPartyLuckValue(this.party));
|
return this.arena.randomSpecies(waveIndex, level, undefined, getPartyLuckValue(this.party));
|
||||||
}
|
}
|
||||||
const filteredSpecies = speciesFilter ? [...new Set(allSpecies.filter(s => s.isCatchable()).filter(speciesFilter).map(s => {
|
const filteredSpecies = speciesFilter ? [...new Set(allSpecies.filter(s => s.isCatchable()).filter(speciesFilter).map(s => {
|
||||||
if (!filterAllEvolutions) {
|
if (!filterAllEvolutions) {
|
||||||
@ -1895,6 +1897,8 @@ export default class BattleScene extends SceneBase {
|
|||||||
return 22.770;
|
return 22.770;
|
||||||
case "battle_legendary_dia_pal": //ORAS Dialga & Palkia Battle
|
case "battle_legendary_dia_pal": //ORAS Dialga & Palkia Battle
|
||||||
return 16.009;
|
return 16.009;
|
||||||
|
case "battle_legendary_origin_forme": //LA Origin Dialga & Palkia Battle
|
||||||
|
return 18.961;
|
||||||
case "battle_legendary_giratina": //ORAS Giratina Battle
|
case "battle_legendary_giratina": //ORAS Giratina Battle
|
||||||
return 10.451;
|
return 10.451;
|
||||||
case "battle_legendary_arceus": //HGSS Arceus Battle
|
case "battle_legendary_arceus": //HGSS Arceus Battle
|
||||||
@ -1923,6 +1927,8 @@ export default class BattleScene extends SceneBase {
|
|||||||
return 12.503;
|
return 12.503;
|
||||||
case "battle_legendary_calyrex": //SWSH Calyrex Battle
|
case "battle_legendary_calyrex": //SWSH Calyrex Battle
|
||||||
return 50.641;
|
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
|
case "battle_legendary_birds_galar": //SWSH Galarian Legendary Birds Battle
|
||||||
return 0.175;
|
return 0.175;
|
||||||
case "battle_legendary_ruinous": //SV Treasures of Ruin Battle
|
case "battle_legendary_ruinous": //SV Treasures of Ruin Battle
|
||||||
@ -2666,7 +2672,8 @@ export default class BattleScene extends SceneBase {
|
|||||||
wave: this.currentBattle?.waveIndex || 0,
|
wave: this.currentBattle?.waveIndex || 0,
|
||||||
party: this.party ? this.party.map(p => {
|
party: this.party ? this.party.map(p => {
|
||||||
return { name: p.name, level: p.level };
|
return { name: p.name, level: p.level };
|
||||||
}) : []
|
}) : [],
|
||||||
|
modeChain: this.ui?.getModeChain() ?? [],
|
||||||
};
|
};
|
||||||
(window as any).gameInfo = gameInfo;
|
(window as any).gameInfo = gameInfo;
|
||||||
}
|
}
|
||||||
|
@ -275,7 +275,12 @@ export default class Battle {
|
|||||||
return "battle_legendary_sinnoh";
|
return "battle_legendary_sinnoh";
|
||||||
}
|
}
|
||||||
if (pokemon.species.speciesId === Species.DIALGA || pokemon.species.speciesId === Species.PALKIA) {
|
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) {
|
if (pokemon.species.speciesId === Species.GIRATINA) {
|
||||||
return "battle_legendary_giratina";
|
return "battle_legendary_giratina";
|
||||||
@ -319,7 +324,12 @@ export default class Battle {
|
|||||||
return "battle_legendary_glas_spec";
|
return "battle_legendary_glas_spec";
|
||||||
}
|
}
|
||||||
if (pokemon.species.speciesId === Species.CALYREX) {
|
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) {
|
if (pokemon.species.speciesId === Species.GALAR_ARTICUNO || pokemon.species.speciesId === Species.GALAR_ZAPDOS || pokemon.species.speciesId === Species.GALAR_MOLTRES) {
|
||||||
return "battle_legendary_birds_galar";
|
return "battle_legendary_birds_galar";
|
||||||
@ -499,12 +509,12 @@ export const classicFixedBattles: FixedBattleConfigs = {
|
|||||||
[112]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[112]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
||||||
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
|
||||||
[114]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[114]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
||||||
.setGetTrainerFunc(getRandomTrainerFunc([[ TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL ], [ TrainerType.TABITHA, TrainerType.COURTNEY ], [ TrainerType.MATT, TrainerType.SHELLY ], [ TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN ], [ TrainerType.ZINZOLIN, TrainerType.ROOD ], [ TrainerType.XEROSIC, TrainerType.BRYONY ] ], true,1)),
|
.setGetTrainerFunc(getRandomTrainerFunc([[ TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL ], [ TrainerType.TABITHA, TrainerType.COURTNEY ], [ TrainerType.MATT, TrainerType.SHELLY ], [ TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN ], [ TrainerType.ZINZOLIN, TrainerType.ROOD ], [ TrainerType.XEROSIC, TrainerType.BRYONY ] ], true, 1)),
|
||||||
[115]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[115]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
||||||
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_1, TrainerType.MAXIE, TrainerType.ARCHIE, TrainerType.CYRUS, TrainerType.GHETSIS, TrainerType.LYSANDRE ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_1, TrainerType.MAXIE, TrainerType.ARCHIE, TrainerType.CYRUS, TrainerType.GHETSIS, TrainerType.LYSANDRE ])),
|
||||||
[145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
[145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_5, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
.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 ])),
|
.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)
|
[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 ])),
|
.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 ])),
|
||||||
|
@ -13,7 +13,7 @@ import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
|||||||
import { Stat, getStatName } from "./pokemon-stat";
|
import { Stat, getStatName } from "./pokemon-stat";
|
||||||
import { BerryModifier, PokemonHeldItemModifier } from "../modifier/modifier";
|
import { BerryModifier, PokemonHeldItemModifier } from "../modifier/modifier";
|
||||||
import { TerrainType } from "./terrain";
|
import { TerrainType } from "./terrain";
|
||||||
import { SpeciesFormChangeManualTrigger } from "./pokemon-forms";
|
import { SpeciesFormChangeManualTrigger, SpeciesFormChangeRevertWeatherFormTrigger, SpeciesFormChangeWeatherTrigger } from "./pokemon-forms";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { Localizable } from "#app/interfaces/locales.js";
|
import { Localizable } from "#app/interfaces/locales.js";
|
||||||
import { Command } from "../ui/command-ui-handler";
|
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 { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
import { Moves } from "#enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
import { MovePhase } from "#app/phases/move-phase.js";
|
import { MovePhase } from "#app/phases/move-phase";
|
||||||
import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase.js";
|
import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase";
|
||||||
import { ShowAbilityPhase } from "#app/phases/show-ability-phase.js";
|
import { ShowAbilityPhase } from "#app/phases/show-ability-phase";
|
||||||
import { StatChangePhase } from "#app/phases/stat-change-phase.js";
|
import { StatChangePhase } from "#app/phases/stat-change-phase";
|
||||||
|
import BattleScene from "#app/battle-scene";
|
||||||
|
|
||||||
export class Ability implements Localizable {
|
export class Ability implements Localizable {
|
||||||
public id: Abilities;
|
public id: Abilities;
|
||||||
@ -2371,6 +2372,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 {
|
export class PreSwitchOutAbAttr extends AbAttr {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(true);
|
super(true);
|
||||||
@ -2561,7 +2629,7 @@ export class ConfusionOnStatusEffectAbAttr extends PostAttackAbAttr {
|
|||||||
if (simulated) {
|
if (simulated) {
|
||||||
return defender.canAddTag(BattlerTagType.CONFUSED);
|
return defender.canAddTag(BattlerTagType.CONFUSED);
|
||||||
} else {
|
} else {
|
||||||
return defender.addTag(BattlerTagType.CONFUSED, pokemon.randSeedInt(3,2), move.id, defender.id);
|
return defender.addTag(BattlerTagType.CONFUSED, pokemon.randSeedInt(3, 2), move.id, defender.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -2743,7 +2811,7 @@ export class ConditionalCritAbAttr extends AbAttr {
|
|||||||
apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||||
const target = (args[1] as Pokemon);
|
const target = (args[1] as Pokemon);
|
||||||
const move = (args[2] as Move);
|
const move = (args[2] as Move);
|
||||||
if (!this.condition(pokemon,target,move)) {
|
if (!this.condition(pokemon, target, move)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3024,6 +3092,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 {
|
export class PostWeatherChangeAddBattlerTagAttr extends PostWeatherChangeAbAttr {
|
||||||
private tagType: BattlerTagType;
|
private tagType: BattlerTagType;
|
||||||
private turnCount: integer;
|
private turnCount: integer;
|
||||||
@ -3309,11 +3420,25 @@ export class PostTurnLootAbAttr extends PostTurnAbAttr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attribute used for {@linkcode Abilities.MOODY}
|
||||||
|
*/
|
||||||
export class MoodyAbAttr extends PostTurnAbAttr {
|
export class MoodyAbAttr extends PostTurnAbAttr {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(true);
|
super(true);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Randomly increases one BattleStat by 2 stages and decreases a different BattleStat by 1 stage
|
||||||
|
* @param {Pokemon} pokemon Pokemon that has this ability
|
||||||
|
* @param passive N/A
|
||||||
|
* @param simulated true if applying in a simulated call.
|
||||||
|
* @param args N/A
|
||||||
|
* @returns true
|
||||||
|
*
|
||||||
|
* Any BattleStats at +6 or -6 are excluded from being increased or decreased, respectively
|
||||||
|
* If the pokemon already has all BattleStats raised to stage 6, it will only decrease one BattleStat by 1 stage
|
||||||
|
* If the pokemon already has all BattleStats lowered to stage -6, it will only increase one BattleStat by 2 stages
|
||||||
|
*/
|
||||||
applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
|
applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
|
||||||
const selectableStats = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD];
|
const selectableStats = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD];
|
||||||
const increaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] < 6);
|
const increaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] < 6);
|
||||||
@ -3325,7 +3450,7 @@ export class MoodyAbAttr extends PostTurnAbAttr {
|
|||||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2));
|
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2));
|
||||||
}
|
}
|
||||||
if (!simulated && decreaseStatArray.length > 0) {
|
if (!simulated && decreaseStatArray.length > 0) {
|
||||||
const decreaseStat = selectableStats[Utils.randInt(selectableStats.length)];
|
const decreaseStat = decreaseStatArray[Utils.randInt(decreaseStatArray.length)];
|
||||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1));
|
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -3780,6 +3905,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
|
* Clears Desolate Land/Primordial Sea/Delta Stream upon the Pokemon fainting
|
||||||
*/
|
*/
|
||||||
@ -4239,7 +4396,7 @@ export class FormBlockDamageAbAttr extends ReceivedMoveDamageMultiplierAbAttr {
|
|||||||
(args[0] as Utils.NumberHolder).value = this.multiplier;
|
(args[0] as Utils.NumberHolder).value = this.multiplier;
|
||||||
pokemon.removeTag(this.tagType);
|
pokemon.removeTag(this.tagType);
|
||||||
if (this.recoilDamageFunc) {
|
if (this.recoilDamageFunc) {
|
||||||
pokemon.damageAndUpdate(this.recoilDamageFunc(pokemon), HitResult.OTHER);
|
pokemon.damageAndUpdate(this.recoilDamageFunc(pokemon), HitResult.OTHER, false, false, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -4652,6 +4809,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 const allAbilities = [ new Ability(Abilities.NONE, 3) ];
|
||||||
|
|
||||||
export function initAbilities() {
|
export function initAbilities() {
|
||||||
@ -4698,7 +4865,10 @@ export function initAbilities() {
|
|||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.CLOUD_NINE, 3)
|
new Ability(Abilities.CLOUD_NINE, 3)
|
||||||
.attr(SuppressWeatherEffectAbAttr, true)
|
.attr(SuppressWeatherEffectAbAttr, true)
|
||||||
.attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."),
|
.attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared"))
|
||||||
|
.attr(PostSummonWeatherSuppressedFormChangeAbAttr)
|
||||||
|
.attr(PostFaintUnsuppressedWeatherFormChangeAbAttr)
|
||||||
|
.bypassFaint(),
|
||||||
new Ability(Abilities.COMPOUND_EYES, 3)
|
new Ability(Abilities.COMPOUND_EYES, 3)
|
||||||
.attr(BattleStatMultiplierAbAttr, BattleStat.ACC, 1.3),
|
.attr(BattleStatMultiplierAbAttr, BattleStat.ACC, 1.3),
|
||||||
new Ability(Abilities.INSOMNIA, 3)
|
new Ability(Abilities.INSOMNIA, 3)
|
||||||
@ -4843,7 +5013,8 @@ export function initAbilities() {
|
|||||||
new Ability(Abilities.FORECAST, 3)
|
new Ability(Abilities.FORECAST, 3)
|
||||||
.attr(UncopiableAbilityAbAttr)
|
.attr(UncopiableAbilityAbAttr)
|
||||||
.attr(NoFusionAbilityAbAttr)
|
.attr(NoFusionAbilityAbAttr)
|
||||||
.unimplemented(),
|
.attr(PostSummonFormChangeByWeatherAbAttr, Abilities.FORECAST)
|
||||||
|
.attr(PostWeatherChangeFormChangeAbAttr, Abilities.FORECAST),
|
||||||
new Ability(Abilities.STICKY_HOLD, 3)
|
new Ability(Abilities.STICKY_HOLD, 3)
|
||||||
.attr(BlockItemTheftAbAttr)
|
.attr(BlockItemTheftAbAttr)
|
||||||
.bypassFaint()
|
.bypassFaint()
|
||||||
@ -4893,7 +5064,10 @@ export function initAbilities() {
|
|||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.AIR_LOCK, 3)
|
new Ability(Abilities.AIR_LOCK, 3)
|
||||||
.attr(SuppressWeatherEffectAbAttr, true)
|
.attr(SuppressWeatherEffectAbAttr, true)
|
||||||
.attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."),
|
.attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared"))
|
||||||
|
.attr(PostSummonWeatherSuppressedFormChangeAbAttr)
|
||||||
|
.attr(PostFaintUnsuppressedWeatherFormChangeAbAttr)
|
||||||
|
.bypassFaint(),
|
||||||
new Ability(Abilities.TANGLED_FEET, 4)
|
new Ability(Abilities.TANGLED_FEET, 4)
|
||||||
.conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), BattleStatMultiplierAbAttr, BattleStat.EVA, 2)
|
.conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), BattleStatMultiplierAbAttr, BattleStat.EVA, 2)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
@ -4983,7 +5157,7 @@ export function initAbilities() {
|
|||||||
.attr(BonusCritAbAttr)
|
.attr(BonusCritAbAttr)
|
||||||
.partial(),
|
.partial(),
|
||||||
new Ability(Abilities.AFTERMATH, 4)
|
new Ability(Abilities.AFTERMATH, 4)
|
||||||
.attr(PostFaintContactDamageAbAttr,4)
|
.attr(PostFaintContactDamageAbAttr, 4)
|
||||||
.bypassFaint(),
|
.bypassFaint(),
|
||||||
new Ability(Abilities.ANTICIPATION, 4)
|
new Ability(Abilities.ANTICIPATION, 4)
|
||||||
.conditionalAttr(getAnticipationCondition(), PostSummonMessageAbAttr, (pokemon: Pokemon) => i18next.t("abilityTriggers:postSummonAnticipation", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon) })),
|
.conditionalAttr(getAnticipationCondition(), PostSummonMessageAbAttr, (pokemon: Pokemon) => i18next.t("abilityTriggers:postSummonAnticipation", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon) })),
|
||||||
@ -4996,7 +5170,7 @@ export function initAbilities() {
|
|||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
.attr(DamageBoostAbAttr, 2, (user, target, move) => target.getAttackTypeEffectiveness(move.type, user) <= 0.5), // TODO: fix TS issues
|
.attr(DamageBoostAbAttr, 2, (user, target, move) => target.getAttackTypeEffectiveness(move.type, user) <= 0.5), // TODO: fix TS issues
|
||||||
new Ability(Abilities.FILTER, 4)
|
new Ability(Abilities.FILTER, 4)
|
||||||
.attr(ReceivedMoveDamageMultiplierAbAttr,(target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75)
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.SLOW_START, 4)
|
new Ability(Abilities.SLOW_START, 4)
|
||||||
.attr(PostSummonAddBattlerTagAbAttr, BattlerTagType.SLOW_START, 5),
|
.attr(PostSummonAddBattlerTagAbAttr, BattlerTagType.SLOW_START, 5),
|
||||||
@ -5012,7 +5186,7 @@ export function initAbilities() {
|
|||||||
.attr(PostWeatherLapseHealAbAttr, 1, WeatherType.HAIL, WeatherType.SNOW)
|
.attr(PostWeatherLapseHealAbAttr, 1, WeatherType.HAIL, WeatherType.SNOW)
|
||||||
.partial(), // Healing not blocked by Heal Block
|
.partial(), // Healing not blocked by Heal Block
|
||||||
new Ability(Abilities.SOLID_ROCK, 4)
|
new Ability(Abilities.SOLID_ROCK, 4)
|
||||||
.attr(ReceivedMoveDamageMultiplierAbAttr,(target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75)
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.SNOW_WARNING, 4)
|
new Ability(Abilities.SNOW_WARNING, 4)
|
||||||
.attr(PostSummonWeatherChangeAbAttr, WeatherType.SNOW)
|
.attr(PostSummonWeatherChangeAbAttr, WeatherType.SNOW)
|
||||||
@ -5073,7 +5247,7 @@ export function initAbilities() {
|
|||||||
.attr(WeightMultiplierAbAttr, 0.5)
|
.attr(WeightMultiplierAbAttr, 0.5)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.MULTISCALE, 5)
|
new Ability(Abilities.MULTISCALE, 5)
|
||||||
.attr(ReceivedMoveDamageMultiplierAbAttr,(target, user, move) => target.isFullHp(), 0.5)
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => target.isFullHp(), 0.5)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.TOXIC_BOOST, 5)
|
new Ability(Abilities.TOXIC_BOOST, 5)
|
||||||
.attr(MovePowerBoostAbAttr, (user, target, move) => move.category === MoveCategory.PHYSICAL && (user?.status?.effect === StatusEffect.POISON || user?.status?.effect === StatusEffect.TOXIC), 1.5),
|
.attr(MovePowerBoostAbAttr, (user, target, move) => move.category === MoveCategory.PHYSICAL && (user?.status?.effect === StatusEffect.POISON || user?.status?.effect === StatusEffect.TOXIC), 1.5),
|
||||||
@ -5418,9 +5592,9 @@ export function initAbilities() {
|
|||||||
new Ability(Abilities.FULL_METAL_BODY, 7)
|
new Ability(Abilities.FULL_METAL_BODY, 7)
|
||||||
.attr(ProtectStatAbAttr),
|
.attr(ProtectStatAbAttr),
|
||||||
new Ability(Abilities.SHADOW_SHIELD, 7)
|
new Ability(Abilities.SHADOW_SHIELD, 7)
|
||||||
.attr(ReceivedMoveDamageMultiplierAbAttr,(target, user, move) => target.isFullHp(), 0.5),
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => target.isFullHp(), 0.5),
|
||||||
new Ability(Abilities.PRISM_ARMOR, 7)
|
new Ability(Abilities.PRISM_ARMOR, 7)
|
||||||
.attr(ReceivedMoveDamageMultiplierAbAttr,(target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75),
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75),
|
||||||
new Ability(Abilities.NEUROFORCE, 7)
|
new Ability(Abilities.NEUROFORCE, 7)
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
.attr(MovePowerBoostAbAttr, (user, target, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 1.25), // TODO: fix TS issues
|
.attr(MovePowerBoostAbAttr, (user, target, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 1.25), // TODO: fix TS issues
|
||||||
@ -5719,6 +5893,6 @@ export function initAbilities() {
|
|||||||
new Ability(Abilities.POISON_PUPPETEER, 9)
|
new Ability(Abilities.POISON_PUPPETEER, 9)
|
||||||
.attr(UncopiableAbilityAbAttr)
|
.attr(UncopiableAbilityAbAttr)
|
||||||
.attr(UnswappableAbilityAbAttr)
|
.attr(UnswappableAbilityAbAttr)
|
||||||
.conditionalAttr(pokemon => pokemon.species.speciesId===Species.PECHARUNT,ConfusionOnStatusEffectAbAttr,StatusEffect.POISON,StatusEffect.TOXIC)
|
.conditionalAttr(pokemon => pokemon.species.speciesId===Species.PECHARUNT, ConfusionOnStatusEffectAbAttr, StatusEffect.POISON, StatusEffect.TOXIC)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -439,13 +439,13 @@ export class SingleGenerationChallenge extends Challenge {
|
|||||||
let trainerTypes: TrainerType[] = [];
|
let trainerTypes: TrainerType[] = [];
|
||||||
switch (waveIndex) {
|
switch (waveIndex) {
|
||||||
case 182:
|
case 182:
|
||||||
trainerTypes = [ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, Utils.randSeedItem([ TrainerType.HALA, TrainerType.MOLAYNE ]),TrainerType.MARNIE_ELITE, TrainerType.RIKA ];
|
trainerTypes = [ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, Utils.randSeedItem([ TrainerType.HALA, TrainerType.MOLAYNE ]), TrainerType.MARNIE_ELITE, TrainerType.RIKA ];
|
||||||
break;
|
break;
|
||||||
case 184:
|
case 184:
|
||||||
trainerTypes = [ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY ];
|
trainerTypes = [ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY ];
|
||||||
break;
|
break;
|
||||||
case 186:
|
case 186:
|
||||||
trainerTypes = [ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA, Utils.randSeedItem([TrainerType.BEA_ELITE,TrainerType.ALLISTER_ELITE]), TrainerType.LARRY_ELITE ];
|
trainerTypes = [ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA, Utils.randSeedItem([TrainerType.BEA_ELITE, TrainerType.ALLISTER_ELITE]), TrainerType.LARRY_ELITE ];
|
||||||
break;
|
break;
|
||||||
case 188:
|
case 188:
|
||||||
trainerTypes = [ TrainerType.LANCE, TrainerType.KAREN, TrainerType.DRAKE, TrainerType.LUCIAN, TrainerType.CAITLIN, TrainerType.DRASNA, TrainerType.KAHILI, TrainerType.RAIHAN_ELITE, TrainerType.HASSEL ];
|
trainerTypes = [ TrainerType.LANCE, TrainerType.KAREN, TrainerType.DRAKE, TrainerType.LUCIAN, TrainerType.CAITLIN, TrainerType.DRASNA, TrainerType.KAHILI, TrainerType.RAIHAN_ELITE, TrainerType.HASSEL ];
|
||||||
|
@ -26,16 +26,17 @@ import { BattlerTagType } from "#enums/battler-tag-type";
|
|||||||
import { Biome } from "#enums/biome";
|
import { Biome } from "#enums/biome";
|
||||||
import { Moves } from "#enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "#enums/species";
|
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.js";
|
import { PartyStatusCurePhase } from "#app/phases/party-status-cure-phase";
|
||||||
import { BattleEndPhase } from "#app/phases/battle-end-phase.js";
|
import { BattleEndPhase } from "#app/phases/battle-end-phase";
|
||||||
import { MoveEndPhase } from "#app/phases/move-end-phase.js";
|
import { MoveEndPhase } from "#app/phases/move-end-phase";
|
||||||
import { MovePhase } from "#app/phases/move-phase.js";
|
import { MovePhase } from "#app/phases/move-phase";
|
||||||
import { NewBattlePhase } from "#app/phases/new-battle-phase.js";
|
import { NewBattlePhase } from "#app/phases/new-battle-phase";
|
||||||
import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase.js";
|
import { PokemonHealPhase } from "#app/phases/pokemon-heal-phase";
|
||||||
import { StatChangePhase } from "#app/phases/stat-change-phase.js";
|
import { StatChangePhase } from "#app/phases/stat-change-phase";
|
||||||
import { SwitchPhase } from "#app/phases/switch-phase.js";
|
import { SwitchPhase } from "#app/phases/switch-phase";
|
||||||
import { SwitchSummonPhase } from "#app/phases/switch-summon-phase.js";
|
import { SwitchSummonPhase } from "#app/phases/switch-summon-phase";
|
||||||
|
import { SpeciesFormChangeRevertWeatherFormTrigger } from "./pokemon-forms";
|
||||||
|
|
||||||
export enum MoveCategory {
|
export enum MoveCategory {
|
||||||
PHYSICAL,
|
PHYSICAL,
|
||||||
@ -4437,7 +4438,7 @@ export class AddBattlerTagAttr extends MoveEffectAttr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||||
let moveChance = this.getMoveChance(user,target,move,this.selfTarget, false);
|
let moveChance = this.getMoveChance(user, target, move, this.selfTarget, false);
|
||||||
if (moveChance < 0) {
|
if (moveChance < 0) {
|
||||||
moveChance = 100;
|
moveChance = 100;
|
||||||
}
|
}
|
||||||
@ -4785,7 +4786,7 @@ export class AddArenaTrapTagHitAttr extends AddArenaTagAttr {
|
|||||||
* @param move {@linkcode Move} being used
|
* @param move {@linkcode Move} being used
|
||||||
*/
|
*/
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
const moveChance = this.getMoveChance(user,target,move,this.selfTarget, true);
|
const moveChance = this.getMoveChance(user, target, move, this.selfTarget, true);
|
||||||
const side = (this.selfSideTarget ? user : target).isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY;
|
const side = (this.selfSideTarget ? user : target).isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY;
|
||||||
const tag = user.scene.arena.getTagOnSide(this.tagType, side) as ArenaTrapTag;
|
const tag = user.scene.arena.getTagOnSide(this.tagType, side) as ArenaTrapTag;
|
||||||
if ((moveChance < 0 || moveChance === 100 || user.randSeedInt(100) < moveChance) && user.getLastXMoves(1)[0].result === MoveResult.SUCCESS) {
|
if ((moveChance < 0 || moveChance === 100 || user.randSeedInt(100) < moveChance) && user.getLastXMoves(1)[0].result === MoveResult.SUCCESS) {
|
||||||
@ -4905,7 +4906,7 @@ export class SwapArenaTagsAttr extends MoveEffectAttr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
user.scene.queueMessage( i18next.t("moveTriggers:swapArenaTags", {pokemonName: getPokemonNameWithAffix(user)}));
|
user.scene.queueMessage(i18next.t("moveTriggers:swapArenaTags", {pokemonName: getPokemonNameWithAffix(user)}));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4946,14 +4947,14 @@ export class RevivalBlessingAttr extends MoveEffectAttr {
|
|||||||
const slotIndex = user.scene.getEnemyParty().findIndex(p => pokemon.id === p.id);
|
const slotIndex = user.scene.getEnemyParty().findIndex(p => pokemon.id === p.id);
|
||||||
pokemon.resetStatus();
|
pokemon.resetStatus();
|
||||||
pokemon.heal(Math.min(Utils.toDmgValue(0.5 * pokemon.getMaxHp()), pokemon.getMaxHp()));
|
pokemon.heal(Math.min(Utils.toDmgValue(0.5 * pokemon.getMaxHp()), pokemon.getMaxHp()));
|
||||||
user.scene.queueMessage(`${getPokemonNameWithAffix(pokemon)} was revived!`,0,true);
|
user.scene.queueMessage(i18next.t("moveTriggers:revivalBlessing", {pokemonName: getPokemonNameWithAffix(pokemon)}), 0, true);
|
||||||
|
|
||||||
if (user.scene.currentBattle.double && user.scene.getEnemyParty().length > 1) {
|
if (user.scene.currentBattle.double && user.scene.getEnemyParty().length > 1) {
|
||||||
const allyPokemon = user.getAlly();
|
const allyPokemon = user.getAlly();
|
||||||
if (slotIndex<=1) {
|
if (slotIndex<=1) {
|
||||||
user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, pokemon.getFieldIndex(), slotIndex, false, false, false));
|
user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, pokemon.getFieldIndex(), slotIndex, false, false, false));
|
||||||
} else if (allyPokemon.isFainted()) {
|
} else if (allyPokemon.isFainted()) {
|
||||||
user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, allyPokemon.getFieldIndex(), slotIndex, false, false,false));
|
user.scene.unshiftPhase(new SwitchSummonPhase(user.scene, allyPokemon.getFieldIndex(), slotIndex, false, false, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resolve(true);
|
resolve(true);
|
||||||
@ -5739,8 +5740,10 @@ export class AbilityChangeAttr extends MoveEffectAttr {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const moveTarget = this.selfTarget ? user : target;
|
||||||
const pokemon: Pokemon = this.selfTarget ? user : target;
|
const pokemon: Pokemon = this.selfTarget ? user : target;
|
||||||
pokemon.summonData.ability = this.ability;
|
pokemon.summonData.ability = this.ability;
|
||||||
|
user.scene.triggerPokemonFormChange(moveTarget, SpeciesFormChangeRevertWeatherFormTrigger);
|
||||||
if (pokemon.breakIllusion()) {
|
if (pokemon.breakIllusion()) {
|
||||||
pokemon.scene.queueMessage(i18next.t("abilityTriggers:illusionBreak", { pokemonName: getPokemonNameWithAffix(pokemon) }));
|
pokemon.scene.queueMessage(i18next.t("abilityTriggers:illusionBreak", { pokemonName: getPokemonNameWithAffix(pokemon) }));
|
||||||
}
|
}
|
||||||
@ -5827,6 +5830,10 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr {
|
|||||||
target.summonData.ability = tempAbilityId;
|
target.summonData.ability = tempAbilityId;
|
||||||
|
|
||||||
user.scene.queueMessage(i18next.t("moveTriggers:swappedAbilitiesWithTarget", {pokemonName: getPokemonNameWithAffix(user)}));
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
@ -5852,6 +5859,7 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
target.summonData.abilitySuppressed = true;
|
target.summonData.abilitySuppressed = true;
|
||||||
|
target.scene.arena.triggerWeatherBasedFormChangesToNormal();
|
||||||
|
|
||||||
target.scene.queueMessage(i18next.t("moveTriggers:suppressAbilities", {pokemonName: getPokemonNameWithAffix(target)}));
|
target.scene.queueMessage(i18next.t("moveTriggers:suppressAbilities", {pokemonName: getPokemonNameWithAffix(target)}));
|
||||||
|
|
||||||
@ -7837,9 +7845,9 @@ export function initMoves() {
|
|||||||
.condition((user, target, move) => user.battleData.berriesEaten.length > 0),
|
.condition((user, target, move) => user.battleData.berriesEaten.length > 0),
|
||||||
new StatusMove(Moves.ROTOTILLER, Type.GROUND, -1, 10, -1, 0, 6)
|
new StatusMove(Moves.ROTOTILLER, Type.GROUND, -1, 10, -1, 0, 6)
|
||||||
.target(MoveTarget.ALL)
|
.target(MoveTarget.ALL)
|
||||||
.condition((user,target,move) => {
|
.condition((user, target, move) => {
|
||||||
// If any fielded pokémon is grass-type and grounded.
|
// If any fielded pokémon is grass-type and grounded.
|
||||||
return [...user.scene.getEnemyParty(),...user.scene.getParty()].some((poke) => poke.isOfType(Type.GRASS) && poke.isGrounded());
|
return [...user.scene.getEnemyParty(), ...user.scene.getParty()].some((poke) => poke.isOfType(Type.GRASS) && poke.isGrounded());
|
||||||
})
|
})
|
||||||
.attr(StatChangeAttr, [BattleStat.ATK, BattleStat.SPATK], 1, false, (user, target, move) => target.isOfType(Type.GRASS) && target.isGrounded()),
|
.attr(StatChangeAttr, [BattleStat.ATK, BattleStat.SPATK], 1, false, (user, target, move) => target.isOfType(Type.GRASS) && target.isGrounded()),
|
||||||
new StatusMove(Moves.STICKY_WEB, Type.BUG, -1, 20, -1, 0, 6)
|
new StatusMove(Moves.STICKY_WEB, Type.BUG, -1, 20, -1, 0, 6)
|
||||||
@ -8589,7 +8597,7 @@ export function initMoves() {
|
|||||||
.condition(failIfDampCondition)
|
.condition(failIfDampCondition)
|
||||||
.makesContact(false),
|
.makesContact(false),
|
||||||
new AttackMove(Moves.GRASSY_GLIDE, Type.GRASS, MoveCategory.PHYSICAL, 55, 100, 20, -1, 0, 8)
|
new AttackMove(Moves.GRASSY_GLIDE, Type.GRASS, MoveCategory.PHYSICAL, 55, 100, 20, -1, 0, 8)
|
||||||
.attr(IncrementMovePriorityAttr,(user,target,move) =>user.scene.arena.getTerrainType()===TerrainType.GRASSY&&user.isGrounded()),
|
.attr(IncrementMovePriorityAttr, (user, target, move) =>user.scene.arena.getTerrainType()===TerrainType.GRASSY&&user.isGrounded()),
|
||||||
new AttackMove(Moves.RISING_VOLTAGE, Type.ELECTRIC, MoveCategory.SPECIAL, 70, 100, 20, -1, 0, 8)
|
new AttackMove(Moves.RISING_VOLTAGE, Type.ELECTRIC, MoveCategory.SPECIAL, 70, 100, 20, -1, 0, 8)
|
||||||
.attr(MovePowerMultiplierAttr, (user, target, move) => user.scene.arena.getTerrainType() === TerrainType.ELECTRIC && target.isGrounded() ? 2 : 1),
|
.attr(MovePowerMultiplierAttr, (user, target, move) => user.scene.arena.getTerrainType() === TerrainType.ELECTRIC && target.isGrounded() ? 2 : 1),
|
||||||
new AttackMove(Moves.TERRAIN_PULSE, Type.NORMAL, MoveCategory.SPECIAL, 50, 100, 10, -1, 0, 8)
|
new AttackMove(Moves.TERRAIN_PULSE, Type.NORMAL, MoveCategory.SPECIAL, 50, 100, 10, -1, 0, 8)
|
||||||
|
@ -10,6 +10,7 @@ import { Species } from "#enums/species";
|
|||||||
import { TimeOfDay } from "#enums/time-of-day";
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
import { getPokemonNameWithAffix } from "#app/messages.js";
|
import { getPokemonNameWithAffix } from "#app/messages.js";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
import { WeatherType } from "./weather";
|
||||||
|
|
||||||
export enum FormChangeItem {
|
export enum FormChangeItem {
|
||||||
NONE,
|
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 {
|
export function getSpeciesFormChangeMessage(pokemon: Pokemon, formChange: SpeciesFormChange, preName: string): string {
|
||||||
const isMega = formChange.formKey.indexOf(SpeciesFormKey.MEGA) > -1;
|
const isMega = formChange.formKey.indexOf(SpeciesFormKey.MEGA) > -1;
|
||||||
const isGmax = formChange.formKey.indexOf(SpeciesFormKey.GIGANTAMAX) > -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, "gorging", "", new SpeciesFormChangeManualTrigger, true),
|
||||||
new SpeciesFormChange(Species.CRAMORANT, "gulping", "", new SpeciesFormChangeActiveTrigger(false), true),
|
new SpeciesFormChange(Species.CRAMORANT, "gulping", "", new SpeciesFormChangeActiveTrigger(false), true),
|
||||||
new SpeciesFormChange(Species.CRAMORANT, "gorging", "", 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() {
|
export function initPokemonForms() {
|
||||||
|
@ -3,7 +3,7 @@ import BattleScene, { AnySound } from "../battle-scene";
|
|||||||
import { Variant, variantColorCache } from "./variant";
|
import { Variant, variantColorCache } from "./variant";
|
||||||
import { variantData } from "./variant";
|
import { variantData } from "./variant";
|
||||||
import { GrowthRate } from "./exp";
|
import { GrowthRate } from "./exp";
|
||||||
import { EvolutionLevel,SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from "./pokemon-evolutions";
|
import { EvolutionLevel, SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from "./pokemon-evolutions";
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves";
|
import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves";
|
||||||
import { uncatchableSpecies } from "./biomes";
|
import { uncatchableSpecies } from "./biomes";
|
||||||
@ -2581,7 +2581,7 @@ export function initSpecies() {
|
|||||||
),
|
),
|
||||||
new PokemonSpecies(Species.WALKING_WAKE, 9, false, false, false, "Paradox Pokémon", Type.WATER, Type.DRAGON, 3.5, 280, Abilities.PROTOSYNTHESIS, Abilities.NONE, Abilities.NONE, 590, 99, 83, 91, 125, 83, 109, 5, 0, 295, GrowthRate.SLOW, null, false),
|
new PokemonSpecies(Species.WALKING_WAKE, 9, false, false, false, "Paradox Pokémon", Type.WATER, Type.DRAGON, 3.5, 280, Abilities.PROTOSYNTHESIS, Abilities.NONE, Abilities.NONE, 590, 99, 83, 91, 125, 83, 109, 5, 0, 295, GrowthRate.SLOW, null, false),
|
||||||
new PokemonSpecies(Species.IRON_LEAVES, 9, false, false, false, "Paradox Pokémon", Type.GRASS, Type.PSYCHIC, 1.5, 125, Abilities.QUARK_DRIVE, Abilities.NONE, Abilities.NONE, 590, 90, 130, 88, 70, 108, 104, 5, 0, 295, GrowthRate.SLOW, null, false),
|
new PokemonSpecies(Species.IRON_LEAVES, 9, false, false, false, "Paradox Pokémon", Type.GRASS, Type.PSYCHIC, 1.5, 125, Abilities.QUARK_DRIVE, Abilities.NONE, Abilities.NONE, 590, 90, 130, 88, 70, 108, 104, 5, 0, 295, GrowthRate.SLOW, null, false),
|
||||||
new PokemonSpecies(Species.DIPPLIN, 9, false, false, false, "Candy Apple Pokémon", Type.GRASS, Type.DRAGON, 0.4, 9.7, Abilities.SUPERSWEET_SYRUP, Abilities.GLUTTONY, Abilities.STICKY_HOLD, 485, 80, 80, 110, 95, 80, 40, 45, 50, 170, GrowthRate.ERRATIC, null, false),
|
new PokemonSpecies(Species.DIPPLIN, 9, false, false, false, "Candy Apple Pokémon", Type.GRASS, Type.DRAGON, 0.4, 9.7, Abilities.SUPERSWEET_SYRUP, Abilities.GLUTTONY, Abilities.STICKY_HOLD, 485, 80, 80, 110, 95, 80, 40, 45, 50, 170, GrowthRate.ERRATIC, 50, false),
|
||||||
new PokemonSpecies(Species.POLTCHAGEIST, 9, false, false, false, "Matcha Pokémon", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, GrowthRate.SLOW, null, false, false,
|
new PokemonSpecies(Species.POLTCHAGEIST, 9, false, false, false, "Matcha Pokémon", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, GrowthRate.SLOW, null, false, false,
|
||||||
new PokemonForm("Counterfeit Form", "counterfeit", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true),
|
new PokemonForm("Counterfeit Form", "counterfeit", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true),
|
||||||
new PokemonForm("Artisan Form", "artisan", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true),
|
new PokemonForm("Artisan Form", "artisan", Type.GRASS, Type.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true),
|
||||||
@ -3317,6 +3317,28 @@ export function getStarterValueFriendshipCap(value: integer): integer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get the daily list of starters with Pokerus.
|
||||||
|
* @param scene {@linkcode BattleScene} used as part of RNG
|
||||||
|
* @returns A list of starters with Pokerus
|
||||||
|
*/
|
||||||
|
export function getPokerusStarters(scene: BattleScene): PokemonSpecies[] {
|
||||||
|
const pokerusStarters: PokemonSpecies[] = [];
|
||||||
|
const date = new Date();
|
||||||
|
const starterCount = 3; //for easy future adjustment!
|
||||||
|
date.setUTCHours(0, 0, 0, 0);
|
||||||
|
scene.executeWithSeedOffset(() => {
|
||||||
|
while (pokerusStarters.length < starterCount) {
|
||||||
|
const randomSpeciesId = parseInt(Utils.randSeedItem(Object.keys(speciesStarters)), 10);
|
||||||
|
const species = getPokemonSpecies(randomSpeciesId);
|
||||||
|
if (!pokerusStarters.includes(species)) {
|
||||||
|
pokerusStarters.push(species);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 0, date.getTime().toString());
|
||||||
|
return pokerusStarters;
|
||||||
|
}
|
||||||
|
|
||||||
export const starterPassiveAbilities = {
|
export const starterPassiveAbilities = {
|
||||||
[Species.BULBASAUR]: Abilities.GRASSY_SURGE,
|
[Species.BULBASAUR]: Abilities.GRASSY_SURGE,
|
||||||
[Species.CHARMANDER]: Abilities.BEAST_BOOST,
|
[Species.CHARMANDER]: Abilities.BEAST_BOOST,
|
||||||
|
@ -47576,6 +47576,7 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.PIGNITE,
|
Species.PIGNITE,
|
||||||
Species.EMBOAR,
|
Species.EMBOAR,
|
||||||
Species.PANSEAR,
|
Species.PANSEAR,
|
||||||
|
Species.SIMISEAR,
|
||||||
Species.DARUMAKA,
|
Species.DARUMAKA,
|
||||||
Species.DARMANITAN,
|
Species.DARMANITAN,
|
||||||
Species.LITWICK,
|
Species.LITWICK,
|
||||||
@ -47617,6 +47618,7 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.CHI_YU,
|
Species.CHI_YU,
|
||||||
Species.KORAIDON,
|
Species.KORAIDON,
|
||||||
Species.GOUGING_FIRE,
|
Species.GOUGING_FIRE,
|
||||||
|
Species.TERAPAGOS,
|
||||||
Species.ALOLA_MAROWAK,
|
Species.ALOLA_MAROWAK,
|
||||||
Species.GALAR_DARUMAKA,
|
Species.GALAR_DARUMAKA,
|
||||||
Species.GALAR_DARMANITAN,
|
Species.GALAR_DARMANITAN,
|
||||||
@ -50733,6 +50735,7 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.KECLEON,
|
Species.KECLEON,
|
||||||
Species.SHUPPET,
|
Species.SHUPPET,
|
||||||
Species.BANETTE,
|
Species.BANETTE,
|
||||||
|
Species.DEOXYS,
|
||||||
Species.CHIMCHAR,
|
Species.CHIMCHAR,
|
||||||
Species.MONFERNO,
|
Species.MONFERNO,
|
||||||
Species.INFERNAPE,
|
Species.INFERNAPE,
|
||||||
@ -50761,8 +50764,11 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.PURRLOIN,
|
Species.PURRLOIN,
|
||||||
Species.LIEPARD,
|
Species.LIEPARD,
|
||||||
Species.PANSAGE,
|
Species.PANSAGE,
|
||||||
|
Species.SIMISAGE,
|
||||||
Species.PANSEAR,
|
Species.PANSEAR,
|
||||||
|
Species.SIMISEAR,
|
||||||
Species.PANPOUR,
|
Species.PANPOUR,
|
||||||
|
Species.SIMIPOUR,
|
||||||
Species.WOOBAT,
|
Species.WOOBAT,
|
||||||
Species.SWOOBAT,
|
Species.SWOOBAT,
|
||||||
Species.YAMASK,
|
Species.YAMASK,
|
||||||
@ -55614,8 +55620,14 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.HISUI_DECIDUEYE,
|
Species.HISUI_DECIDUEYE,
|
||||||
],
|
],
|
||||||
[Moves.ACID_SPRAY]: [
|
[Moves.ACID_SPRAY]: [
|
||||||
|
Species.BULBASAUR,
|
||||||
|
Species.IVYSAUR,
|
||||||
|
Species.VENUSAUR,
|
||||||
Species.EKANS,
|
Species.EKANS,
|
||||||
Species.ARBOK,
|
Species.ARBOK,
|
||||||
|
Species.ODDISH,
|
||||||
|
Species.GLOOM,
|
||||||
|
Species.VILEPLUME,
|
||||||
Species.VENONAT,
|
Species.VENONAT,
|
||||||
Species.VENOMOTH,
|
Species.VENOMOTH,
|
||||||
Species.BELLSPROUT,
|
Species.BELLSPROUT,
|
||||||
@ -55630,13 +55642,17 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.GENGAR,
|
Species.GENGAR,
|
||||||
Species.KOFFING,
|
Species.KOFFING,
|
||||||
Species.WEEZING,
|
Species.WEEZING,
|
||||||
|
Species.MAGMAR,
|
||||||
Species.MEW,
|
Species.MEW,
|
||||||
Species.SPINARAK,
|
Species.SPINARAK,
|
||||||
Species.ARIADOS,
|
Species.ARIADOS,
|
||||||
|
Species.BELLOSSOM,
|
||||||
Species.WOOPER,
|
Species.WOOPER,
|
||||||
Species.QUAGSIRE,
|
Species.QUAGSIRE,
|
||||||
Species.QWILFISH,
|
Species.QWILFISH,
|
||||||
Species.REMORAID,
|
Species.REMORAID,
|
||||||
|
Species.OCTILLERY,
|
||||||
|
Species.MAGBY,
|
||||||
Species.GULPIN,
|
Species.GULPIN,
|
||||||
Species.SWALOT,
|
Species.SWALOT,
|
||||||
Species.SEVIPER,
|
Species.SEVIPER,
|
||||||
@ -55645,13 +55661,16 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.CROAGUNK,
|
Species.CROAGUNK,
|
||||||
Species.TOXICROAK,
|
Species.TOXICROAK,
|
||||||
Species.CARNIVINE,
|
Species.CARNIVINE,
|
||||||
|
Species.MAGMORTAR,
|
||||||
Species.ARCEUS,
|
Species.ARCEUS,
|
||||||
Species.SCRAGGY,
|
Species.SCRAGGY,
|
||||||
|
Species.SCRAFTY,
|
||||||
Species.TRUBBISH,
|
Species.TRUBBISH,
|
||||||
Species.GARBODOR,
|
Species.GARBODOR,
|
||||||
Species.KARRABLAST,
|
Species.KARRABLAST,
|
||||||
Species.ESCAVALIER,
|
Species.ESCAVALIER,
|
||||||
Species.FERROSEED,
|
Species.FERROSEED,
|
||||||
|
Species.FERROTHORN,
|
||||||
Species.EELEKTRIK,
|
Species.EELEKTRIK,
|
||||||
Species.EELEKTROSS,
|
Species.EELEKTROSS,
|
||||||
Species.ACCELGOR,
|
Species.ACCELGOR,
|
||||||
@ -55667,6 +55686,7 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.FLAPPLE,
|
Species.FLAPPLE,
|
||||||
Species.TOXTRICITY,
|
Species.TOXTRICITY,
|
||||||
Species.SNEASLER,
|
Species.SNEASLER,
|
||||||
|
Species.OVERQWIL,
|
||||||
Species.ARMAROUGE,
|
Species.ARMAROUGE,
|
||||||
Species.TADBULB,
|
Species.TADBULB,
|
||||||
Species.BELLIBOLT,
|
Species.BELLIBOLT,
|
||||||
@ -60261,6 +60281,7 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.CHIMECHO,
|
Species.CHIMECHO,
|
||||||
Species.GOREBYSS,
|
Species.GOREBYSS,
|
||||||
Species.LUVDISC,
|
Species.LUVDISC,
|
||||||
|
Species.LATIAS,
|
||||||
Species.CHERUBI,
|
Species.CHERUBI,
|
||||||
Species.CHERRIM,
|
Species.CHERRIM,
|
||||||
Species.MISMAGIUS,
|
Species.MISMAGIUS,
|
||||||
@ -63878,6 +63899,8 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.ALAKAZAM,
|
Species.ALAKAZAM,
|
||||||
Species.SLOWPOKE,
|
Species.SLOWPOKE,
|
||||||
Species.SLOWBRO,
|
Species.SLOWBRO,
|
||||||
|
Species.DROWZEE,
|
||||||
|
Species.HYPNO,
|
||||||
Species.EXEGGUTOR,
|
Species.EXEGGUTOR,
|
||||||
Species.STARMIE,
|
Species.STARMIE,
|
||||||
Species.MR_MIME,
|
Species.MR_MIME,
|
||||||
@ -63888,12 +63911,18 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.XATU,
|
Species.XATU,
|
||||||
Species.ESPEON,
|
Species.ESPEON,
|
||||||
Species.SLOWKING,
|
Species.SLOWKING,
|
||||||
|
Species.GIRAFARIG,
|
||||||
Species.CELEBI,
|
Species.CELEBI,
|
||||||
Species.RALTS,
|
Species.RALTS,
|
||||||
Species.KIRLIA,
|
Species.KIRLIA,
|
||||||
Species.GARDEVOIR,
|
Species.GARDEVOIR,
|
||||||
|
Species.MEDITITE,
|
||||||
|
Species.MEDICHAM,
|
||||||
|
Species.SPOINK,
|
||||||
|
Species.GRUMPIG,
|
||||||
Species.BALTOY,
|
Species.BALTOY,
|
||||||
Species.CLAYDOL,
|
Species.CLAYDOL,
|
||||||
|
Species.CHIMECHO,
|
||||||
Species.METANG,
|
Species.METANG,
|
||||||
Species.METAGROSS,
|
Species.METAGROSS,
|
||||||
Species.JIRACHI,
|
Species.JIRACHI,
|
||||||
@ -63920,11 +63949,14 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.REUNICLUS,
|
Species.REUNICLUS,
|
||||||
Species.ELGYEM,
|
Species.ELGYEM,
|
||||||
Species.BEHEEYEM,
|
Species.BEHEEYEM,
|
||||||
|
Species.DELPHOX,
|
||||||
Species.ESPURR,
|
Species.ESPURR,
|
||||||
Species.MEOWSTIC,
|
Species.MEOWSTIC,
|
||||||
Species.INKAY,
|
Species.INKAY,
|
||||||
Species.MALAMAR,
|
Species.MALAMAR,
|
||||||
|
Species.HOOPA,
|
||||||
Species.ORANGURU,
|
Species.ORANGURU,
|
||||||
|
Species.BRUXISH,
|
||||||
Species.SOLGALEO,
|
Species.SOLGALEO,
|
||||||
Species.LUNALA,
|
Species.LUNALA,
|
||||||
Species.NECROZMA,
|
Species.NECROZMA,
|
||||||
@ -63954,6 +63986,7 @@ export const tmSpecies: TmSpecies = {
|
|||||||
Species.GALAR_MR_MIME,
|
Species.GALAR_MR_MIME,
|
||||||
Species.GALAR_ARTICUNO,
|
Species.GALAR_ARTICUNO,
|
||||||
Species.GALAR_SLOWKING,
|
Species.GALAR_SLOWKING,
|
||||||
|
Species.HISUI_BRAVIARY,
|
||||||
],
|
],
|
||||||
[Moves.STEEL_ROLLER]: [
|
[Moves.STEEL_ROLLER]: [
|
||||||
Species.SANDSHREW,
|
Species.SANDSHREW,
|
||||||
|
@ -1577,11 +1577,11 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
})),
|
})),
|
||||||
|
|
||||||
[TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL)
|
[TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL)
|
||||||
.setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE, () => modifierTypes.SHINY_CHARM, () => modifierTypes.ABILITY_CHARM)
|
.setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE)
|
||||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY], TrainerSlot.TRAINER, true))
|
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY], TrainerSlot.TRAINER, true))
|
||||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL], TrainerSlot.TRAINER, true)),
|
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL], TrainerSlot.TRAINER, true)),
|
||||||
[TrainerType.RIVAL_2]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_2)
|
[TrainerType.RIVAL_2]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_2)
|
||||||
.setModifierRewardFuncs(() => modifierTypes.EXP_SHARE, () => modifierTypes.SHINY_CHARM)
|
.setModifierRewardFuncs(() => modifierTypes.EXP_SHARE)
|
||||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL], TrainerSlot.TRAINER, true))
|
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL], TrainerSlot.TRAINER, true))
|
||||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL], TrainerSlot.TRAINER, true))
|
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL], TrainerSlot.TRAINER, true))
|
||||||
.setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)),
|
.setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)),
|
||||||
|
@ -75,56 +75,56 @@ const trainerNameConfigs: TrainerNameConfigs = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const trainerNamePools = {
|
export const trainerNamePools = {
|
||||||
[TrainerType.ACE_TRAINER]: [["Aaron","Allen","Blake","Brian","Gaven","Jake","Kevin","Mike","Nick","Paul","Ryan","Sean","Darin","Albert","Berke","Clyde","Edgar","George","Leroy","Owen","Parker","Randall","Ruben","Samuel","Vincent","Warren","Wilton","Zane","Alfred","Braxton","Felix","Gerald","Jonathan","Leonel","Marcel","Mitchell","Quincy","Roderick","Colby","Rolando","Yuji","Abel","Anton","Arthur","Cesar","Dalton","Dennis","Ernest","Garrett","Graham","Henry","Isaiah","Jonah","Jose","Keenan","Micah","Omar","Quinn","Rodolfo","Saul","Sergio","Skylar","Stefan","Zachery","Alton","Arabella","Bonita","Cal","Cody","French","Kobe","Paulo","Shaye","Austin","Beckett","Charlie","Corky","David","Dwayne","Elmer","Jesse","Jared","Johan","Jordan","Kipp","Lou","Terry","Tom","Webster","Billy","Doyle","Enzio","Geoff","Grant","Kelsey","Miguel","Pierce","Ray","Santino","Shel","Adelbert","Bence","Emil","Evan","Mathis","Maxim","Neil","Rico","Robbie","Theo","Viktor","Benedict","Cornelius","Hisato","Leopold","Neville","Vito","Chase","Cole","Hiroshi","Jackson","Jim","Kekoa","Makana","Yuki","Elwood","Seth","Alvin","Arjun","Arnold","Cameron","Carl","Carlton","Christopher","Dave","Dax","Dominic","Edmund","Finn","Fred","Garret","Grayson","Jace","Jaxson","Jay","Jirard","Johnson","Kayden","Kite","Louis","Mac","Marty","Percy","Raymond","Ronnie","Satch","Tim","Zach","Conner","Vince","Bedro","Boda","Botan","Daras","Dury","Herton","Rewn","Stum","Tock","Trilo","Berki","Cruik","Dazon","Desid","Dillot","Farfin","Forgon","Hebel","Morfon","Moril","Shadd","Vanhub","Bardo","Carben","Degin","Gorps","Klept","Lask","Malex","Mopar","Niled","Noxon","Teslor","Tetil"],["Beth","Carol","Cybil","Emma","Fran","Gwen","Irene","Jenn","Joyce","Kate","Kelly","Lois","Lola","Megan","Quinn","Reena","Cara","Alexa","Brooke","Caroline","Elaine","Hope","Jennifer","Jody","Julie","Lori","Mary","Michelle","Shannon","Wendy","Alexia","Alicia","Athena","Carolina","Cristin","Darcy","Dianne","Halle","Jazmyn","Katelynn","Keira","Marley","Allyson","Kathleen","Naomi","Alyssa","Ariana","Brandi","Breanna","Brenda","Brenna","Catherine","Clarice","Dana","Deanna","Destiny","Jamie","Jasmin","Kassandra","Laura","Maria","Mariah","Maya","Meagan","Mikayla","Monique","Natasha","Olivia","Sandra","Savannah","Sydney","Moira","Piper","Salma","Allison","Beverly","Cathy","Cheyenne","Clara","Dara","Eileen","Glinda","Junko","Lena","Lucille","Mariana","Olwen","Shanta","Stella","Angi","Belle","Chandra","Cora","Eve","Jacqueline","Jeanne","Juliet","Kathrine","Layla","Lucca","Melina","Miki","Nina","Sable","Shelly","Summer","Trish","Vicki","Alanza","Cordelia","Hilde","Imelda","Michele","Mireille","Claudia","Constance","Harriet","Honor","Melba","Portia","Alexis","Angela","Karla","Lindsey","Tori","Sheri","Jada","Kailee","Amanda","Annie","Kindra","Kyla","Sofia","Yvette","Becky","Flora","Gloria","Buna","Ferda","Lehan","Liqui","Lomen","Neira","Atilo","Detta","Gilly","Gosney","Levens","Moden","Rask","Rateis","Rosno","Tynan","Veron","Zoel","Cida","Dibsin","Dodin","Ebson","Equin","Flostin","Gabsen","Halsion","Hileon","Quelor","Rapeel","Roze","Tensin"]],
|
[TrainerType.ACE_TRAINER]: [["Aaron", "Allen", "Blake", "Brian", "Gaven", "Jake", "Kevin", "Mike", "Nick", "Paul", "Ryan", "Sean", "Darin", "Albert", "Berke", "Clyde", "Edgar", "George", "Leroy", "Owen", "Parker", "Randall", "Ruben", "Samuel", "Vincent", "Warren", "Wilton", "Zane", "Alfred", "Braxton", "Felix", "Gerald", "Jonathan", "Leonel", "Marcel", "Mitchell", "Quincy", "Roderick", "Colby", "Rolando", "Yuji", "Abel", "Anton", "Arthur", "Cesar", "Dalton", "Dennis", "Ernest", "Garrett", "Graham", "Henry", "Isaiah", "Jonah", "Jose", "Keenan", "Micah", "Omar", "Quinn", "Rodolfo", "Saul", "Sergio", "Skylar", "Stefan", "Zachery", "Alton", "Arabella", "Bonita", "Cal", "Cody", "French", "Kobe", "Paulo", "Shaye", "Austin", "Beckett", "Charlie", "Corky", "David", "Dwayne", "Elmer", "Jesse", "Jared", "Johan", "Jordan", "Kipp", "Lou", "Terry", "Tom", "Webster", "Billy", "Doyle", "Enzio", "Geoff", "Grant", "Kelsey", "Miguel", "Pierce", "Ray", "Santino", "Shel", "Adelbert", "Bence", "Emil", "Evan", "Mathis", "Maxim", "Neil", "Rico", "Robbie", "Theo", "Viktor", "Benedict", "Cornelius", "Hisato", "Leopold", "Neville", "Vito", "Chase", "Cole", "Hiroshi", "Jackson", "Jim", "Kekoa", "Makana", "Yuki", "Elwood", "Seth", "Alvin", "Arjun", "Arnold", "Cameron", "Carl", "Carlton", "Christopher", "Dave", "Dax", "Dominic", "Edmund", "Finn", "Fred", "Garret", "Grayson", "Jace", "Jaxson", "Jay", "Jirard", "Johnson", "Kayden", "Kite", "Louis", "Mac", "Marty", "Percy", "Raymond", "Ronnie", "Satch", "Tim", "Zach", "Conner", "Vince", "Bedro", "Boda", "Botan", "Daras", "Dury", "Herton", "Rewn", "Stum", "Tock", "Trilo", "Berki", "Cruik", "Dazon", "Desid", "Dillot", "Farfin", "Forgon", "Hebel", "Morfon", "Moril", "Shadd", "Vanhub", "Bardo", "Carben", "Degin", "Gorps", "Klept", "Lask", "Malex", "Mopar", "Niled", "Noxon", "Teslor", "Tetil"], ["Beth", "Carol", "Cybil", "Emma", "Fran", "Gwen", "Irene", "Jenn", "Joyce", "Kate", "Kelly", "Lois", "Lola", "Megan", "Quinn", "Reena", "Cara", "Alexa", "Brooke", "Caroline", "Elaine", "Hope", "Jennifer", "Jody", "Julie", "Lori", "Mary", "Michelle", "Shannon", "Wendy", "Alexia", "Alicia", "Athena", "Carolina", "Cristin", "Darcy", "Dianne", "Halle", "Jazmyn", "Katelynn", "Keira", "Marley", "Allyson", "Kathleen", "Naomi", "Alyssa", "Ariana", "Brandi", "Breanna", "Brenda", "Brenna", "Catherine", "Clarice", "Dana", "Deanna", "Destiny", "Jamie", "Jasmin", "Kassandra", "Laura", "Maria", "Mariah", "Maya", "Meagan", "Mikayla", "Monique", "Natasha", "Olivia", "Sandra", "Savannah", "Sydney", "Moira", "Piper", "Salma", "Allison", "Beverly", "Cathy", "Cheyenne", "Clara", "Dara", "Eileen", "Glinda", "Junko", "Lena", "Lucille", "Mariana", "Olwen", "Shanta", "Stella", "Angi", "Belle", "Chandra", "Cora", "Eve", "Jacqueline", "Jeanne", "Juliet", "Kathrine", "Layla", "Lucca", "Melina", "Miki", "Nina", "Sable", "Shelly", "Summer", "Trish", "Vicki", "Alanza", "Cordelia", "Hilde", "Imelda", "Michele", "Mireille", "Claudia", "Constance", "Harriet", "Honor", "Melba", "Portia", "Alexis", "Angela", "Karla", "Lindsey", "Tori", "Sheri", "Jada", "Kailee", "Amanda", "Annie", "Kindra", "Kyla", "Sofia", "Yvette", "Becky", "Flora", "Gloria", "Buna", "Ferda", "Lehan", "Liqui", "Lomen", "Neira", "Atilo", "Detta", "Gilly", "Gosney", "Levens", "Moden", "Rask", "Rateis", "Rosno", "Tynan", "Veron", "Zoel", "Cida", "Dibsin", "Dodin", "Ebson", "Equin", "Flostin", "Gabsen", "Halsion", "Hileon", "Quelor", "Rapeel", "Roze", "Tensin"]],
|
||||||
[TrainerType.ARTIST]: [["Ismael","William","Horton","Pierre","Zach","Gough","Salvador","Vincent","Duncan"],["Georgia"]],
|
[TrainerType.ARTIST]: [["Ismael", "William", "Horton", "Pierre", "Zach", "Gough", "Salvador", "Vincent", "Duncan"], ["Georgia"]],
|
||||||
[TrainerType.BACKERS]: [["Alf & Fred","Hawk & Dar","Joe & Ross","Les & Web","Masa & Yas","Stu & Art"],["Ai & Ciel","Ami & Eira","Cam & Abby","Fey & Sue","Kat & Phae","Kay & Ali","Ava & Aya","Cleo & Rio","May & Mal"]],
|
[TrainerType.BACKERS]: [["Alf & Fred", "Hawk & Dar", "Joe & Ross", "Les & Web", "Masa & Yas", "Stu & Art"], ["Ai & Ciel", "Ami & Eira", "Cam & Abby", "Fey & Sue", "Kat & Phae", "Kay & Ali", "Ava & Aya", "Cleo & Rio", "May & Mal"]],
|
||||||
[TrainerType.BACKPACKER]: [["Alexander","Carlos","Herman","Jerome","Keane","Kelsey","Kiyo","Michael","Nate","Peter","Sam","Stephen","Talon","Terrance","Toru","Waylon","Boone","Clifford","Ivan","Kendall","Lowell","Randall","Reece","Roland","Shane","Walt","Farid","Heike","Joren","Lane","Roderick","Darnell","Deon","Emory","Graeme","Grayson","Aitor","Alex","Arturo","Asier","Jaime","Jonathan","Julio","Kevin","Kosuke","Lander","Markel","Mateo","Nil","Pau","Samuel"],["Anna","Corin","Elaine","Emi","Jill","Kumiko","Liz","Lois","Lora","Molly","Patty","Ruth","Vicki","Annie","Blossom","Clara","Eileen","Mae","Myra","Rachel","Tami","Ashley","Mikiko","Kiana","Perdy","Maria","Yuho","Peren","Barbara","Diane"]],
|
[TrainerType.BACKPACKER]: [["Alexander", "Carlos", "Herman", "Jerome", "Keane", "Kelsey", "Kiyo", "Michael", "Nate", "Peter", "Sam", "Stephen", "Talon", "Terrance", "Toru", "Waylon", "Boone", "Clifford", "Ivan", "Kendall", "Lowell", "Randall", "Reece", "Roland", "Shane", "Walt", "Farid", "Heike", "Joren", "Lane", "Roderick", "Darnell", "Deon", "Emory", "Graeme", "Grayson", "Aitor", "Alex", "Arturo", "Asier", "Jaime", "Jonathan", "Julio", "Kevin", "Kosuke", "Lander", "Markel", "Mateo", "Nil", "Pau", "Samuel"], ["Anna", "Corin", "Elaine", "Emi", "Jill", "Kumiko", "Liz", "Lois", "Lora", "Molly", "Patty", "Ruth", "Vicki", "Annie", "Blossom", "Clara", "Eileen", "Mae", "Myra", "Rachel", "Tami", "Ashley", "Mikiko", "Kiana", "Perdy", "Maria", "Yuho", "Peren", "Barbara", "Diane"]],
|
||||||
[TrainerType.BAKER]: ["Chris","Jenn","Lilly"],
|
[TrainerType.BAKER]: ["Chris", "Jenn", "Lilly"],
|
||||||
[TrainerType.BEAUTY]: ["Cassie","Julia","Olivia","Samantha","Valerie","Victoria","Bridget","Connie","Jessica","Johanna","Melissa","Sheila","Shirley","Tiffany","Namiko","Thalia","Grace","Lola","Lori","Maura","Tamia","Cyndy","Devon","Gabriella","Harley","Lindsay","Nicola","Callie","Charlotte","Kassandra","December","Fleming","Nikola","Aimee","Anais","Brigitte","Cassandra","Andrea","Brittney","Carolyn","Krystal","Alexis","Alice","Aina","Anya","Arianna","Aubrey","Beverly","Camille","Beauty","Evette","Hansol","Haruka","Jill","Jo","Lana","Lois","Lucy","Mai","Nickie","Nicole","Prita","Rose","Shelly","Suzy","Tessa","Anita","Alissa","Rita","Cudsy","Eloff","Miru","Minot","Nevah","Niven","Ogoin"],
|
[TrainerType.BEAUTY]: ["Cassie", "Julia", "Olivia", "Samantha", "Valerie", "Victoria", "Bridget", "Connie", "Jessica", "Johanna", "Melissa", "Sheila", "Shirley", "Tiffany", "Namiko", "Thalia", "Grace", "Lola", "Lori", "Maura", "Tamia", "Cyndy", "Devon", "Gabriella", "Harley", "Lindsay", "Nicola", "Callie", "Charlotte", "Kassandra", "December", "Fleming", "Nikola", "Aimee", "Anais", "Brigitte", "Cassandra", "Andrea", "Brittney", "Carolyn", "Krystal", "Alexis", "Alice", "Aina", "Anya", "Arianna", "Aubrey", "Beverly", "Camille", "Beauty", "Evette", "Hansol", "Haruka", "Jill", "Jo", "Lana", "Lois", "Lucy", "Mai", "Nickie", "Nicole", "Prita", "Rose", "Shelly", "Suzy", "Tessa", "Anita", "Alissa", "Rita", "Cudsy", "Eloff", "Miru", "Minot", "Nevah", "Niven", "Ogoin"],
|
||||||
[TrainerType.BIKER]: ["Charles","Dwayne","Glenn","Harris","Joel","Riley","Zeke","Alex","Billy","Ernest","Gerald","Hideo","Isaac","Jared","Jaren","Jaxon","Jordy","Lao","Lukas","Malik","Nikolas","Ricardo","Ruben","Virgil","William","Aiden","Dale","Dan","Jacob","Markey","Reese","Teddy","Theron","Jeremy","Morgann","Phillip","Philip","Stanley","Dillon"],
|
[TrainerType.BIKER]: ["Charles", "Dwayne", "Glenn", "Harris", "Joel", "Riley", "Zeke", "Alex", "Billy", "Ernest", "Gerald", "Hideo", "Isaac", "Jared", "Jaren", "Jaxon", "Jordy", "Lao", "Lukas", "Malik", "Nikolas", "Ricardo", "Ruben", "Virgil", "William", "Aiden", "Dale", "Dan", "Jacob", "Markey", "Reese", "Teddy", "Theron", "Jeremy", "Morgann", "Phillip", "Philip", "Stanley", "Dillon"],
|
||||||
[TrainerType.BLACK_BELT]: [["Kenji","Lao","Lung","Nob","Wai","Yoshi","Atsushi","Daisuke","Hideki","Hitoshi","Kiyo","Koichi","Koji","Yuji","Cristian","Rhett","Takao","Theodore","Zander","Aaron","Hugh","Mike","Nicolas","Shea","Takashi","Adam","Carl","Colby","Darren","David","Davon","Derek","Eddie","Gregory","Griffin","Jarrett","Jeffery","Kendal","Kyle","Luke","Miles","Nathaniel","Philip","Rafael","Ray","Ricky","Sean","Willie","Ander","Manford","Benjamin","Corey","Edward","Grant","Jay","Kendrew","Kentaro","Ryder","Teppei","Thomas","Tyrone","Andrey","Donny","Drago","Gordon","Grigor","Jeriel","Kenneth","Martell","Mathis","Rich","Rocky","Rodrigo","Wesley","Zachery","Alonzo","Cadoc","Gunnar","Igor","Killian","Markus","Ricardo","Yanis","Banting","Clayton","Duane","Earl","Greg","Roy","Terry","Tracy","Walter","Alvaro","Curtis","Francis","Ross","Brice","Cheng","Dudley","Eric","Kano","Masahiro","Randy","Ryuji","Steve","Tadashi","Wong","Yuen","Brian","Carter","Reece","Nick","Yang"],["Cora","Cyndy","Jill","Laura","Sadie","Tessa","Vivian","Aisha","Callie","Danielle","Helene","Jocelyn","Lilith","Paula","Reyna","Helen","Kelsey","Tyler","Amy","Chandra","Hillary","Janie","Lee","Maggie","Mikiko","Miriam","Sharon","Susie","Xiao","Alize","Azra","Brenda","Chalina","Chan","Glinda","Maki","Tia","Tiffany","Wendy","Andrea","Gabrielle","Gerardine","Hailey","Hedvig","Justine","Kinsey","Sigrid","Veronique","Tess"]],
|
[TrainerType.BLACK_BELT]: [["Kenji", "Lao", "Lung", "Nob", "Wai", "Yoshi", "Atsushi", "Daisuke", "Hideki", "Hitoshi", "Kiyo", "Koichi", "Koji", "Yuji", "Cristian", "Rhett", "Takao", "Theodore", "Zander", "Aaron", "Hugh", "Mike", "Nicolas", "Shea", "Takashi", "Adam", "Carl", "Colby", "Darren", "David", "Davon", "Derek", "Eddie", "Gregory", "Griffin", "Jarrett", "Jeffery", "Kendal", "Kyle", "Luke", "Miles", "Nathaniel", "Philip", "Rafael", "Ray", "Ricky", "Sean", "Willie", "Ander", "Manford", "Benjamin", "Corey", "Edward", "Grant", "Jay", "Kendrew", "Kentaro", "Ryder", "Teppei", "Thomas", "Tyrone", "Andrey", "Donny", "Drago", "Gordon", "Grigor", "Jeriel", "Kenneth", "Martell", "Mathis", "Rich", "Rocky", "Rodrigo", "Wesley", "Zachery", "Alonzo", "Cadoc", "Gunnar", "Igor", "Killian", "Markus", "Ricardo", "Yanis", "Banting", "Clayton", "Duane", "Earl", "Greg", "Roy", "Terry", "Tracy", "Walter", "Alvaro", "Curtis", "Francis", "Ross", "Brice", "Cheng", "Dudley", "Eric", "Kano", "Masahiro", "Randy", "Ryuji", "Steve", "Tadashi", "Wong", "Yuen", "Brian", "Carter", "Reece", "Nick", "Yang"], ["Cora", "Cyndy", "Jill", "Laura", "Sadie", "Tessa", "Vivian", "Aisha", "Callie", "Danielle", "Helene", "Jocelyn", "Lilith", "Paula", "Reyna", "Helen", "Kelsey", "Tyler", "Amy", "Chandra", "Hillary", "Janie", "Lee", "Maggie", "Mikiko", "Miriam", "Sharon", "Susie", "Xiao", "Alize", "Azra", "Brenda", "Chalina", "Chan", "Glinda", "Maki", "Tia", "Tiffany", "Wendy", "Andrea", "Gabrielle", "Gerardine", "Hailey", "Hedvig", "Justine", "Kinsey", "Sigrid", "Veronique", "Tess"]],
|
||||||
[TrainerType.BREEDER]: [["Isaac","Myles","Salvadore","Albert","Kahlil","Eustace","Galen","Owen","Addison","Marcus","Foster","Cory","Glenn","Jay","Wesley","William","Adrian","Bradley","Jaime"],["Allison","Alize","Bethany","Lily","Lydia","Gabrielle","Jayden","Pat","Veronica","Amber","Jennifer","Kaylee","Adelaide","Brooke","Ethel","April","Irene","Magnolia","Amala","Mercy","Amanda","Ikue","Savannah","Yuka","Chloe","Debra","Denise","Elena"]],
|
[TrainerType.BREEDER]: [["Isaac", "Myles", "Salvadore", "Albert", "Kahlil", "Eustace", "Galen", "Owen", "Addison", "Marcus", "Foster", "Cory", "Glenn", "Jay", "Wesley", "William", "Adrian", "Bradley", "Jaime"], ["Allison", "Alize", "Bethany", "Lily", "Lydia", "Gabrielle", "Jayden", "Pat", "Veronica", "Amber", "Jennifer", "Kaylee", "Adelaide", "Brooke", "Ethel", "April", "Irene", "Magnolia", "Amala", "Mercy", "Amanda", "Ikue", "Savannah", "Yuka", "Chloe", "Debra", "Denise", "Elena"]],
|
||||||
[TrainerType.CLERK]: [["Chaz","Clemens","Doug","Fredric","Ivan","Isaac","Nelson","Wade","Warren","Augustin","Gilligan","Cody","Jeremy","Shane","Dugal","Royce","Ronald"],["Alberta","Ingrid","Katie","Piper","Trisha","Wren","Britney","Lana","Jessica","Kristen","Michelle","Gabrielle"]],
|
[TrainerType.CLERK]: [["Chaz", "Clemens", "Doug", "Fredric", "Ivan", "Isaac", "Nelson", "Wade", "Warren", "Augustin", "Gilligan", "Cody", "Jeremy", "Shane", "Dugal", "Royce", "Ronald"], ["Alberta", "Ingrid", "Katie", "Piper", "Trisha", "Wren", "Britney", "Lana", "Jessica", "Kristen", "Michelle", "Gabrielle"]],
|
||||||
[TrainerType.CYCLIST]: [["Axel","James","John","Ryan","Hector","Jeremiah"],["Kayla","Megan","Nicole","Rachel","Krissa","Adelaide"]],
|
[TrainerType.CYCLIST]: [["Axel", "James", "John", "Ryan", "Hector", "Jeremiah"], ["Kayla", "Megan", "Nicole", "Rachel", "Krissa", "Adelaide"]],
|
||||||
[TrainerType.DANCER]: ["Brian","Davey","Dirk","Edmond","Mickey","Raymond","Cara","Julia","Maika","Mireille","Ronda","Zoe"],
|
[TrainerType.DANCER]: ["Brian", "Davey", "Dirk", "Edmond", "Mickey", "Raymond", "Cara", "Julia", "Maika", "Mireille", "Ronda", "Zoe"],
|
||||||
[TrainerType.DEPOT_AGENT]: ["Josh","Hank","Vincent"],
|
[TrainerType.DEPOT_AGENT]: ["Josh", "Hank", "Vincent"],
|
||||||
[TrainerType.DOCTOR]: [["Hank","Jerry","Jules","Logan","Wayne","Braid","Derek","Heath","Julius","Kit","Graham"],["Kirsten","Sachiko","Shery","Carol","Dixie","Mariah"]],
|
[TrainerType.DOCTOR]: [["Hank", "Jerry", "Jules", "Logan", "Wayne", "Braid", "Derek", "Heath", "Julius", "Kit", "Graham"], ["Kirsten", "Sachiko", "Shery", "Carol", "Dixie", "Mariah"]],
|
||||||
[TrainerType.FIREBREATHER]: ["Bill","Burt","Cliff","Dick","Lyle","Ned","Otis","Ray","Richard","Walt"],
|
[TrainerType.FIREBREATHER]: ["Bill", "Burt", "Cliff", "Dick", "Lyle", "Ned", "Otis", "Ray", "Richard", "Walt"],
|
||||||
[TrainerType.FISHERMAN]: ["Andre","Arnold","Barney","Chris","Edgar","Henry","Jonah","Justin","Kyle","Martin","Marvin","Ralph","Raymond","Scott","Stephen","Wilton","Tully","Andrew","Barny","Carter","Claude","Dale","Elliot","Eugene","Ivan","Ned","Nolan","Roger","Ronald","Wade","Wayne","Darian","Kai","Chip","Hank","Kaden","Tommy","Tylor","Alec","Brett","Cameron","Cody","Cole","Cory","Erick","George","Joseph","Juan","Kenneth","Luc","Miguel","Travis","Walter","Zachary","Josh","Gideon","Kyler","Liam","Murphy","Bruce","Damon","Devon","Hubert","Jones","Lydon","Mick","Pete","Sean","Sid","Vince","Bucky","Dean","Eustace","Kenzo","Leroy","Mack","Ryder","Ewan","Finn","Murray","Seward","Shad","Wharton","Finley","Fisher","Fisk","River","Sheaffer","Timin","Carl","Ernest","Hal","Herbert","Hisato","Mike","Vernon","Harriet","Marina","Chase"],
|
[TrainerType.FISHERMAN]: ["Andre", "Arnold", "Barney", "Chris", "Edgar", "Henry", "Jonah", "Justin", "Kyle", "Martin", "Marvin", "Ralph", "Raymond", "Scott", "Stephen", "Wilton", "Tully", "Andrew", "Barny", "Carter", "Claude", "Dale", "Elliot", "Eugene", "Ivan", "Ned", "Nolan", "Roger", "Ronald", "Wade", "Wayne", "Darian", "Kai", "Chip", "Hank", "Kaden", "Tommy", "Tylor", "Alec", "Brett", "Cameron", "Cody", "Cole", "Cory", "Erick", "George", "Joseph", "Juan", "Kenneth", "Luc", "Miguel", "Travis", "Walter", "Zachary", "Josh", "Gideon", "Kyler", "Liam", "Murphy", "Bruce", "Damon", "Devon", "Hubert", "Jones", "Lydon", "Mick", "Pete", "Sean", "Sid", "Vince", "Bucky", "Dean", "Eustace", "Kenzo", "Leroy", "Mack", "Ryder", "Ewan", "Finn", "Murray", "Seward", "Shad", "Wharton", "Finley", "Fisher", "Fisk", "River", "Sheaffer", "Timin", "Carl", "Ernest", "Hal", "Herbert", "Hisato", "Mike", "Vernon", "Harriet", "Marina", "Chase"],
|
||||||
[TrainerType.GUITARIST]: ["Anna","Beverly","January","Tina","Alicia","Claudia","Julia","Lidia","Mireia","Noelia","Sara","Sheila","Tatiana"],
|
[TrainerType.GUITARIST]: ["Anna", "Beverly", "January", "Tina", "Alicia", "Claudia", "Julia", "Lidia", "Mireia", "Noelia", "Sara", "Sheila", "Tatiana"],
|
||||||
[TrainerType.HARLEQUIN]: ["Charley","Ian","Jack","Kerry","Louis","Pat","Paul","Rick","Anders","Clarence","Gary"],
|
[TrainerType.HARLEQUIN]: ["Charley", "Ian", "Jack", "Kerry", "Louis", "Pat", "Paul", "Rick", "Anders", "Clarence", "Gary"],
|
||||||
[TrainerType.HIKER]: ["Anthony","Bailey","Benjamin","Daniel","Erik","Jim","Kenny","Leonard","Michael","Parry","Phillip","Russell","Sidney","Tim","Timothy","Alan","Brice","Clark","Eric","Lenny","Lucas","Mike","Trent","Devan","Eli","Marc","Sawyer","Allen","Daryl","Dudley","Earl","Franklin","Jeremy","Marcos","Nob","Oliver","Wayne","Alexander","Damon","Jonathan","Justin","Kevin","Lorenzo","Louis","Maurice","Nicholas","Reginald","Robert","Theodore","Bruce","Clarke","Devin","Dwight","Edwin","Eoin","Noland","Russel","Andy","Bret","Darrell","Gene","Hardy","Hugh","Jebediah","Jeremiah","Kit","Neil","Terrell","Don","Doug","Hunter","Jared","Jerome","Keith","Manuel","Markus","Otto","Shelby","Stephen","Teppei","Tobias","Wade","Zaiem","Aaron","Alain","Bergin","Bernard","Brent","Corwin","Craig","Delmon","Dunstan","Orestes","Ross","Davian","Calhoun","David","Gabriel","Ryan","Thomas","Travis","Zachary","Anuhea","Barnaby","Claus","Collin","Colson","Dexter","Dillan","Eugine","Farkas","Hisato","Julius","Kenji","Irwin","Lionel","Paul","Richter","Valentino","Donald","Douglas","Kevyn","Chester"], //["Angela","Carla","Celia","Daniela","Estela","Fatima","Helena","Leire","Lucia","Luna","Manuela","Mar","Marina","Miyu","Nancy","Nerea","Paula","Rocio","Yanira"]
|
[TrainerType.HIKER]: ["Anthony", "Bailey", "Benjamin", "Daniel", "Erik", "Jim", "Kenny", "Leonard", "Michael", "Parry", "Phillip", "Russell", "Sidney", "Tim", "Timothy", "Alan", "Brice", "Clark", "Eric", "Lenny", "Lucas", "Mike", "Trent", "Devan", "Eli", "Marc", "Sawyer", "Allen", "Daryl", "Dudley", "Earl", "Franklin", "Jeremy", "Marcos", "Nob", "Oliver", "Wayne", "Alexander", "Damon", "Jonathan", "Justin", "Kevin", "Lorenzo", "Louis", "Maurice", "Nicholas", "Reginald", "Robert", "Theodore", "Bruce", "Clarke", "Devin", "Dwight", "Edwin", "Eoin", "Noland", "Russel", "Andy", "Bret", "Darrell", "Gene", "Hardy", "Hugh", "Jebediah", "Jeremiah", "Kit", "Neil", "Terrell", "Don", "Doug", "Hunter", "Jared", "Jerome", "Keith", "Manuel", "Markus", "Otto", "Shelby", "Stephen", "Teppei", "Tobias", "Wade", "Zaiem", "Aaron", "Alain", "Bergin", "Bernard", "Brent", "Corwin", "Craig", "Delmon", "Dunstan", "Orestes", "Ross", "Davian", "Calhoun", "David", "Gabriel", "Ryan", "Thomas", "Travis", "Zachary", "Anuhea", "Barnaby", "Claus", "Collin", "Colson", "Dexter", "Dillan", "Eugine", "Farkas", "Hisato", "Julius", "Kenji", "Irwin", "Lionel", "Paul", "Richter", "Valentino", "Donald", "Douglas", "Kevyn", "Chester"], //["Angela","Carla","Celia","Daniela","Estela","Fatima","Helena","Leire","Lucia","Luna","Manuela","Mar","Marina","Miyu","Nancy","Nerea","Paula","Rocio","Yanira"]
|
||||||
[TrainerType.HOOLIGANS]: ["Jim & Cas","Rob & Sal"],
|
[TrainerType.HOOLIGANS]: ["Jim & Cas", "Rob & Sal"],
|
||||||
[TrainerType.HOOPSTER]: ["Bobby","John","Lamarcus","Derrick","Nicolas"],
|
[TrainerType.HOOPSTER]: ["Bobby", "John", "Lamarcus", "Derrick", "Nicolas"],
|
||||||
[TrainerType.INFIELDER]: ["Alex","Connor","Todd"],
|
[TrainerType.INFIELDER]: ["Alex", "Connor", "Todd"],
|
||||||
[TrainerType.JANITOR]: ["Caleb","Geoff","Brady","Felix","Orville","Melvin","Shawn"],
|
[TrainerType.JANITOR]: ["Caleb", "Geoff", "Brady", "Felix", "Orville", "Melvin", "Shawn"],
|
||||||
[TrainerType.LINEBACKER]: ["Bob","Dan","Jonah"],
|
[TrainerType.LINEBACKER]: ["Bob", "Dan", "Jonah"],
|
||||||
[TrainerType.MAID]: ["Belinda","Sophie","Emily","Elena","Clare","Alica","Tanya","Tammy"],
|
[TrainerType.MAID]: ["Belinda", "Sophie", "Emily", "Elena", "Clare", "Alica", "Tanya", "Tammy"],
|
||||||
[TrainerType.MUSICIAN]: ["Boris","Preston","Charles","Clyde","Vincent","Dalton","Kirk","Shawn","Fabian","Fernando","Joseph","Marcos","Arturo","Jerry","Lonnie","Tony"],
|
[TrainerType.MUSICIAN]: ["Boris", "Preston", "Charles", "Clyde", "Vincent", "Dalton", "Kirk", "Shawn", "Fabian", "Fernando", "Joseph", "Marcos", "Arturo", "Jerry", "Lonnie", "Tony"],
|
||||||
[TrainerType.NURSERY_AIDE]: ["Autumn","Briana","Leah","Miho","Ethel","Hollie","Ilse","June","Kimya","Rosalyn"],
|
[TrainerType.NURSERY_AIDE]: ["Autumn", "Briana", "Leah", "Miho", "Ethel", "Hollie", "Ilse", "June", "Kimya", "Rosalyn"],
|
||||||
[TrainerType.OFFICER]: ["Dirk","Keith","Alex","Bobby","Caleb","Danny","Dylan","Thomas","Daniel","Jeff","Braven","Dell","Neagle","Haruki","Mitchell","Raymond"],
|
[TrainerType.OFFICER]: ["Dirk", "Keith", "Alex", "Bobby", "Caleb", "Danny", "Dylan", "Thomas", "Daniel", "Jeff", "Braven", "Dell", "Neagle", "Haruki", "Mitchell", "Raymond"],
|
||||||
[TrainerType.PARASOL_LADY]: ["Angelica","Clarissa","Madeline","Akari","Annabell","Kayley","Rachel","Alexa","Sabrina","April","Gwyneth","Laura","Lumi","Mariah","Melita","Nicole","Tihana","Ingrid","Tyra"],
|
[TrainerType.PARASOL_LADY]: ["Angelica", "Clarissa", "Madeline", "Akari", "Annabell", "Kayley", "Rachel", "Alexa", "Sabrina", "April", "Gwyneth", "Laura", "Lumi", "Mariah", "Melita", "Nicole", "Tihana", "Ingrid", "Tyra"],
|
||||||
[TrainerType.PILOT]: ["Chase","Leonard","Ted","Elron","Ewing","Flynn","Winslow"],
|
[TrainerType.PILOT]: ["Chase", "Leonard", "Ted", "Elron", "Ewing", "Flynn", "Winslow"],
|
||||||
[TrainerType.POKEFAN]: [["Alex","Allan","Brandon","Carter","Colin","Derek","Jeremy","Joshua","Rex","Robert","Trevor","William","Colton","Miguel","Francisco","Kaleb","Leonard","Boone","Elliot","Jude","Norbert","Corey","Gabe","Baxter"],["Beverly","Georgia","Jaime","Ruth","Isabel","Marissa","Vanessa","Annika","Bethany","Kimberly","Meredith","Rebekah","Eleanor","Darcy","Lydia","Sachiko","Abigail","Agnes","Lydie","Roisin","Tara","Carmen","Janet"]],
|
[TrainerType.POKEFAN]: [["Alex", "Allan", "Brandon", "Carter", "Colin", "Derek", "Jeremy", "Joshua", "Rex", "Robert", "Trevor", "William", "Colton", "Miguel", "Francisco", "Kaleb", "Leonard", "Boone", "Elliot", "Jude", "Norbert", "Corey", "Gabe", "Baxter"], ["Beverly", "Georgia", "Jaime", "Ruth", "Isabel", "Marissa", "Vanessa", "Annika", "Bethany", "Kimberly", "Meredith", "Rebekah", "Eleanor", "Darcy", "Lydia", "Sachiko", "Abigail", "Agnes", "Lydie", "Roisin", "Tara", "Carmen", "Janet"]],
|
||||||
[TrainerType.PRESCHOOLER]: [["Billy","Doyle","Evan","Homer","Tully","Albert","Buster","Greg","Ike","Jojo","Tyrone","Adrian","Oliver","Hayden","Hunter","Kaleb","Liam","Dylan"],["Juliet","Mia","Sarah","Wendy","Winter","Chrissy","Eva","Lin","Samantha","Ella","Lily","Natalie","Ailey","Hannah","Malia","Kindra","Nancy"]],
|
[TrainerType.PRESCHOOLER]: [["Billy", "Doyle", "Evan", "Homer", "Tully", "Albert", "Buster", "Greg", "Ike", "Jojo", "Tyrone", "Adrian", "Oliver", "Hayden", "Hunter", "Kaleb", "Liam", "Dylan"], ["Juliet", "Mia", "Sarah", "Wendy", "Winter", "Chrissy", "Eva", "Lin", "Samantha", "Ella", "Lily", "Natalie", "Ailey", "Hannah", "Malia", "Kindra", "Nancy"]],
|
||||||
[TrainerType.PSYCHIC]: [["Fidel","Franklin","Gilbert","Greg","Herman","Jared","Mark","Nathan","Norman","Phil","Richard","Rodney","Cameron","Edward","Fritz","Joshua","Preston","Virgil","William","Alvaro","Blake","Cedric","Keenan","Nicholas","Dario","Johan","Lorenzo","Tyron","Bryce","Corbin","Deandre","Elijah","Kody","Landon","Maxwell","Mitchell","Sterling","Eli","Nelson","Vernon","Gaven","Gerard","Low","Micki","Perry","Rudolf","Tommy","Al","Nandor","Tully","Arthur","Emanuel","Franz","Harry","Paschal","Robert","Sayid","Angelo","Anton","Arin","Avery","Danny","Frasier","Harrison","Jaime","Ross","Rui","Vlad","Mason"],["Alexis","Hannah","Jacki","Jaclyn","Kayla","Maura","Samantha","Alix","Brandi","Edie","Macey","Mariella","Marlene","Laura","Rodette","Abigail","Brittney","Chelsey","Daisy","Desiree","Kendra","Lindsey","Rachael","Valencia","Belle","Cybil","Doreen","Dua","Future","Lin","Madhu","Alia","Ena","Joyce","Lynette","Olesia","Sarah"]],
|
[TrainerType.PSYCHIC]: [["Fidel", "Franklin", "Gilbert", "Greg", "Herman", "Jared", "Mark", "Nathan", "Norman", "Phil", "Richard", "Rodney", "Cameron", "Edward", "Fritz", "Joshua", "Preston", "Virgil", "William", "Alvaro", "Blake", "Cedric", "Keenan", "Nicholas", "Dario", "Johan", "Lorenzo", "Tyron", "Bryce", "Corbin", "Deandre", "Elijah", "Kody", "Landon", "Maxwell", "Mitchell", "Sterling", "Eli", "Nelson", "Vernon", "Gaven", "Gerard", "Low", "Micki", "Perry", "Rudolf", "Tommy", "Al", "Nandor", "Tully", "Arthur", "Emanuel", "Franz", "Harry", "Paschal", "Robert", "Sayid", "Angelo", "Anton", "Arin", "Avery", "Danny", "Frasier", "Harrison", "Jaime", "Ross", "Rui", "Vlad", "Mason"], ["Alexis", "Hannah", "Jacki", "Jaclyn", "Kayla", "Maura", "Samantha", "Alix", "Brandi", "Edie", "Macey", "Mariella", "Marlene", "Laura", "Rodette", "Abigail", "Brittney", "Chelsey", "Daisy", "Desiree", "Kendra", "Lindsey", "Rachael", "Valencia", "Belle", "Cybil", "Doreen", "Dua", "Future", "Lin", "Madhu", "Alia", "Ena", "Joyce", "Lynette", "Olesia", "Sarah"]],
|
||||||
[TrainerType.RANGER]: [["Carlos","Jackson","Sebastian","Gav","Lorenzo","Logan","Nicolas","Trenton","Deshawn","Dwayne","Jeffery","Kyler","Taylor","Alain","Claude","Crofton","Forrest","Harry","Jaden","Keith","Lewis","Miguel","Pedro","Ralph","Richard","Bret","Daryl","Eddie","Johan","Leaf","Louis","Maxwell","Parker","Rick","Steve","Bjorn","Chaise","Dean","Lee","Maurice","Nash","Ralf","Reed","Shinobu","Silas"],["Catherine","Jenna","Sophia","Merdith","Nora","Beth","Chelsea","Katelyn","Madeline","Allison","Ashlee","Felicia","Krista","Annie","Audra","Brenda","Chloris","Eliza","Heidi","Irene","Mary","Mylene","Shanti","Shelly","Thalia","Anja","Briana","Dianna","Elaine","Elle","Hillary","Katie","Lena","Lois","Malory","Melita","Mikiko","Naoko","Serenity","Ambre","Brooke","Clementine","Melina","Petra","Twiggy"]],
|
[TrainerType.RANGER]: [["Carlos", "Jackson", "Sebastian", "Gav", "Lorenzo", "Logan", "Nicolas", "Trenton", "Deshawn", "Dwayne", "Jeffery", "Kyler", "Taylor", "Alain", "Claude", "Crofton", "Forrest", "Harry", "Jaden", "Keith", "Lewis", "Miguel", "Pedro", "Ralph", "Richard", "Bret", "Daryl", "Eddie", "Johan", "Leaf", "Louis", "Maxwell", "Parker", "Rick", "Steve", "Bjorn", "Chaise", "Dean", "Lee", "Maurice", "Nash", "Ralf", "Reed", "Shinobu", "Silas"], ["Catherine", "Jenna", "Sophia", "Merdith", "Nora", "Beth", "Chelsea", "Katelyn", "Madeline", "Allison", "Ashlee", "Felicia", "Krista", "Annie", "Audra", "Brenda", "Chloris", "Eliza", "Heidi", "Irene", "Mary", "Mylene", "Shanti", "Shelly", "Thalia", "Anja", "Briana", "Dianna", "Elaine", "Elle", "Hillary", "Katie", "Lena", "Lois", "Malory", "Melita", "Mikiko", "Naoko", "Serenity", "Ambre", "Brooke", "Clementine", "Melina", "Petra", "Twiggy"]],
|
||||||
[TrainerType.RICH]: [["Alfred","Edward","Gregory","Preston","Thomas","Tucker","Walter","Clifford","Everett","Micah","Nate","Pierre","Terrance","Arthur","Brooks","Emanuel","Lamar","Jeremy","Leonardo","Milton","Frederic","Renaud","Robert","Yan","Daniel","Sheldon","Stonewall","Gerald","Ronald","Smith","Stanley","Reginald","Orson","Wilco","Caden","Glenn"],["Rebecca","Reina","Cassandra","Emilia","Grace","Marian","Elizabeth","Kathleen","Sayuri","Caroline","Judy"]],
|
[TrainerType.RICH]: [["Alfred", "Edward", "Gregory", "Preston", "Thomas", "Tucker", "Walter", "Clifford", "Everett", "Micah", "Nate", "Pierre", "Terrance", "Arthur", "Brooks", "Emanuel", "Lamar", "Jeremy", "Leonardo", "Milton", "Frederic", "Renaud", "Robert", "Yan", "Daniel", "Sheldon", "Stonewall", "Gerald", "Ronald", "Smith", "Stanley", "Reginald", "Orson", "Wilco", "Caden", "Glenn"], ["Rebecca", "Reina", "Cassandra", "Emilia", "Grace", "Marian", "Elizabeth", "Kathleen", "Sayuri", "Caroline", "Judy"]],
|
||||||
[TrainerType.RICH_KID]: [["Garret","Winston","Dawson","Enrique","Jason","Roman","Trey","Liam","Anthony","Brad","Cody","Manuel","Martin","Pierce","Rolan","Keenan","Filbert","Antoin","Cyus","Diek","Dugo","Flitz","Jurek","Lond","Perd","Quint","Basto","Benit","Brot","Denc","Guyit","Marcon","Perc","Puros","Roex","Sainz","Symin","Tark","Venak"],["Anette","Brianna","Cindy","Colleen","Daphne","Elizabeth","Naomi","Sarah","Charlotte","Gillian","Jacki","Lady","Melissa","Celeste","Colette","Elizandra","Isabel","Lynette","Magnolia","Sophie","Lina","Dulcie","Auro","Brin","Caril","Eloos","Gwin","Illa","Kowly","Rima","Ristin","Vesey","Brena","Deasy","Denslon","Kylet","Nemi","Rene","Sanol","Stouner","Sturk","Talmen","Zoila"]],
|
[TrainerType.RICH_KID]: [["Garret", "Winston", "Dawson", "Enrique", "Jason", "Roman", "Trey", "Liam", "Anthony", "Brad", "Cody", "Manuel", "Martin", "Pierce", "Rolan", "Keenan", "Filbert", "Antoin", "Cyus", "Diek", "Dugo", "Flitz", "Jurek", "Lond", "Perd", "Quint", "Basto", "Benit", "Brot", "Denc", "Guyit", "Marcon", "Perc", "Puros", "Roex", "Sainz", "Symin", "Tark", "Venak"], ["Anette", "Brianna", "Cindy", "Colleen", "Daphne", "Elizabeth", "Naomi", "Sarah", "Charlotte", "Gillian", "Jacki", "Lady", "Melissa", "Celeste", "Colette", "Elizandra", "Isabel", "Lynette", "Magnolia", "Sophie", "Lina", "Dulcie", "Auro", "Brin", "Caril", "Eloos", "Gwin", "Illa", "Kowly", "Rima", "Ristin", "Vesey", "Brena", "Deasy", "Denslon", "Kylet", "Nemi", "Rene", "Sanol", "Stouner", "Sturk", "Talmen", "Zoila"]],
|
||||||
[TrainerType.ROUGHNECK]: ["Camron","Corey","Gabriel","Isaiah","Jamal","Koji","Luke","Paxton","Raul","Zeek","Kirby","Chance","Dave","Fletcher","Johnny","Reese","Joey","Ricky","Silvester","Martin"],
|
[TrainerType.ROUGHNECK]: ["Camron", "Corey", "Gabriel", "Isaiah", "Jamal", "Koji", "Luke", "Paxton", "Raul", "Zeek", "Kirby", "Chance", "Dave", "Fletcher", "Johnny", "Reese", "Joey", "Ricky", "Silvester", "Martin"],
|
||||||
[TrainerType.SAILOR]: ["Alberto","Bost","Brennan","Brenden","Claude","Cory","Damian","Dirk","Duncan","Dwayne","Dylan","Eddie","Edmond","Elijah","Ernest","Eugene","Garrett","Golos","Gratin","Grestly","Harry","Hols","Hudson","Huey","Jebol","Jeff","Leonald","Luther","Kelvin","Kenneth","Kent","Knook","Marc","Mifis","Monar","Morkor","Ordes","Oxlin","Parker","Paul","Philip","Roberto","Samson","Skyler","Stanly","Tebu","Terrell","Trevor","Yasu","Zachariah"],
|
[TrainerType.SAILOR]: ["Alberto", "Bost", "Brennan", "Brenden", "Claude", "Cory", "Damian", "Dirk", "Duncan", "Dwayne", "Dylan", "Eddie", "Edmond", "Elijah", "Ernest", "Eugene", "Garrett", "Golos", "Gratin", "Grestly", "Harry", "Hols", "Hudson", "Huey", "Jebol", "Jeff", "Leonald", "Luther", "Kelvin", "Kenneth", "Kent", "Knook", "Marc", "Mifis", "Monar", "Morkor", "Ordes", "Oxlin", "Parker", "Paul", "Philip", "Roberto", "Samson", "Skyler", "Stanly", "Tebu", "Terrell", "Trevor", "Yasu", "Zachariah"],
|
||||||
[TrainerType.SCIENTIST]: [["Jed","Marc","Mitch","Rich","Ross","Beau","Braydon","Connor","Ed","Ivan","Jerry","Jose","Joshua","Parker","Rodney","Taylor","Ted","Travis","Zackery","Darrius","Emilio","Fredrick","Shaun","Stefano","Travon","Daniel","Garett","Gregg","Linden","Lowell","Trenton","Dudley","Luke","Markus","Nathan","Orville","Randall","Ron","Ronald","Simon","Steve","William","Franklin","Clarke","Jacques","Terrance","Ernst","Justus","Ikaika","Jayson","Kyle","Reid","Tyrone","Adam","Albert","Alphonse","Cory","Donnie","Elton","Francis","Gordon","Herbert","Humphrey","Jordan","Julian","Keaton","Levi","Melvin","Murray","West","Craig","Coren","Dubik","Kotan","Lethco","Mante","Mort","Myron","Odlow","Ribek","Roeck","Vogi","Vonder","Zogo","Doimo","Doton","Durel","Hildon","Kukla","Messa","Nanot","Platen","Raburn","Reman","Acrod","Coffy","Elrok","Foss","Hardig","Hombol","Hospel","Kaller","Klots","Krilok","Limar","Loket","Mesak","Morbit","Newin","Orill","Tabor","Tekot"],["Blythe","Chan","Kathrine","Marie","Maria","Naoko","Samantha","Satomi","Shannon","Athena","Caroline","Lumi","Lumina","Marissa","Sonia"]],
|
[TrainerType.SCIENTIST]: [["Jed", "Marc", "Mitch", "Rich", "Ross", "Beau", "Braydon", "Connor", "Ed", "Ivan", "Jerry", "Jose", "Joshua", "Parker", "Rodney", "Taylor", "Ted", "Travis", "Zackery", "Darrius", "Emilio", "Fredrick", "Shaun", "Stefano", "Travon", "Daniel", "Garett", "Gregg", "Linden", "Lowell", "Trenton", "Dudley", "Luke", "Markus", "Nathan", "Orville", "Randall", "Ron", "Ronald", "Simon", "Steve", "William", "Franklin", "Clarke", "Jacques", "Terrance", "Ernst", "Justus", "Ikaika", "Jayson", "Kyle", "Reid", "Tyrone", "Adam", "Albert", "Alphonse", "Cory", "Donnie", "Elton", "Francis", "Gordon", "Herbert", "Humphrey", "Jordan", "Julian", "Keaton", "Levi", "Melvin", "Murray", "West", "Craig", "Coren", "Dubik", "Kotan", "Lethco", "Mante", "Mort", "Myron", "Odlow", "Ribek", "Roeck", "Vogi", "Vonder", "Zogo", "Doimo", "Doton", "Durel", "Hildon", "Kukla", "Messa", "Nanot", "Platen", "Raburn", "Reman", "Acrod", "Coffy", "Elrok", "Foss", "Hardig", "Hombol", "Hospel", "Kaller", "Klots", "Krilok", "Limar", "Loket", "Mesak", "Morbit", "Newin", "Orill", "Tabor", "Tekot"], ["Blythe", "Chan", "Kathrine", "Marie", "Maria", "Naoko", "Samantha", "Satomi", "Shannon", "Athena", "Caroline", "Lumi", "Lumina", "Marissa", "Sonia"]],
|
||||||
[TrainerType.SMASHER]: ["Aspen","Elena","Mari","Amy","Lizzy"],
|
[TrainerType.SMASHER]: ["Aspen", "Elena", "Mari", "Amy", "Lizzy"],
|
||||||
[TrainerType.SNOW_WORKER]: [["Braden","Brendon","Colin","Conrad","Dillan","Gary","Gerardo","Holden","Jackson","Mason","Quentin","Willy","Noel","Arnold","Brady","Brand","Cairn","Cliff","Don","Eddie","Felix","Filipe","Glenn","Gus","Heath","Matthew","Patton","Rich","Rob","Ryan","Scott","Shelby","Sterling","Tyler","Victor","Zack","Friedrich","Herman","Isaac","Leo","Maynard","Mitchell","Morgann","Nathan","Niel","Pasqual","Paul","Tavarius","Tibor","Dimitri","Narek","Yusif","Frank","Jeff","Vaclav","Ovid","Francis","Keith","Russel","Sangon","Toway","Bomber","Chean","Demit","Hubor","Kebile","Laber","Ordo","Retay","Ronix","Wagel","Dobit","Kaster","Lobel","Releo","Saken","Rustix"],["Georgia","Sandra","Yvonne"]],
|
[TrainerType.SNOW_WORKER]: [["Braden", "Brendon", "Colin", "Conrad", "Dillan", "Gary", "Gerardo", "Holden", "Jackson", "Mason", "Quentin", "Willy", "Noel", "Arnold", "Brady", "Brand", "Cairn", "Cliff", "Don", "Eddie", "Felix", "Filipe", "Glenn", "Gus", "Heath", "Matthew", "Patton", "Rich", "Rob", "Ryan", "Scott", "Shelby", "Sterling", "Tyler", "Victor", "Zack", "Friedrich", "Herman", "Isaac", "Leo", "Maynard", "Mitchell", "Morgann", "Nathan", "Niel", "Pasqual", "Paul", "Tavarius", "Tibor", "Dimitri", "Narek", "Yusif", "Frank", "Jeff", "Vaclav", "Ovid", "Francis", "Keith", "Russel", "Sangon", "Toway", "Bomber", "Chean", "Demit", "Hubor", "Kebile", "Laber", "Ordo", "Retay", "Ronix", "Wagel", "Dobit", "Kaster", "Lobel", "Releo", "Saken", "Rustix"], ["Georgia", "Sandra", "Yvonne"]],
|
||||||
[TrainerType.STRIKER]: ["Marco","Roberto","Tony"],
|
[TrainerType.STRIKER]: ["Marco", "Roberto", "Tony"],
|
||||||
[TrainerType.SCHOOL_KID]: [["Alan","Billy","Chad","Danny","Dudley","Jack","Joe","Johnny","Kipp","Nate","Ricky","Tommy","Jerry","Paul","Ted","Chance","Esteban","Forrest","Harrison","Connor","Sherman","Torin","Travis","Al","Carter","Edgar","Jem","Sammy","Shane","Shayne","Alvin","Keston","Neil","Seymour","William","Carson","Clark","Nolan"],["Georgia","Karen","Meiko","Christine","Mackenzie","Tiera","Ann","Gina","Lydia","Marsha","Millie","Sally","Serena","Silvia","Alberta","Cassie","Mara","Rita","Georgie","Meena","Nitzel"]],
|
[TrainerType.SCHOOL_KID]: [["Alan", "Billy", "Chad", "Danny", "Dudley", "Jack", "Joe", "Johnny", "Kipp", "Nate", "Ricky", "Tommy", "Jerry", "Paul", "Ted", "Chance", "Esteban", "Forrest", "Harrison", "Connor", "Sherman", "Torin", "Travis", "Al", "Carter", "Edgar", "Jem", "Sammy", "Shane", "Shayne", "Alvin", "Keston", "Neil", "Seymour", "William", "Carson", "Clark", "Nolan"], ["Georgia", "Karen", "Meiko", "Christine", "Mackenzie", "Tiera", "Ann", "Gina", "Lydia", "Marsha", "Millie", "Sally", "Serena", "Silvia", "Alberta", "Cassie", "Mara", "Rita", "Georgie", "Meena", "Nitzel"]],
|
||||||
[TrainerType.SWIMMER]: [["Berke","Cameron","Charlie","George","Harold","Jerome","Kirk","Mathew","Parker","Randall","Seth","Simon","Tucker","Austin","Barry","Chad","Cody","Darrin","David","Dean","Douglas","Franklin","Gilbert","Herman","Jack","Luis","Matthew","Reed","Richard","Rodney","Roland","Spencer","Stan","Tony","Clarence","Declan","Dominik","Harrison","Kevin","Leonardo","Nolen","Pete","Santiago","Axle","Braden","Finn","Garrett","Mymo","Reece","Samir","Toby","Adrian","Colton","Dillon","Erik","Evan","Francisco","Glenn","Kurt","Oscar","Ricardo","Sam","Sheltin","Troy","Vincent","Wade","Wesley","Duane","Elmo","Esteban","Frankie","Ronald","Tyson","Bart","Matt","Tim","Wright","Jeffery","Kyle","Alessandro","Estaban","Kieran","Ramses","Casey","Dakota","Jared","Kalani","Keoni","Lawrence","Logan","Robert","Roddy","Yasu","Derek","Jacob","Bruce","Clayton"],["Briana","Dawn","Denise","Diana","Elaine","Kara","Kaylee","Lori","Nicole","Nikki","Paula","Susie","Wendy","Alice","Beth","Beverly","Brenda","Dana","Debra","Grace","Jenny","Katie","Laurel","Linda","Missy","Sharon","Tanya","Tara","Tisha","Carlee","Imani","Isabelle","Kyla","Sienna","Abigail","Amara","Anya","Connie","Maria","Melissa","Nora","Shirley","Shania","Tiffany","Aubree","Cassandra","Claire","Crystal","Erica","Gabrielle","Haley","Jessica","Joanna","Lydia","Mallory","Mary","Miranda","Paige","Sophia","Vanessa","Chelan","Debbie","Joy","Kendra","Leona","Mina","Caroline","Joyce","Larissa","Rebecca","Tyra","Dara","Desiree","Kaoru","Ruth","Coral","Genevieve","Isla","Marissa","Romy","Sheryl","Alexandria","Alicia","Chelsea","Jade","Kelsie","Laura","Portia","Shelby","Sara","Tiare","Kyra","Natasha","Layla","Scarlett","Cora"]],
|
[TrainerType.SWIMMER]: [["Berke", "Cameron", "Charlie", "George", "Harold", "Jerome", "Kirk", "Mathew", "Parker", "Randall", "Seth", "Simon", "Tucker", "Austin", "Barry", "Chad", "Cody", "Darrin", "David", "Dean", "Douglas", "Franklin", "Gilbert", "Herman", "Jack", "Luis", "Matthew", "Reed", "Richard", "Rodney", "Roland", "Spencer", "Stan", "Tony", "Clarence", "Declan", "Dominik", "Harrison", "Kevin", "Leonardo", "Nolen", "Pete", "Santiago", "Axle", "Braden", "Finn", "Garrett", "Mymo", "Reece", "Samir", "Toby", "Adrian", "Colton", "Dillon", "Erik", "Evan", "Francisco", "Glenn", "Kurt", "Oscar", "Ricardo", "Sam", "Sheltin", "Troy", "Vincent", "Wade", "Wesley", "Duane", "Elmo", "Esteban", "Frankie", "Ronald", "Tyson", "Bart", "Matt", "Tim", "Wright", "Jeffery", "Kyle", "Alessandro", "Estaban", "Kieran", "Ramses", "Casey", "Dakota", "Jared", "Kalani", "Keoni", "Lawrence", "Logan", "Robert", "Roddy", "Yasu", "Derek", "Jacob", "Bruce", "Clayton"], ["Briana", "Dawn", "Denise", "Diana", "Elaine", "Kara", "Kaylee", "Lori", "Nicole", "Nikki", "Paula", "Susie", "Wendy", "Alice", "Beth", "Beverly", "Brenda", "Dana", "Debra", "Grace", "Jenny", "Katie", "Laurel", "Linda", "Missy", "Sharon", "Tanya", "Tara", "Tisha", "Carlee", "Imani", "Isabelle", "Kyla", "Sienna", "Abigail", "Amara", "Anya", "Connie", "Maria", "Melissa", "Nora", "Shirley", "Shania", "Tiffany", "Aubree", "Cassandra", "Claire", "Crystal", "Erica", "Gabrielle", "Haley", "Jessica", "Joanna", "Lydia", "Mallory", "Mary", "Miranda", "Paige", "Sophia", "Vanessa", "Chelan", "Debbie", "Joy", "Kendra", "Leona", "Mina", "Caroline", "Joyce", "Larissa", "Rebecca", "Tyra", "Dara", "Desiree", "Kaoru", "Ruth", "Coral", "Genevieve", "Isla", "Marissa", "Romy", "Sheryl", "Alexandria", "Alicia", "Chelsea", "Jade", "Kelsie", "Laura", "Portia", "Shelby", "Sara", "Tiare", "Kyra", "Natasha", "Layla", "Scarlett", "Cora"]],
|
||||||
[TrainerType.TWINS]: ["Amy & May","Jo & Zoe","Meg & Peg","Ann & Anne","Lea & Pia","Amy & Liv","Gina & Mia","Miu & Yuki","Tori & Tia","Eli & Anne","Jen & Kira","Joy & Meg","Kiri & Jan","Miu & Mia","Emma & Lil","Liv & Liz","Teri & Tia","Amy & Mimi","Clea & Gil","Day & Dani","Kay & Tia","Tori & Til","Saya & Aya","Emy & Lin","Kumi & Amy","Mayo & May","Ally & Amy","Lia & Lily","Rae & Ula","Sola & Ana","Tara & Val","Faith & Joy","Nana & Nina"],
|
[TrainerType.TWINS]: ["Amy & May", "Jo & Zoe", "Meg & Peg", "Ann & Anne", "Lea & Pia", "Amy & Liv", "Gina & Mia", "Miu & Yuki", "Tori & Tia", "Eli & Anne", "Jen & Kira", "Joy & Meg", "Kiri & Jan", "Miu & Mia", "Emma & Lil", "Liv & Liz", "Teri & Tia", "Amy & Mimi", "Clea & Gil", "Day & Dani", "Kay & Tia", "Tori & Til", "Saya & Aya", "Emy & Lin", "Kumi & Amy", "Mayo & May", "Ally & Amy", "Lia & Lily", "Rae & Ula", "Sola & Ana", "Tara & Val", "Faith & Joy", "Nana & Nina"],
|
||||||
[TrainerType.VETERAN]: [["Armando","Brenden","Brian","Clayton","Edgar","Emanuel","Grant","Harlan","Terrell","Arlen","Chester","Hugo","Martell","Ray","Shaun","Abraham","Carter","Claude","Jerry","Lucius","Murphy","Rayne","Ron","Sinan","Sterling","Vincent","Zach","Gerard","Gilles","Louis","Timeo","Akira","Don","Eric","Harry","Leon","Roger","Angus","Aristo","Brone","Johnny"],["Julia","Karla","Kim","Sayuri","Tiffany","Cathy","Cecile","Chloris","Denae","Gina","Maya","Oriana","Portia","Rhona","Rosaline","Catrina","Inga","Trisha","Heather","Lynn","Sheri","Alonsa","Ella","Leticia","Kiara"]],
|
[TrainerType.VETERAN]: [["Armando", "Brenden", "Brian", "Clayton", "Edgar", "Emanuel", "Grant", "Harlan", "Terrell", "Arlen", "Chester", "Hugo", "Martell", "Ray", "Shaun", "Abraham", "Carter", "Claude", "Jerry", "Lucius", "Murphy", "Rayne", "Ron", "Sinan", "Sterling", "Vincent", "Zach", "Gerard", "Gilles", "Louis", "Timeo", "Akira", "Don", "Eric", "Harry", "Leon", "Roger", "Angus", "Aristo", "Brone", "Johnny"], ["Julia", "Karla", "Kim", "Sayuri", "Tiffany", "Cathy", "Cecile", "Chloris", "Denae", "Gina", "Maya", "Oriana", "Portia", "Rhona", "Rosaline", "Catrina", "Inga", "Trisha", "Heather", "Lynn", "Sheri", "Alonsa", "Ella", "Leticia", "Kiara"]],
|
||||||
[TrainerType.WAITER]: [["Bert","Clint","Maxwell","Lou"],["Kati","Aurora","Bonita","Flo","Tia","Jan","Olwen","Paget","Paula","Talia"]],
|
[TrainerType.WAITER]: [["Bert", "Clint", "Maxwell", "Lou"], ["Kati", "Aurora", "Bonita", "Flo", "Tia", "Jan", "Olwen", "Paget", "Paula", "Talia"]],
|
||||||
[TrainerType.WORKER]: [["Braden","Brendon","Colin","Conrad","Dillan","Gary","Gerardo","Holden","Jackson","Mason","Quentin","Willy","Noel","Arnold","Brady","Brand","Cairn","Cliff","Don","Eddie","Felix","Filipe","Glenn","Gus","Heath","Matthew","Patton","Rich","Rob","Ryan","Scott","Shelby","Sterling","Tyler","Victor","Zack","Friedrich","Herman","Isaac","Leo","Maynard","Mitchell","Morgann","Nathan","Niel","Pasqual","Paul","Tavarius","Tibor","Dimitri","Narek","Yusif","Frank","Jeff","Vaclav","Ovid","Francis","Keith","Russel","Sangon","Toway","Bomber","Chean","Demit","Hubor","Kebile","Laber","Ordo","Retay","Ronix","Wagel","Dobit","Kaster","Lobel","Releo","Saken","Rustix"],["Georgia","Sandra","Yvonne"]],
|
[TrainerType.WORKER]: [["Braden", "Brendon", "Colin", "Conrad", "Dillan", "Gary", "Gerardo", "Holden", "Jackson", "Mason", "Quentin", "Willy", "Noel", "Arnold", "Brady", "Brand", "Cairn", "Cliff", "Don", "Eddie", "Felix", "Filipe", "Glenn", "Gus", "Heath", "Matthew", "Patton", "Rich", "Rob", "Ryan", "Scott", "Shelby", "Sterling", "Tyler", "Victor", "Zack", "Friedrich", "Herman", "Isaac", "Leo", "Maynard", "Mitchell", "Morgann", "Nathan", "Niel", "Pasqual", "Paul", "Tavarius", "Tibor", "Dimitri", "Narek", "Yusif", "Frank", "Jeff", "Vaclav", "Ovid", "Francis", "Keith", "Russel", "Sangon", "Toway", "Bomber", "Chean", "Demit", "Hubor", "Kebile", "Laber", "Ordo", "Retay", "Ronix", "Wagel", "Dobit", "Kaster", "Lobel", "Releo", "Saken", "Rustix"], ["Georgia", "Sandra", "Yvonne"]],
|
||||||
[TrainerType.YOUNGSTER]: [["Albert","Gordon","Ian","Jason","Jimmy","Mikey","Owen","Samuel","Warren","Allen","Ben","Billy","Calvin","Dillion","Eddie","Joey","Josh","Neal","Timmy","Tommy","Breyden","Deandre","Demetrius","Dillon","Jaylen","Johnson","Shigenobu","Chad","Cole","Cordell","Dan","Dave","Destin","Nash","Tyler","Yasu","Austin","Dallas","Darius","Donny","Jonathon","Logan","Michael","Oliver","Sebastian","Tristan","Wayne","Norman","Roland","Regis","Abe","Astor","Keita","Kenneth","Kevin","Kyle","Lester","Masao","Nicholas","Parker","Wes","Zachary","Cody","Henley","Jaye","Karl","Kenny","Masahiro","Pedro","Petey","Sinclair","Terrell","Waylon","Aidan","Anthony","David","Jacob","Jayden","Cutler","Ham","Caleb","Kai","Honus","Kenway","Bret","Chris","Cid","Dennis","Easton","Ken","Robby","Ronny","Shawn","Benjamin","Jake","Travis","Adan","Aday","Beltran","Elian","Hernan","Julen","Luka","Roi","Bernie","Dustin","Jonathan","Wyatt"],["Alice","Bridget","Carrie","Connie","Dana","Ellen","Krise","Laura","Linda","Michelle","Shannon","Andrea","Crissy","Janice","Robin","Sally","Tiana","Haley","Ali","Ann","Dalia","Dawn","Iris","Joana","Julia","Kay","Lisa","Megan","Mikaela","Miriam","Paige","Reli","Blythe","Briana","Caroline","Cassidy","Kaitlin","Madeline","Molly","Natalie","Samantha","Sarah","Cathy","Dye","Eri","Eva","Fey","Kara","Lurleen","Maki","Mali","Maya","Miki","Sibyl","Daya","Diana","Flo","Helia","Henrietta","Isabel","Mai","Persephone","Serena","Anna","Charlotte","Elin","Elsa","Lise","Sara","Suzette","Audrey","Emmy","Isabella","Madison","Rika","Rylee","Salla","Ellie","Alexandra","Amy","Lass","Brittany","Chel","Cindy","Dianne","Emily","Emma","Evelyn","Hana","Harleen","Hazel","Jocelyn","Katrina","Kimberly","Lina","Marge","Mila","Mizuki","Rena","Sal","Satoko","Summer","Tomoe","Vicky","Yue","Yumi","Lauren","Rei","Riley","Lois","Nancy","Tammy","Terry"]],
|
[TrainerType.YOUNGSTER]: [["Albert", "Gordon", "Ian", "Jason", "Jimmy", "Mikey", "Owen", "Samuel", "Warren", "Allen", "Ben", "Billy", "Calvin", "Dillion", "Eddie", "Joey", "Josh", "Neal", "Timmy", "Tommy", "Breyden", "Deandre", "Demetrius", "Dillon", "Jaylen", "Johnson", "Shigenobu", "Chad", "Cole", "Cordell", "Dan", "Dave", "Destin", "Nash", "Tyler", "Yasu", "Austin", "Dallas", "Darius", "Donny", "Jonathon", "Logan", "Michael", "Oliver", "Sebastian", "Tristan", "Wayne", "Norman", "Roland", "Regis", "Abe", "Astor", "Keita", "Kenneth", "Kevin", "Kyle", "Lester", "Masao", "Nicholas", "Parker", "Wes", "Zachary", "Cody", "Henley", "Jaye", "Karl", "Kenny", "Masahiro", "Pedro", "Petey", "Sinclair", "Terrell", "Waylon", "Aidan", "Anthony", "David", "Jacob", "Jayden", "Cutler", "Ham", "Caleb", "Kai", "Honus", "Kenway", "Bret", "Chris", "Cid", "Dennis", "Easton", "Ken", "Robby", "Ronny", "Shawn", "Benjamin", "Jake", "Travis", "Adan", "Aday", "Beltran", "Elian", "Hernan", "Julen", "Luka", "Roi", "Bernie", "Dustin", "Jonathan", "Wyatt"], ["Alice", "Bridget", "Carrie", "Connie", "Dana", "Ellen", "Krise", "Laura", "Linda", "Michelle", "Shannon", "Andrea", "Crissy", "Janice", "Robin", "Sally", "Tiana", "Haley", "Ali", "Ann", "Dalia", "Dawn", "Iris", "Joana", "Julia", "Kay", "Lisa", "Megan", "Mikaela", "Miriam", "Paige", "Reli", "Blythe", "Briana", "Caroline", "Cassidy", "Kaitlin", "Madeline", "Molly", "Natalie", "Samantha", "Sarah", "Cathy", "Dye", "Eri", "Eva", "Fey", "Kara", "Lurleen", "Maki", "Mali", "Maya", "Miki", "Sibyl", "Daya", "Diana", "Flo", "Helia", "Henrietta", "Isabel", "Mai", "Persephone", "Serena", "Anna", "Charlotte", "Elin", "Elsa", "Lise", "Sara", "Suzette", "Audrey", "Emmy", "Isabella", "Madison", "Rika", "Rylee", "Salla", "Ellie", "Alexandra", "Amy", "Lass", "Brittany", "Chel", "Cindy", "Dianne", "Emily", "Emma", "Evelyn", "Hana", "Harleen", "Hazel", "Jocelyn", "Katrina", "Kimberly", "Lina", "Marge", "Mila", "Mizuki", "Rena", "Sal", "Satoko", "Summer", "Tomoe", "Vicky", "Yue", "Yumi", "Lauren", "Rei", "Riley", "Lois", "Nancy", "Tammy", "Terry"]],
|
||||||
[TrainerType.HEX_MANIAC]: ["Kindra","Patricia","Tammy","Tasha","Valerie","Alaina","Kathleen","Leah","Makie","Sylvia","Anina","Arachna","Carrie","Desdemona","Josette","Luna","Melanie","Osanna","Raziah"],
|
[TrainerType.HEX_MANIAC]: ["Kindra", "Patricia", "Tammy", "Tasha", "Valerie", "Alaina", "Kathleen", "Leah", "Makie", "Sylvia", "Anina", "Arachna", "Carrie", "Desdemona", "Josette", "Luna", "Melanie", "Osanna", "Raziah"],
|
||||||
};
|
};
|
||||||
|
|
||||||
// function used in a commented code
|
// function used in a commented code
|
||||||
|
@ -6,5 +6,6 @@ export enum GameDataType {
|
|||||||
SESSION,
|
SESSION,
|
||||||
SETTINGS,
|
SETTINGS,
|
||||||
TUTORIALS,
|
TUTORIALS,
|
||||||
SEEN_DIALOGUES
|
SEEN_DIALOGUES,
|
||||||
|
RUN_HISTORY
|
||||||
}
|
}
|
||||||
|
13
src/enums/shop-cursor-target.ts
Normal file
13
src/enums/shop-cursor-target.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* Determines the cursor target when entering the shop phase.
|
||||||
|
*/
|
||||||
|
export enum ShopCursorTarget {
|
||||||
|
/** Cursor points to Reroll */
|
||||||
|
REROLL,
|
||||||
|
/** Cursor points to Items */
|
||||||
|
ITEMS,
|
||||||
|
/** Cursor points to Shop */
|
||||||
|
SHOP,
|
||||||
|
/** Cursor points to Check Team */
|
||||||
|
CHECK_TEAM
|
||||||
|
}
|
@ -20,7 +20,10 @@ import { Moves } from "#enums/moves";
|
|||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
import { TimeOfDay } from "#enums/time-of-day";
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
import { TrainerType } from "#enums/trainer-type";
|
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 {
|
export class Arena {
|
||||||
public scene: BattleScene;
|
public scene: BattleScene;
|
||||||
@ -331,6 +334,30 @@ export class Arena {
|
|||||||
return true;
|
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 {
|
trySetTerrain(terrain: TerrainType, hasPokemonSource: boolean, ignoreAnim: boolean = false): boolean {
|
||||||
if (this.terrain?.terrainType === (terrain || undefined)) {
|
if (this.terrain?.terrainType === (terrain || undefined)) {
|
||||||
return false;
|
return false;
|
||||||
@ -339,7 +366,7 @@ export class Arena {
|
|||||||
const oldTerrainType = this.terrain?.terrainType || TerrainType.NONE;
|
const oldTerrainType = this.terrain?.terrainType || TerrainType.NONE;
|
||||||
|
|
||||||
this.terrain = terrain ? new Terrain(terrain, hasPokemonSource ? 5 : 0) : null;
|
this.terrain = terrain ? new Terrain(terrain, hasPokemonSource ? 5 : 0) : null;
|
||||||
this.eventTarget.dispatchEvent(new TerrainChangedEvent(oldTerrainType,this.terrain?.terrainType!, this.terrain?.turnsLeft!)); // TODO: are those bangs correct?
|
this.eventTarget.dispatchEvent(new TerrainChangedEvent(oldTerrainType, this.terrain?.terrainType!, this.terrain?.turnsLeft!)); // TODO: are those bangs correct?
|
||||||
|
|
||||||
if (this.terrain) {
|
if (this.terrain) {
|
||||||
if (!ignoreAnim) {
|
if (!ignoreAnim) {
|
||||||
|
@ -135,6 +135,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
const hasHiddenAbility = !Utils.randSeedInt(hiddenAbilityChance.value);
|
const hasHiddenAbility = !Utils.randSeedInt(hiddenAbilityChance.value);
|
||||||
const randAbilityIndex = Utils.randSeedInt(2);
|
const randAbilityIndex = Utils.randSeedInt(2);
|
||||||
|
|
||||||
|
this.battleData = new PokemonBattleData();
|
||||||
this.species = species;
|
this.species = species;
|
||||||
|
|
||||||
this.pokeball = dataSource?.pokeball || PokeballType.POKEBALL;
|
this.pokeball = dataSource?.pokeball || PokeballType.POKEBALL;
|
||||||
@ -1330,7 +1331,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
|
* 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.
|
* 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 {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
|
* @param {boolean} ignoreOverride If true, it ignores ability changing effects
|
||||||
* @returns {boolean} Whether the ability is present and active
|
* @returns {boolean} Whether the ability is present and active
|
||||||
*/
|
*/
|
||||||
@ -1640,7 +1641,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
* This causes problems when there are intentional duplicates (i.e. Smeargle with Sketch)
|
* This causes problems when there are intentional duplicates (i.e. Smeargle with Sketch)
|
||||||
*/
|
*/
|
||||||
if (levelMoves) {
|
if (levelMoves) {
|
||||||
this.getUniqueMoves(levelMoves,ret);
|
this.getUniqueMoves(levelMoves, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -1952,7 +1953,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
// Sqrt the weight of any damaging moves with overlapping types. This is about a 0.05 - 0.1 multiplier.
|
// Sqrt the weight of any damaging moves with overlapping types. This is about a 0.05 - 0.1 multiplier.
|
||||||
// Other damaging moves 2x weight if 0-1 damaging moves, 0.5x if 2, 0.125x if 3. These weights double if STAB.
|
// Other damaging moves 2x weight if 0-1 damaging moves, 0.5x if 2, 0.125x if 3. These weights double if STAB.
|
||||||
// Status moves remain unchanged on weight, this encourages 1-2
|
// Status moves remain unchanged on weight, this encourages 1-2
|
||||||
movePool = baseWeights.filter(m => !this.moveset.some(mo => m[0] === mo?.moveId)).map(m => [m[0], this.moveset.some(mo => mo?.getMove().category !== MoveCategory.STATUS && mo?.getMove().type === allMoves[m[0]].type) ? Math.ceil(Math.sqrt(m[1])) : allMoves[m[0]].category !== MoveCategory.STATUS ? Math.ceil(m[1]/Math.max(Math.pow(4, this.moveset.filter(mo => (mo?.getMove().power!) > 1).length)/8,0.5) * (this.isOfType(allMoves[m[0]].type) ? 2 : 1)) : m[1]]); // TODO: is this bang correct?
|
movePool = baseWeights.filter(m => !this.moveset.some(mo => m[0] === mo?.moveId)).map(m => [m[0], this.moveset.some(mo => mo?.getMove().category !== MoveCategory.STATUS && mo?.getMove().type === allMoves[m[0]].type) ? Math.ceil(Math.sqrt(m[1])) : allMoves[m[0]].category !== MoveCategory.STATUS ? Math.ceil(m[1]/Math.max(Math.pow(4, this.moveset.filter(mo => (mo?.getMove().power!) > 1).length)/8, 0.5) * (this.isOfType(allMoves[m[0]].type) ? 2 : 1)) : m[1]]); // TODO: is this bang correct?
|
||||||
} else { // Non-trainer pokemon just use normal weights
|
} else { // Non-trainer pokemon just use normal weights
|
||||||
movePool = baseWeights.filter(m => !this.moveset.some(mo => m[0] === mo?.moveId));
|
movePool = baseWeights.filter(m => !this.moveset.some(mo => m[0] === mo?.moveId));
|
||||||
}
|
}
|
||||||
@ -2421,7 +2422,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: getPokemonNameWithAffix(this) }));
|
this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: getPokemonNameWithAffix(this) }));
|
||||||
break;
|
break;
|
||||||
case HitResult.IMMUNE:
|
case HitResult.IMMUNE:
|
||||||
this.scene.queueMessage(`${this.name} is unaffected!`);
|
this.scene.queueMessage(i18next.t("battle:hitResultImmune", { pokemonName: this.name }));
|
||||||
break;
|
break;
|
||||||
case HitResult.ONE_HIT_KO:
|
case HitResult.ONE_HIT_KO:
|
||||||
this.scene.queueMessage(i18next.t("battle:hitResultOneHitKO"));
|
this.scene.queueMessage(i18next.t("battle:hitResultOneHitKO"));
|
||||||
@ -3649,7 +3650,7 @@ export class PlayerPokemon extends Pokemon {
|
|||||||
pokemon.resetTurnData();
|
pokemon.resetTurnData();
|
||||||
pokemon.resetStatus();
|
pokemon.resetStatus();
|
||||||
pokemon.heal(Math.min(Utils.toDmgValue(0.5 * pokemon.getMaxHp()), pokemon.getMaxHp()));
|
pokemon.heal(Math.min(Utils.toDmgValue(0.5 * pokemon.getMaxHp()), pokemon.getMaxHp()));
|
||||||
this.scene.queueMessage(`${pokemon.name} was revived!`,0,true);
|
this.scene.queueMessage(i18next.t("moveTriggers:revivalBlessing", {pokemonName: pokemon.name}), 0, true);
|
||||||
|
|
||||||
if (this.scene.currentBattle.double && this.scene.getParty().length > 1) {
|
if (this.scene.currentBattle.double && this.scene.getParty().length > 1) {
|
||||||
const allyPokemon = this.getAlly();
|
const allyPokemon = this.getAlly();
|
||||||
|
@ -75,7 +75,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||||||
console.log(Object.keys(trainerPartyTemplates)[Object.values(trainerPartyTemplates).indexOf(this.getPartyTemplate())]);
|
console.log(Object.keys(trainerPartyTemplates)[Object.values(trainerPartyTemplates).indexOf(this.getPartyTemplate())]);
|
||||||
|
|
||||||
const getSprite = (hasShadow?: boolean, forceFemale?: boolean) => {
|
const getSprite = (hasShadow?: boolean, forceFemale?: boolean) => {
|
||||||
const ret = this.scene.addFieldSprite(0, 0, this.config.getSpriteKey(variant === TrainerVariant.FEMALE || forceFemale,this.isDouble()));
|
const ret = this.scene.addFieldSprite(0, 0, this.config.getSpriteKey(variant === TrainerVariant.FEMALE || forceFemale, this.isDouble()));
|
||||||
ret.setOrigin(0.5, 1);
|
ret.setOrigin(0.5, 1);
|
||||||
ret.setPipeline(this.scene.spritePipeline, {tone: [0.0, 0.0, 0.0, 0.0], hasShadow: !!hasShadow});
|
ret.setPipeline(this.scene.spritePipeline, {tone: [0.0, 0.0, 0.0, 0.0], hasShadow: !!hasShadow});
|
||||||
return ret;
|
return ret;
|
||||||
@ -106,7 +106,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getKey(forceFemale?: boolean): string {
|
getKey(forceFemale?: boolean): string {
|
||||||
return this.config.getSpriteKey(this.variant === TrainerVariant.FEMALE || forceFemale,this.isDouble());
|
return this.config.getSpriteKey(this.variant === TrainerVariant.FEMALE || forceFemale, this.isDouble());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,21 +51,6 @@ export interface InterfaceConfig {
|
|||||||
|
|
||||||
const repeatInputDelayMillis = 250;
|
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.
|
* Manages and handles all input controls for the game, including keyboard and gamepad interactions.
|
||||||
*
|
*
|
||||||
|
@ -461,7 +461,7 @@ export class LoadingScene extends SceneBase {
|
|||||||
intro.play();
|
intro.play();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.load.on(this.LOAD_EVENTS.PROGRESS , (progress: number) => {
|
this.load.on(this.LOAD_EVENTS.PROGRESS, (progress: number) => {
|
||||||
percentText.setText(`${Math.floor(progress * 100)}%`);
|
percentText.setText(`${Math.floor(progress * 100)}%`);
|
||||||
progressBar.clear();
|
progressBar.clear();
|
||||||
progressBar.fillStyle(0xffffff, 0.8);
|
progressBar.fillStyle(0xffffff, 0.8);
|
||||||
|
1
src/locales/ca_ES/ability-trigger.json
Normal file
1
src/locales/ca_ES/ability-trigger.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,64 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const abilityTriggers: SimpleTranslationEntries = {
|
|
||||||
"blockRecoilDamage": "{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!",
|
|
||||||
"badDreams": "{{pokemonName}} is tormented!",
|
|
||||||
"costar": "{{pokemonName}} copied {{allyName}}'s stat changes!",
|
|
||||||
"iceFaceAvoidedDamage": "{{pokemonName}} avoided\ndamage with {{abilityName}}!",
|
|
||||||
"perishBody": "{{pokemonName}}'s {{abilityName}}\nwill faint both pokemon in 3 turns!",
|
|
||||||
"poisonHeal": "{{pokemonName}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"trace": "{{pokemonName}} copied {{targetName}}'s\n{{abilityName}}!",
|
|
||||||
"windPowerCharged": "Being hit by {{moveName}} charged {{pokemonName}} with power!",
|
|
||||||
"quickDraw": "{{pokemonName}} can act faster than normal, thanks to its Quick Draw!",
|
|
||||||
"disguiseAvoidedDamage" : "{{pokemonNameWithAffix}}'s disguise was busted!",
|
|
||||||
"blockItemTheft": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents item theft!",
|
|
||||||
"typeImmunityHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}} avoided damage\nwith {{abilityName}}!",
|
|
||||||
"postDefendDisguise": "{{pokemonNameWithAffix}}'s disguise was busted!",
|
|
||||||
"moveImmunity": "It doesn't affect {{pokemonNameWithAffix}}!",
|
|
||||||
"reverseDrain": "{{pokemonNameWithAffix}} sucked up the liquid ooze!",
|
|
||||||
"postDefendTypeChange": "{{pokemonNameWithAffix}}'s {{abilityName}}\nmade it the {{typeName}} type!",
|
|
||||||
"postDefendContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
|
|
||||||
"postDefendAbilitySwap": "{{pokemonNameWithAffix}} swapped\nabilities with its target!",
|
|
||||||
"postDefendAbilityGive": "{{pokemonNameWithAffix}} gave its target\n{{abilityName}}!",
|
|
||||||
"postDefendMoveDisable": "{{pokemonNameWithAffix}}'s {{moveName}}\nwas disabled!",
|
|
||||||
"pokemonTypeChange": "{{pokemonNameWithAffix}} transformed into the {{moveType}} type!",
|
|
||||||
"postAttackStealHeldItem": "{{pokemonNameWithAffix}} stole\n{{defenderName}}'s {{stolenItemType}}!",
|
|
||||||
"postDefendStealHeldItem": "{{pokemonNameWithAffix}} stole\n{{attackerName}}'s {{stolenItemType}}!",
|
|
||||||
"copyFaintedAllyAbility": "{{pokemonNameWithAffix}}'s {{abilityName}} was taken over!",
|
|
||||||
"intimidateImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}} prevented it from being Intimidated!",
|
|
||||||
"postSummonAllyHeal": "{{pokemonNameWithAffix}} drank down all the\nmatcha that {{pokemonName}} made!",
|
|
||||||
"postSummonClearAllyStats": "{{pokemonNameWithAffix}}'s stat changes\nwere removed!",
|
|
||||||
"postSummonTransform": "{{pokemonNameWithAffix}} transformed\ninto {{targetName}}!",
|
|
||||||
"protectStat": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents lowering its {{statName}}!",
|
|
||||||
"statusEffectImmunityWithName": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents {{statusEffectName}}!",
|
|
||||||
"statusEffectImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents status problems!",
|
|
||||||
"battlerTagImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents {{battlerTagName}}!",
|
|
||||||
"forewarn": "{{pokemonNameWithAffix}} was forewarned about {{moveName}}!",
|
|
||||||
"frisk": "{{pokemonNameWithAffix}} frisked {{opponentName}}'s {{opponentAbilityName}}!",
|
|
||||||
"postWeatherLapseHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"postWeatherLapseDamage": "{{pokemonNameWithAffix}} is hurt\nby its {{abilityName}}!",
|
|
||||||
"postTurnLootCreateEatenBerry": "{{pokemonNameWithAffix}} harvested one {{berryName}}!",
|
|
||||||
"postTurnHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"fetchBall": "{{pokemonNameWithAffix}} found a\n{{pokeballName}}!",
|
|
||||||
"healFromBerryUse": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP!",
|
|
||||||
"arenaTrap": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents switching!",
|
|
||||||
"postBattleLoot": "{{pokemonNameWithAffix}} picked up\n{{itemName}}!",
|
|
||||||
"postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
|
|
||||||
"postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
|
|
||||||
"postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!",
|
|
||||||
"postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!",
|
|
||||||
"postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!",
|
|
||||||
"postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!",
|
|
||||||
"postSummonTeravolt": "{{pokemonNameWithAffix}} is radiating a bursting aura!",
|
|
||||||
"postSummonDarkAura": "{{pokemonNameWithAffix}} is radiating a Dark Aura!",
|
|
||||||
"postSummonFairyAura": "{{pokemonNameWithAffix}} is radiating a Fairy Aura!",
|
|
||||||
"postSummonNeutralizingGas": "{{pokemonNameWithAffix}}'s Neutralizing Gas filled the area!",
|
|
||||||
"postSummonAsOneGlastrier": "{{pokemonNameWithAffix}} has two Abilities!",
|
|
||||||
"postSummonAsOneSpectrier": "{{pokemonNameWithAffix}} has two Abilities!",
|
|
||||||
"postSummonVesselOfRuin": "{{pokemonNameWithAffix}}'s Vessel of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"postSummonSwordOfRuin": "{{pokemonNameWithAffix}}'s Sword of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"postSummonTabletsOfRuin": "{{pokemonNameWithAffix}}'s Tablets of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"postSummonBeadsOfRuin": "{{pokemonNameWithAffix}}'s Beads of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"preventBerryUse": "{{pokemonNameWithAffix}} is too\nnervous to eat berries!",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/ability.json
Normal file
1
src/locales/ca_ES/ability.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
File diff suppressed because it is too large
Load Diff
1
src/locales/ca_ES/achv-female.json
Normal file
1
src/locales/ca_ES/achv-female.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/achv-male.json
Normal file
1
src/locales/ca_ES/achv-male.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,278 +0,0 @@
|
|||||||
import { AchievementTranslationEntries } from "#app/interfaces/locales.js";
|
|
||||||
|
|
||||||
// Achievement translations for the when the player character is male
|
|
||||||
export const PGMachv: AchievementTranslationEntries = {
|
|
||||||
"Achievements": {
|
|
||||||
name: "Achievements",
|
|
||||||
},
|
|
||||||
"Locked": {
|
|
||||||
name: "Locked",
|
|
||||||
},
|
|
||||||
|
|
||||||
"MoneyAchv": {
|
|
||||||
description: "Accumulate a total of ₽{{moneyAmount}}",
|
|
||||||
},
|
|
||||||
"10K_MONEY": {
|
|
||||||
name: "Money Haver",
|
|
||||||
},
|
|
||||||
"100K_MONEY": {
|
|
||||||
name: "Rich",
|
|
||||||
},
|
|
||||||
"1M_MONEY": {
|
|
||||||
name: "Millionaire",
|
|
||||||
},
|
|
||||||
"10M_MONEY": {
|
|
||||||
name: "One Percenter",
|
|
||||||
},
|
|
||||||
|
|
||||||
"DamageAchv": {
|
|
||||||
description: "Inflict {{damageAmount}} damage in one hit",
|
|
||||||
},
|
|
||||||
"250_DMG": {
|
|
||||||
name: "Hard Hitter",
|
|
||||||
},
|
|
||||||
"1000_DMG": {
|
|
||||||
name: "Harder Hitter",
|
|
||||||
},
|
|
||||||
"2500_DMG": {
|
|
||||||
name: "That's a Lotta Damage!",
|
|
||||||
},
|
|
||||||
"10000_DMG": {
|
|
||||||
name: "One Punch Man",
|
|
||||||
},
|
|
||||||
|
|
||||||
"HealAchv": {
|
|
||||||
description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item",
|
|
||||||
},
|
|
||||||
"250_HEAL": {
|
|
||||||
name: "Novice Healer",
|
|
||||||
},
|
|
||||||
"1000_HEAL": {
|
|
||||||
name: "Big Healer",
|
|
||||||
},
|
|
||||||
"2500_HEAL": {
|
|
||||||
name: "Cleric",
|
|
||||||
},
|
|
||||||
"10000_HEAL": {
|
|
||||||
name: "Recovery Master",
|
|
||||||
},
|
|
||||||
|
|
||||||
"LevelAchv": {
|
|
||||||
description: "Level up a Pokémon to Lv{{level}}",
|
|
||||||
},
|
|
||||||
"LV_100": {
|
|
||||||
name: "But Wait, There's More!",
|
|
||||||
},
|
|
||||||
"LV_250": {
|
|
||||||
name: "Elite",
|
|
||||||
},
|
|
||||||
"LV_1000": {
|
|
||||||
name: "To Go Even Further Beyond",
|
|
||||||
},
|
|
||||||
|
|
||||||
"RibbonAchv": {
|
|
||||||
description: "Accumulate a total of {{ribbonAmount}} Ribbons",
|
|
||||||
},
|
|
||||||
"10_RIBBONS": {
|
|
||||||
name: "Pokémon League Champion",
|
|
||||||
},
|
|
||||||
"25_RIBBONS": {
|
|
||||||
name: "Great League Champion",
|
|
||||||
},
|
|
||||||
"50_RIBBONS": {
|
|
||||||
name: "Ultra League Champion",
|
|
||||||
},
|
|
||||||
"75_RIBBONS": {
|
|
||||||
name: "Rogue League Champion",
|
|
||||||
},
|
|
||||||
"100_RIBBONS": {
|
|
||||||
name: "Master League Champion",
|
|
||||||
},
|
|
||||||
|
|
||||||
"TRANSFER_MAX_BATTLE_STAT": {
|
|
||||||
name: "Teamwork",
|
|
||||||
description: "Baton pass to another party member with at least one stat maxed out",
|
|
||||||
},
|
|
||||||
"MAX_FRIENDSHIP": {
|
|
||||||
name: "Friendmaxxing",
|
|
||||||
description: "Reach max friendship on a Pokémon",
|
|
||||||
},
|
|
||||||
"MEGA_EVOLVE": {
|
|
||||||
name: "Megamorph",
|
|
||||||
description: "Mega evolve a Pokémon",
|
|
||||||
},
|
|
||||||
"GIGANTAMAX": {
|
|
||||||
name: "Absolute Unit",
|
|
||||||
description: "Gigantamax a Pokémon",
|
|
||||||
},
|
|
||||||
"TERASTALLIZE": {
|
|
||||||
name: "STAB Enthusiast",
|
|
||||||
description: "Terastallize a Pokémon",
|
|
||||||
},
|
|
||||||
"STELLAR_TERASTALLIZE": {
|
|
||||||
name: "The Hidden Type",
|
|
||||||
description: "Stellar Terastallize a Pokémon",
|
|
||||||
},
|
|
||||||
"SPLICE": {
|
|
||||||
name: "Infinite Fusion",
|
|
||||||
description: "Splice two Pokémon together with DNA Splicers",
|
|
||||||
},
|
|
||||||
"MINI_BLACK_HOLE": {
|
|
||||||
name: "A Hole Lot of Items",
|
|
||||||
description: "Acquire a Mini Black Hole",
|
|
||||||
},
|
|
||||||
"CATCH_MYTHICAL": {
|
|
||||||
name: "Mythical",
|
|
||||||
description: "Catch a mythical Pokémon",
|
|
||||||
},
|
|
||||||
"CATCH_SUB_LEGENDARY": {
|
|
||||||
name: "(Sub-)Legendary",
|
|
||||||
description: "Catch a sub-legendary Pokémon",
|
|
||||||
},
|
|
||||||
"CATCH_LEGENDARY": {
|
|
||||||
name: "Legendary",
|
|
||||||
description: "Catch a legendary Pokémon",
|
|
||||||
},
|
|
||||||
"SEE_SHINY": {
|
|
||||||
name: "Shiny",
|
|
||||||
description: "Find a shiny Pokémon in the wild",
|
|
||||||
},
|
|
||||||
"SHINY_PARTY": {
|
|
||||||
name: "That's Dedication",
|
|
||||||
description: "Have a full party of shiny Pokémon",
|
|
||||||
},
|
|
||||||
"HATCH_MYTHICAL": {
|
|
||||||
name: "Mythical Egg",
|
|
||||||
description: "Hatch a mythical Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HATCH_SUB_LEGENDARY": {
|
|
||||||
name: "Sub-Legendary Egg",
|
|
||||||
description: "Hatch a sub-legendary Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HATCH_LEGENDARY": {
|
|
||||||
name: "Legendary Egg",
|
|
||||||
description: "Hatch a legendary Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HATCH_SHINY": {
|
|
||||||
name: "Shiny Egg",
|
|
||||||
description: "Hatch a shiny Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HIDDEN_ABILITY": {
|
|
||||||
name: "Hidden Potential",
|
|
||||||
description: "Catch a Pokémon with a hidden ability",
|
|
||||||
},
|
|
||||||
"PERFECT_IVS": {
|
|
||||||
name: "Certificate of Authenticity",
|
|
||||||
description: "Get perfect IVs on a Pokémon",
|
|
||||||
},
|
|
||||||
"CLASSIC_VICTORY": {
|
|
||||||
name: "Undefeated",
|
|
||||||
description: "Beat the game in classic mode",
|
|
||||||
},
|
|
||||||
"UNEVOLVED_CLASSIC_VICTORY": {
|
|
||||||
name: "Bring Your Child To Work Day",
|
|
||||||
description: "Beat the game in Classic Mode with at least one unevolved party member."
|
|
||||||
},
|
|
||||||
|
|
||||||
"MONO_GEN_ONE": {
|
|
||||||
name: "The Original Rival",
|
|
||||||
description: "Complete the generation one only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_TWO": {
|
|
||||||
name: "Generation 1.5",
|
|
||||||
description: "Complete the generation two only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_THREE": {
|
|
||||||
name: "Too much water?",
|
|
||||||
description: "Complete the generation three only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_FOUR": {
|
|
||||||
name: "Is she really the hardest?",
|
|
||||||
description: "Complete the generation four only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_FIVE": {
|
|
||||||
name: "All Original",
|
|
||||||
description: "Complete the generation five only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_SIX": {
|
|
||||||
name: "Almost Royalty",
|
|
||||||
description: "Complete the generation six only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_SEVEN": {
|
|
||||||
name: "Only Technically",
|
|
||||||
description: "Complete the generation seven only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_EIGHT": {
|
|
||||||
name: "A Champion Time!",
|
|
||||||
description: "Complete the generation eight only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_NINE": {
|
|
||||||
name: "She was going easy on you",
|
|
||||||
description: "Complete the generation nine only challenge.",
|
|
||||||
},
|
|
||||||
|
|
||||||
"MonoType": {
|
|
||||||
description: "Complete the {{type}} monotype challenge.",
|
|
||||||
},
|
|
||||||
"MONO_NORMAL": {
|
|
||||||
name: "Extra Ordinary",
|
|
||||||
},
|
|
||||||
"MONO_FIGHTING": {
|
|
||||||
name: "I Know Kung Fu",
|
|
||||||
},
|
|
||||||
"MONO_FLYING": {
|
|
||||||
name: "Angry Birds",
|
|
||||||
},
|
|
||||||
"MONO_POISON": {
|
|
||||||
name: "Kanto's Favourite",
|
|
||||||
},
|
|
||||||
"MONO_GROUND": {
|
|
||||||
name: "Forecast: Earthquakes",
|
|
||||||
},
|
|
||||||
"MONO_ROCK": {
|
|
||||||
name: "Brock Hard",
|
|
||||||
},
|
|
||||||
"MONO_BUG": {
|
|
||||||
name: "You Like Jazz?",
|
|
||||||
},
|
|
||||||
"MONO_GHOST": {
|
|
||||||
name: "Who You Gonna Call?",
|
|
||||||
},
|
|
||||||
"MONO_STEEL": {
|
|
||||||
name: "Iron Giant",
|
|
||||||
},
|
|
||||||
"MONO_FIRE": {
|
|
||||||
name: "I Cast Fireball!",
|
|
||||||
},
|
|
||||||
"MONO_WATER": {
|
|
||||||
name: "When It Rains, It Pours",
|
|
||||||
},
|
|
||||||
"MONO_GRASS": {
|
|
||||||
name: "Can't Touch This",
|
|
||||||
},
|
|
||||||
"MONO_ELECTRIC": {
|
|
||||||
name: "Aim For The Horn!",
|
|
||||||
},
|
|
||||||
"MONO_PSYCHIC": {
|
|
||||||
name: "Big Brain Energy",
|
|
||||||
},
|
|
||||||
"MONO_ICE": {
|
|
||||||
name: "Walking On Thin Ice",
|
|
||||||
},
|
|
||||||
"MONO_DRAGON": {
|
|
||||||
name: "Pseudo-Legend Club",
|
|
||||||
},
|
|
||||||
"MONO_DARK": {
|
|
||||||
name: "It's Just A Phase",
|
|
||||||
},
|
|
||||||
"MONO_FAIRY": {
|
|
||||||
name: "Hey! Listen!",
|
|
||||||
},
|
|
||||||
"FRESH_START": {
|
|
||||||
name: "First Try!",
|
|
||||||
description: "Complete the Fresh Start challenge."
|
|
||||||
}
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
|
||||||
export const PGFachv: AchievementTranslationEntries = PGMachv;
|
|
1
src/locales/ca_ES/arena-flyout.json
Normal file
1
src/locales/ca_ES/arena-flyout.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,49 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const arenaFlyout: SimpleTranslationEntries = {
|
|
||||||
// Title
|
|
||||||
"activeBattleEffects": "Active Battle Effects",
|
|
||||||
"player": "Player",
|
|
||||||
"neutral": "Neutral",
|
|
||||||
"enemy": "Enemy",
|
|
||||||
|
|
||||||
// WeatherType
|
|
||||||
"sunny": "Sunny",
|
|
||||||
"rain": "Rain",
|
|
||||||
"sandstorm": "Sandstorm",
|
|
||||||
"hail": "Hail",
|
|
||||||
"snow": "Snow",
|
|
||||||
"fog": "Fog",
|
|
||||||
"heavyRain": "Heavy Rain",
|
|
||||||
"harshSun": "Harsh Sun",
|
|
||||||
"strongWinds": "Strong Winds",
|
|
||||||
|
|
||||||
// TerrainType
|
|
||||||
"misty": "Misty Terrain",
|
|
||||||
"electric": "Electric Terrain",
|
|
||||||
"grassy": "Grassy Terrain",
|
|
||||||
"psychic": "Psychic Terrain",
|
|
||||||
|
|
||||||
// ArenaTagType
|
|
||||||
"mudSport": "Mud Sport",
|
|
||||||
"waterSport": "Water Sport",
|
|
||||||
"spikes": "Spikes",
|
|
||||||
"toxicSpikes": "Toxic Spikes",
|
|
||||||
"mist": "Mist",
|
|
||||||
"futureSight": "Future Sight",
|
|
||||||
"doomDesire": "Doom Desire",
|
|
||||||
"wish": "Wish",
|
|
||||||
"stealthRock": "Stealth Rock",
|
|
||||||
"stickyWeb": "Sticky Web",
|
|
||||||
"trickRoom": "Trick Room",
|
|
||||||
"gravity": "Gravity",
|
|
||||||
"reflect": "Reflect",
|
|
||||||
"lightScreen": "Light Screen",
|
|
||||||
"auroraVeil": "Aurora Veil",
|
|
||||||
"quickGuard": "Quick Guard",
|
|
||||||
"wideGuard": "Wide Guard",
|
|
||||||
"matBlock": "Mat Block",
|
|
||||||
"craftyShield": "Crafty Shield",
|
|
||||||
"tailwind": "Tailwind",
|
|
||||||
"happyHour": "Happy Hour",
|
|
||||||
};
|
|
1
src/locales/ca_ES/arena-tag.json
Normal file
1
src/locales/ca_ES/arena-tag.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,53 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const arenaTag: SimpleTranslationEntries = {
|
|
||||||
"yourTeam": "your team",
|
|
||||||
"opposingTeam": "the opposing team",
|
|
||||||
"arenaOnRemove": "{{moveName}}'s effect wore off.",
|
|
||||||
"arenaOnRemovePlayer": "{{moveName}}'s effect wore off\non your side.",
|
|
||||||
"arenaOnRemoveEnemy": "{{moveName}}'s effect wore off\non the foe's side.",
|
|
||||||
"mistOnAdd": "{{pokemonNameWithAffix}}'s team became\nshrouded in mist!",
|
|
||||||
"mistApply": "The mist prevented\nthe lowering of stats!",
|
|
||||||
"reflectOnAdd": "Reflect reduced the damage of physical moves.",
|
|
||||||
"reflectOnAddPlayer": "Reflect reduced the damage of physical moves on your side.",
|
|
||||||
"reflectOnAddEnemy": "Reflect reduced the damage of physical moves on the foe's side.",
|
|
||||||
"lightScreenOnAdd": "Light Screen reduced the damage of special moves.",
|
|
||||||
"lightScreenOnAddPlayer": "Light Screen reduced the damage of special moves on your side.",
|
|
||||||
"lightScreenOnAddEnemy": "Light Screen reduced the damage of special moves on the foe's side.",
|
|
||||||
"auroraVeilOnAdd": "Aurora Veil reduced the damage of moves.",
|
|
||||||
"auroraVeilOnAddPlayer": "Aurora Veil reduced the damage of moves on your side.",
|
|
||||||
"auroraVeilOnAddEnemy": "Aurora Veil reduced the damage of moves on the foe's side.",
|
|
||||||
"conditionalProtectOnAdd": "{{moveName}} protected team!",
|
|
||||||
"conditionalProtectOnAddPlayer": "{{moveName}} protected your team!",
|
|
||||||
"conditionalProtectOnAddEnemy": "{{moveName}} protected the\nopposing team!",
|
|
||||||
"conditionalProtectApply": "{{moveName}} protected {{pokemonNameWithAffix}}!",
|
|
||||||
"matBlockOnAdd": "{{pokemonNameWithAffix}} intends to flip up a mat\nand block incoming attacks!",
|
|
||||||
"noCritOnAddPlayer": "The {{moveName}} shielded your\nteam from critical hits!",
|
|
||||||
"noCritOnAddEnemy": "The {{moveName}} shielded the opposing\nteam from critical hits!",
|
|
||||||
"noCritOnRemove": "{{pokemonNameWithAffix}}'s {{moveName}}\nwore off!",
|
|
||||||
"wishTagOnAdd": "{{pokemonNameWithAffix}}'s wish\ncame true!",
|
|
||||||
"mudSportOnAdd": "Electricity's power was weakened!",
|
|
||||||
"mudSportOnRemove": "The effects of Mud Sport\nhave faded.",
|
|
||||||
"waterSportOnAdd": "Fire's power was weakened!",
|
|
||||||
"waterSportOnRemove": "The effects of Water Sport\nhave faded.",
|
|
||||||
"spikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
|
|
||||||
"spikesActivateTrap": "{{pokemonNameWithAffix}} is hurt\nby the spikes!",
|
|
||||||
"toxicSpikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
|
|
||||||
"toxicSpikesActivateTrapPoison": "{{pokemonNameWithAffix}} absorbed the {{moveName}}!",
|
|
||||||
"stealthRockOnAdd": "Pointed stones float in the air\naround {{opponentDesc}}!",
|
|
||||||
"stealthRockActivateTrap": "Pointed stones dug into\n{{pokemonNameWithAffix}}!",
|
|
||||||
"stickyWebOnAdd": "A {{moveName}} has been laid out on the ground around the opposing team!",
|
|
||||||
"stickyWebActivateTrap": "The opposing {{pokemonName}} was caught in a sticky web!",
|
|
||||||
"trickRoomOnAdd": "{{pokemonNameWithAffix}} twisted\nthe dimensions!",
|
|
||||||
"trickRoomOnRemove": "The twisted dimensions\nreturned to normal!",
|
|
||||||
"gravityOnAdd": "Gravity intensified!",
|
|
||||||
"gravityOnRemove": "Gravity returned to normal!",
|
|
||||||
"tailwindOnAdd": "The Tailwind blew from behind team!",
|
|
||||||
"tailwindOnAddPlayer": "The Tailwind blew from behind\nyour team!",
|
|
||||||
"tailwindOnAddEnemy": "The Tailwind blew from behind\nthe opposing team!",
|
|
||||||
"tailwindOnRemove": "Team's Tailwind petered out!",
|
|
||||||
"tailwindOnRemovePlayer": "Your team's Tailwind petered out!",
|
|
||||||
"tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!",
|
|
||||||
"happyHourOnAdd": "Everyone is caught up in the happy atmosphere!",
|
|
||||||
"happyHourOnRemove": "The atmosphere returned to normal.",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/battle-info.json
Normal file
1
src/locales/ca_ES/battle-info.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,5 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battleInfo: SimpleTranslationEntries = {
|
|
||||||
"generation": "Generation {{generation}}",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/battle-message-ui-handler.json
Normal file
1
src/locales/ca_ES/battle-message-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battleMessageUiHandler: SimpleTranslationEntries = {
|
|
||||||
"ivBest": "Best",
|
|
||||||
"ivFantastic": "Fantastic",
|
|
||||||
"ivVeryGood": "Very Good",
|
|
||||||
"ivPrettyGood": "Pretty Good",
|
|
||||||
"ivDecent": "Decent",
|
|
||||||
"ivNoGood": "No Good",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/battle-scene.json
Normal file
1
src/locales/ca_ES/battle-scene.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,5 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battleScene: SimpleTranslationEntries = {
|
|
||||||
"moneyOwned": "₽{{formattedMoney}}"
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/battle.json
Normal file
1
src/locales/ca_ES/battle.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,99 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battle: SimpleTranslationEntries = {
|
|
||||||
"bossAppeared": "{{bossName}} appeared.",
|
|
||||||
"trainerAppeared": "{{trainerName}}\nwould like to battle!",
|
|
||||||
"trainerAppearedDouble": "{{trainerName}}\nwould like to battle!",
|
|
||||||
"trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!",
|
|
||||||
"singleWildAppeared": "A wild {{pokemonName}} appeared!",
|
|
||||||
"multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
|
|
||||||
"playerComeBack": "Come back, {{pokemonName}}!",
|
|
||||||
"trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
|
|
||||||
"playerGo": "Go! {{pokemonName}}!",
|
|
||||||
"trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
|
|
||||||
"switchQuestion": "Will you switch\n{{pokemonName}}?",
|
|
||||||
"trainerDefeated": "You defeated\n{{trainerName}}!",
|
|
||||||
"moneyWon": "You got\n₽{{moneyAmount}} for winning!",
|
|
||||||
"moneyPickedUp": "You picked up ₽{{moneyAmount}}!",
|
|
||||||
"pokemonCaught": "{{pokemonName}} was caught!",
|
|
||||||
"addedAsAStarter": "{{pokemonName}} has been\nadded as a starter!",
|
|
||||||
"partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?",
|
|
||||||
"pokemon": "Pokémon",
|
|
||||||
"sendOutPokemon": "Go! {{pokemonName}}!",
|
|
||||||
"hitResultCriticalHit": "A critical hit!",
|
|
||||||
"hitResultSuperEffective": "It's super effective!",
|
|
||||||
"hitResultNotVeryEffective": "It's not very effective…",
|
|
||||||
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
|
||||||
"hitResultOneHitKO": "It's a one-hit KO!",
|
|
||||||
"attackFailed": "But it failed!",
|
|
||||||
"attackMissed": "{{pokemonNameWithAffix}} avoided the attack!",
|
|
||||||
"attackHitsCount": "Hit {{count}} time(s)!",
|
|
||||||
"rewardGain": "You received\n{{modifierName}}!",
|
|
||||||
"expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
|
|
||||||
"levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
|
|
||||||
"learnMove": "{{pokemonName}} learned\n{{moveName}}!",
|
|
||||||
"learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
|
|
||||||
"learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
|
|
||||||
"learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
|
|
||||||
"learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
|
|
||||||
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
|
|
||||||
"learnMoveForgetQuestion": "Which move should be forgotten?",
|
|
||||||
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
|
|
||||||
"countdownPoof": "@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!",
|
|
||||||
"learnMoveAnd": "And…",
|
|
||||||
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
|
|
||||||
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
|
|
||||||
"moveNoPP": "There's no PP left for\nthis move!",
|
|
||||||
"moveDisabled": "{{moveName}} is disabled!",
|
|
||||||
"noPokeballForce": "An unseen force\nprevents using Poké Balls.",
|
|
||||||
"noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
|
|
||||||
"noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
|
|
||||||
"noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
|
|
||||||
"noEscapeForce": "An unseen force\nprevents escape.",
|
|
||||||
"noEscapeTrainer": "You can't run\nfrom a trainer battle!",
|
|
||||||
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
|
|
||||||
"runAwaySuccess": "You got away safely!",
|
|
||||||
"runAwayCannotEscape": "You can't escape!",
|
|
||||||
"escapeVerbSwitch": "switching",
|
|
||||||
"escapeVerbFlee": "fleeing",
|
|
||||||
"notDisabled": "{{pokemonName}}'s {{moveName}} is disabled\nno more!",
|
|
||||||
"turnEndHpRestore": "{{pokemonName}}'s HP was restored.",
|
|
||||||
"hpIsFull": "{{pokemonName}}'s\nHP is full!",
|
|
||||||
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
|
||||||
"itemStackFull": "The stack for {{fullItemName}} is full.\nYou will receive {{itemName}} instead.",
|
|
||||||
"eggHatching": "Oh?",
|
|
||||||
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?",
|
|
||||||
"wildPokemonWithAffix": "Wild {{pokemonName}}",
|
|
||||||
"foePokemonWithAffix": "Foe {{pokemonName}}",
|
|
||||||
"useMove": "{{pokemonNameWithAffix}} used {{moveName}}!",
|
|
||||||
"drainMessage": "{{pokemonName}} had its\nenergy drained!",
|
|
||||||
"regainHealth": "{{pokemonName}} regained\nhealth!",
|
|
||||||
"stealEatBerry": "{{pokemonName}} stole and ate\n{{targetName}}'s {{berryName}}!",
|
|
||||||
"ppHealBerry": "{{pokemonNameWithAffix}} restored PP to its move {{moveName}}\nusing its {{berryName}}!",
|
|
||||||
"hpHealBerry": "{{pokemonNameWithAffix}} restored its health using\nits {{berryName}}!",
|
|
||||||
"fainted": "{{pokemonNameWithAffix}} fainted!",
|
|
||||||
"statsAnd": "and",
|
|
||||||
"stats": "Stats",
|
|
||||||
"statRose_one": "{{pokemonNameWithAffix}}'s {{stats}} rose!",
|
|
||||||
"statRose_other": "{{pokemonNameWithAffix}}'s {{stats}} rose!",
|
|
||||||
"statSharplyRose_one": "{{pokemonNameWithAffix}}'s {{stats}} sharply rose!",
|
|
||||||
"statSharplyRose_other": "{{pokemonNameWithAffix}}'s {{stats}} sharply rose!",
|
|
||||||
"statRoseDrastically_one": "{{pokemonNameWithAffix}}'s {{stats}} rose drastically!",
|
|
||||||
"statRoseDrastically_other": "{{pokemonNameWithAffix}}'s {{stats}} rose drastically!",
|
|
||||||
"statWontGoAnyHigher_one": "{{pokemonNameWithAffix}}'s {{stats}} won't go any higher!",
|
|
||||||
"statWontGoAnyHigher_other": "{{pokemonNameWithAffix}}'s {{stats}} won't go any higher!",
|
|
||||||
"statFell_one": "{{pokemonNameWithAffix}}'s {{stats}} fell!",
|
|
||||||
"statFell_other": "{{pokemonNameWithAffix}}'s {{stats}} fell!",
|
|
||||||
"statHarshlyFell_one": "{{pokemonNameWithAffix}}'s {{stats}} harshly fell!",
|
|
||||||
"statHarshlyFell_other": "{{pokemonNameWithAffix}}'s {{stats}} harshly fell!",
|
|
||||||
"statSeverelyFell_one": "{{pokemonNameWithAffix}}'s {{stats}} severely fell!",
|
|
||||||
"statSeverelyFell_other": "{{pokemonNameWithAffix}}'s {{stats}} severely fell!",
|
|
||||||
"statWontGoAnyLower_one": "{{pokemonNameWithAffix}}'s {{stats}} won't go any lower!",
|
|
||||||
"statWontGoAnyLower_other": "{{pokemonNameWithAffix}}'s {{stats}} won't go any lower!",
|
|
||||||
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{type}} type!",
|
|
||||||
"retryBattle": "Would you like to retry from the start of the battle?",
|
|
||||||
"unlockedSomething": "{{unlockedThing}}\nhas been unlocked.",
|
|
||||||
"congratulations": "Congratulations!",
|
|
||||||
"beatModeFirstTime": "{{speciesName}} beat {{gameMode}} Mode for the first time!\nYou received {{newModifier}}!",
|
|
||||||
"ppReduced": "It reduced the PP of {{targetName}}'s\n{{moveName}} by {{reduction}}!",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/battler-tags.json
Normal file
1
src/locales/ca_ES/battler-tags.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,73 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battlerTags: SimpleTranslationEntries = {
|
|
||||||
"trappedDesc": "trapping",
|
|
||||||
"flinchedDesc": "flinching",
|
|
||||||
"confusedDesc": "confusion",
|
|
||||||
"infatuatedDesc": "infatuation",
|
|
||||||
"seedDesc": "seeding",
|
|
||||||
"nightmareDesc": "nightmares",
|
|
||||||
"ingrainDesc": "roots",
|
|
||||||
"drowsyDesc": "drowsiness",
|
|
||||||
"rechargingLapse": "{{pokemonNameWithAffix}} must\nrecharge!",
|
|
||||||
"trappedOnAdd": "{{pokemonNameWithAffix}} can no\nlonger escape!",
|
|
||||||
"trappedOnRemove": "{{pokemonNameWithAffix}} was freed\nfrom {{moveName}}!",
|
|
||||||
"flinchedLapse": "{{pokemonNameWithAffix}} flinched!",
|
|
||||||
"confusedOnAdd": "{{pokemonNameWithAffix}} became\nconfused!",
|
|
||||||
"confusedOnRemove": "{{pokemonNameWithAffix}} snapped\nout of confusion!",
|
|
||||||
"confusedOnOverlap": "{{pokemonNameWithAffix}} is\nalready confused!",
|
|
||||||
"confusedLapse": "{{pokemonNameWithAffix}} is\nconfused!",
|
|
||||||
"confusedLapseHurtItself": "It hurt itself in its\nconfusion!",
|
|
||||||
"destinyBondLapseIsBoss": "{{pokemonNameWithAffix}} is unaffected\nby the effects of Destiny Bond.",
|
|
||||||
"destinyBondLapse": "{{pokemonNameWithAffix}} took\n{{pokemonNameWithAffix2}} down with it!",
|
|
||||||
"infatuatedOnAdd": "{{pokemonNameWithAffix}} fell in love\nwith {{sourcePokemonName}}!",
|
|
||||||
"infatuatedOnOverlap": "{{pokemonNameWithAffix}} is\nalready in love!",
|
|
||||||
"infatuatedLapse": "{{pokemonNameWithAffix}} is in love\nwith {{sourcePokemonName}}!",
|
|
||||||
"infatuatedLapseImmobilize": "{{pokemonNameWithAffix}} is\nimmobilized by love!",
|
|
||||||
"infatuatedOnRemove": "{{pokemonNameWithAffix}} got over\nits infatuation.",
|
|
||||||
"seededOnAdd": "{{pokemonNameWithAffix}} was seeded!",
|
|
||||||
"seededLapse": "{{pokemonNameWithAffix}}'s health is\nsapped by Leech Seed!",
|
|
||||||
"seededLapseShed": "{{pokemonNameWithAffix}}'s Leech Seed\nsucked up the liquid ooze!",
|
|
||||||
"nightmareOnAdd": "{{pokemonNameWithAffix}} began\nhaving a Nightmare!",
|
|
||||||
"nightmareOnOverlap": "{{pokemonNameWithAffix}} is\nalready locked in a Nightmare!",
|
|
||||||
"nightmareLapse": "{{pokemonNameWithAffix}} is locked\nin a Nightmare!",
|
|
||||||
"encoreOnAdd": "{{pokemonNameWithAffix}} got\nan Encore!",
|
|
||||||
"encoreOnRemove": "{{pokemonNameWithAffix}}'s Encore\nended!",
|
|
||||||
"helpingHandOnAdd": "{{pokemonNameWithAffix}} is ready to\nhelp {{pokemonName}}!",
|
|
||||||
"ingrainLapse": "{{pokemonNameWithAffix}} absorbed\nnutrients with its roots!",
|
|
||||||
"ingrainOnTrap": "{{pokemonNameWithAffix}} planted its roots!",
|
|
||||||
"aquaRingOnAdd": "{{pokemonNameWithAffix}} surrounded\nitself with a veil of water!",
|
|
||||||
"aquaRingLapse": "{{moveName}} restored\n{{pokemonName}}'s HP!",
|
|
||||||
"drowsyOnAdd": "{{pokemonNameWithAffix}} grew drowsy!",
|
|
||||||
"damagingTrapLapse": "{{pokemonNameWithAffix}} is hurt\nby {{moveName}}!",
|
|
||||||
"bindOnTrap": "{{pokemonNameWithAffix}} was squeezed by\n{{sourcePokemonName}}'s {{moveName}}!",
|
|
||||||
"wrapOnTrap": "{{pokemonNameWithAffix}} was Wrapped\nby {{sourcePokemonName}}!",
|
|
||||||
"vortexOnTrap": "{{pokemonNameWithAffix}} was trapped\nin the vortex!",
|
|
||||||
"clampOnTrap": "{{sourcePokemonNameWithAffix}} Clamped\n{{pokemonName}}!",
|
|
||||||
"sandTombOnTrap": "{{pokemonNameWithAffix}} became trapped\nby {{moveName}}!",
|
|
||||||
"magmaStormOnTrap": "{{pokemonNameWithAffix}} became trapped\nby swirling magma!",
|
|
||||||
"snapTrapOnTrap": "{{pokemonNameWithAffix}} got trapped\nby a snap trap!",
|
|
||||||
"thunderCageOnTrap": "{{sourcePokemonNameWithAffix}} trapped\n{{pokemonNameWithAffix}}!",
|
|
||||||
"infestationOnTrap": "{{pokemonNameWithAffix}} has been afflicted \nwith an infestation by {{sourcePokemonNameWithAffix}}!",
|
|
||||||
"protectedOnAdd": "{{pokemonNameWithAffix}}\nprotected itself!",
|
|
||||||
"protectedLapse": "{{pokemonNameWithAffix}}\nprotected itself!",
|
|
||||||
"enduringOnAdd": "{{pokemonNameWithAffix}} braced\nitself!",
|
|
||||||
"enduringLapse": "{{pokemonNameWithAffix}} endured\nthe hit!",
|
|
||||||
"sturdyLapse": "{{pokemonNameWithAffix}} endured\nthe hit!",
|
|
||||||
"perishSongLapse": "{{pokemonNameWithAffix}}'s perish count fell to {{turnCount}}.",
|
|
||||||
"centerOfAttentionOnAdd": "{{pokemonNameWithAffix}} became the center\nof attention!",
|
|
||||||
"truantLapse": "{{pokemonNameWithAffix}} is\nloafing around!",
|
|
||||||
"slowStartOnAdd": "{{pokemonNameWithAffix}} can't\nget it going!",
|
|
||||||
"slowStartOnRemove": "{{pokemonNameWithAffix}} finally\ngot its act together!",
|
|
||||||
"highestStatBoostOnAdd": "{{pokemonNameWithAffix}}'s {{statName}}\nwas heightened!",
|
|
||||||
"highestStatBoostOnRemove": "The effects of {{pokemonNameWithAffix}}'s\n{{abilityName}} wore off!",
|
|
||||||
"magnetRisenOnAdd": "{{pokemonNameWithAffix}} levitated with electromagnetism!",
|
|
||||||
"magnetRisenOnRemove": "{{pokemonNameWithAffix}}'s electromagnetism wore off!",
|
|
||||||
"critBoostOnAdd": "{{pokemonNameWithAffix}} is getting\npumped!",
|
|
||||||
"critBoostOnRemove": "{{pokemonNameWithAffix}} relaxed.",
|
|
||||||
"saltCuredOnAdd": "{{pokemonNameWithAffix}} is being salt cured!",
|
|
||||||
"saltCuredLapse": "{{pokemonNameWithAffix}} is hurt by {{moveName}}!",
|
|
||||||
"cursedOnAdd": "{{pokemonNameWithAffix}} cut its own HP and put a curse on the {{pokemonName}}!",
|
|
||||||
"cursedLapse": "{{pokemonNameWithAffix}} is afflicted by the Curse!",
|
|
||||||
"stockpilingOnAdd": "{{pokemonNameWithAffix}} stockpiled {{stockpiledCount}}!",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/berry.json
Normal file
1
src/locales/ca_ES/berry.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,48 +0,0 @@
|
|||||||
import { BerryTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const berry: BerryTranslationEntries = {
|
|
||||||
"SITRUS": {
|
|
||||||
name: "Sitrus Berry",
|
|
||||||
effect: "Restores 25% HP if HP is below 50%",
|
|
||||||
},
|
|
||||||
"LUM": {
|
|
||||||
name: "Lum Berry",
|
|
||||||
effect: "Cures any non-volatile status condition and confusion",
|
|
||||||
},
|
|
||||||
"ENIGMA": {
|
|
||||||
name: "Enigma Berry",
|
|
||||||
effect: "Restores 25% HP if hit by a super effective move",
|
|
||||||
},
|
|
||||||
"LIECHI": {
|
|
||||||
name: "Liechi Berry",
|
|
||||||
effect: "Raises Attack if HP is below 25%",
|
|
||||||
},
|
|
||||||
"GANLON": {
|
|
||||||
name: "Ganlon Berry",
|
|
||||||
effect: "Raises Defense if HP is below 25%",
|
|
||||||
},
|
|
||||||
"PETAYA": {
|
|
||||||
name: "Petaya Berry",
|
|
||||||
effect: "Raises Sp. Atk if HP is below 25%",
|
|
||||||
},
|
|
||||||
"APICOT": {
|
|
||||||
name: "Apicot Berry",
|
|
||||||
effect: "Raises Sp. Def if HP is below 25%",
|
|
||||||
},
|
|
||||||
"SALAC": {
|
|
||||||
name: "Salac Berry",
|
|
||||||
effect: "Raises Speed if HP is below 25%",
|
|
||||||
},
|
|
||||||
"LANSAT": {
|
|
||||||
name: "Lansat Berry",
|
|
||||||
effect: "Raises critical hit ratio if HP is below 25%",
|
|
||||||
},
|
|
||||||
"STARF": {
|
|
||||||
name: "Starf Berry",
|
|
||||||
effect: "Sharply raises a random stat if HP is below 25%",
|
|
||||||
},
|
|
||||||
"LEPPA": {
|
|
||||||
name: "Leppa Berry",
|
|
||||||
effect: "Restores 10 PP to a move if its PP reaches 0",
|
|
||||||
},
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/bgm-name.json
Normal file
1
src/locales/ca_ES/bgm-name.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/biome.json
Normal file
1
src/locales/ca_ES/biome.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,40 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const biome: SimpleTranslationEntries = {
|
|
||||||
"unknownLocation": "Somewhere you can\'t remember",
|
|
||||||
"TOWN": "Town",
|
|
||||||
"PLAINS": "Plains",
|
|
||||||
"GRASS": "Grassy Field",
|
|
||||||
"TALL_GRASS": "Tall Grass",
|
|
||||||
"METROPOLIS": "Metropolis",
|
|
||||||
"FOREST": "Forest",
|
|
||||||
"SEA": "Sea",
|
|
||||||
"SWAMP": "Swamp",
|
|
||||||
"BEACH": "Beach",
|
|
||||||
"LAKE": "Lake",
|
|
||||||
"SEABED": "Seabed",
|
|
||||||
"MOUNTAIN": "Mountain",
|
|
||||||
"BADLANDS": "Badlands",
|
|
||||||
"CAVE": "Cave",
|
|
||||||
"DESERT": "Desert",
|
|
||||||
"ICE_CAVE": "Ice Cave",
|
|
||||||
"MEADOW": "Meadow",
|
|
||||||
"POWER_PLANT": "Power Plant",
|
|
||||||
"VOLCANO": "Volcano",
|
|
||||||
"GRAVEYARD": "Graveyard",
|
|
||||||
"DOJO": "Dojo",
|
|
||||||
"FACTORY": "Factory",
|
|
||||||
"RUINS": "Ancient Ruins",
|
|
||||||
"WASTELAND": "Wasteland",
|
|
||||||
"ABYSS": "Abyss",
|
|
||||||
"SPACE": "Space",
|
|
||||||
"CONSTRUCTION_SITE": "Construction Site",
|
|
||||||
"JUNGLE": "Jungle",
|
|
||||||
"FAIRY_CAVE": "Fairy Cave",
|
|
||||||
"TEMPLE": "Temple",
|
|
||||||
"SLUM": "Slum",
|
|
||||||
"SNOWY_FOREST": "Snowy Forest",
|
|
||||||
"ISLAND": "Island",
|
|
||||||
"LABORATORY": "Laboratory",
|
|
||||||
"END": "???",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/challenges.json
Normal file
1
src/locales/ca_ES/challenges.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,32 +0,0 @@
|
|||||||
import { TranslationEntries } from "#app/interfaces/locales.js";
|
|
||||||
|
|
||||||
export const challenges: TranslationEntries = {
|
|
||||||
"title": "Challenge Modifiers",
|
|
||||||
"illegalEvolution": "{{pokemon}} changed into an ineligble pokémon\nfor this challenge!",
|
|
||||||
"singleGeneration": {
|
|
||||||
"name": "Mono Gen",
|
|
||||||
"desc": "You can only use Pokémon from Generation {{gen}}.",
|
|
||||||
"desc_default": "You can only use Pokémon from the chosen generation.",
|
|
||||||
"gen_1": "one",
|
|
||||||
"gen_2": "two",
|
|
||||||
"gen_3": "three",
|
|
||||||
"gen_4": "four",
|
|
||||||
"gen_5": "five",
|
|
||||||
"gen_6": "six",
|
|
||||||
"gen_7": "seven",
|
|
||||||
"gen_8": "eight",
|
|
||||||
"gen_9": "nine",
|
|
||||||
},
|
|
||||||
"singleType": {
|
|
||||||
"name": "Mono Type",
|
|
||||||
"desc": "You can only use Pokémon with the {{type}} type.",
|
|
||||||
"desc_default": "You can only use Pokémon of the chosen type."
|
|
||||||
//types in pokemon-info
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
}
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/command-ui-handler.json
Normal file
1
src/locales/ca_ES/command-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const commandUiHandler: SimpleTranslationEntries = {
|
|
||||||
"fight": "Fight",
|
|
||||||
"ball": "Ball",
|
|
||||||
"pokemon": "Pokémon",
|
|
||||||
"run": "Run",
|
|
||||||
"actionMessage": "What will\n{{pokemonName}} do?",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/common.json
Normal file
1
src/locales/ca_ES/common.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const common: SimpleTranslationEntries = {
|
|
||||||
"start": "Start",
|
|
||||||
"luckIndicator": "Luck:",
|
|
||||||
"shinyOnHover": "Shiny",
|
|
||||||
"commonShiny": "Common",
|
|
||||||
"rareShiny": "Rare",
|
|
||||||
"epicShiny": "Epic",
|
|
||||||
} as const;
|
|
@ -1,118 +1,123 @@
|
|||||||
import { common } from "./common.js";
|
import common from "./common.json";
|
||||||
import { settings } from "./settings.js";
|
import settings from "./settings.json";
|
||||||
import { ability } from "./ability";
|
import ability from "./ability.json";
|
||||||
import { abilityTriggers } from "./ability-trigger";
|
import abilityTriggers from "./ability-trigger.json";
|
||||||
import { arenaFlyout } from "./arena-flyout";
|
import arenaFlyout from "./arena-flyout.json";
|
||||||
import { arenaTag } from "./arena-tag";
|
import arenaTag from "./arena-tag.json";
|
||||||
import { PGFachv, PGMachv } from "./achv";
|
import achvMale from "./achv-male.json";
|
||||||
import { battle } from "./battle";
|
import achvFemale from "./achv-female.json";
|
||||||
import { battleScene } from "./battle-scene";
|
import battle from "./battle.json";
|
||||||
import { battleInfo } from "./battle-info";
|
import battleScene from "./battle-scene.json";
|
||||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
import battleInfo from "./battle-info.json";
|
||||||
import { battlerTags } from "./battler-tags";
|
import battleMessageUiHandler from "./battle-message-ui-handler.json";
|
||||||
import { berry } from "./berry";
|
import battlerTags from "./battler-tags.json";
|
||||||
import { bgmName } from "./bgm-name";
|
import berry from "./berry.json";
|
||||||
import { biome } from "./biome";
|
import bgmName from "./bgm-name.json";
|
||||||
import { challenges } from "./challenges";
|
import biome from "./biome.json";
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
import challenges from "./challenges.json";
|
||||||
import {
|
import commandUiHandler from "./command-ui-handler.json";
|
||||||
PGFbattleSpecDialogue,
|
import dialogueMale from "./dialogue-male.json";
|
||||||
PGFdialogue,
|
import dialogueFemale from "./dialogue-female.json";
|
||||||
PGFdoubleBattleDialogue,
|
import dialogueEndbossMale from "./dialogue-final-boss-male.json";
|
||||||
PGFmiscDialogue,
|
import dialogueEndbossFemale from "./dialogue-final-boss-female.json";
|
||||||
PGMbattleSpecDialogue,
|
import dialogueMiscMale from "./dialogue-misc-male.json";
|
||||||
PGMdialogue,
|
import dialogueMiscFemale from "./dialogue-misc-female.json";
|
||||||
PGMdoubleBattleDialogue,
|
import dialogueDoubleBattleMale from "./dialogue-double-battle-male.json";
|
||||||
PGMmiscDialogue
|
import dialogueDoubleBattleFemale from "./dialogue-double-battle-female.json";
|
||||||
} from "./dialogue";
|
import egg from "./egg.json";
|
||||||
import { egg } from "./egg";
|
import fightUiHandler from "./fight-ui-handler.json";
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
import filterBar from "./filter-bar.json";
|
||||||
import { filterBar } from "./filter-bar";
|
import gameMode from "./game-mode.json";
|
||||||
import { gameMode } from "./game-mode";
|
import gameStatsUiHandler from "./game-stats-ui-handler.json";
|
||||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
import growth from "./growth.json";
|
||||||
import { growth } from "./growth";
|
import menu from "./menu.json";
|
||||||
import { menu } from "./menu";
|
import menuUiHandler from "./menu-ui-handler.json";
|
||||||
import { menuUiHandler } from "./menu-ui-handler";
|
import modifier from "./modifier.json";
|
||||||
import { modifier } from "./modifier";
|
import modifierType from "./modifier-type.json";
|
||||||
import { modifierType } from "./modifier-type";
|
import move from "./move.json";
|
||||||
import { move } from "./move";
|
import nature from "./nature.json";
|
||||||
import { nature } from "./nature";
|
import partyUiHandler from "./party-ui-handler.json";
|
||||||
import { partyUiHandler } from "./party-ui-handler";
|
import pokeball from "./pokeball.json";
|
||||||
import { pokeball } from "./pokeball";
|
import pokemon from "./pokemon.json";
|
||||||
import { pokemon } from "./pokemon";
|
import pokemonForm from "./pokemon-form.json";
|
||||||
import { pokemonForm, battlePokemonForm } from "./pokemon-form";
|
import battlePokemonForm from "./pokemon-form-battle.json";
|
||||||
import { pokemonInfo } from "./pokemon-info";
|
import pokemonInfo from "./pokemon-info.json";
|
||||||
import { pokemonInfoContainer } from "./pokemon-info-container";
|
import pokemonInfoContainer from "./pokemon-info-container.json";
|
||||||
import { pokemonSummary } from "./pokemon-summary";
|
import pokemonSummary from "./pokemon-summary.json";
|
||||||
import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler";
|
import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json";
|
||||||
import { splashMessages } from "./splash-messages";
|
import splashMessages from "./splash-messages.json";
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
import starterSelectUiHandler from "./starter-select-ui-handler.json";
|
||||||
import { statusEffect } from "./status-effect";
|
import statusEffect from "./status-effect.json";
|
||||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
import trainerTitles from "./trainer-titles.json";
|
||||||
import { tutorial } from "./tutorial";
|
import trainerClasses from "./trainer-classes.json";
|
||||||
import { voucher } from "./voucher";
|
import trainerNames from "./trainer-names.json";
|
||||||
import { terrain, weather } from "./weather";
|
import tutorial from "./tutorial.json";
|
||||||
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
|
import voucher from "./voucher.json";
|
||||||
import { moveTriggers } from "./move-trigger";
|
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";
|
||||||
|
|
||||||
export const caESConfig = {
|
export const caEsConfig = {
|
||||||
ability: ability,
|
ability,
|
||||||
abilityTriggers: abilityTriggers,
|
abilityTriggers,
|
||||||
arenaFlyout: arenaFlyout,
|
arenaFlyout,
|
||||||
arenaTag: arenaTag,
|
arenaTag,
|
||||||
battle: battle,
|
battle,
|
||||||
battleScene: battleScene,
|
battleScene,
|
||||||
battleInfo: battleInfo,
|
battleInfo,
|
||||||
battleMessageUiHandler: battleMessageUiHandler,
|
battleMessageUiHandler,
|
||||||
battlePokemonForm: battlePokemonForm,
|
battlePokemonForm,
|
||||||
battlerTags: battlerTags,
|
battlerTags,
|
||||||
berry: berry,
|
berry,
|
||||||
bgmName: bgmName,
|
bgmName,
|
||||||
biome: biome,
|
biome,
|
||||||
challenges: challenges,
|
challenges,
|
||||||
commandUiHandler: commandUiHandler,
|
commandUiHandler,
|
||||||
common: common,
|
common,
|
||||||
PGMachv: PGMachv,
|
PGMachv: achvMale,
|
||||||
PGFachv: PGFachv,
|
PGFachv: achvFemale,
|
||||||
PGMdialogue: PGMdialogue,
|
PGMdialogue: dialogueMale,
|
||||||
PGFdialogue: PGFdialogue,
|
PGFdialogue: dialogueFemale,
|
||||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
PGMbattleSpecDialogue: dialogueEndbossMale,
|
||||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
PGFbattleSpecDialogue: dialogueEndbossFemale,
|
||||||
PGMmiscDialogue: PGMmiscDialogue,
|
PGMmiscDialogue: dialogueMiscMale,
|
||||||
PGFmiscDialogue: PGFmiscDialogue,
|
PGFmiscDialogue: dialogueMiscFemale,
|
||||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
PGMdoubleBattleDialogue: dialogueDoubleBattleMale,
|
||||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue,
|
PGFdoubleBattleDialogue: dialogueDoubleBattleFemale,
|
||||||
egg: egg,
|
egg,
|
||||||
fightUiHandler: fightUiHandler,
|
fightUiHandler,
|
||||||
filterBar: filterBar,
|
filterBar,
|
||||||
gameMode: gameMode,
|
gameMode,
|
||||||
gameStatsUiHandler: gameStatsUiHandler,
|
gameStatsUiHandler,
|
||||||
growth: growth,
|
growth,
|
||||||
menu: menu,
|
menu,
|
||||||
menuUiHandler: menuUiHandler,
|
menuUiHandler,
|
||||||
modifier: modifier,
|
modifier,
|
||||||
modifierType: modifierType,
|
modifierType,
|
||||||
move: move,
|
move,
|
||||||
nature: nature,
|
nature,
|
||||||
pokeball: pokeball,
|
pokeball,
|
||||||
pokemon: pokemon,
|
pokemon,
|
||||||
pokemonForm: pokemonForm,
|
pokemonForm,
|
||||||
pokemonInfo: pokemonInfo,
|
pokemonInfo,
|
||||||
pokemonInfoContainer: pokemonInfoContainer,
|
pokemonInfoContainer,
|
||||||
pokemonSummary: pokemonSummary,
|
pokemonSummary,
|
||||||
saveSlotSelectUiHandler: saveSlotSelectUiHandler,
|
saveSlotSelectUiHandler,
|
||||||
settings: settings,
|
settings,
|
||||||
splashMessages: splashMessages,
|
splashMessages,
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
starterSelectUiHandler,
|
||||||
statusEffect: statusEffect,
|
statusEffect,
|
||||||
terrain: terrain,
|
terrain,
|
||||||
titles: titles,
|
titles: trainerTitles,
|
||||||
trainerClasses: trainerClasses,
|
trainerClasses,
|
||||||
trainerNames: trainerNames,
|
trainerNames,
|
||||||
tutorial: tutorial,
|
tutorial,
|
||||||
voucher: voucher,
|
voucher,
|
||||||
weather: weather,
|
weather,
|
||||||
partyUiHandler: partyUiHandler,
|
partyUiHandler,
|
||||||
modifierSelectUiHandler: modifierSelectUiHandler,
|
modifierSelectUiHandler,
|
||||||
moveTriggers: moveTriggers
|
moveTriggers,
|
||||||
|
runHistory,
|
||||||
};
|
};
|
||||||
|
1
src/locales/ca_ES/dialogue-double-battle-female.json
Normal file
1
src/locales/ca_ES/dialogue-double-battle-female.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-double-battle-male.json
Normal file
1
src/locales/ca_ES/dialogue-double-battle-male.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-female.json
Normal file
1
src/locales/ca_ES/dialogue-female.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-final-boss-female.json
Normal file
1
src/locales/ca_ES/dialogue-final-boss-female.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-final-boss-male.json
Normal file
1
src/locales/ca_ES/dialogue-final-boss-male.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-male.json
Normal file
1
src/locales/ca_ES/dialogue-male.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-misc-female.json
Normal file
1
src/locales/ca_ES/dialogue-misc-female.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/dialogue-misc-male.json
Normal file
1
src/locales/ca_ES/dialogue-misc-male.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
File diff suppressed because it is too large
Load Diff
1
src/locales/ca_ES/egg.json
Normal file
1
src/locales/ca_ES/egg.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/fight-ui-handler.json
Normal file
1
src/locales/ca_ES/fight-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const fightUiHandler: SimpleTranslationEntries = {
|
|
||||||
"pp": "PP",
|
|
||||||
"power": "Power",
|
|
||||||
"accuracy": "Accuracy",
|
|
||||||
"abilityFlyInText": " {{pokemonName}}'s {{passive}}{{abilityName}}",
|
|
||||||
"passive": "Passive ", // The space at the end is important
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/filter-bar.json
Normal file
1
src/locales/ca_ES/filter-bar.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,40 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const filterBar: SimpleTranslationEntries = {
|
|
||||||
"genFilter": "Gen",
|
|
||||||
"typeFilter": "Type",
|
|
||||||
"caughtFilter": "Caught",
|
|
||||||
"unlocksFilter": "Unlocks",
|
|
||||||
"miscFilter": "Misc",
|
|
||||||
"sortFilter": "Sort",
|
|
||||||
"all": "All",
|
|
||||||
"normal": "Not Shiny",
|
|
||||||
"uncaught": "Uncaught",
|
|
||||||
"passive": "Passive",
|
|
||||||
"passiveUnlocked": "Passive - Yes",
|
|
||||||
"passiveLocked": "Passive - No",
|
|
||||||
"passiveUnlockable": "Passive - Can Unlock",
|
|
||||||
"costReduction": "Cost Reduction",
|
|
||||||
"costReductionUnlocked": "Cost Reduction - Yes",
|
|
||||||
"costReductionLocked": "Cost Reduction - No",
|
|
||||||
"costReductionUnlockable": "Cost Reduction - Can Unlock",
|
|
||||||
"favorite": "Favorite",
|
|
||||||
"isFavorite": "Favorite - Yes",
|
|
||||||
"notFavorite": "Favorite - No",
|
|
||||||
"ribbon": "Ribbon",
|
|
||||||
"hasWon": "Ribbon - Yes",
|
|
||||||
"hasNotWon": "Ribbon - No",
|
|
||||||
"hiddenAbility": "Hidden Ability",
|
|
||||||
"hasHiddenAbility": "Hidden Ability - Yes",
|
|
||||||
"noHiddenAbility": "Hidden Ability - No",
|
|
||||||
"egg": "Egg",
|
|
||||||
"eggPurchasable": "Purchasable Egg",
|
|
||||||
"pokerus": "Pokérus",
|
|
||||||
"hasPokerus": "Pokérus - Yes",
|
|
||||||
"noPokerus": "Pokérus - No",
|
|
||||||
"sortByNumber": "No.",
|
|
||||||
"sortByCost": "Cost",
|
|
||||||
"sortByCandies": "Candy Count",
|
|
||||||
"sortByIVs": "IVs",
|
|
||||||
"sortByName": "Name",
|
|
||||||
};
|
|
1
src/locales/ca_ES/game-mode.json
Normal file
1
src/locales/ca_ES/game-mode.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const gameMode: SimpleTranslationEntries = {
|
|
||||||
"classic": "Classic",
|
|
||||||
"endless": "Endless",
|
|
||||||
"endlessSpliced": "Endless (Spliced)",
|
|
||||||
"dailyRun": "Daily Run",
|
|
||||||
"unknown": "Unknown",
|
|
||||||
"challenge": "Challenge",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/game-stats-ui-handler.json
Normal file
1
src/locales/ca_ES/game-stats-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/growth.json
Normal file
1
src/locales/ca_ES/growth.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/menu-ui-handler.json
Normal file
1
src/locales/ca_ES/menu-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/menu.json
Normal file
1
src/locales/ca_ES/menu.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/modifier-select-ui-handler.json
Normal file
1
src/locales/ca_ES/modifier-select-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/modifier-type.json
Normal file
1
src/locales/ca_ES/modifier-type.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,457 +0,0 @@
|
|||||||
import { ModifierTypeTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const modifierType: ModifierTypeTranslationEntries = {
|
|
||||||
ModifierType: {
|
|
||||||
"AddPokeballModifierType": {
|
|
||||||
name: "{{modifierCount}}x {{pokeballName}}",
|
|
||||||
description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}",
|
|
||||||
},
|
|
||||||
"AddVoucherModifierType": {
|
|
||||||
name: "{{modifierCount}}x {{voucherTypeName}}",
|
|
||||||
description: "Receive {{voucherTypeName}} x{{modifierCount}}.",
|
|
||||||
},
|
|
||||||
"PokemonHeldItemModifierType": {
|
|
||||||
extra: {
|
|
||||||
"inoperable": "{{pokemonName}} can't take\nthis item!",
|
|
||||||
"tooMany": "{{pokemonName}} has too many\nof this item!",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonHpRestoreModifierType": {
|
|
||||||
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher.",
|
|
||||||
extra: {
|
|
||||||
"fully": "Fully restores HP for one Pokémon.",
|
|
||||||
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment.",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonReviveModifierType": {
|
|
||||||
description: "Revives one Pokémon and restores {{restorePercent}}% HP.",
|
|
||||||
},
|
|
||||||
"PokemonStatusHealModifierType": {
|
|
||||||
description: "Heals any status ailment for one Pokémon.",
|
|
||||||
},
|
|
||||||
"PokemonPpRestoreModifierType": {
|
|
||||||
description: "Restores {{restorePoints}} PP for one Pokémon move.",
|
|
||||||
extra: {
|
|
||||||
"fully": "Restores all PP for one Pokémon move.",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonAllMovePpRestoreModifierType": {
|
|
||||||
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves.",
|
|
||||||
extra: {
|
|
||||||
"fully": "Restores all PP for all of one Pokémon's moves.",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonPpUpModifierType": {
|
|
||||||
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3).",
|
|
||||||
},
|
|
||||||
"PokemonNatureChangeModifierType": {
|
|
||||||
name: "{{natureName}} Mint",
|
|
||||||
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
|
|
||||||
},
|
|
||||||
"DoubleBattleChanceBoosterModifierType": {
|
|
||||||
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles.",
|
|
||||||
},
|
|
||||||
"TempBattleStatBoosterModifierType": {
|
|
||||||
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles.",
|
|
||||||
},
|
|
||||||
"AttackTypeBoosterModifierType": {
|
|
||||||
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%.",
|
|
||||||
},
|
|
||||||
"PokemonLevelIncrementModifierType": {
|
|
||||||
description: "Increases a Pokémon's level by {{levels}}.",
|
|
||||||
},
|
|
||||||
"AllPokemonLevelIncrementModifierType": {
|
|
||||||
description: "Increases all party members' level by {{levels}}.",
|
|
||||||
},
|
|
||||||
"PokemonBaseStatBoosterModifierType": {
|
|
||||||
description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.",
|
|
||||||
},
|
|
||||||
"AllPokemonFullHpRestoreModifierType": {
|
|
||||||
description: "Restores 100% HP for all Pokémon.",
|
|
||||||
},
|
|
||||||
"AllPokemonFullReviveModifierType": {
|
|
||||||
description: "Revives all fainted Pokémon, fully restoring HP.",
|
|
||||||
},
|
|
||||||
"MoneyRewardModifierType": {
|
|
||||||
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}}).",
|
|
||||||
extra: {
|
|
||||||
"small": "small",
|
|
||||||
"moderate": "moderate",
|
|
||||||
"large": "large",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"ExpBoosterModifierType": {
|
|
||||||
description: "Increases gain of EXP. Points by {{boostPercent}}%.",
|
|
||||||
},
|
|
||||||
"PokemonExpBoosterModifierType": {
|
|
||||||
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%.",
|
|
||||||
},
|
|
||||||
"PokemonFriendshipBoosterModifierType": {
|
|
||||||
description: "Increases friendship gain per victory by 50%.",
|
|
||||||
},
|
|
||||||
"PokemonMoveAccuracyBoosterModifierType": {
|
|
||||||
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100).",
|
|
||||||
},
|
|
||||||
"PokemonMultiHitModifierType": {
|
|
||||||
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively.",
|
|
||||||
},
|
|
||||||
"TmModifierType": {
|
|
||||||
name: "TM{{moveId}} - {{moveName}}",
|
|
||||||
description: "Teach {{moveName}} to a Pokémon.",
|
|
||||||
},
|
|
||||||
"TmModifierTypeWithInfo": {
|
|
||||||
name: "TM{{moveId}} - {{moveName}}",
|
|
||||||
description: "Teach {{moveName}} to a Pokémon\n(Hold C or Shift for more info).",
|
|
||||||
},
|
|
||||||
"EvolutionItemModifierType": {
|
|
||||||
description: "Causes certain Pokémon to evolve.",
|
|
||||||
},
|
|
||||||
"FormChangeItemModifierType": {
|
|
||||||
description: "Causes certain Pokémon to change form.",
|
|
||||||
},
|
|
||||||
"FusePokemonModifierType": {
|
|
||||||
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool).",
|
|
||||||
},
|
|
||||||
"TerastallizeModifierType": {
|
|
||||||
name: "{{teraType}} Tera Shard",
|
|
||||||
description: "{{teraType}} Terastallizes the holder for up to 10 battles.",
|
|
||||||
},
|
|
||||||
"ContactHeldItemTransferChanceModifierType": {
|
|
||||||
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen.",
|
|
||||||
},
|
|
||||||
"TurnHeldItemTransferModifierType": {
|
|
||||||
description: "Every turn, the holder acquires one held item from the foe.",
|
|
||||||
},
|
|
||||||
"EnemyAttackStatusEffectChanceModifierType": {
|
|
||||||
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves.",
|
|
||||||
},
|
|
||||||
"EnemyEndureChanceModifierType": {
|
|
||||||
description: "Adds a {{chancePercent}}% chance of enduring a hit.",
|
|
||||||
},
|
|
||||||
|
|
||||||
"RARE_CANDY": { name: "Rare Candy" },
|
|
||||||
"RARER_CANDY": { name: "Rarer Candy" },
|
|
||||||
|
|
||||||
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available." },
|
|
||||||
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available." },
|
|
||||||
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available." },
|
|
||||||
|
|
||||||
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads." },
|
|
||||||
|
|
||||||
"POTION": { name: "Potion" },
|
|
||||||
"SUPER_POTION": { name: "Super Potion" },
|
|
||||||
"HYPER_POTION": { name: "Hyper Potion" },
|
|
||||||
"MAX_POTION": { name: "Max Potion" },
|
|
||||||
"FULL_RESTORE": { name: "Full Restore" },
|
|
||||||
|
|
||||||
"REVIVE": { name: "Revive" },
|
|
||||||
"MAX_REVIVE": { name: "Max Revive" },
|
|
||||||
|
|
||||||
"FULL_HEAL": { name: "Full Heal" },
|
|
||||||
|
|
||||||
"SACRED_ASH": { name: "Sacred Ash" },
|
|
||||||
|
|
||||||
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting from a direct hit." },
|
|
||||||
|
|
||||||
"WHITE_HERB": { name: "White Herb", description: "An item to be held by a Pokémon. It will restore any lowered stat in battle." },
|
|
||||||
|
|
||||||
"ETHER": { name: "Ether" },
|
|
||||||
"MAX_ETHER": { name: "Max Ether" },
|
|
||||||
|
|
||||||
"ELIXIR": { name: "Elixir" },
|
|
||||||
"MAX_ELIXIR": { name: "Max Elixir" },
|
|
||||||
|
|
||||||
"PP_UP": { name: "PP Up" },
|
|
||||||
"PP_MAX": { name: "PP Max" },
|
|
||||||
|
|
||||||
"LURE": { name: "Lure" },
|
|
||||||
"SUPER_LURE": { name: "Super Lure" },
|
|
||||||
"MAX_LURE": { name: "Max Lure" },
|
|
||||||
|
|
||||||
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move." },
|
|
||||||
|
|
||||||
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points." },
|
|
||||||
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members." },
|
|
||||||
|
|
||||||
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP." },
|
|
||||||
|
|
||||||
"EXP_CHARM": { name: "EXP. Charm" },
|
|
||||||
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
|
|
||||||
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
|
|
||||||
|
|
||||||
"LUCKY_EGG": { name: "Lucky Egg" },
|
|
||||||
"GOLDEN_EGG": { name: "Golden Egg" },
|
|
||||||
|
|
||||||
"SOOTHE_BELL": { name: "Soothe Bell" },
|
|
||||||
|
|
||||||
"SCOPE_LENS": { name: "Scope Lens", description: "It's a lens for scoping out weak points. It boosts the holder's critical-hit ratio."},
|
|
||||||
"LEEK": { name: "Leek", description: "This very long and stiff stalk of leek boosts the critical-hit ratio of Farfetch'd's moves."},
|
|
||||||
|
|
||||||
"EVIOLITE": { name: "Eviolite", description: "This mysterious evolutionary lump boosts the Defense and Sp. Def stats when held by a Pokémon that can still evolve." },
|
|
||||||
|
|
||||||
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)." },
|
|
||||||
|
|
||||||
"NUGGET": { name: "Nugget" },
|
|
||||||
"BIG_NUGGET": { name: "Big Nugget" },
|
|
||||||
"RELIC_GOLD": { name: "Relic Gold" },
|
|
||||||
|
|
||||||
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%." },
|
|
||||||
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of direct damage inflicted as money." },
|
|
||||||
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest." },
|
|
||||||
|
|
||||||
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items." },
|
|
||||||
|
|
||||||
"GRIP_CLAW": { name: "Grip Claw" },
|
|
||||||
"WIDE_LENS": { name: "Wide Lens" },
|
|
||||||
|
|
||||||
"MULTI_LENS": { name: "Multi Lens" },
|
|
||||||
|
|
||||||
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)." },
|
|
||||||
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1." },
|
|
||||||
|
|
||||||
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 30% chance that a used berry will not be consumed." },
|
|
||||||
|
|
||||||
"FOCUS_BAND": { name: "Focus Band", description: "Adds a 10% chance to survive with 1 HP after being damaged enough to faint." },
|
|
||||||
|
|
||||||
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)." },
|
|
||||||
|
|
||||||
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch." },
|
|
||||||
|
|
||||||
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn." },
|
|
||||||
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage." },
|
|
||||||
|
|
||||||
"TOXIC_ORB": { name: "Toxic Orb", description: "It's a bizarre orb that exudes toxins when touched and will badly poison the holder during battle." },
|
|
||||||
"FLAME_ORB": { name: "Flame Orb", description: "It's a bizarre orb that gives off heat when touched and will affect the holder with a burn during battle." },
|
|
||||||
|
|
||||||
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps." },
|
|
||||||
|
|
||||||
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny." },
|
|
||||||
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability." },
|
|
||||||
|
|
||||||
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first." },
|
|
||||||
|
|
||||||
"DNA_SPLICERS": { name: "DNA Splicers" },
|
|
||||||
|
|
||||||
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
|
|
||||||
|
|
||||||
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle." },
|
|
||||||
|
|
||||||
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%." },
|
|
||||||
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%." },
|
|
||||||
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn." },
|
|
||||||
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
|
|
||||||
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
|
|
||||||
"ENEMY_ATTACK_BURN_CHANCE": { name: "Burn Token" },
|
|
||||||
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 2.5% chance every turn to heal a status condition." },
|
|
||||||
"ENEMY_ENDURE_CHANCE": { name: "Endure Token" },
|
|
||||||
"ENEMY_FUSED_CHANCE": { name: "Fusion Token", description: "Adds a 1% chance that a wild Pokémon will be a fusion." },
|
|
||||||
},
|
|
||||||
SpeciesBoosterItem: {
|
|
||||||
"LIGHT_BALL": { name: "Light Ball", description: "It's a mysterious orb that boosts Pikachu's Attack and Sp. Atk stats." },
|
|
||||||
"THICK_CLUB": { name: "Thick Club", description: "This hard bone of unknown origin boosts Cubone or Marowak's Attack stat." },
|
|
||||||
"METAL_POWDER": { name: "Metal Powder", description: "Extremely fine yet hard, this odd powder boosts Ditto's Defense stat." },
|
|
||||||
"QUICK_POWDER": { name: "Quick Powder", description: "Extremely fine yet hard, this odd powder boosts Ditto's Speed stat." }
|
|
||||||
},
|
|
||||||
TempBattleStatBoosterItem: {
|
|
||||||
"x_attack": "X Attack",
|
|
||||||
"x_defense": "X Defense",
|
|
||||||
"x_sp_atk": "X Sp. Atk",
|
|
||||||
"x_sp_def": "X Sp. Def",
|
|
||||||
"x_speed": "X Speed",
|
|
||||||
"x_accuracy": "X Accuracy",
|
|
||||||
"dire_hit": "Dire Hit",
|
|
||||||
},
|
|
||||||
|
|
||||||
TempBattleStatBoosterStatName: {
|
|
||||||
"ATK": "Attack",
|
|
||||||
"DEF": "Defense",
|
|
||||||
"SPATK": "Sp. Atk",
|
|
||||||
"SPDEF": "Sp. Def",
|
|
||||||
"SPD": "Speed",
|
|
||||||
"ACC": "Accuracy",
|
|
||||||
"CRIT": "Critical Hit Ratio",
|
|
||||||
"EVA": "Evasiveness",
|
|
||||||
"DEFAULT": "???",
|
|
||||||
},
|
|
||||||
|
|
||||||
AttackTypeBoosterItem: {
|
|
||||||
"silk_scarf": "Silk Scarf",
|
|
||||||
"black_belt": "Black Belt",
|
|
||||||
"sharp_beak": "Sharp Beak",
|
|
||||||
"poison_barb": "Poison Barb",
|
|
||||||
"soft_sand": "Soft Sand",
|
|
||||||
"hard_stone": "Hard Stone",
|
|
||||||
"silver_powder": "Silver Powder",
|
|
||||||
"spell_tag": "Spell Tag",
|
|
||||||
"metal_coat": "Metal Coat",
|
|
||||||
"charcoal": "Charcoal",
|
|
||||||
"mystic_water": "Mystic Water",
|
|
||||||
"miracle_seed": "Miracle Seed",
|
|
||||||
"magnet": "Magnet",
|
|
||||||
"twisted_spoon": "Twisted Spoon",
|
|
||||||
"never_melt_ice": "Never-Melt Ice",
|
|
||||||
"dragon_fang": "Dragon Fang",
|
|
||||||
"black_glasses": "Black Glasses",
|
|
||||||
"fairy_feather": "Fairy Feather",
|
|
||||||
},
|
|
||||||
BaseStatBoosterItem: {
|
|
||||||
"hp_up": "HP Up",
|
|
||||||
"protein": "Protein",
|
|
||||||
"iron": "Iron",
|
|
||||||
"calcium": "Calcium",
|
|
||||||
"zinc": "Zinc",
|
|
||||||
"carbos": "Carbos",
|
|
||||||
},
|
|
||||||
EvolutionItem: {
|
|
||||||
"NONE": "None",
|
|
||||||
|
|
||||||
"LINKING_CORD": "Linking Cord",
|
|
||||||
"SUN_STONE": "Sun Stone",
|
|
||||||
"MOON_STONE": "Moon Stone",
|
|
||||||
"LEAF_STONE": "Leaf Stone",
|
|
||||||
"FIRE_STONE": "Fire Stone",
|
|
||||||
"WATER_STONE": "Water Stone",
|
|
||||||
"THUNDER_STONE": "Thunder Stone",
|
|
||||||
"ICE_STONE": "Ice Stone",
|
|
||||||
"DUSK_STONE": "Dusk Stone",
|
|
||||||
"DAWN_STONE": "Dawn Stone",
|
|
||||||
"SHINY_STONE": "Shiny Stone",
|
|
||||||
"CRACKED_POT": "Cracked Pot",
|
|
||||||
"SWEET_APPLE": "Sweet Apple",
|
|
||||||
"TART_APPLE": "Tart Apple",
|
|
||||||
"STRAWBERRY_SWEET": "Strawberry Sweet",
|
|
||||||
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
|
|
||||||
|
|
||||||
"CHIPPED_POT": "Chipped Pot",
|
|
||||||
"BLACK_AUGURITE": "Black Augurite",
|
|
||||||
"GALARICA_CUFF": "Galarica Cuff",
|
|
||||||
"GALARICA_WREATH": "Galarica Wreath",
|
|
||||||
"PEAT_BLOCK": "Peat Block",
|
|
||||||
"AUSPICIOUS_ARMOR": "Auspicious Armor",
|
|
||||||
"MALICIOUS_ARMOR": "Malicious Armor",
|
|
||||||
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
|
|
||||||
"METAL_ALLOY": "Metal Alloy",
|
|
||||||
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
|
|
||||||
"SCROLL_OF_WATERS": "Scroll Of Waters",
|
|
||||||
"SYRUPY_APPLE": "Syrupy Apple",
|
|
||||||
},
|
|
||||||
FormChangeItem: {
|
|
||||||
"NONE": "None",
|
|
||||||
|
|
||||||
"ABOMASITE": "Abomasite",
|
|
||||||
"ABSOLITE": "Absolite",
|
|
||||||
"AERODACTYLITE": "Aerodactylite",
|
|
||||||
"AGGRONITE": "Aggronite",
|
|
||||||
"ALAKAZITE": "Alakazite",
|
|
||||||
"ALTARIANITE": "Altarianite",
|
|
||||||
"AMPHAROSITE": "Ampharosite",
|
|
||||||
"AUDINITE": "Audinite",
|
|
||||||
"BANETTITE": "Banettite",
|
|
||||||
"BEEDRILLITE": "Beedrillite",
|
|
||||||
"BLASTOISINITE": "Blastoisinite",
|
|
||||||
"BLAZIKENITE": "Blazikenite",
|
|
||||||
"CAMERUPTITE": "Cameruptite",
|
|
||||||
"CHARIZARDITE_X": "Charizardite X",
|
|
||||||
"CHARIZARDITE_Y": "Charizardite Y",
|
|
||||||
"DIANCITE": "Diancite",
|
|
||||||
"GALLADITE": "Galladite",
|
|
||||||
"GARCHOMPITE": "Garchompite",
|
|
||||||
"GARDEVOIRITE": "Gardevoirite",
|
|
||||||
"GENGARITE": "Gengarite",
|
|
||||||
"GLALITITE": "Glalitite",
|
|
||||||
"GYARADOSITE": "Gyaradosite",
|
|
||||||
"HERACRONITE": "Heracronite",
|
|
||||||
"HOUNDOOMINITE": "Houndoominite",
|
|
||||||
"KANGASKHANITE": "Kangaskhanite",
|
|
||||||
"LATIASITE": "Latiasite",
|
|
||||||
"LATIOSITE": "Latiosite",
|
|
||||||
"LOPUNNITE": "Lopunnite",
|
|
||||||
"LUCARIONITE": "Lucarionite",
|
|
||||||
"MANECTITE": "Manectite",
|
|
||||||
"MAWILITE": "Mawilite",
|
|
||||||
"MEDICHAMITE": "Medichamite",
|
|
||||||
"METAGROSSITE": "Metagrossite",
|
|
||||||
"MEWTWONITE_X": "Mewtwonite X",
|
|
||||||
"MEWTWONITE_Y": "Mewtwonite Y",
|
|
||||||
"PIDGEOTITE": "Pidgeotite",
|
|
||||||
"PINSIRITE": "Pinsirite",
|
|
||||||
"RAYQUAZITE": "Rayquazite",
|
|
||||||
"SABLENITE": "Sablenite",
|
|
||||||
"SALAMENCITE": "Salamencite",
|
|
||||||
"SCEPTILITE": "Sceptilite",
|
|
||||||
"SCIZORITE": "Scizorite",
|
|
||||||
"SHARPEDONITE": "Sharpedonite",
|
|
||||||
"SLOWBRONITE": "Slowbronite",
|
|
||||||
"STEELIXITE": "Steelixite",
|
|
||||||
"SWAMPERTITE": "Swampertite",
|
|
||||||
"TYRANITARITE": "Tyranitarite",
|
|
||||||
"VENUSAURITE": "Venusaurite",
|
|
||||||
|
|
||||||
"BLUE_ORB": "Blue Orb",
|
|
||||||
"RED_ORB": "Red Orb",
|
|
||||||
"SHARP_METEORITE": "Sharp Meteorite",
|
|
||||||
"HARD_METEORITE": "Hard Meteorite",
|
|
||||||
"SMOOTH_METEORITE": "Smooth Meteorite",
|
|
||||||
"ADAMANT_CRYSTAL": "Adamant Crystal",
|
|
||||||
"LUSTROUS_GLOBE": "Lustrous Globe",
|
|
||||||
"GRISEOUS_CORE": "Griseous Core",
|
|
||||||
"REVEAL_GLASS": "Reveal Glass",
|
|
||||||
"GRACIDEA": "Gracidea",
|
|
||||||
"MAX_MUSHROOMS": "Max Mushrooms",
|
|
||||||
"DARK_STONE": "Dark Stone",
|
|
||||||
"LIGHT_STONE": "Light Stone",
|
|
||||||
"PRISON_BOTTLE": "Prison Bottle",
|
|
||||||
"N_LUNARIZER": "N Lunarizer",
|
|
||||||
"N_SOLARIZER": "N Solarizer",
|
|
||||||
"RUSTED_SWORD": "Rusted Sword",
|
|
||||||
"RUSTED_SHIELD": "Rusted Shield",
|
|
||||||
"ICY_REINS_OF_UNITY": "Icy Reins Of Unity",
|
|
||||||
"SHADOW_REINS_OF_UNITY": "Shadow Reins Of Unity",
|
|
||||||
"WELLSPRING_MASK": "Wellspring Mask",
|
|
||||||
"HEARTHFLAME_MASK": "Hearthflame Mask",
|
|
||||||
"CORNERSTONE_MASK": "Cornerstone Mask",
|
|
||||||
"SHOCK_DRIVE": "Shock Drive",
|
|
||||||
"BURN_DRIVE": "Burn Drive",
|
|
||||||
"CHILL_DRIVE": "Chill Drive",
|
|
||||||
"DOUSE_DRIVE": "Douse Drive",
|
|
||||||
"ULTRANECROZIUM_Z": "Ultranecrozium Z",
|
|
||||||
|
|
||||||
"FIST_PLATE": "Fist Plate",
|
|
||||||
"SKY_PLATE": "Sky Plate",
|
|
||||||
"TOXIC_PLATE": "Toxic Plate",
|
|
||||||
"EARTH_PLATE": "Earth Plate",
|
|
||||||
"STONE_PLATE": "Stone Plate",
|
|
||||||
"INSECT_PLATE": "Insect Plate",
|
|
||||||
"SPOOKY_PLATE": "Spooky Plate",
|
|
||||||
"IRON_PLATE": "Iron Plate",
|
|
||||||
"FLAME_PLATE": "Flame Plate",
|
|
||||||
"SPLASH_PLATE": "Splash Plate",
|
|
||||||
"MEADOW_PLATE": "Meadow Plate",
|
|
||||||
"ZAP_PLATE": "Zap Plate",
|
|
||||||
"MIND_PLATE": "Mind Plate",
|
|
||||||
"ICICLE_PLATE": "Icicle Plate",
|
|
||||||
"DRACO_PLATE": "Draco Plate",
|
|
||||||
"DREAD_PLATE": "Dread Plate",
|
|
||||||
"PIXIE_PLATE": "Pixie Plate",
|
|
||||||
"BLANK_PLATE": "Blank Plate",
|
|
||||||
"LEGEND_PLATE": "Legend Plate",
|
|
||||||
"FIGHTING_MEMORY": "Fighting Memory",
|
|
||||||
"FLYING_MEMORY": "Flying Memory",
|
|
||||||
"POISON_MEMORY": "Poison Memory",
|
|
||||||
"GROUND_MEMORY": "Ground Memory",
|
|
||||||
"ROCK_MEMORY": "Rock Memory",
|
|
||||||
"BUG_MEMORY": "Bug Memory",
|
|
||||||
"GHOST_MEMORY": "Ghost Memory",
|
|
||||||
"STEEL_MEMORY": "Steel Memory",
|
|
||||||
"FIRE_MEMORY": "Fire Memory",
|
|
||||||
"WATER_MEMORY": "Water Memory",
|
|
||||||
"GRASS_MEMORY": "Grass Memory",
|
|
||||||
"ELECTRIC_MEMORY": "Electric Memory",
|
|
||||||
"PSYCHIC_MEMORY": "Psychic Memory",
|
|
||||||
"ICE_MEMORY": "Ice Memory",
|
|
||||||
"DRAGON_MEMORY": "Dragon Memory",
|
|
||||||
"DARK_MEMORY": "Dark Memory",
|
|
||||||
"FAIRY_MEMORY": "Fairy Memory",
|
|
||||||
"BLANK_MEMORY": "Blank Memory",
|
|
||||||
},
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/modifier.json
Normal file
1
src/locales/ca_ES/modifier.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/move-trigger.json
Normal file
1
src/locales/ca_ES/move-trigger.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,66 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const moveTriggers: SimpleTranslationEntries = {
|
|
||||||
"hitWithRecoil" : "{{pokemonName}} was damaged by the recoil!",
|
|
||||||
"cutHpPowerUpMove": "{{pokemonName}} cut its own HP to power up its move!",
|
|
||||||
"absorbedElectricity": "{{pokemonName}} absorbed electricity!",
|
|
||||||
"switchedStatChanges": "{{pokemonName}} switched stat changes with the target!",
|
|
||||||
"goingAllOutForAttack": "{{pokemonName}} is going all out for this attack!",
|
|
||||||
"regainedHealth": "{{pokemonName}} regained\nhealth!",
|
|
||||||
"keptGoingAndCrashed": "{{pokemonName}} kept going\nand crashed!",
|
|
||||||
"fled": "{{pokemonName}} fled!",
|
|
||||||
"cannotBeSwitchedOut": "{{pokemonName}} can't be switched out!",
|
|
||||||
"swappedAbilitiesWithTarget": "{{pokemonName}} swapped\nabilities with its target!",
|
|
||||||
"coinsScatteredEverywhere": "Coins were scattered everywhere!",
|
|
||||||
"attackedByItem": "{{pokemonName}} is about to be attacked by its {{itemName}}!",
|
|
||||||
"whippedUpAWhirlwind": "{{pokemonName}} whipped\nup a whirlwind!",
|
|
||||||
"flewUpHigh": "{{pokemonName}} flew\nup high!",
|
|
||||||
"tookInSunlight": "{{pokemonName}} absorbed light!",
|
|
||||||
"dugAHole": "{{pokemonName}} burrowed its way under the ground!",
|
|
||||||
"loweredItsHead": "{{pokemonName}} tucked in its head!",
|
|
||||||
"isGlowing": "{{pokemonName}} became cloaked in a harsh light!",
|
|
||||||
"bellChimed": "A bell chimed!",
|
|
||||||
"foresawAnAttack": "{{pokemonName}} foresaw\nan attack!",
|
|
||||||
"isTighteningFocus": "{{pokemonName}} is\ntightening its focus!",
|
|
||||||
"hidUnderwater": "{{pokemonName}} hid\nunderwater!",
|
|
||||||
"soothingAromaWaftedThroughArea": "A soothing aroma wafted through the area!",
|
|
||||||
"sprangUp": "{{pokemonName}} sprang up!",
|
|
||||||
"choseDoomDesireAsDestiny": "{{pokemonName}} chose\nDoom Desire as its destiny!",
|
|
||||||
"vanishedInstantly": "{{pokemonName}} vanished\ninstantly!",
|
|
||||||
"tookTargetIntoSky": "{{pokemonName}} took {{targetName}}\ninto the sky!",
|
|
||||||
"becameCloakedInFreezingLight": "{{pokemonName}} became cloaked\nin a freezing light!",
|
|
||||||
"becameCloakedInFreezingAir": "{{pokemonName}} became cloaked\nin freezing air!",
|
|
||||||
"isChargingPower": "{{pokemonName}} is absorbing power!",
|
|
||||||
"burnedItselfOut": "{{pokemonName}} burned itself out!",
|
|
||||||
"startedHeatingUpBeak": "{{pokemonName}} started\nheating up its beak!",
|
|
||||||
"setUpShellTrap": "{{pokemonName}} set a shell trap!",
|
|
||||||
"isOverflowingWithSpacePower": "{{pokemonName}} is overflowing\nwith space power!",
|
|
||||||
"usedUpAllElectricity": "{{pokemonName}} used up all its electricity!",
|
|
||||||
"stoleItem": "{{pokemonName}} stole\n{{targetName}}'s {{itemName}}!",
|
|
||||||
"incineratedItem": "{{pokemonName}} incinerated\n{{targetName}}'s {{itemName}}!",
|
|
||||||
"knockedOffItem": "{{pokemonName}} knocked off\n{{targetName}}'s {{itemName}}!",
|
|
||||||
"tookMoveAttack": "{{pokemonName}} took\nthe {{moveName}} attack!",
|
|
||||||
"cutOwnHpAndMaximizedStat": "{{pokemonName}} cut its own HP\nand maximized its {{statName}}!",
|
|
||||||
"copiedStatChanges": "{{pokemonName}} copied\n{{targetName}}'s stat changes!",
|
|
||||||
"magnitudeMessage": "Magnitude {{magnitude}}!",
|
|
||||||
"tookAimAtTarget": "{{pokemonName}} took aim\nat {{targetName}}!",
|
|
||||||
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{typeName}} type!",
|
|
||||||
"copiedMove": "{{pokemonName}} copied\n{{moveName}}!",
|
|
||||||
"sketchedMove": "{{pokemonName}} sketched\n{{moveName}}!",
|
|
||||||
"acquiredAbility": "The {{pokemonName}} acquired\n{{abilityName}}!",
|
|
||||||
"copiedTargetAbility": "{{pokemonName}} copied the {{targetName}}'s\n{{abilityName}}!",
|
|
||||||
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
|
|
||||||
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
|
|
||||||
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
|
|
||||||
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!",
|
|
||||||
"healHp": "{{pokemonName}} had its HP restored.",
|
|
||||||
"sacrificialFullRestore": "{{pokemonName}}'s Healing Wish\nwas granted!",
|
|
||||||
"invertStats": "{{pokemonName}}'s stat changes\nwere all reversed!",
|
|
||||||
"resetStats": "{{pokemonName}}'s stat changes\nwere eliminated!",
|
|
||||||
"statEliminated": "All stat changes were eliminated!",
|
|
||||||
"faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.",
|
|
||||||
"copyType": "{{pokemonName}}'s type became the same as\n{{targetPokemonName}}'s type!",
|
|
||||||
"suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!",
|
|
||||||
"swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!",
|
|
||||||
"exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/move.json
Normal file
1
src/locales/ca_ES/move.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
File diff suppressed because it is too large
Load Diff
1
src/locales/ca_ES/nature.json
Normal file
1
src/locales/ca_ES/nature.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,29 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const nature: SimpleTranslationEntries = {
|
|
||||||
"Hardy": "Hardy",
|
|
||||||
"Lonely": "Lonely",
|
|
||||||
"Brave": "Brave",
|
|
||||||
"Adamant": "Adamant",
|
|
||||||
"Naughty": "Naughty",
|
|
||||||
"Bold": "Bold",
|
|
||||||
"Docile": "Docile",
|
|
||||||
"Relaxed": "Relaxed",
|
|
||||||
"Impish": "Impish",
|
|
||||||
"Lax": "Lax",
|
|
||||||
"Timid": "Timid",
|
|
||||||
"Hasty": "Hasty",
|
|
||||||
"Serious": "Serious",
|
|
||||||
"Jolly": "Jolly",
|
|
||||||
"Naive": "Naive",
|
|
||||||
"Modest": "Modest",
|
|
||||||
"Mild": "Mild",
|
|
||||||
"Quiet": "Quiet",
|
|
||||||
"Bashful": "Bashful",
|
|
||||||
"Rash": "Rash",
|
|
||||||
"Calm": "Calm",
|
|
||||||
"Gentle": "Gentle",
|
|
||||||
"Sassy": "Sassy",
|
|
||||||
"Careful": "Careful",
|
|
||||||
"Quirky": "Quirky"
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/party-ui-handler.json
Normal file
1
src/locales/ca_ES/party-ui-handler.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,54 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const partyUiHandler: SimpleTranslationEntries = {
|
|
||||||
"SEND_OUT": "Send Out",
|
|
||||||
"SUMMARY": "Summary",
|
|
||||||
"CANCEL": "Cancel",
|
|
||||||
"RELEASE": "Release",
|
|
||||||
"APPLY": "Apply",
|
|
||||||
"TEACH": "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",
|
|
||||||
|
|
||||||
// Slot TM text
|
|
||||||
"able": "Able",
|
|
||||||
"notAble": "Not able",
|
|
||||||
"learned": "Learned",
|
|
||||||
|
|
||||||
// Releasing messages
|
|
||||||
"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}}!",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/pokeball.json
Normal file
1
src/locales/ca_ES/pokeball.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const pokeball: SimpleTranslationEntries = {
|
|
||||||
"pokeBall": "Poké Ball",
|
|
||||||
"greatBall": "Great Ball",
|
|
||||||
"ultraBall": "Ultra Ball",
|
|
||||||
"rogueBall": "Rogue Ball",
|
|
||||||
"masterBall": "Master Ball",
|
|
||||||
"luxuryBall": "Luxury Ball",
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/pokemon-form-battle.json
Normal file
1
src/locales/ca_ES/pokemon-form-battle.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
1
src/locales/ca_ES/pokemon-form.json
Normal file
1
src/locales/ca_ES/pokemon-form.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user