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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
@ -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,8 +275,13 @@ 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) {
|
||||||
|
if (pokemon.getFormKey() === "") {
|
||||||
return "battle_legendary_dia_pal";
|
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,8 +324,13 @@ 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) {
|
||||||
|
if (pokemon.getFormKey() === "") {
|
||||||
return "battle_legendary_calyrex";
|
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";
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
@ -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(),
|
||||||
|
@ -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,
|
||||||
@ -4946,7 +4947,7 @@ 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();
|
||||||
@ -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)}));
|
||||||
|
|
||||||
|
@ -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() {
|
||||||
|
@ -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)),
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
*/
|
*/
|
||||||
@ -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();
|
||||||
|
@ -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.
|
||||||
*
|
*
|
||||||
|
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 @@
|
|||||||
|
{}
|
@ -1,198 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battlePokemonForm: SimpleTranslationEntries = {
|
|
||||||
"mega": "Mega {{pokemonName}}",
|
|
||||||
"mega-x": "Mega {{pokemonName}} X",
|
|
||||||
"mega-y": "Mega {{pokemonName}} Y",
|
|
||||||
"primal": "Primal {{pokemonName}}",
|
|
||||||
"gigantamax": "G-Max {{pokemonName}}",
|
|
||||||
"eternamax": "E-Max {{pokemonName}}",
|
|
||||||
|
|
||||||
"megaChange": "{{preName}} Mega Evolved\ninto {{pokemonName}}!",
|
|
||||||
"gigantamaxChange": "{{preName}} Gigantamaxed\ninto {{pokemonName}}!",
|
|
||||||
"eternamaxChange": "{{preName}} Eternamaxed\ninto {{pokemonName}}!",
|
|
||||||
"revertChange": "{{pokemonName}} reverted\nto its original form!",
|
|
||||||
"formChange": "{{preName}} changed form!",
|
|
||||||
"disguiseChange": "Its disguise served it as a decoy!",
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
export const pokemonForm: SimpleTranslationEntries = {
|
|
||||||
// Starters forms
|
|
||||||
// 1G
|
|
||||||
"pikachuCosplay": "Cosplay",
|
|
||||||
"pikachuCoolCosplay": "Cool Cosplay",
|
|
||||||
"pikachuBeautyCosplay": "Beauty Cosplay",
|
|
||||||
"pikachuCuteCosplay": "Cute Cosplay",
|
|
||||||
"pikachuSmartCosplay": "Smart Cosplay",
|
|
||||||
"pikachuToughCosplay": "Tough Cosplay",
|
|
||||||
"pikachuPartner": "Partner",
|
|
||||||
"eeveePartner": "Partner",
|
|
||||||
// 2G
|
|
||||||
"pichuSpiky": "Spiky",
|
|
||||||
"unownA": "A",
|
|
||||||
"unownB": "B",
|
|
||||||
"unownC": "C",
|
|
||||||
"unownD": "D",
|
|
||||||
"unownE": "E",
|
|
||||||
"unownF": "F",
|
|
||||||
"unownG": "G",
|
|
||||||
"unownH": "H",
|
|
||||||
"unownI": "I",
|
|
||||||
"unownJ": "J",
|
|
||||||
"unownK": "K",
|
|
||||||
"unownL": "L",
|
|
||||||
"unownM": "M",
|
|
||||||
"unownN": "N",
|
|
||||||
"unownO": "O",
|
|
||||||
"unownP": "P",
|
|
||||||
"unownQ": "Q",
|
|
||||||
"unownR": "R",
|
|
||||||
"unownS": "S",
|
|
||||||
"unownT": "T",
|
|
||||||
"unownU": "U",
|
|
||||||
"unownV": "V",
|
|
||||||
"unownW": "W",
|
|
||||||
"unownX": "X",
|
|
||||||
"unownY": "Y",
|
|
||||||
"unownZ": "Z",
|
|
||||||
"unownExclamation": "!",
|
|
||||||
"unownQuestion": "?",
|
|
||||||
// 3G
|
|
||||||
"castformSunny": "Sunny",
|
|
||||||
"castformRainy": "Rainy",
|
|
||||||
"castformSnowy": "Snowy",
|
|
||||||
"deoxysNormal": "Normal",
|
|
||||||
// 4G
|
|
||||||
"burmyPlant": "Plant",
|
|
||||||
"burmySandy": "Sandy",
|
|
||||||
"burmyTrash": "Trash",
|
|
||||||
"shellosEast": "East",
|
|
||||||
"shellosWest": "West",
|
|
||||||
"rotomHeat": "Heat",
|
|
||||||
"rotomWash": "Wash",
|
|
||||||
"rotomFrost": "Frost",
|
|
||||||
"rotomFan": "Fan",
|
|
||||||
"rotomMow": "Mow",
|
|
||||||
"giratinaAltered": "Altered",
|
|
||||||
"shayminLand": "Land",
|
|
||||||
// 5G
|
|
||||||
"basculinRedStriped": "Red Striped",
|
|
||||||
"basculinBlueStriped": "Blue Striped",
|
|
||||||
"basculinWhiteStriped": "White Striped",
|
|
||||||
"deerlingSpring": "Spring",
|
|
||||||
"deerlingSummer": "Summer",
|
|
||||||
"deerlingAutumn": "Autumn",
|
|
||||||
"deerlingWinter": "Winter",
|
|
||||||
"tornadusIncarnate": "Incarnate",
|
|
||||||
"thundurusIncarnate": "Incarnate",
|
|
||||||
"landorusIncarnate": "Incarnate",
|
|
||||||
"keldeoOrdinary": "Ordinary",
|
|
||||||
"meloettaAria": "Aria",
|
|
||||||
// 6G
|
|
||||||
"froakieBattleBond": "Battle Bond",
|
|
||||||
"scatterbugMeadow": "Meadow",
|
|
||||||
"scatterbugIcySnow": "Icy Snow",
|
|
||||||
"scatterbugPolar": "Polar",
|
|
||||||
"scatterbugTundra": "Tundra",
|
|
||||||
"scatterbugContinental": "Continental",
|
|
||||||
"scatterbugGarden": "Garden",
|
|
||||||
"scatterbugElegant": "Elegant",
|
|
||||||
"scatterbugModern": "Modern",
|
|
||||||
"scatterbugMarine": "Marine",
|
|
||||||
"scatterbugArchipelago": "Archipelago",
|
|
||||||
"scatterbugHighPlains": "High Plains",
|
|
||||||
"scatterbugSandstorm": "Sandstorm",
|
|
||||||
"scatterbugRiver": "River",
|
|
||||||
"scatterbugMonsoon": "Monsoon",
|
|
||||||
"scatterbugSavanna": "Savanna",
|
|
||||||
"scatterbugSun": "Sun",
|
|
||||||
"scatterbugOcean": "Ocean",
|
|
||||||
"scatterbugJungle": "Jungle",
|
|
||||||
"scatterbugFancy": "Fancy",
|
|
||||||
"scatterbugPokeBall": "Poké Ball",
|
|
||||||
"flabebeRed": "Red",
|
|
||||||
"flabebeYellow": "Yellow",
|
|
||||||
"flabebeOrange": "Orange",
|
|
||||||
"flabebeBlue": "Blue",
|
|
||||||
"flabebeWhite": "White",
|
|
||||||
"furfrouHeart": "Heart",
|
|
||||||
"furfrouStar": "Star",
|
|
||||||
"furfrouDiamond": "Diamond",
|
|
||||||
"furfrouDebutante": "Debutante",
|
|
||||||
"furfrouMatron": "Matron",
|
|
||||||
"furfrouDandy": "Dandy",
|
|
||||||
"furfrouLaReine": "La Reine",
|
|
||||||
"furfrouKabuki": "Kabuki",
|
|
||||||
"furfrouPharaoh": "Pharaoh",
|
|
||||||
"pumpkabooSmall": "Small",
|
|
||||||
"pumpkabooLarge": "Large",
|
|
||||||
"pumpkabooSuper": "Super",
|
|
||||||
"xerneasNeutral": "Neutral",
|
|
||||||
"xerneasActive": "Active",
|
|
||||||
"zygarde50": "50% Forme",
|
|
||||||
"zygarde10": "10% Forme",
|
|
||||||
"zygarde50Pc": "50% Forme Power Construct",
|
|
||||||
"zygarde10Pc": "10% Forme Power Construct",
|
|
||||||
"zygardeComplete": "Complete Forme",
|
|
||||||
// 7G
|
|
||||||
"oricorioBaile": "Baile",
|
|
||||||
"oricorioPompom": "Pom-Pom",
|
|
||||||
"oricorioPau": "Pau",
|
|
||||||
"oricorioSensu": "Sensu",
|
|
||||||
"rockruffOwnTempo": "Own Tempo",
|
|
||||||
"miniorRedMeteor": "Red Meteor",
|
|
||||||
"miniorOrangeMeteor": "Orange Meteor",
|
|
||||||
"miniorYellowMeteor": "Yellow Meteor",
|
|
||||||
"miniorGreenMeteor": "Green Meteor",
|
|
||||||
"miniorBlueMeteor": "Blue Meteor",
|
|
||||||
"miniorIndigoMeteor": "Indigo Meteor",
|
|
||||||
"miniorVioletMeteor": "Violet Meteor",
|
|
||||||
"miniorRed": "Red",
|
|
||||||
"miniorOrange": "Orange",
|
|
||||||
"miniorYellow": "Yellow",
|
|
||||||
"miniorGreen": "Green",
|
|
||||||
"miniorBlue": "Blue",
|
|
||||||
"miniorIndigo": "Indigo",
|
|
||||||
"miniorViolet": "Violet",
|
|
||||||
"mimikyuDisguised": "Disguised",
|
|
||||||
"mimikyuBusted": "Busted",
|
|
||||||
"magearnaOriginal": "Original",
|
|
||||||
"marshadowZenith": "Zenith",
|
|
||||||
// 8G
|
|
||||||
"sinisteaPhony": "Phony",
|
|
||||||
"sinisteaAntique": "Antique",
|
|
||||||
"eiscueNoIce": "No Ice",
|
|
||||||
"indeedeeMale": "Male",
|
|
||||||
"indeedeeFemale": "Female",
|
|
||||||
"morpekoFullBelly": "Full Belly",
|
|
||||||
"zacianHeroOfManyBattles": "Hero Of Many Battles",
|
|
||||||
"zamazentaHeroOfManyBattles": "Hero Of Many Battles",
|
|
||||||
"zarudeDada": "Dada",
|
|
||||||
"enamorusIncarnate": "Incarnate",
|
|
||||||
// 9G
|
|
||||||
"squawkabillyGreenPlumage": "Green Plumage",
|
|
||||||
"squawkabillyBluePlumage": "Blue Plumage",
|
|
||||||
"squawkabillyYellowPlumage": "Yellow Plumage",
|
|
||||||
"squawkabillyWhitePlumage": "White Plumage",
|
|
||||||
"tatsugiriCurly": "Curly",
|
|
||||||
"tatsugiriDroopy": "Droopy",
|
|
||||||
"tatsugiriStretchy": "Stretchy",
|
|
||||||
"gimmighoulChest": "Chest",
|
|
||||||
"gimmighoulRoaming": "Roaming",
|
|
||||||
"koraidonApexBuild": "Apex Build",
|
|
||||||
"koraidonLimitedBuild":"Limited Build",
|
|
||||||
"koraidonSprintingBuild":"Sprinting Build",
|
|
||||||
"koraidonSwimmingBuild":"Swimming Build",
|
|
||||||
"koraidonGlidingBuild":"Gliding Build",
|
|
||||||
"miraidonUltimateMode":"Ultimate Mode",
|
|
||||||
"miraidonLowPowerMode":"Low Power Mode",
|
|
||||||
"miraidonDriveMode":"Drive Mode",
|
|
||||||
"miraidonAquaticMode":"Aquatic Mode",
|
|
||||||
"miraidonGlideMode":"Glide Mode",
|
|
||||||
"poltchageistCounterfeit": "Counterfeit",
|
|
||||||
"poltchageistArtisan": "Artisan",
|
|
||||||
"paldeaTaurosCombat": "Combat",
|
|
||||||
"paldeaTaurosBlaze": "Blaze",
|
|
||||||
"paldeaTaurosAqua": "Aqua",
|
|
||||||
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/pokemon-info-container.json
Normal file
1
src/locales/ca_ES/pokemon-info-container.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const pokemonInfoContainer: SimpleTranslationEntries = {
|
|
||||||
"moveset": "Moveset",
|
|
||||||
"gender": "Gender:",
|
|
||||||
"ability": "Ability:",
|
|
||||||
"nature": "Nature:",
|
|
||||||
"form": "Form:"
|
|
||||||
} as const;
|
|
1
src/locales/ca_ES/pokemon-info.json
Normal file
1
src/locales/ca_ES/pokemon-info.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