first round with eslint --fix .
This commit is contained in:
parent
8eb6f8a2e6
commit
77a88e0895
|
@ -1,5 +1,5 @@
|
|||
import { bypassLogin } from "./battle-scene";
|
||||
import * as Utils from "./utils";
|
||||
import { bypassLogin } from './battle-scene';
|
||||
import * as Utils from './utils';
|
||||
|
||||
export interface UserInfo {
|
||||
username: string;
|
||||
|
|
|
@ -9,19 +9,19 @@ import { PokeballType } from './data/pokeball';
|
|||
import { initCommonAnims, initMoveAnim, loadCommonAnimAssets, loadMoveAnimAssets, populateAnims } from './data/battle-anims';
|
||||
import { Phase } from './phase';
|
||||
import { initGameSpeed } from './system/game-speed';
|
||||
import { Biome } from "./data/enums/biome";
|
||||
import { Biome } from './data/enums/biome';
|
||||
import { Arena, ArenaBase } from './field/arena';
|
||||
import { GameData, PlayerGender } from './system/game-data';
|
||||
import StarterSelectUiHandler from './ui/starter-select-ui-handler';
|
||||
import { TextStyle, addTextObject } from './ui/text';
|
||||
import { Moves } from "./data/enums/moves";
|
||||
import { allMoves } from "./data/move";
|
||||
import { Moves } from './data/enums/moves';
|
||||
import { allMoves } from './data/move';
|
||||
import { initMoves } from './data/move';
|
||||
import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getLuckString, getLuckTextTint, getModifierPoolForType, getPartyLuckValue } from './modifier/modifier-type';
|
||||
import AbilityBar from './ui/ability-bar';
|
||||
import { BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, IncrementMovePriorityAbAttr, applyAbAttrs, initAbilities } from './data/ability';
|
||||
import { Abilities } from "./data/enums/abilities";
|
||||
import { allAbilities } from "./data/ability";
|
||||
import { Abilities } from './data/enums/abilities';
|
||||
import { allAbilities } from './data/ability';
|
||||
import Battle, { BattleType, FixedBattleConfig, fixedBattles } from './battle';
|
||||
import { GameMode, GameModes, gameModes } from './game-mode';
|
||||
import FieldSpritePipeline from './pipelines/field-sprite';
|
||||
|
@ -60,10 +60,10 @@ import CandyBar from './ui/candy-bar';
|
|||
import { Variant, variantData } from './data/variant';
|
||||
import { Localizable } from './plugins/i18n';
|
||||
import * as Overrides from './overrides';
|
||||
import {InputsController} from "./inputs-controller";
|
||||
import {UiInputs} from "./ui-inputs";
|
||||
import {InputsController} from './inputs-controller';
|
||||
import {UiInputs} from './ui-inputs';
|
||||
|
||||
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
||||
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === '1';
|
||||
|
||||
const DEBUG_RNG = false;
|
||||
|
||||
|
@ -95,7 +95,7 @@ export default class BattleScene extends SceneBase {
|
|||
public gameSpeed: integer = 1;
|
||||
public damageNumbersMode: integer = 0;
|
||||
public showLevelUpStats: boolean = true;
|
||||
public enableTutorials: boolean = import.meta.env.VITE_BYPASS_TUTORIAL === "1";
|
||||
public enableTutorials: boolean = import.meta.env.VITE_BYPASS_TUTORIAL === '1';
|
||||
public enableRetries: boolean = false;
|
||||
public uiTheme: UiTheme = UiTheme.DEFAULT;
|
||||
public windowType: integer = 0;
|
||||
|
@ -175,7 +175,7 @@ export default class BattleScene extends SceneBase {
|
|||
public waveCycleOffset: integer;
|
||||
public offsetGym: boolean;
|
||||
|
||||
public damageNumberHandler: DamageNumberHandler
|
||||
public damageNumberHandler: DamageNumberHandler;
|
||||
private spriteSparkleHandler: PokemonSpriteSparkleHandler;
|
||||
|
||||
public fieldSpritePipeline: FieldSpritePipeline;
|
||||
|
@ -207,7 +207,7 @@ export default class BattleScene extends SceneBase {
|
|||
loadPokemonAtlas(key: string, atlasPath: string, experimental?: boolean) {
|
||||
if (experimental === undefined)
|
||||
experimental = this.experimentalSprites;
|
||||
let variant = atlasPath.includes('variant/') || /_[0-3]$/.test(atlasPath);
|
||||
const variant = atlasPath.includes('variant/') || /_[0-3]$/.test(atlasPath);
|
||||
if (experimental)
|
||||
experimental = this.hasExpSprite(key);
|
||||
if (variant)
|
||||
|
@ -385,7 +385,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
this.party = [];
|
||||
|
||||
let loadPokemonAssets = [];
|
||||
const loadPokemonAssets = [];
|
||||
|
||||
this.arenaPlayer = new ArenaBase(this, true);
|
||||
this.arenaPlayerTransition = new ArenaBase(this, true);
|
||||
|
@ -654,7 +654,7 @@ export default class BattleScene extends SceneBase {
|
|||
icon.setFrame(pokemon.getIconId(true));
|
||||
// Temporary fix to show pokemon's default icon if variant icon doesn't exist
|
||||
if (icon.frame.name != pokemon.getIconId(true)) {
|
||||
console.log(`${pokemon.name}'s variant icon does not exist. Replacing with default.`)
|
||||
console.log(`${pokemon.name}'s variant icon does not exist. Replacing with default.`);
|
||||
const temp = pokemon.shiny;
|
||||
pokemon.shiny = false;
|
||||
icon.setTexture(pokemon.getIconAtlasKey(ignoreOverride));
|
||||
|
@ -667,7 +667,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
if (pokemon.isFusion()) {
|
||||
const fusionIcon = this.add.sprite(0, 0, pokemon.getFusionIconAtlasKey(ignoreOverride));
|
||||
fusionIcon.setOrigin(0.5, 0)
|
||||
fusionIcon.setOrigin(0.5, 0);
|
||||
fusionIcon.setFrame(pokemon.getFusionIconId(true));
|
||||
|
||||
const originalWidth = icon.width;
|
||||
|
@ -755,10 +755,10 @@ export default class BattleScene extends SceneBase {
|
|||
this.modifierBar.removeAll(true);
|
||||
this.enemyModifierBar.removeAll(true);
|
||||
|
||||
for (let p of this.getParty())
|
||||
for (const p of this.getParty())
|
||||
p.destroy();
|
||||
this.party = [];
|
||||
for (let p of this.getEnemyParty())
|
||||
for (const p of this.getEnemyParty())
|
||||
p.destroy();
|
||||
|
||||
this.currentBattle = null;
|
||||
|
@ -799,7 +799,7 @@ export default class BattleScene extends SceneBase {
|
|||
...allAbilities,
|
||||
...Utils.getEnumValues(ModifierPoolType).map(mpt => getModifierPoolForType(mpt)).map(mp => Object.values(mp).flat().map(mt => mt.modifierType).filter(mt => 'localize' in mt).map(lpb => lpb as unknown as Localizable)).flat()
|
||||
];
|
||||
for (let item of localizable)
|
||||
for (const item of localizable)
|
||||
item.localize();
|
||||
}
|
||||
|
||||
|
@ -825,7 +825,7 @@ export default class BattleScene extends SceneBase {
|
|||
}
|
||||
|
||||
newBattle(waveIndex?: integer, battleType?: BattleType, trainerData?: TrainerData, double?: boolean): Battle {
|
||||
let newWaveIndex = waveIndex || ((this.currentBattle?.waveIndex || (startingWave - 1)) + 1);
|
||||
const newWaveIndex = waveIndex || ((this.currentBattle?.waveIndex || (startingWave - 1)) + 1);
|
||||
let newDouble: boolean;
|
||||
let newBattleType: BattleType;
|
||||
let newTrainer: Trainer;
|
||||
|
@ -928,7 +928,7 @@ export default class BattleScene extends SceneBase {
|
|||
playerField.forEach((_, p) => this.unshiftPhase(new ReturnPhase(this, p)));
|
||||
this.unshiftPhase(new ShowTrainerPhase(this));
|
||||
}
|
||||
for (let pokemon of this.getParty()) {
|
||||
for (const pokemon of this.getParty()) {
|
||||
if (pokemon) {
|
||||
if (resetArenaState)
|
||||
pokemon.resetBattleData();
|
||||
|
@ -1213,7 +1213,7 @@ export default class BattleScene extends SceneBase {
|
|||
labels.map(t => {
|
||||
t.setAlpha(0);
|
||||
t.setVisible(true);
|
||||
})
|
||||
});
|
||||
const luckValue = getPartyLuckValue(this.getParty());
|
||||
this.luckText.setText(getLuckString(luckValue));
|
||||
if (luckValue < 14)
|
||||
|
@ -1290,14 +1290,14 @@ export default class BattleScene extends SceneBase {
|
|||
.map((_, i: integer) => ((1 - Math.min(Math.abs((i / (maxDepth - 1)) - (relWave / 250)) + 0.25, 1)) / 0.75) * 250);
|
||||
const biomeThresholds: integer[] = [];
|
||||
let totalWeight = 0;
|
||||
for (let biome of biomes) {
|
||||
for (const biome of biomes) {
|
||||
totalWeight += Math.ceil(depthWeights[biomeDepths[biome][0] - 1] / biomeDepths[biome][1]);
|
||||
biomeThresholds.push(totalWeight);
|
||||
}
|
||||
|
||||
const randInt = Utils.randSeedInt(totalWeight);
|
||||
|
||||
for (let biome of biomes) {
|
||||
for (const biome of biomes) {
|
||||
if (randInt < biomeThresholds[biome])
|
||||
return biome;
|
||||
}
|
||||
|
@ -1379,7 +1379,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
updateSoundVolume(): void {
|
||||
if (this.sound) {
|
||||
for (let sound of this.sound.getAllPlaying())
|
||||
for (const sound of this.sound.getAllPlaying())
|
||||
(sound as AnySound).setVolume(this.masterVolume * (this.bgmCache.has(sound.key) ? this.bgmVolume : this.seVolume));
|
||||
}
|
||||
}
|
||||
|
@ -1640,7 +1640,7 @@ export default class BattleScene extends SceneBase {
|
|||
return this.addModifier(defaultModifierType.newModifier(), ignoreUpdate, playSound, false, instant).then(success => resolve(success));
|
||||
}
|
||||
|
||||
for (let rm of modifiersToRemove)
|
||||
for (const rm of modifiersToRemove)
|
||||
this.removeModifier(rm);
|
||||
|
||||
if (!ignoreUpdate && !virtual)
|
||||
|
@ -1650,7 +1650,7 @@ export default class BattleScene extends SceneBase {
|
|||
this.playSound(soundName);
|
||||
|
||||
if (modifier instanceof ConsumablePokemonModifier) {
|
||||
for (let p in this.party) {
|
||||
for (const p in this.party) {
|
||||
const pokemon = this.party[p];
|
||||
|
||||
const args: any[] = [ pokemon ];
|
||||
|
@ -1698,7 +1698,7 @@ export default class BattleScene extends SceneBase {
|
|||
if ((modifier as PersistentModifier).add(this.enemyModifiers, false, this)) {
|
||||
if (modifier instanceof PokemonFormChangeItemModifier || modifier instanceof TerastallizeModifier)
|
||||
modifier.apply([ this.getPokemonById(modifier.pokemonId), true ]);
|
||||
for (let rm of modifiersToRemove)
|
||||
for (const rm of modifiersToRemove)
|
||||
this.removeModifier(rm, true);
|
||||
}
|
||||
if (!ignoreUpdate)
|
||||
|
@ -1757,7 +1757,7 @@ export default class BattleScene extends SceneBase {
|
|||
return new Promise(resolve => {
|
||||
const pokemonId = this.getParty()[partyMemberIndex].id;
|
||||
const modifiersToRemove = this.modifiers.filter(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === pokemonId);
|
||||
for (let m of modifiersToRemove)
|
||||
for (const m of modifiersToRemove)
|
||||
this.modifiers.splice(this.modifiers.indexOf(m), 1);
|
||||
this.updateModifiers().then(() => resolve());
|
||||
});
|
||||
|
@ -1777,7 +1777,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
if (this.currentBattle.trainer) {
|
||||
const modifiers = this.currentBattle.trainer.genModifiers(party);
|
||||
for (let modifier of modifiers)
|
||||
for (const modifier of modifiers)
|
||||
this.addEnemyModifier(modifier, true, true);
|
||||
}
|
||||
|
||||
|
@ -1812,7 +1812,7 @@ export default class BattleScene extends SceneBase {
|
|||
*/
|
||||
clearEnemyModifiers(): void {
|
||||
const modifiersToRemove = this.enemyModifiers.filter(m => m instanceof PersistentModifier);
|
||||
for (let m of modifiersToRemove)
|
||||
for (const m of modifiersToRemove)
|
||||
this.enemyModifiers.splice(this.enemyModifiers.indexOf(m), 1);
|
||||
this.updateModifiers(false).then(() => this.updateUIPositions());
|
||||
}
|
||||
|
@ -1822,7 +1822,7 @@ export default class BattleScene extends SceneBase {
|
|||
*/
|
||||
clearEnemyHeldItemModifiers(): void {
|
||||
const modifiersToRemove = this.enemyModifiers.filter(m => m instanceof PokemonHeldItemModifier);
|
||||
for (let m of modifiersToRemove)
|
||||
for (const m of modifiersToRemove)
|
||||
this.enemyModifiers.splice(this.enemyModifiers.indexOf(m), 1);
|
||||
this.updateModifiers(false).then(() => this.updateUIPositions());
|
||||
}
|
||||
|
@ -1841,13 +1841,13 @@ export default class BattleScene extends SceneBase {
|
|||
if (modifier instanceof PokemonHeldItemModifier && !this.getPokemonById((modifier as PokemonHeldItemModifier).pokemonId))
|
||||
modifiers.splice(m--, 1);
|
||||
}
|
||||
for (let modifier of modifiers) {
|
||||
for (const modifier of modifiers) {
|
||||
if (modifier instanceof PersistentModifier)
|
||||
(modifier as PersistentModifier).virtualStackCount = 0;
|
||||
}
|
||||
|
||||
const modifiersClone = modifiers.slice(0);
|
||||
for (let modifier of modifiersClone) {
|
||||
for (const modifier of modifiersClone) {
|
||||
if (!modifier.getStackCount())
|
||||
modifiers.splice(modifiers.indexOf(modifier), 1);
|
||||
}
|
||||
|
@ -1917,7 +1917,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
applyModifiersInternal(modifiers: PersistentModifier[], player: boolean, args: any[]): PersistentModifier[] {
|
||||
const appliedModifiers: PersistentModifier[] = [];
|
||||
for (let modifier of modifiers) {
|
||||
for (const modifier of modifiers) {
|
||||
if (modifier.apply(args)) {
|
||||
console.log('Applied', modifier.type.name, !player ? '(enemy)' : '');
|
||||
appliedModifiers.push(modifier);
|
||||
|
@ -1929,7 +1929,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
applyModifier(modifierType: { new(...args: any[]): Modifier }, player: boolean = true, ...args: any[]): PersistentModifier {
|
||||
const modifiers = (player ? this.modifiers : this.enemyModifiers).filter(m => m instanceof modifierType && m.shouldApply(args));
|
||||
for (let modifier of modifiers) {
|
||||
for (const modifier of modifiers) {
|
||||
if (modifier.apply(args)) {
|
||||
console.log('Applied', modifier.type.name, !player ? '(enemy)' : '');
|
||||
return modifier;
|
||||
|
@ -1963,7 +1963,7 @@ export default class BattleScene extends SceneBase {
|
|||
|
||||
validateAchvs(achvType: { new(...args: any[]): Achv }, ...args: any[]): void {
|
||||
const filteredAchvs = Object.values(achvs).filter(a => a instanceof achvType);
|
||||
for (let achv of filteredAchvs)
|
||||
for (const achv of filteredAchvs)
|
||||
this.validateAchv(achv, args);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import BattleScene from "./battle-scene";
|
||||
import { EnemyPokemon, PlayerPokemon, QueuedMove } from "./field/pokemon";
|
||||
import { Command } from "./ui/command-ui-handler";
|
||||
import * as Utils from "./utils";
|
||||
import Trainer, { TrainerVariant } from "./field/trainer";
|
||||
import { Species } from "./data/enums/species";
|
||||
import { Moves } from "./data/enums/moves";
|
||||
import { TrainerType } from "./data/enums/trainer-type";
|
||||
import { GameMode } from "./game-mode";
|
||||
import { BattleSpec } from "./enums/battle-spec";
|
||||
import { PlayerGender } from "./system/game-data";
|
||||
import { MoneyMultiplierModifier, PokemonHeldItemModifier } from "./modifier/modifier";
|
||||
import { MoneyAchv } from "./system/achv";
|
||||
import { PokeballType } from "./data/pokeball";
|
||||
import BattleScene from './battle-scene';
|
||||
import { EnemyPokemon, PlayerPokemon, QueuedMove } from './field/pokemon';
|
||||
import { Command } from './ui/command-ui-handler';
|
||||
import * as Utils from './utils';
|
||||
import Trainer, { TrainerVariant } from './field/trainer';
|
||||
import { Species } from './data/enums/species';
|
||||
import { Moves } from './data/enums/moves';
|
||||
import { TrainerType } from './data/enums/trainer-type';
|
||||
import { GameMode } from './game-mode';
|
||||
import { BattleSpec } from './enums/battle-spec';
|
||||
import { PlayerGender } from './system/game-data';
|
||||
import { MoneyMultiplierModifier, PokemonHeldItemModifier } from './modifier/modifier';
|
||||
import { MoneyAchv } from './system/achv';
|
||||
import { PokeballType } from './data/pokeball';
|
||||
|
||||
export enum BattleType {
|
||||
WILD,
|
||||
|
@ -34,7 +34,7 @@ export interface TurnCommand {
|
|||
targets?: BattlerIndex[];
|
||||
skip?: boolean;
|
||||
args?: any[];
|
||||
};
|
||||
}
|
||||
|
||||
interface TurnCommands {
|
||||
[key: integer]: TurnCommand
|
||||
|
@ -101,8 +101,8 @@ export default class Battle {
|
|||
}
|
||||
|
||||
private getLevelForWave(): integer {
|
||||
let levelWaveIndex = this.gameMode.getWaveForDifficulty(this.waveIndex);
|
||||
let baseLevel = 1 + levelWaveIndex / 2 + Math.pow(levelWaveIndex / 25, 2);
|
||||
const levelWaveIndex = this.gameMode.getWaveForDifficulty(this.waveIndex);
|
||||
const baseLevel = 1 + levelWaveIndex / 2 + Math.pow(levelWaveIndex / 25, 2);
|
||||
const bossMultiplier = 1.2;
|
||||
|
||||
if (!(this.waveIndex % 10)) {
|
||||
|
@ -171,7 +171,7 @@ export default class Battle {
|
|||
let partyMemberTurnMultiplier = scene.getEnemyParty().length / 2 + 0.5;
|
||||
if (this.double)
|
||||
partyMemberTurnMultiplier /= 1.5;
|
||||
for (let p of scene.getEnemyParty()) {
|
||||
for (const p of scene.getEnemyParty()) {
|
||||
if (p.isBoss())
|
||||
partyMemberTurnMultiplier *= (p.bossSegments / 1.5) / scene.getEnemyParty().length;
|
||||
}
|
||||
|
@ -191,7 +191,7 @@ export default class Battle {
|
|||
return this.trainer.getBattleBgm();
|
||||
} else if (this.gameMode.isClassic && this.waveIndex > 195 && this.battleSpec !== BattleSpec.FINAL_BOSS)
|
||||
return 'end_summit';
|
||||
for (let pokemon of battlers) {
|
||||
for (const pokemon of battlers) {
|
||||
if (this.battleSpec === BattleSpec.FINAL_BOSS) {
|
||||
if (pokemon.formIndex)
|
||||
return 'battle_final';
|
||||
|
@ -290,7 +290,7 @@ function getRandomTrainerFunc(trainerPool: (TrainerType | TrainerType[])[]): Get
|
|||
return (scene: BattleScene) => {
|
||||
const rand = Utils.randSeedInt(trainerPool.length);
|
||||
const trainerTypes: TrainerType[] = [];
|
||||
for (let trainerPoolEntry of trainerPool) {
|
||||
for (const trainerPoolEntry of trainerPool) {
|
||||
const trainerType = Array.isArray(trainerPoolEntry)
|
||||
? Utils.randSeedItem(trainerPoolEntry)
|
||||
: trainerPoolEntry;
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
import Pokemon, { HitResult, PokemonMove } from "../field/pokemon";
|
||||
import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||
import { PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases";
|
||||
import { getPokemonMessage, getPokemonPrefix } from "../messages";
|
||||
import { Weather, WeatherType } from "./weather";
|
||||
import { BattlerTag } from "./battler-tags";
|
||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||
import { StatusEffect, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
||||
import { Gender } from "./gender";
|
||||
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, RecoilAttr, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves, StatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr } from "./move";
|
||||
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
||||
import { Stat } from "./pokemon-stat";
|
||||
import { PokemonHeldItemModifier } from "../modifier/modifier";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { TerrainType } from "./terrain";
|
||||
import { SpeciesFormChangeManualTrigger } from "./pokemon-forms";
|
||||
import { Abilities } from "./enums/abilities";
|
||||
import i18next, { Localizable } from "#app/plugins/i18n.js";
|
||||
import { Command } from "../ui/command-ui-handler";
|
||||
import Battle from "#app/battle.js";
|
||||
import { ability } from "#app/locales/en/ability.js";
|
||||
import { PokeballType, getPokeballName } from "./pokeball";
|
||||
import Pokemon, { HitResult, PokemonMove } from '../field/pokemon';
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import { BattleStat, getBattleStatName } from './battle-stat';
|
||||
import { PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from '../phases';
|
||||
import { getPokemonMessage, getPokemonPrefix } from '../messages';
|
||||
import { Weather, WeatherType } from './weather';
|
||||
import { BattlerTag } from './battler-tags';
|
||||
import { BattlerTagType } from './enums/battler-tag-type';
|
||||
import { StatusEffect, getStatusEffectDescriptor, getStatusEffectHealText } from './status-effect';
|
||||
import { Gender } from './gender';
|
||||
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, RecoilAttr, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves, StatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr } from './move';
|
||||
import { ArenaTagSide, ArenaTrapTag } from './arena-tag';
|
||||
import { ArenaTagType } from './enums/arena-tag-type';
|
||||
import { Stat } from './pokemon-stat';
|
||||
import { PokemonHeldItemModifier } from '../modifier/modifier';
|
||||
import { Moves } from './enums/moves';
|
||||
import { TerrainType } from './terrain';
|
||||
import { SpeciesFormChangeManualTrigger } from './pokemon-forms';
|
||||
import { Abilities } from './enums/abilities';
|
||||
import i18next, { Localizable } from '#app/plugins/i18n.js';
|
||||
import { Command } from '../ui/command-ui-handler';
|
||||
import Battle from '#app/battle.js';
|
||||
import { ability } from '#app/locales/en/ability.js';
|
||||
import { PokeballType, getPokeballName } from './pokeball';
|
||||
|
||||
export class Ability implements Localizable {
|
||||
public id: Abilities;
|
||||
|
@ -206,11 +206,11 @@ export class PostBattleInitStatChangeAbAttr extends PostBattleInitAbAttr {
|
|||
if (this.selfTarget)
|
||||
statChangePhases.push(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, this.stats, this.levels));
|
||||
else {
|
||||
for (let opponent of pokemon.getOpponents())
|
||||
for (const opponent of pokemon.getOpponents())
|
||||
statChangePhases.push(new StatChangePhase(pokemon.scene, opponent.getBattlerIndex(), false, this.stats, this.levels));
|
||||
}
|
||||
|
||||
for (let statChangePhase of statChangePhases) {
|
||||
for (const statChangePhase of statChangePhases) {
|
||||
if (!this.selfTarget && !statChangePhase.getPokemon().summonData)
|
||||
pokemon.scene.pushPhase(statChangePhase); // TODO: This causes the ability bar to be shown at the wrong time
|
||||
else
|
||||
|
@ -256,7 +256,7 @@ export class PreDefendFullHpEndureAbAttr extends PreDefendAbAttr {
|
|||
return pokemon.addTag(BattlerTagType.STURDY, 1);
|
||||
}
|
||||
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -547,7 +547,7 @@ export class MoveImmunityStatChangeAbAttr extends MoveImmunityAbAttr {
|
|||
}
|
||||
|
||||
applyPreDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||
const ret = super.applyPreDefend(pokemon, passive, attacker, move, cancelled, args)
|
||||
const ret = super.applyPreDefend(pokemon, passive, attacker, move, cancelled, args);
|
||||
if (ret) {
|
||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ this.stat ], this.levels));
|
||||
}
|
||||
|
@ -559,7 +559,7 @@ export class MoveImmunityStatChangeAbAttr extends MoveImmunityAbAttr {
|
|||
export class ReverseDrainAbAttr extends PostDefendAbAttr {
|
||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||
if (!!move.getMove().getAttrs(HitHealAttr).length || !!move.getMove().getAttrs(StrengthSapHealAttr).length ) {
|
||||
pokemon.scene.queueMessage(getPokemonMessage(attacker, ` sucked up the liquid ooze!`));
|
||||
pokemon.scene.queueMessage(getPokemonMessage(attacker, ' sucked up the liquid ooze!'));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -586,8 +586,8 @@ export class PostDefendStatChangeAbAttr extends PostDefendAbAttr {
|
|||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||
if (this.condition(pokemon, attacker, move.getMove())) {
|
||||
if (this.allOthers) {
|
||||
let otherPokemon = pokemon.getAlly() ? pokemon.getOpponents().concat([ pokemon.getAlly() ]) : pokemon.getOpponents();
|
||||
for (let other of otherPokemon) {
|
||||
const otherPokemon = pokemon.getAlly() ? pokemon.getOpponents().concat([ pokemon.getAlly() ]) : pokemon.getOpponents();
|
||||
for (const other of otherPokemon) {
|
||||
other.scene.unshiftPhase(new StatChangePhase(other.scene, (other).getBattlerIndex(), false, [ this.stat ], this.levels));
|
||||
}
|
||||
return true;
|
||||
|
@ -618,8 +618,8 @@ export class PostDefendHpGatedStatChangeAbAttr extends PostDefendAbAttr {
|
|||
}
|
||||
|
||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||
const hpGateFlat: integer = Math.ceil(pokemon.getMaxHp() * this.hpGate)
|
||||
const lastAttackReceived = pokemon.turnData.attacksReceived[pokemon.turnData.attacksReceived.length - 1]
|
||||
const hpGateFlat: integer = Math.ceil(pokemon.getMaxHp() * this.hpGate);
|
||||
const lastAttackReceived = pokemon.turnData.attacksReceived[pokemon.turnData.attacksReceived.length - 1];
|
||||
if (this.condition(pokemon, attacker, move.getMove()) && (pokemon.hp <= hpGateFlat && (pokemon.hp + lastAttackReceived.damage) > hpGateFlat)) {
|
||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, (this.selfTarget ? pokemon : attacker).getBattlerIndex(), true, this.stats, this.levels));
|
||||
return true;
|
||||
|
@ -842,7 +842,7 @@ export class PostDefendAbilitySwapAbAttr extends PostDefendAbAttr {
|
|||
}
|
||||
|
||||
getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]): string {
|
||||
return getPokemonMessage(pokemon, ` swapped\nabilities with its target!`);
|
||||
return getPokemonMessage(pokemon, ' swapped\nabilities with its target!');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1378,10 +1378,10 @@ export class PostIntimidateStatChangeAbAttr extends AbAttr {
|
|||
private overwrites: boolean;
|
||||
|
||||
constructor(stats: BattleStat[], levels: integer, overwrites?: boolean) {
|
||||
super(true)
|
||||
this.stats = stats
|
||||
this.levels = levels
|
||||
this.overwrites = !!overwrites
|
||||
super(true);
|
||||
this.stats = stats;
|
||||
this.levels = levels;
|
||||
this.overwrites = !!overwrites;
|
||||
}
|
||||
|
||||
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||
|
@ -1469,8 +1469,8 @@ export class PostSummonStatChangeAbAttr extends PostSummonAbAttr {
|
|||
pokemon.scene.pushPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, this.stats, this.levels));
|
||||
return true;
|
||||
}
|
||||
for (let opponent of pokemon.getOpponents()) {
|
||||
const cancelled = new Utils.BooleanHolder(false)
|
||||
for (const opponent of pokemon.getOpponents()) {
|
||||
const cancelled = new Utils.BooleanHolder(false);
|
||||
if (this.intimidate) {
|
||||
applyAbAttrs(IntimidateImmunityAbAttr, opponent, cancelled);
|
||||
applyAbAttrs(PostIntimidateStatChangeAbAttr, opponent, cancelled);
|
||||
|
@ -1526,7 +1526,7 @@ export class PostSummonClearAllyStatsAbAttr extends PostSummonAbAttr {
|
|||
for (let s = 0; s < target.summonData.battleStats.length; s++)
|
||||
target.summonData.battleStats[s] = 0;
|
||||
|
||||
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere removed!`));
|
||||
target.scene.queueMessage(getPokemonMessage(target, '\'s stat changes\nwere removed!'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -1544,7 +1544,7 @@ export class DownloadAbAttr extends PostSummonAbAttr {
|
|||
this.enemyDef = 0;
|
||||
this.enemySpDef = 0;
|
||||
|
||||
for (let opponent of pokemon.getOpponents()) {
|
||||
for (const opponent of pokemon.getOpponents()) {
|
||||
this.enemyDef += opponent.stats[BattleStat.DEF];
|
||||
this.enemySpDef += opponent.stats[BattleStat.SPDEF];
|
||||
}
|
||||
|
@ -1950,8 +1950,8 @@ function getWeatherCondition(...weatherTypes: WeatherType[]): AbAttrCondition {
|
|||
|
||||
function getAnticipationCondition(): AbAttrCondition {
|
||||
return (pokemon: Pokemon) => {
|
||||
for (let opponent of pokemon.getOpponents()) {
|
||||
for (let move of opponent.moveset) {
|
||||
for (const opponent of pokemon.getOpponents()) {
|
||||
for (const move of opponent.moveset) {
|
||||
// move is super effective
|
||||
if (move.getMove() instanceof AttackMove && pokemon.getAttackTypeEffectiveness(move.getMove().type, opponent) >= 2) {
|
||||
return true;
|
||||
|
@ -1995,7 +1995,7 @@ function getAnticipationCondition(): AbAttrCondition {
|
|||
function getOncePerBattleCondition(ability: Abilities): AbAttrCondition {
|
||||
return (pokemon: Pokemon) => {
|
||||
return !pokemon.battleData?.abilitiesApplied.includes(ability);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export class ForewarnAbAttr extends PostSummonAbAttr {
|
||||
|
@ -2005,10 +2005,10 @@ export class ForewarnAbAttr extends PostSummonAbAttr {
|
|||
|
||||
applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||
let maxPowerSeen = 0;
|
||||
let maxMove = "";
|
||||
let maxMove = '';
|
||||
let movePower = 0;
|
||||
for (let opponent of pokemon.getOpponents()) {
|
||||
for (let move of opponent.moveset) {
|
||||
for (const opponent of pokemon.getOpponents()) {
|
||||
for (const move of opponent.moveset) {
|
||||
if (move.getMove() instanceof StatusMove) {
|
||||
movePower = 1;
|
||||
} else if (move.getMove().findAttr(attr => attr instanceof OneHitKOAttr)) {
|
||||
|
@ -2027,7 +2027,7 @@ export class ForewarnAbAttr extends PostSummonAbAttr {
|
|||
}
|
||||
}
|
||||
}
|
||||
pokemon.scene.queueMessage(getPokemonMessage(pokemon, " was forewarned about " + maxMove + "!"));
|
||||
pokemon.scene.queueMessage(getPokemonMessage(pokemon, ' was forewarned about ' + maxMove + '!'));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -2038,8 +2038,8 @@ export class FriskAbAttr extends PostSummonAbAttr {
|
|||
}
|
||||
|
||||
applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||
for (let opponent of pokemon.getOpponents()) {
|
||||
pokemon.scene.queueMessage(getPokemonMessage(pokemon, " frisked " + opponent.name + "\'s " + opponent.getAbility().name + "!"));
|
||||
for (const opponent of pokemon.getOpponents()) {
|
||||
pokemon.scene.queueMessage(getPokemonMessage(pokemon, ' frisked ' + opponent.name + '\'s ' + opponent.getAbility().name + '!'));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -2212,17 +2212,17 @@ export class MoodyAbAttr extends PostTurnAbAttr {
|
|||
}
|
||||
|
||||
applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||
let selectableStats = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD];
|
||||
let increaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] < 6);
|
||||
const selectableStats = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD];
|
||||
const increaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] < 6);
|
||||
let decreaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] > -6);
|
||||
|
||||
if (increaseStatArray.length > 0) {
|
||||
let increaseStat = increaseStatArray[Utils.randInt(increaseStatArray.length)];
|
||||
const increaseStat = increaseStatArray[Utils.randInt(increaseStatArray.length)];
|
||||
decreaseStatArray = decreaseStatArray.filter(s => s !== increaseStat);
|
||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2));
|
||||
}
|
||||
if (decreaseStatArray.length > 0) {
|
||||
let decreaseStat = selectableStats[Utils.randInt(selectableStats.length)];
|
||||
const decreaseStat = selectableStats[Utils.randInt(selectableStats.length)];
|
||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1));
|
||||
}
|
||||
return true;
|
||||
|
@ -2297,7 +2297,7 @@ export class PostTurnHurtIfSleepingAbAttr extends PostTurnAbAttr {
|
|||
*/
|
||||
applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean | Promise<boolean> {
|
||||
let hadEffect: boolean = false;
|
||||
for(let opp of pokemon.getOpponents()) {
|
||||
for(const opp of pokemon.getOpponents()) {
|
||||
if(opp.status !== undefined && opp.status.effect === StatusEffect.SLEEP) {
|
||||
opp.damageAndUpdate(Math.floor(Math.max(1, opp.getMaxHp() / 8)), HitResult.OTHER);
|
||||
pokemon.scene.queueMessage(i18next.t('abilityTriggers:badDreams', {pokemonName: `${getPokemonPrefix(opp)}${opp.name}`}));
|
||||
|
@ -2326,7 +2326,7 @@ export class FetchBallAbAttr extends PostTurnAbAttr {
|
|||
* @returns true if player has used a pokeball and this pokemon is owned by the player
|
||||
*/
|
||||
applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||
let lastUsed = pokemon.scene.currentBattle.lastUsedPokeball;
|
||||
const lastUsed = pokemon.scene.currentBattle.lastUsedPokeball;
|
||||
if(lastUsed != null && pokemon.isPlayer) {
|
||||
pokemon.scene.pokeballCounts[lastUsed]++;
|
||||
pokemon.scene.currentBattle.lastUsedPokeball = null;
|
||||
|
@ -2526,7 +2526,7 @@ export class PostFaintContactDamageAbAttr extends PostFaintAbAttr {
|
|||
applyPostFaint(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||
if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon)) {
|
||||
const cancelled = new Utils.BooleanHolder(false);
|
||||
pokemon.scene.getField(true).map(p=>applyAbAttrs(FieldPreventExplosiveMovesAbAttr, p, cancelled))
|
||||
pokemon.scene.getField(true).map(p=>applyAbAttrs(FieldPreventExplosiveMovesAbAttr, p, cancelled));
|
||||
if (cancelled) {
|
||||
return false;
|
||||
}
|
||||
|
@ -3217,7 +3217,7 @@ export function initAbilities() {
|
|||
.ignorable(),
|
||||
new Ability(Abilities.AIR_LOCK, 3)
|
||||
.attr(SuppressWeatherEffectAbAttr, true)
|
||||
.attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."),
|
||||
.attr(PostSummonUnnamedMessageAbAttr, 'The effects of the weather disappeared.'),
|
||||
new Ability(Abilities.TANGLED_FEET, 4)
|
||||
.conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), BattleStatMultiplierAbAttr, BattleStat.EVA, 2)
|
||||
.ignorable(),
|
||||
|
@ -3288,7 +3288,7 @@ export function initAbilities() {
|
|||
.attr(MovePowerBoostAbAttr, (user, target, move) => {
|
||||
const power = new Utils.NumberHolder(move.power);
|
||||
applyMoveAttrs(VariablePowerAttr, user, target, move, power);
|
||||
return power.value <= 60
|
||||
return power.value <= 60;
|
||||
}, 1.5),
|
||||
new Ability(Abilities.LEAF_GUARD, 4)
|
||||
.attr(StatusEffectImmunityAbAttr)
|
||||
|
|
126
src/data/api.ts
126
src/data/api.ts
|
@ -6,7 +6,7 @@ import PokemonSpecies, { PokemonForm, SpeciesFormKey, allSpecies } from './pokem
|
|||
import { GrowthRate } from './exp';
|
||||
import { Type } from './type';
|
||||
import { allAbilities } from './ability';
|
||||
import { Abilities } from "./enums/abilities";
|
||||
import { Abilities } from './enums/abilities';
|
||||
import { Species } from './enums/species';
|
||||
import { pokemonFormLevelMoves } from './pokemon-level-moves';
|
||||
import { tmSpecies } from './tms';
|
||||
|
@ -93,16 +93,16 @@ export async function printPokemon() {
|
|||
|
||||
const useExistingTmList = true;
|
||||
|
||||
let enumStr = `export enum Species {\n`;
|
||||
let pokemonSpeciesStr = `\tallSpecies.push(\n`;
|
||||
let enumStr = 'export enum Species {\n';
|
||||
let pokemonSpeciesStr = '\tallSpecies.push(\n';
|
||||
const speciesLevelMoves: SpeciesLevelMoves = {};
|
||||
const speciesFormLevelMoves: SpeciesFormLevelMoves = {};
|
||||
const moveTmSpecies: TmSpecies = {};
|
||||
|
||||
let pokemonArr: NamedAPIResource[] = [];
|
||||
|
||||
let offset = 0;
|
||||
let pokemonResponse = await api.pokemon.listPokemons(offset, 2000)
|
||||
const offset = 0;
|
||||
const pokemonResponse = await api.pokemon.listPokemons(offset, 2000);
|
||||
|
||||
pokemonArr = pokemonResponse.results;
|
||||
|
||||
|
@ -111,7 +111,7 @@ export async function printPokemon() {
|
|||
|
||||
const pokemonSpeciesList: PokemonSpecies[] = [];
|
||||
|
||||
for (let p of pokemonArr) {
|
||||
for (const p of pokemonArr) {
|
||||
const pokemon = await api.pokemon.getPokemonByName(p.name);
|
||||
|
||||
let region: string = '';
|
||||
|
@ -133,7 +133,7 @@ export async function printPokemon() {
|
|||
if (ignoredForms.filter(f => formName.indexOf(f) > -1).length)
|
||||
continue;
|
||||
|
||||
let shortFormName = formName.indexOf('-') > -1
|
||||
const shortFormName = formName.indexOf('-') > -1
|
||||
? formName.slice(0, formName.indexOf('-'))
|
||||
: formName;
|
||||
|
||||
|
@ -143,7 +143,7 @@ export async function printPokemon() {
|
|||
const formBaseStats: integer[] = [];
|
||||
let formBaseTotal = 0;
|
||||
// Assume correct stat order in API result
|
||||
for (let stat of pokemon.stats) {
|
||||
for (const stat of pokemon.stats) {
|
||||
formBaseStats.push(stat.base_stat);
|
||||
formBaseTotal += stat.base_stat;
|
||||
}
|
||||
|
@ -168,7 +168,7 @@ export async function printPokemon() {
|
|||
speciesFormLevelMoves[speciesKey] = [];
|
||||
speciesFormLevelMoves[speciesKey][pokemonForm.formIndex] = [];
|
||||
|
||||
for (let version of versions) {
|
||||
for (const version of versions) {
|
||||
if (pokemon.moves.find(m => m.version_group_details.find(v => v.version_group.name === version && v.move_learn_method.name === 'level-up'))) {
|
||||
moveVer = version;
|
||||
break;
|
||||
|
@ -235,7 +235,7 @@ export async function printPokemon() {
|
|||
const baseStats: integer[] = [];
|
||||
let baseTotal = 0;
|
||||
// Assume correct stat order in API result
|
||||
for (let stat of pokemon.stats) {
|
||||
for (const stat of pokemon.stats) {
|
||||
baseStats.push(stat.base_stat);
|
||||
baseTotal += stat.base_stat;
|
||||
}
|
||||
|
@ -262,7 +262,7 @@ export async function printPokemon() {
|
|||
|
||||
speciesLevelMoves[speciesKey] = [];
|
||||
|
||||
for (let version of versions) {
|
||||
for (const version of versions) {
|
||||
if (pokemon.moves.find(m => m.version_group_details.find(v => v.version_group.name === version && v.move_learn_method.name === 'level-up'))) {
|
||||
moveVer = version;
|
||||
break;
|
||||
|
@ -298,7 +298,7 @@ export async function printPokemon() {
|
|||
});
|
||||
}
|
||||
|
||||
for (let f of pokemon.forms) {
|
||||
for (const f of pokemon.forms) {
|
||||
const form = await api.pokemon.getPokemonFormByName(f.name);
|
||||
const formIndex = pokemonSpecies.forms.length;
|
||||
|
||||
|
@ -321,7 +321,7 @@ export async function printPokemon() {
|
|||
pokemonForm.generation = pokemonSpecies.generation;
|
||||
|
||||
if (!pokemonForm.formIndex && speciesTmMoves.length) {
|
||||
for (let moveId of speciesTmMoves) {
|
||||
for (const moveId of speciesTmMoves) {
|
||||
const speciesIndex = moveTmSpecies[moveId].findIndex(s => s === speciesKey);
|
||||
moveTmSpecies[moveId][speciesIndex] = [
|
||||
speciesKey,
|
||||
|
@ -336,25 +336,25 @@ export async function printPokemon() {
|
|||
console.log(pokemonSpecies.name, pokemonSpecies);
|
||||
}
|
||||
|
||||
for (let pokemonSpecies of pokemonSpeciesList) {
|
||||
for (const pokemonSpecies of pokemonSpeciesList) {
|
||||
const speciesKey = (pokemonSpecies as any).key as string;
|
||||
|
||||
enumStr += ` ${speciesKey}${pokemonSpecies.speciesId >= 2000 ? ` = ${pokemonSpecies.speciesId}` : ''},\n`;
|
||||
pokemonSpeciesStr += ` new PokemonSpecies(Species.${speciesKey}, "${pokemonSpecies.name}", ${pokemonSpecies.generation}, ${pokemonSpecies.subLegendary}, ${pokemonSpecies.legendary}, ${pokemonSpecies.mythical}, "${pokemonSpecies.species}", Type.${Type[pokemonSpecies.type1]}, ${pokemonSpecies.type2 ? `Type.${Type[pokemonSpecies.type2]}` : 'null'}, ${pokemonSpecies.height}, ${pokemonSpecies.weight}, Abilities.${Abilities[pokemonSpecies.ability1]}, Abilities.${Abilities[pokemonSpecies.ability2]}, Abilities.${Abilities[pokemonSpecies.abilityHidden]}, ${pokemonSpecies.baseTotal}, ${pokemonSpecies.baseStats[0]}, ${pokemonSpecies.baseStats[1]}, ${pokemonSpecies.baseStats[2]}, ${pokemonSpecies.baseStats[3]}, ${pokemonSpecies.baseStats[4]}, ${pokemonSpecies.baseStats[5]}, ${pokemonSpecies.catchRate}, ${pokemonSpecies.baseFriendship}, ${pokemonSpecies.baseExp}, GrowthRate.${GrowthRate[pokemonSpecies.growthRate]}, ${pokemonSpecies.malePercent}, ${pokemonSpecies.genderDiffs}`;
|
||||
if (pokemonSpecies.forms.length > 1) {
|
||||
pokemonSpeciesStr += `, ${pokemonSpecies.canChangeForm},`;
|
||||
for (let form of pokemonSpecies.forms)
|
||||
for (const form of pokemonSpecies.forms)
|
||||
pokemonSpeciesStr += `\n new PokemonForm("${form.formName}", "${form.formName}", Type.${Type[form.type1]}, ${form.type2 ? `Type.${Type[form.type2]}` : 'null'}, ${form.height}, ${form.weight}, Abilities.${Abilities[form.ability1]}, Abilities.${Abilities[form.ability2]}, Abilities.${Abilities[form.abilityHidden]}, ${form.baseTotal}, ${form.baseStats[0]}, ${form.baseStats[1]}, ${form.baseStats[2]}, ${form.baseStats[3]}, ${form.baseStats[4]}, ${form.baseStats[5]}, ${form.catchRate}, ${form.baseFriendship}, ${form.baseExp}${form.genderDiffs ? ', true' : ''}),`;
|
||||
pokemonSpeciesStr += '\n ';
|
||||
}
|
||||
pokemonSpeciesStr += `),\n`;
|
||||
pokemonSpeciesStr += '),\n';
|
||||
}
|
||||
|
||||
let speciesLevelMovesStr = `export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {\n`;
|
||||
let speciesFormLevelMovesStr = `export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {\n`;
|
||||
let tmSpeciesStr = `export const tmSpecies: TmSpecies = {\n`;
|
||||
let speciesLevelMovesStr = 'export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {\n';
|
||||
let speciesFormLevelMovesStr = 'export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {\n';
|
||||
let tmSpeciesStr = 'export const tmSpecies: TmSpecies = {\n';
|
||||
|
||||
for (let species of Object.keys(speciesLevelMoves)) {
|
||||
for (const species of Object.keys(speciesLevelMoves)) {
|
||||
speciesLevelMovesStr += ` [Species.${species}]: [\n`;
|
||||
|
||||
const orderedLevelMoves = speciesLevelMoves[species].sort((a: LevelMove, b: LevelMove) => {
|
||||
|
@ -363,16 +363,16 @@ export async function printPokemon() {
|
|||
return a[1] < b[1] ? -1 : 1;
|
||||
});
|
||||
|
||||
for (let lm of orderedLevelMoves)
|
||||
for (const lm of orderedLevelMoves)
|
||||
speciesLevelMovesStr += ` [ ${lm[0]}, Moves.${Moves[lm[1]]} ],\n`;
|
||||
|
||||
speciesLevelMovesStr += ` ],\n`;
|
||||
speciesLevelMovesStr += ' ],\n';
|
||||
}
|
||||
|
||||
for (let species of Object.keys(speciesFormLevelMoves)) {
|
||||
for (const species of Object.keys(speciesFormLevelMoves)) {
|
||||
speciesFormLevelMovesStr += ` [Species.${species}]: {\n`;
|
||||
|
||||
for (let f of Object.keys(speciesFormLevelMoves[species])) {
|
||||
for (const f of Object.keys(speciesFormLevelMoves[species])) {
|
||||
speciesFormLevelMovesStr += ` ${f}: [\n`;
|
||||
|
||||
const orderedLevelMoves = speciesFormLevelMoves[species][f].sort((a: LevelMove, b: LevelMove) => {
|
||||
|
@ -381,18 +381,18 @@ export async function printPokemon() {
|
|||
return a[1] < b[1] ? -1 : 1;
|
||||
});
|
||||
|
||||
for (let lm of orderedLevelMoves)
|
||||
for (const lm of orderedLevelMoves)
|
||||
speciesFormLevelMovesStr += ` [ ${lm[0]}, Moves.${Moves[lm[1]]} ],\n`;
|
||||
|
||||
speciesFormLevelMovesStr += ` ],\n`;
|
||||
speciesFormLevelMovesStr += ' ],\n';
|
||||
}
|
||||
|
||||
speciesFormLevelMovesStr += ` },\n`;
|
||||
speciesFormLevelMovesStr += ' },\n';
|
||||
}
|
||||
|
||||
for (let moveId of Object.keys(moveTmSpecies)) {
|
||||
for (const moveId of Object.keys(moveTmSpecies)) {
|
||||
tmSpeciesStr += ` [Moves.${Moves[parseInt(moveId)]}]: [\n`;
|
||||
for (let species of moveTmSpecies[moveId]) {
|
||||
for (const species of moveTmSpecies[moveId]) {
|
||||
if (typeof species === 'string')
|
||||
tmSpeciesStr += ` Species.${species},\n`;
|
||||
else {
|
||||
|
@ -402,20 +402,20 @@ export async function printPokemon() {
|
|||
tmSpeciesStr += ` Species.${species[0]},\n`;
|
||||
else {
|
||||
tmSpeciesStr += ` [\n Species.${species[0]},\n`;
|
||||
for (let form of forms)
|
||||
for (const form of forms)
|
||||
tmSpeciesStr += ` '${form}',\n`;
|
||||
tmSpeciesStr += ` ],\n`;
|
||||
tmSpeciesStr += ' ],\n';
|
||||
}
|
||||
}
|
||||
}
|
||||
tmSpeciesStr += ` ],\n`;
|
||||
tmSpeciesStr += ' ],\n';
|
||||
}
|
||||
|
||||
enumStr += `\n};`;
|
||||
pokemonSpeciesStr += ` );`;
|
||||
speciesLevelMovesStr += `\n};`;
|
||||
speciesFormLevelMovesStr += `\n};`;
|
||||
tmSpeciesStr += `\n};`;
|
||||
enumStr += '\n};';
|
||||
pokemonSpeciesStr += ' );';
|
||||
speciesLevelMovesStr += '\n};';
|
||||
speciesFormLevelMovesStr += '\n};';
|
||||
tmSpeciesStr += '\n};';
|
||||
|
||||
console.log(enumStr);
|
||||
console.log(pokemonSpeciesStr);
|
||||
|
@ -423,7 +423,7 @@ export async function printPokemon() {
|
|||
console.log(speciesFormLevelMovesStr);
|
||||
console.log(tmSpeciesStr);
|
||||
|
||||
console.log(moveTmSpecies)
|
||||
console.log(moveTmSpecies);
|
||||
}
|
||||
|
||||
export async function printAbilities() {
|
||||
|
@ -433,17 +433,17 @@ export async function printAbilities() {
|
|||
|
||||
const api = new MainClient();
|
||||
|
||||
let enumStr = `export enum Abilities {\n NONE,`;
|
||||
let enumStr = 'export enum Abilities {\n NONE,';
|
||||
let abilityStr = ' allAbilities.push(';
|
||||
|
||||
abilityContent = abilityContent.slice(abilityContent.indexOf(abilityStr));
|
||||
|
||||
let abilities: NamedAPIResource[] = [];
|
||||
let offset = 0;
|
||||
let abilitiesResponse = await api.pokemon.listAbilities(offset, 2000);
|
||||
const offset = 0;
|
||||
const abilitiesResponse = await api.pokemon.listAbilities(offset, 2000);
|
||||
abilities = abilitiesResponse.results;
|
||||
|
||||
for (let a of abilities) {
|
||||
for (const a of abilities) {
|
||||
const ability = await api.pokemon.getAbilityByName(a.name);
|
||||
const abilityEnumName = ability.name.toUpperCase().replace(/\_/g, '').replace(/\-/g, '_');
|
||||
enumStr += `\n ${abilityEnumName},`;
|
||||
|
@ -465,7 +465,7 @@ export async function printAbilities() {
|
|||
|
||||
let flavorText: string;
|
||||
if (!matchingLine || replaceText) {
|
||||
for (let version of versions) {
|
||||
for (const version of versions) {
|
||||
if ((flavorText = ability.flavor_text_entries.find(fte => fte.language.name === 'en' && fte.version_group.name === version)?.flavor_text) || '') {
|
||||
if (flavorText.indexOf('forgotten') > -1)
|
||||
continue;
|
||||
|
@ -483,8 +483,8 @@ export async function printAbilities() {
|
|||
abilityStr += ',';
|
||||
}
|
||||
|
||||
enumStr += `\n};`;
|
||||
abilityStr += `\n);`;
|
||||
enumStr += '\n};';
|
||||
abilityStr += '\n);';
|
||||
|
||||
console.log(enumStr);
|
||||
console.log(abilityStr);
|
||||
|
@ -497,19 +497,19 @@ export async function printMoves() {
|
|||
|
||||
const api = new MainClient();
|
||||
|
||||
let enumStr = `export enum Moves {\n NONE,`;
|
||||
let enumStr = 'export enum Moves {\n NONE,';
|
||||
let moveStr = ' allMoves.push(';
|
||||
|
||||
moveContent = moveContent.slice(moveContent.indexOf(moveStr));
|
||||
|
||||
let moves: NamedAPIResource[] = [];
|
||||
let offset = 0;
|
||||
let movesResponse = await api.move.listMoves(offset, 2000);
|
||||
const offset = 0;
|
||||
const movesResponse = await api.move.listMoves(offset, 2000);
|
||||
moves = movesResponse.results;
|
||||
|
||||
console.log(moves);
|
||||
|
||||
for (let m of moves) {
|
||||
for (const m of moves) {
|
||||
const move = await api.move.getMoveByName(m.name);
|
||||
const moveEnumName = move.name.toUpperCase().replace(/\_/g, '').replace(/\-/g, '_');
|
||||
enumStr += `\n ${moveEnumName},`;
|
||||
|
@ -531,7 +531,7 @@ export async function printMoves() {
|
|||
|
||||
let flavorText: string;
|
||||
if (!matchingLine || replaceText) {
|
||||
for (let version of versions) {
|
||||
for (const version of versions) {
|
||||
if ((flavorText = move.flavor_text_entries.find(fte => fte.language.name === 'en' && fte.version_group.name === version)?.flavor_text) || '') {
|
||||
if (flavorText.indexOf('forgotten') > -1)
|
||||
continue;
|
||||
|
@ -546,7 +546,7 @@ export async function printMoves() {
|
|||
if (matchingLine && matchingLine.length > 1) {
|
||||
const newLineIndex = matchingLine.indexOf('\n');
|
||||
if (newLineIndex > -1) {
|
||||
console.log(matchingLine.slice(newLineIndex).replace(/(?:\r)?\n[ \t]+.target\(.*?\)/g, ''), newLineIndex)
|
||||
console.log(matchingLine.slice(newLineIndex).replace(/(?:\r)?\n[ \t]+.target\(.*?\)/g, ''), newLineIndex);
|
||||
moveStr += matchingLine.slice(newLineIndex).replace(/(?:\r)?\n[ \t]+.target\(.*?\)/g, '');
|
||||
}
|
||||
}
|
||||
|
@ -555,8 +555,8 @@ export async function printMoves() {
|
|||
moveStr += ',';
|
||||
}
|
||||
|
||||
enumStr += `\n};`;
|
||||
moveStr += `\n);`;
|
||||
enumStr += '\n};';
|
||||
moveStr += '\n);';
|
||||
|
||||
console.log(enumStr);
|
||||
console.log(moveStr);
|
||||
|
@ -569,17 +569,17 @@ export async function printTmSpecies() {
|
|||
|
||||
const moveIds = Object.keys(tmSpecies).map(k => parseInt(k) as Moves);
|
||||
|
||||
for (let moveId of moveIds) {
|
||||
for (const moveId of moveIds) {
|
||||
const move = await api.move.getMoveById(moveId);
|
||||
|
||||
moveTmSpecies[moveId] = [];
|
||||
|
||||
for (let species of move.learned_by_pokemon) {
|
||||
for (const species of move.learned_by_pokemon) {
|
||||
const dexIdMatch = /\/(\d+)\//.exec(species.url);
|
||||
if (!dexIdMatch)
|
||||
continue;
|
||||
|
||||
let dexId = parseInt(dexIdMatch[1]);
|
||||
const dexId = parseInt(dexIdMatch[1]);
|
||||
|
||||
let matchingSpecies: PokemonSpecies;
|
||||
let formKey = '';
|
||||
|
@ -629,11 +629,11 @@ export async function printTmSpecies() {
|
|||
}
|
||||
}
|
||||
|
||||
let tmSpeciesStr = `export const tmSpecies: TmSpecies = {\n`;
|
||||
let tmSpeciesStr = 'export const tmSpecies: TmSpecies = {\n';
|
||||
|
||||
for (let moveId of Object.keys(moveTmSpecies)) {
|
||||
for (const moveId of Object.keys(moveTmSpecies)) {
|
||||
tmSpeciesStr += ` [Moves.${Moves[parseInt(moveId)]}]: [\n`;
|
||||
for (let species of moveTmSpecies[moveId]) {
|
||||
for (const species of moveTmSpecies[moveId]) {
|
||||
if (typeof species === 'string')
|
||||
tmSpeciesStr += ` Species.${species},\n`;
|
||||
else {
|
||||
|
@ -643,16 +643,16 @@ export async function printTmSpecies() {
|
|||
tmSpeciesStr += ` Species.${species[0]},\n`;
|
||||
else {
|
||||
tmSpeciesStr += ` [\n Species.${species[0]},\n`;
|
||||
for (let form of forms)
|
||||
for (const form of forms)
|
||||
tmSpeciesStr += ` '${form}',\n`;
|
||||
tmSpeciesStr += ` ],\n`;
|
||||
tmSpeciesStr += ' ],\n';
|
||||
}
|
||||
}
|
||||
}
|
||||
tmSpeciesStr += ` ],\n`;
|
||||
tmSpeciesStr += ' ],\n';
|
||||
}
|
||||
|
||||
tmSpeciesStr += `\n};`;
|
||||
tmSpeciesStr += '\n};';
|
||||
|
||||
console.log(tmSpeciesStr);
|
||||
}
|
|
@ -1,16 +1,16 @@
|
|||
import { Arena } from "../field/arena";
|
||||
import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import { MoveCategory, allMoves } from "./move";
|
||||
import { getPokemonMessage } from "../messages";
|
||||
import Pokemon, { HitResult, PokemonMove } from "../field/pokemon";
|
||||
import { MoveEffectPhase, PokemonHealPhase, StatChangePhase} from "../phases";
|
||||
import { StatusEffect } from "./status-effect";
|
||||
import { BattlerIndex } from "../battle";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
||||
import { BlockNonDirectDamageAbAttr, ProtectStatAbAttr, applyAbAttrs } from "./ability";
|
||||
import { BattleStat } from "./battle-stat";
|
||||
import { Arena } from '../field/arena';
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import { MoveCategory, allMoves } from './move';
|
||||
import { getPokemonMessage } from '../messages';
|
||||
import Pokemon, { HitResult, PokemonMove } from '../field/pokemon';
|
||||
import { MoveEffectPhase, PokemonHealPhase, StatChangePhase} from '../phases';
|
||||
import { StatusEffect } from './status-effect';
|
||||
import { BattlerIndex } from '../battle';
|
||||
import { Moves } from './enums/moves';
|
||||
import { ArenaTagType } from './enums/arena-tag-type';
|
||||
import { BlockNonDirectDamageAbAttr, ProtectStatAbAttr, applyAbAttrs } from './ability';
|
||||
import { BattleStat } from './battle-stat';
|
||||
|
||||
export enum ArenaTagSide {
|
||||
BOTH,
|
||||
|
@ -65,7 +65,7 @@ export class MistTag extends ArenaTag {
|
|||
super.onAdd(arena);
|
||||
|
||||
const source = arena.scene.getPokemonById(this.sourceId);
|
||||
arena.scene.queueMessage(getPokemonMessage(source, `'s team became\nshrouded in mist!`));
|
||||
arena.scene.queueMessage(getPokemonMessage(source, '\'s team became\nshrouded in mist!'));
|
||||
}
|
||||
|
||||
apply(arena: Arena, args: any[]): boolean {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
//import { battleAnimRawData } from "./battle-anim-raw-data";
|
||||
import BattleScene from "../battle-scene";
|
||||
import { AttackMove, ChargeAttr, DelayedAttackAttr, MoveFlags, SelfStatusMove, allMoves } from "./move";
|
||||
import Pokemon from "../field/pokemon";
|
||||
import * as Utils from "../utils";
|
||||
import { BattlerIndex } from "../battle";
|
||||
import stringify, { Element } from "json-stable-stringify";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { getTypeRgb } from "./type";
|
||||
import BattleScene from '../battle-scene';
|
||||
import { AttackMove, ChargeAttr, DelayedAttackAttr, MoveFlags, SelfStatusMove, allMoves } from './move';
|
||||
import Pokemon from '../field/pokemon';
|
||||
import * as Utils from '../utils';
|
||||
import { BattlerIndex } from '../battle';
|
||||
import stringify, { Element } from 'json-stable-stringify';
|
||||
import { Moves } from './enums/moves';
|
||||
import { getTypeRgb } from './type';
|
||||
//import fs from 'vite-plugin-fs/browser';
|
||||
|
||||
export enum AnimFrameTarget {
|
||||
|
@ -125,9 +125,9 @@ export class AnimConfig {
|
|||
this.frames = frames;
|
||||
|
||||
const frameTimedEvents = source.frameTimedEvents;
|
||||
for (let fte of Object.keys(frameTimedEvents)) {
|
||||
for (const fte of Object.keys(frameTimedEvents)) {
|
||||
const timedEvents: AnimTimedEvent[] = [];
|
||||
for (let te of frameTimedEvents[fte]) {
|
||||
for (const te of frameTimedEvents[fte]) {
|
||||
let timedEvent: AnimTimedEvent;
|
||||
switch (te.eventType) {
|
||||
case 'AnimTimedSoundEvent':
|
||||
|
@ -154,8 +154,8 @@ export class AnimConfig {
|
|||
getSoundResourceNames(): string[] {
|
||||
const sounds = new Set<string>();
|
||||
|
||||
for (let ftes of this.frameTimedEvents.values()) {
|
||||
for (let fte of ftes) {
|
||||
for (const ftes of this.frameTimedEvents.values()) {
|
||||
for (const fte of ftes) {
|
||||
if (fte instanceof AnimTimedSoundEvent && fte.resourceName)
|
||||
sounds.add(fte.resourceName);
|
||||
}
|
||||
|
@ -167,8 +167,8 @@ export class AnimConfig {
|
|||
getBackgroundResourceNames(): string[] {
|
||||
const backgrounds = new Set<string>();
|
||||
|
||||
for (let ftes of this.frameTimedEvents.values()) {
|
||||
for (let fte of ftes) {
|
||||
for (const ftes of this.frameTimedEvents.values()) {
|
||||
for (const fte of ftes) {
|
||||
if (fte instanceof AnimTimedAddBgEvent && fte.resourceName)
|
||||
backgrounds.add(fte.resourceName);
|
||||
}
|
||||
|
@ -445,7 +445,7 @@ export function initMoveAnim(scene: BattleScene, move: Moves): Promise<void> {
|
|||
if (moveAnims.get(move) !== null)
|
||||
resolve();
|
||||
else {
|
||||
let loadedCheckTimer = setInterval(() => {
|
||||
const loadedCheckTimer = setInterval(() => {
|
||||
if (moveAnims.get(move) !== null) {
|
||||
const chargeAttr = allMoves[move].getAttrs(ChargeAttr).find(() => true) as ChargeAttr || allMoves[move].getAttrs(DelayedAttackAttr).find(() => true) as DelayedAttackAttr;
|
||||
if (chargeAttr && chargeAnims.get(chargeAttr.chargeAnim) === null)
|
||||
|
@ -493,7 +493,7 @@ export function initMoveChargeAnim(scene: BattleScene, chargeAnim: ChargeAnim):
|
|||
if (chargeAnims.get(chargeAnim) !== null)
|
||||
resolve();
|
||||
else {
|
||||
let loadedCheckTimer = setInterval(() => {
|
||||
const loadedCheckTimer = setInterval(() => {
|
||||
if (chargeAnims.get(chargeAnim) !== null) {
|
||||
clearInterval(loadedCheckTimer);
|
||||
resolve();
|
||||
|
@ -543,7 +543,7 @@ export function loadCommonAnimAssets(scene: BattleScene, startLoad?: boolean): P
|
|||
export function loadMoveAnimAssets(scene: BattleScene, moveIds: Moves[], startLoad?: boolean): Promise<void> {
|
||||
return new Promise(resolve => {
|
||||
const moveAnimations = moveIds.map(m => moveAnims.get(m) as AnimConfig).flat();
|
||||
for (let moveId of moveIds) {
|
||||
for (const moveId of moveIds) {
|
||||
const chargeAttr = allMoves[moveId].getAttrs(ChargeAttr).find(() => true) as ChargeAttr || allMoves[moveId].getAttrs(DelayedAttackAttr).find(() => true) as DelayedAttackAttr;
|
||||
if (chargeAttr) {
|
||||
const moveChargeAnims = chargeAnims.get(chargeAttr.chargeAnim);
|
||||
|
@ -560,21 +560,21 @@ function loadAnimAssets(scene: BattleScene, anims: AnimConfig[], startLoad?: boo
|
|||
return new Promise(resolve => {
|
||||
const backgrounds = new Set<string>();
|
||||
const sounds = new Set<string>();
|
||||
for (let a of anims) {
|
||||
for (const a of anims) {
|
||||
if (!a.frames?.length)
|
||||
continue;
|
||||
const animSounds = a.getSoundResourceNames();
|
||||
for (let ms of animSounds)
|
||||
for (const ms of animSounds)
|
||||
sounds.add(ms);
|
||||
const animBackgrounds = a.getBackgroundResourceNames();
|
||||
for (let abg of animBackgrounds)
|
||||
for (const abg of animBackgrounds)
|
||||
backgrounds.add(abg);
|
||||
if (a.graphic)
|
||||
scene.loadSpritesheet(a.graphic, 'battle_anims', 96);
|
||||
}
|
||||
for (let bg of backgrounds)
|
||||
for (const bg of backgrounds)
|
||||
scene.loadImage(bg, 'battle_anims');
|
||||
for (let s of sounds)
|
||||
for (const s of sounds)
|
||||
scene.loadSe(s, 'battle_anims', s);
|
||||
if (startLoad) {
|
||||
scene.load.once(Phaser.Loader.Events.COMPLETE, () => resolve());
|
||||
|
@ -680,11 +680,11 @@ export abstract class BattleAnim {
|
|||
let u = 0;
|
||||
let t = 0;
|
||||
|
||||
for (let frame of frames) {
|
||||
for (const frame of frames) {
|
||||
let x = frame.x + 106;
|
||||
let y = frame.y + 116;
|
||||
let scaleX = (frame.zoomX / 100) * (!frame.mirror ? 1 : -1);
|
||||
let scaleY = (frame.zoomY / 100);
|
||||
const scaleY = (frame.zoomY / 100);
|
||||
switch (frame.focus) {
|
||||
case AnimFocus.TARGET:
|
||||
x += targetInitialX - targetFocusX;
|
||||
|
@ -747,7 +747,7 @@ export abstract class BattleAnim {
|
|||
userSprite.setVisible(true);
|
||||
if (!this.isHideTarget() && (targetSprite !== userSprite || !this.isHideUser()))
|
||||
targetSprite.setVisible(true);
|
||||
for (let ms of Object.values(spriteCache).flat()) {
|
||||
for (const ms of Object.values(spriteCache).flat()) {
|
||||
if (ms)
|
||||
ms.destroy();
|
||||
}
|
||||
|
@ -787,7 +787,7 @@ export abstract class BattleAnim {
|
|||
let u = 0;
|
||||
let t = 0;
|
||||
let g = 0;
|
||||
for (let frame of spriteFrames) {
|
||||
for (const frame of spriteFrames) {
|
||||
if (frame.target !== AnimFrameTarget.GRAPHIC) {
|
||||
const isUser = frame.target === AnimFrameTarget.USER;
|
||||
if (isUser && target === user)
|
||||
|
@ -824,7 +824,7 @@ export abstract class BattleAnim {
|
|||
} else {
|
||||
const sprites = spriteCache[AnimFrameTarget.GRAPHIC];
|
||||
if (g === sprites.length) {
|
||||
let newSprite: Phaser.GameObjects.Sprite = scene.addFieldSprite(0, 0, anim.graphic, 1);
|
||||
const newSprite: Phaser.GameObjects.Sprite = scene.addFieldSprite(0, 0, anim.graphic, 1);
|
||||
sprites.push(newSprite);
|
||||
scene.field.add(newSprite);
|
||||
spritePriorities.push(1);
|
||||
|
@ -891,15 +891,15 @@ export abstract class BattleAnim {
|
|||
}
|
||||
}
|
||||
if (anim.frameTimedEvents.has(f)) {
|
||||
for (let event of anim.frameTimedEvents.get(f))
|
||||
for (const event of anim.frameTimedEvents.get(f))
|
||||
r = Math.max((anim.frames.length - f) + event.execute(scene, this), r);
|
||||
}
|
||||
const targets = Utils.getEnumValues(AnimFrameTarget);
|
||||
for (let i of targets) {
|
||||
for (const i of targets) {
|
||||
const count = i === AnimFrameTarget.GRAPHIC ? g : i === AnimFrameTarget.USER ? u : t;
|
||||
if (count < spriteCache[i].length) {
|
||||
const spritesToRemove = spriteCache[i].slice(count, spriteCache[i].length);
|
||||
for (let rs of spritesToRemove) {
|
||||
for (const rs of spritesToRemove) {
|
||||
if (!rs.getData('locked') as boolean) {
|
||||
const spriteCacheIndex = spriteCache[i].indexOf(rs);
|
||||
spriteCache[i].splice(spriteCacheIndex, 1);
|
||||
|
@ -914,7 +914,7 @@ export abstract class BattleAnim {
|
|||
r--;
|
||||
},
|
||||
onComplete: () => {
|
||||
for (let ms of Object.values(spriteCache).flat()) {
|
||||
for (const ms of Object.values(spriteCache).flat()) {
|
||||
if (ms && !ms.getData('locked'))
|
||||
ms.destroy();
|
||||
}
|
||||
|
@ -1005,7 +1005,7 @@ export async function populateAnims() {
|
|||
const chargeAnimIds = Utils.getEnumValues(ChargeAnim) as ChargeAnim[];
|
||||
const commonNamePattern = /name: (?:Common:)?(Opp )?(.*)/;
|
||||
const moveNameToId = {};
|
||||
for (let move of Utils.getEnumValues(Moves).slice(1)) {
|
||||
for (const move of Utils.getEnumValues(Moves).slice(1)) {
|
||||
const moveName = Moves[move].toUpperCase().replace(/\_/g, '');
|
||||
moveNameToId[moveName] = move;
|
||||
}
|
||||
|
@ -1035,7 +1035,7 @@ export async function populateAnims() {
|
|||
const animName = nameField.slice(nameIndex, nameField.indexOf('\n', nameIndex));
|
||||
if (!moveNameToId.hasOwnProperty(animName) && !commonAnimId && !chargeAnimId)
|
||||
continue;
|
||||
let anim = commonAnimId || chargeAnimId ? new AnimConfig() : new AnimConfig();
|
||||
const anim = commonAnimId || chargeAnimId ? new AnimConfig() : new AnimConfig();
|
||||
if (anim instanceof AnimConfig)
|
||||
(anim as AnimConfig).id = moveNameToId[animName];
|
||||
if (commonAnimId)
|
||||
|
@ -1066,7 +1066,7 @@ export async function populateAnims() {
|
|||
}
|
||||
break;
|
||||
case 'graphic':
|
||||
const graphic = fieldData !== "''" ? fieldData : '';
|
||||
const graphic = fieldData !== '\'\'' ? fieldData : '';
|
||||
anim.graphic = graphic.indexOf('.') > -1
|
||||
? graphic.slice(0, fieldData.indexOf('.'))
|
||||
: graphic;
|
||||
|
@ -1077,7 +1077,7 @@ export async function populateAnims() {
|
|||
const timingData = timingEntries[t].replace(/\n/g, ' ').replace(/[ ]{2,}/g, ' ').replace(/[a-z]+: ! '', /ig, '').replace(/name: (.*?),/, 'name: "$1",')
|
||||
.replace(/flashColor: !ruby\/object:Color { alpha: ([\d\.]+), blue: ([\d\.]+), green: ([\d\.]+), red: ([\d\.]+)}/, 'flashRed: $4, flashGreen: $3, flashBlue: $2, flashAlpha: $1');
|
||||
const frameIndex = parseInt(/frame: (\d+)/.exec(timingData)[1]);
|
||||
let resourceName = /name: "(.*?)"/.exec(timingData)[1].replace("''", '');
|
||||
let resourceName = /name: "(.*?)"/.exec(timingData)[1].replace('\'\'', '');
|
||||
const timingType = parseInt(/timingType: (\d)/.exec(timingData)[1]);
|
||||
let timedEvent: AnimTimedEvent;
|
||||
switch (timingType) {
|
||||
|
@ -1167,13 +1167,13 @@ export async function populateAnims() {
|
|||
|
||||
const animComparator = (a: Element, b: Element) => {
|
||||
let props: string[];
|
||||
let p = 0;
|
||||
const p = 0;
|
||||
for (let p = 0; p < propSets.length; p++) {
|
||||
props = propSets[p];
|
||||
let ai = props.indexOf(a.key);
|
||||
const ai = props.indexOf(a.key);
|
||||
if (ai === -1)
|
||||
continue;
|
||||
let bi = props.indexOf(b.key);
|
||||
const bi = props.indexOf(b.key);
|
||||
|
||||
return ai < bi ? -1 : ai > bi ? 1 : 0;
|
||||
}
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
import { CommonAnim, CommonBattleAnim } from "./battle-anims";
|
||||
import { CommonAnimPhase, MoveEffectPhase, MovePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases";
|
||||
import { getPokemonMessage, getPokemonPrefix } from "../messages";
|
||||
import Pokemon, { MoveResult, HitResult } from "../field/pokemon";
|
||||
import { Stat, getStatName } from "./pokemon-stat";
|
||||
import { StatusEffect } from "./status-effect";
|
||||
import * as Utils from "../utils";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { ChargeAttr, MoveFlags, allMoves } from "./move";
|
||||
import { Type } from "./type";
|
||||
import { BlockNonDirectDamageAbAttr, FlinchEffectAbAttr, ReverseDrainAbAttr, applyAbAttrs } from "./ability";
|
||||
import { Abilities } from "./enums/abilities";
|
||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||
import { TerrainType } from "./terrain";
|
||||
import { WeatherType } from "./weather";
|
||||
import { BattleStat } from "./battle-stat";
|
||||
import { allAbilities } from "./ability";
|
||||
import { CommonAnim, CommonBattleAnim } from './battle-anims';
|
||||
import { CommonAnimPhase, MoveEffectPhase, MovePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from '../phases';
|
||||
import { getPokemonMessage, getPokemonPrefix } from '../messages';
|
||||
import Pokemon, { MoveResult, HitResult } from '../field/pokemon';
|
||||
import { Stat, getStatName } from './pokemon-stat';
|
||||
import { StatusEffect } from './status-effect';
|
||||
import * as Utils from '../utils';
|
||||
import { Moves } from './enums/moves';
|
||||
import { ChargeAttr, MoveFlags, allMoves } from './move';
|
||||
import { Type } from './type';
|
||||
import { BlockNonDirectDamageAbAttr, FlinchEffectAbAttr, ReverseDrainAbAttr, applyAbAttrs } from './ability';
|
||||
import { Abilities } from './enums/abilities';
|
||||
import { BattlerTagType } from './enums/battler-tag-type';
|
||||
import { TerrainType } from './terrain';
|
||||
import { WeatherType } from './weather';
|
||||
import { BattleStat } from './battle-stat';
|
||||
import { allAbilities } from './ability';
|
||||
|
||||
export enum BattlerTagLapseType {
|
||||
FAINT,
|
||||
|
@ -97,7 +97,7 @@ export class RechargingTag extends BattlerTag {
|
|||
onAdd(pokemon: Pokemon): void {
|
||||
super.onAdd(pokemon);
|
||||
|
||||
pokemon.getMoveQueue().push({ move: Moves.NONE, targets: [] })
|
||||
pokemon.getMoveQueue().push({ move: Moves.NONE, targets: [] });
|
||||
}
|
||||
|
||||
lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean {
|
||||
|
@ -179,24 +179,24 @@ export class FlinchedTag extends BattlerTag {
|
|||
|
||||
export class InterruptedTag extends BattlerTag {
|
||||
constructor(sourceMove: Moves){
|
||||
super(BattlerTagType.INTERRUPTED, BattlerTagLapseType.PRE_MOVE, 0, sourceMove)
|
||||
super(BattlerTagType.INTERRUPTED, BattlerTagLapseType.PRE_MOVE, 0, sourceMove);
|
||||
}
|
||||
|
||||
canAdd(pokemon: Pokemon): boolean {
|
||||
return !!pokemon.getTag(BattlerTagType.FLYING)
|
||||
return !!pokemon.getTag(BattlerTagType.FLYING);
|
||||
}
|
||||
|
||||
onAdd(pokemon: Pokemon): void {
|
||||
super.onAdd(pokemon);
|
||||
|
||||
pokemon.getMoveQueue().shift()
|
||||
pokemon.pushMoveHistory({move: Moves.NONE, result: MoveResult.OTHER})
|
||||
pokemon.getMoveQueue().shift();
|
||||
pokemon.pushMoveHistory({move: Moves.NONE, result: MoveResult.OTHER});
|
||||
}
|
||||
|
||||
lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean {
|
||||
super.lapse(pokemon, lapseType);
|
||||
(pokemon.scene.getCurrentPhase() as MovePhase).cancel();
|
||||
return true
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -526,7 +526,7 @@ export class IngrainTag extends TrappedTag {
|
|||
|
||||
if (ret)
|
||||
pokemon.scene.unshiftPhase(new PokemonHealPhase(pokemon.scene, pokemon.getBattlerIndex(), Math.floor(pokemon.getMaxHp() / 16),
|
||||
getPokemonMessage(pokemon, ` absorbed\nnutrients with its roots!`), true));
|
||||
getPokemonMessage(pokemon, ' absorbed\nnutrients with its roots!'), true));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -579,7 +579,7 @@ export class MinimizeTag extends BattlerTag {
|
|||
lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean {
|
||||
//If a pokemon dynamaxes they lose minimized status
|
||||
if(pokemon.isMax()){
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
return lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType);
|
||||
}
|
||||
|
@ -651,7 +651,7 @@ export abstract class DamagingTrapTag extends TrappedTag {
|
|||
applyAbAttrs(BlockNonDirectDamageAbAttr, pokemon, cancelled);
|
||||
|
||||
if (!cancelled.value)
|
||||
pokemon.damageAndUpdate(Math.ceil(pokemon.getMaxHp() / 8))
|
||||
pokemon.damageAndUpdate(Math.ceil(pokemon.getMaxHp() / 8));
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -726,7 +726,7 @@ export class MagmaStormTag extends DamagingTrapTag {
|
|||
}
|
||||
|
||||
getTrapMessage(pokemon: Pokemon): string {
|
||||
return getPokemonMessage(pokemon, ` became trapped\nby swirling magma!`);
|
||||
return getPokemonMessage(pokemon, ' became trapped\nby swirling magma!');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -736,7 +736,7 @@ export class SnapTrapTag extends DamagingTrapTag {
|
|||
}
|
||||
|
||||
getTrapMessage(pokemon: Pokemon): string {
|
||||
return getPokemonMessage(pokemon, ` got trapped\nby a snap trap!`);
|
||||
return getPokemonMessage(pokemon, ' got trapped\nby a snap trap!');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import { PokemonHealPhase, StatChangePhase } from "../phases";
|
||||
import { getPokemonMessage } from "../messages";
|
||||
import Pokemon, { HitResult } from "../field/pokemon";
|
||||
import { getBattleStatName } from "./battle-stat";
|
||||
import { BattleStat } from "./battle-stat";
|
||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||
import { getStatusEffectHealText } from "./status-effect";
|
||||
import * as Utils from "../utils";
|
||||
import { DoubleBerryEffectAbAttr, ReduceBerryUseThresholdAbAttr, applyAbAttrs } from "./ability";
|
||||
import { PokemonHealPhase, StatChangePhase } from '../phases';
|
||||
import { getPokemonMessage } from '../messages';
|
||||
import Pokemon, { HitResult } from '../field/pokemon';
|
||||
import { getBattleStatName } from './battle-stat';
|
||||
import { BattleStat } from './battle-stat';
|
||||
import { BattlerTagType } from './enums/battler-tag-type';
|
||||
import { getStatusEffectHealText } from './status-effect';
|
||||
import * as Utils from '../utils';
|
||||
import { DoubleBerryEffectAbAttr, ReduceBerryUseThresholdAbAttr, applyAbAttrs } from './ability';
|
||||
import i18next from '../plugins/i18n';
|
||||
|
||||
export enum BerryType {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import { Species } from "./enums/species";
|
||||
import { Species } from './enums/species';
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import beautify from 'json-beautify';
|
||||
import { TrainerType } from "./enums/trainer-type";
|
||||
import { TimeOfDay } from "./enums/time-of-day";
|
||||
import { Biome } from "./enums/biome";
|
||||
import { SpeciesFormEvolution } from "./pokemon-evolutions";
|
||||
import { TrainerType } from './enums/trainer-type';
|
||||
import { TimeOfDay } from './enums/time-of-day';
|
||||
import { Biome } from './enums/biome';
|
||||
import { SpeciesFormEvolution } from './pokemon-evolutions';
|
||||
|
||||
export function getBiomeName(biome: Biome | -1) {
|
||||
if (biome === -1)
|
||||
|
@ -83,7 +83,7 @@ export enum BiomePoolTier {
|
|||
BOSS_RARE,
|
||||
BOSS_SUPER_RARE,
|
||||
BOSS_ULTRA_RARE
|
||||
};
|
||||
}
|
||||
|
||||
export const uncatchableSpecies: Species[] = [];
|
||||
|
||||
|
@ -7659,7 +7659,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
const linkedBiomes: (Biome | [ Biome, integer ])[] = Array.isArray(biomeLinks[biome])
|
||||
? biomeLinks[biome] as (Biome | [ Biome, integer ])[]
|
||||
: [ biomeLinks[biome] as Biome ];
|
||||
for (let linkedBiomeEntry of linkedBiomes) {
|
||||
for (const linkedBiomeEntry of linkedBiomes) {
|
||||
const linkedBiome = !Array.isArray(linkedBiomeEntry)
|
||||
? linkedBiomeEntry as Biome
|
||||
: linkedBiomeEntry[0];
|
||||
|
@ -7678,20 +7678,20 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
|
||||
import('./pokemon-evolutions').then(pe => {
|
||||
const pokemonEvolutions = pe.pokemonEvolutions;
|
||||
for (let biome of Utils.getEnumValues(Biome)) {
|
||||
for (const biome of Utils.getEnumValues(Biome)) {
|
||||
biomePokemonPools[biome] = {};
|
||||
biomeTrainerPools[biome] = {};
|
||||
|
||||
for (let tier of Utils.getEnumValues(BiomePoolTier)) {
|
||||
for (const tier of Utils.getEnumValues(BiomePoolTier)) {
|
||||
biomePokemonPools[biome][tier] = {};
|
||||
biomeTrainerPools[biome][tier] = [];
|
||||
|
||||
for (let tod of Utils.getEnumValues(TimeOfDay))
|
||||
for (const tod of Utils.getEnumValues(TimeOfDay))
|
||||
biomePokemonPools[biome][tier][tod] = [];
|
||||
}
|
||||
}
|
||||
|
||||
for (let pb of pokemonBiomes) {
|
||||
for (const pb of pokemonBiomes) {
|
||||
const speciesId = pb[0] as Species;
|
||||
const biomeEntries = pb[3] as (Biome | BiomePoolTier)[][];
|
||||
|
||||
|
@ -7702,7 +7702,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
if (!biomeEntries.filter(b => b[0] !== Biome.END).length && !speciesEvolutions.filter(es => !!((pokemonBiomes.find(p => p[0] === es.speciesId))[3] as any[]).filter(b => b[0] !== Biome.END).length).length)
|
||||
uncatchableSpecies.push(speciesId);
|
||||
|
||||
for (let b of biomeEntries) {
|
||||
for (const b of biomeEntries) {
|
||||
const biome = b[0];
|
||||
const tier = b[1];
|
||||
const timesOfDay = b.length > 2
|
||||
|
@ -7711,7 +7711,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
: [ b[2] ]
|
||||
: [ TimeOfDay.ALL ];
|
||||
|
||||
for (let tod of timesOfDay) {
|
||||
for (const tod of timesOfDay) {
|
||||
if (!biomePokemonPools.hasOwnProperty(biome) || !biomePokemonPools[biome].hasOwnProperty(tier) || !biomePokemonPools[biome][tier].hasOwnProperty(tod))
|
||||
continue;
|
||||
|
||||
|
@ -7746,10 +7746,10 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
}
|
||||
}
|
||||
|
||||
for (let b of Object.keys(biomePokemonPools)) {
|
||||
for (let t of Object.keys(biomePokemonPools[b])) {
|
||||
for (const b of Object.keys(biomePokemonPools)) {
|
||||
for (const t of Object.keys(biomePokemonPools[b])) {
|
||||
const tier = parseInt(t) as BiomePoolTier;
|
||||
for (let tod of Object.keys(biomePokemonPools[b][t])) {
|
||||
for (const tod of Object.keys(biomePokemonPools[b][t])) {
|
||||
const biomeTierTimePool = biomePokemonPools[b][t][tod];
|
||||
for (let e = 0; e < biomeTierTimePool.length; e++) {
|
||||
const entry = biomeTierTimePool[e];
|
||||
|
@ -7775,11 +7775,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
}
|
||||
}
|
||||
|
||||
for (let tb of trainerBiomes) {
|
||||
for (const tb of trainerBiomes) {
|
||||
const trainerType = tb[0] as TrainerType;
|
||||
const biomeEntries = tb[1] as BiomePoolTier[][];
|
||||
|
||||
for (let b of biomeEntries) {
|
||||
for (const b of biomeEntries) {
|
||||
const biome = b[0];
|
||||
const tier = b[1];
|
||||
|
||||
|
@ -7798,28 +7798,28 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
const pokemonOutput = {};
|
||||
const trainerOutput = {};
|
||||
|
||||
for (let b of Object.keys(biomePokemonPools)) {
|
||||
for (const b of Object.keys(biomePokemonPools)) {
|
||||
const biome = Biome[b];
|
||||
pokemonOutput[biome] = {};
|
||||
trainerOutput[biome] = {};
|
||||
|
||||
for (let t of Object.keys(biomePokemonPools[b])) {
|
||||
for (const t of Object.keys(biomePokemonPools[b])) {
|
||||
const tier = BiomePoolTier[t];
|
||||
|
||||
pokemonOutput[biome][tier] = {};
|
||||
|
||||
for (let tod of Object.keys(biomePokemonPools[b][t])) {
|
||||
for (const tod of Object.keys(biomePokemonPools[b][t])) {
|
||||
const timeOfDay = TimeOfDay[tod];
|
||||
|
||||
pokemonOutput[biome][tier][timeOfDay] = [];
|
||||
|
||||
for (let f of biomePokemonPools[b][t][tod]) {
|
||||
for (const f of biomePokemonPools[b][t][tod]) {
|
||||
if (typeof f === 'number')
|
||||
pokemonOutput[biome][tier][timeOfDay].push(Species[f]);
|
||||
else {
|
||||
const tree = {};
|
||||
|
||||
for (let l of Object.keys(f)) {
|
||||
for (const l of Object.keys(f)) {
|
||||
tree[l] = f[l].map(s => Species[s]);
|
||||
}
|
||||
|
||||
|
@ -7830,12 +7830,12 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
|||
}
|
||||
}
|
||||
|
||||
for (let t of Object.keys(biomeTrainerPools[b])) {
|
||||
for (const t of Object.keys(biomeTrainerPools[b])) {
|
||||
const tier = BiomePoolTier[t];
|
||||
|
||||
trainerOutput[biome][tier] = [];
|
||||
|
||||
for (let f of biomeTrainerPools[b][t])
|
||||
for (const f of biomeTrainerPools[b][t])
|
||||
trainerOutput[biome][tier].push(TrainerType[f]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import BattleScene from "../battle-scene";
|
||||
import { PlayerPokemon } from "../field/pokemon";
|
||||
import { GameModes, gameModes } from "../game-mode";
|
||||
import { Starter } from "../ui/starter-select-ui-handler";
|
||||
import * as Utils from "../utils";
|
||||
import { Species } from "./enums/species";
|
||||
import PokemonSpecies, { PokemonSpeciesForm, getPokemonSpecies, getPokemonSpeciesForm, speciesStarters } from "./pokemon-species";
|
||||
import { PartyMemberStrength } from "./enums/party-member-strength";
|
||||
import BattleScene from '../battle-scene';
|
||||
import { PlayerPokemon } from '../field/pokemon';
|
||||
import { GameModes, gameModes } from '../game-mode';
|
||||
import { Starter } from '../ui/starter-select-ui-handler';
|
||||
import * as Utils from '../utils';
|
||||
import { Species } from './enums/species';
|
||||
import PokemonSpecies, { PokemonSpeciesForm, getPokemonSpecies, getPokemonSpeciesForm, speciesStarters } from './pokemon-species';
|
||||
import { PartyMemberStrength } from './enums/party-member-strength';
|
||||
|
||||
export interface DailyRunConfig {
|
||||
seed: integer;
|
||||
|
|
1392
src/data/dialogue.ts
1392
src/data/dialogue.ts
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
|||
import { Moves } from "./enums/moves";
|
||||
import { Species } from "./enums/species";
|
||||
import { allMoves } from "./move";
|
||||
import * as Utils from "../utils";
|
||||
import { Moves } from './enums/moves';
|
||||
import { Species } from './enums/species';
|
||||
import { allMoves } from './move';
|
||||
import * as Utils from '../utils';
|
||||
|
||||
|
||||
export const speciesEggMoves = {
|
||||
|
@ -588,7 +588,7 @@ function parseEggMoves(content: string): void {
|
|||
const enumSpeciesName = cols[0].toUpperCase().replace(/[ -]/g, '_');
|
||||
const species = speciesValues[speciesNames.findIndex(s => s === enumSpeciesName)];
|
||||
|
||||
let eggMoves: Moves[] = [];
|
||||
const eggMoves: Moves[] = [];
|
||||
|
||||
for (let m = 0; m < 4; m++) {
|
||||
const moveName = cols[m + 1].trim();
|
||||
|
@ -606,7 +606,7 @@ function parseEggMoves(content: string): void {
|
|||
console.log(output);
|
||||
}
|
||||
|
||||
const eggMovesStr = ``;
|
||||
const eggMovesStr = '';
|
||||
if (eggMovesStr) {
|
||||
setTimeout(() => {
|
||||
parseEggMoves(eggMovesStr);
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import BattleScene from "../battle-scene";
|
||||
import { Species } from "./enums/species";
|
||||
import { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
||||
import { EggTier } from "./enums/egg-type";
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import BattleScene from '../battle-scene';
|
||||
import { Species } from './enums/species';
|
||||
import { getPokemonSpecies, speciesStarters } from './pokemon-species';
|
||||
import { EggTier } from './enums/egg-type';
|
||||
import i18next from '../plugins/i18n';
|
||||
|
||||
export const EGG_SEED = 1073741824;
|
||||
|
@ -101,7 +101,7 @@ export function getLegendaryGachaSpeciesForTimestamp(scene: BattleScene, timesta
|
|||
const dayDate = new Date(Date.UTC(timeDate.getUTCFullYear(), timeDate.getUTCMonth(), timeDate.getUTCDate()));
|
||||
const dayTimestamp = timeDate.getTime(); // Timestamp of current week
|
||||
const offset = Math.floor(Math.floor(dayTimestamp / 86400000) / legendarySpecies.length); // Cycle number
|
||||
const index = Math.floor(dayTimestamp / 86400000) % legendarySpecies.length // Index within cycle
|
||||
const index = Math.floor(dayTimestamp / 86400000) % legendarySpecies.length; // Index within cycle
|
||||
|
||||
scene.executeWithSeedOffset(() => {
|
||||
ret = Phaser.Math.RND.shuffle(legendarySpecies)[index];
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
|
||||
export enum ArenaTagType {
|
||||
NONE = "NONE",
|
||||
MUD_SPORT = "MUD_SPORT",
|
||||
WATER_SPORT = "WATER_SPORT",
|
||||
SPIKES = "SPIKES",
|
||||
TOXIC_SPIKES = "TOXIC_SPIKES",
|
||||
MIST = "MIST",
|
||||
FUTURE_SIGHT = "FUTURE_SIGHT",
|
||||
DOOM_DESIRE = "DOOM_DESIRE",
|
||||
WISH = "WISH",
|
||||
STEALTH_ROCK = "STEALTH_ROCK",
|
||||
STICKY_WEB = "STICKY_WEB",
|
||||
TRICK_ROOM = "TRICK_ROOM",
|
||||
GRAVITY = "GRAVITY",
|
||||
REFLECT = "REFLECT",
|
||||
LIGHT_SCREEN = "LIGHT_SCREEN",
|
||||
AURORA_VEIL = "AURORA_VEIL",
|
||||
TAILWIND = "TAILWIND"
|
||||
NONE = 'NONE',
|
||||
MUD_SPORT = 'MUD_SPORT',
|
||||
WATER_SPORT = 'WATER_SPORT',
|
||||
SPIKES = 'SPIKES',
|
||||
TOXIC_SPIKES = 'TOXIC_SPIKES',
|
||||
MIST = 'MIST',
|
||||
FUTURE_SIGHT = 'FUTURE_SIGHT',
|
||||
DOOM_DESIRE = 'DOOM_DESIRE',
|
||||
WISH = 'WISH',
|
||||
STEALTH_ROCK = 'STEALTH_ROCK',
|
||||
STICKY_WEB = 'STICKY_WEB',
|
||||
TRICK_ROOM = 'TRICK_ROOM',
|
||||
GRAVITY = 'GRAVITY',
|
||||
REFLECT = 'REFLECT',
|
||||
LIGHT_SCREEN = 'LIGHT_SCREEN',
|
||||
AURORA_VEIL = 'AURORA_VEIL',
|
||||
TAILWIND = 'TAILWIND'
|
||||
}
|
||||
|
|
|
@ -1,60 +1,60 @@
|
|||
|
||||
export enum BattlerTagType {
|
||||
NONE = "NONE",
|
||||
RECHARGING = "RECHARGING",
|
||||
FLINCHED = "FLINCHED",
|
||||
INTERRUPTED = "INTERRUPTED",
|
||||
CONFUSED = "CONFUSED",
|
||||
INFATUATED = "INFATUATED",
|
||||
SEEDED = "SEEDED",
|
||||
NIGHTMARE = "NIGHTMARE",
|
||||
FRENZY = "FRENZY",
|
||||
CHARGING = "CHARGING",
|
||||
ENCORE = "ENCORE",
|
||||
HELPING_HAND = "HELPING_HAND",
|
||||
INGRAIN = "INGRAIN",
|
||||
AQUA_RING = "AQUA_RING",
|
||||
DROWSY = "DROWSY",
|
||||
TRAPPED = "TRAPPED",
|
||||
BIND = "BIND",
|
||||
WRAP = "WRAP",
|
||||
FIRE_SPIN = "FIRE_SPIN",
|
||||
WHIRLPOOL = "WHIRLPOOL",
|
||||
CLAMP = "CLAMP",
|
||||
SAND_TOMB = "SAND_TOMB",
|
||||
MAGMA_STORM = "MAGMA_STORM",
|
||||
SNAP_TRAP = "SNAP_TRAP",
|
||||
THUNDER_CAGE = "THUNDER_CAGE",
|
||||
INFESTATION = "INFESTATION",
|
||||
PROTECTED = "PROTECTED",
|
||||
SPIKY_SHIELD = "SPIKY_SHIELD",
|
||||
KINGS_SHIELD = "KINGS_SHIELD",
|
||||
OBSTRUCT = "OBSTRUCT",
|
||||
SILK_TRAP = "SILK_TRAP",
|
||||
BANEFUL_BUNKER = "BANEFUL_BUNKER",
|
||||
BURNING_BULWARK = "BURNING_BULWARK",
|
||||
ENDURING = "ENDURING",
|
||||
STURDY = "STURDY",
|
||||
PERISH_SONG = "PERISH_SONG",
|
||||
TRUANT = "TRUANT",
|
||||
SLOW_START = "SLOW_START",
|
||||
PROTOSYNTHESIS = "PROTOSYNTHESIS",
|
||||
QUARK_DRIVE = "QUARK_DRIVE",
|
||||
FLYING = "FLYING",
|
||||
UNDERGROUND = "UNDERGROUND",
|
||||
UNDERWATER = "UNDERWATER",
|
||||
HIDDEN = "HIDDEN",
|
||||
FIRE_BOOST = "FIRE_BOOST",
|
||||
CRIT_BOOST = "CRIT_BOOST",
|
||||
ALWAYS_CRIT = "ALWAYS_CRIT",
|
||||
NO_CRIT = "NO_CRIT",
|
||||
IGNORE_ACCURACY = "IGNORE_ACCURACY",
|
||||
BYPASS_SLEEP = "BYPASS_SLEEP",
|
||||
IGNORE_FLYING = "IGNORE_FLYING",
|
||||
SALT_CURED = "SALT_CURED",
|
||||
CURSED = "CURSED",
|
||||
CHARGED = "CHARGED",
|
||||
GROUNDED = "GROUNDED",
|
||||
MAGNET_RISEN = "MAGNET_RISEN",
|
||||
MINIMIZED = "MINIMIZED"
|
||||
NONE = 'NONE',
|
||||
RECHARGING = 'RECHARGING',
|
||||
FLINCHED = 'FLINCHED',
|
||||
INTERRUPTED = 'INTERRUPTED',
|
||||
CONFUSED = 'CONFUSED',
|
||||
INFATUATED = 'INFATUATED',
|
||||
SEEDED = 'SEEDED',
|
||||
NIGHTMARE = 'NIGHTMARE',
|
||||
FRENZY = 'FRENZY',
|
||||
CHARGING = 'CHARGING',
|
||||
ENCORE = 'ENCORE',
|
||||
HELPING_HAND = 'HELPING_HAND',
|
||||
INGRAIN = 'INGRAIN',
|
||||
AQUA_RING = 'AQUA_RING',
|
||||
DROWSY = 'DROWSY',
|
||||
TRAPPED = 'TRAPPED',
|
||||
BIND = 'BIND',
|
||||
WRAP = 'WRAP',
|
||||
FIRE_SPIN = 'FIRE_SPIN',
|
||||
WHIRLPOOL = 'WHIRLPOOL',
|
||||
CLAMP = 'CLAMP',
|
||||
SAND_TOMB = 'SAND_TOMB',
|
||||
MAGMA_STORM = 'MAGMA_STORM',
|
||||
SNAP_TRAP = 'SNAP_TRAP',
|
||||
THUNDER_CAGE = 'THUNDER_CAGE',
|
||||
INFESTATION = 'INFESTATION',
|
||||
PROTECTED = 'PROTECTED',
|
||||
SPIKY_SHIELD = 'SPIKY_SHIELD',
|
||||
KINGS_SHIELD = 'KINGS_SHIELD',
|
||||
OBSTRUCT = 'OBSTRUCT',
|
||||
SILK_TRAP = 'SILK_TRAP',
|
||||
BANEFUL_BUNKER = 'BANEFUL_BUNKER',
|
||||
BURNING_BULWARK = 'BURNING_BULWARK',
|
||||
ENDURING = 'ENDURING',
|
||||
STURDY = 'STURDY',
|
||||
PERISH_SONG = 'PERISH_SONG',
|
||||
TRUANT = 'TRUANT',
|
||||
SLOW_START = 'SLOW_START',
|
||||
PROTOSYNTHESIS = 'PROTOSYNTHESIS',
|
||||
QUARK_DRIVE = 'QUARK_DRIVE',
|
||||
FLYING = 'FLYING',
|
||||
UNDERGROUND = 'UNDERGROUND',
|
||||
UNDERWATER = 'UNDERWATER',
|
||||
HIDDEN = 'HIDDEN',
|
||||
FIRE_BOOST = 'FIRE_BOOST',
|
||||
CRIT_BOOST = 'CRIT_BOOST',
|
||||
ALWAYS_CRIT = 'ALWAYS_CRIT',
|
||||
NO_CRIT = 'NO_CRIT',
|
||||
IGNORE_ACCURACY = 'IGNORE_ACCURACY',
|
||||
BYPASS_SLEEP = 'BYPASS_SLEEP',
|
||||
IGNORE_FLYING = 'IGNORE_FLYING',
|
||||
SALT_CURED = 'SALT_CURED',
|
||||
CURSED = 'CURSED',
|
||||
CHARGED = 'CHARGED',
|
||||
GROUNDED = 'GROUNDED',
|
||||
MAGNET_RISEN = 'MAGNET_RISEN',
|
||||
MINIMIZED = 'MINIMIZED'
|
||||
}
|
||||
|
|
|
@ -1872,4 +1872,4 @@ export enum Moves {
|
|||
UPPER_HAND,
|
||||
/**{@link https://bulbapedia.bulbagarden.net/wiki/Malignant_Chain_(move) | Source} */
|
||||
MALIGNANT_CHAIN,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2163,7 +2163,7 @@ export enum Species {
|
|||
PALDEA_WOOPER = 8194,
|
||||
/**{@link https://bulbapedia.bulbagarden.net/wiki/Ursaluna_(Pokémon) | Source} */
|
||||
BLOODMOON_URSALUNA = 8901,
|
||||
};
|
||||
}
|
||||
|
||||
export const defaultStarterSpecies: Species[] = [
|
||||
Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE,
|
||||
|
|
|
@ -5,7 +5,7 @@ export enum GrowthRate {
|
|||
MEDIUM_SLOW,
|
||||
SLOW,
|
||||
FLUCTUATING
|
||||
};
|
||||
}
|
||||
|
||||
const expLevels = [
|
||||
[ 0, 15, 52, 122, 237, 406, 637, 942, 1326, 1800, 2369, 3041, 3822, 4719, 5737, 6881, 8155, 9564, 11111, 12800, 14632, 16610, 18737, 21012, 23437, 26012, 28737, 31610, 34632, 37800, 41111, 44564, 48155, 51881, 55737, 59719, 63822, 68041, 72369, 76800, 81326, 85942, 90637, 95406, 100237, 105122, 110052, 115015, 120001, 125000, 131324, 137795, 144410, 151165, 158056, 165079, 172229, 179503, 186894, 194400, 202013, 209728, 217540, 225443, 233431, 241496, 249633, 257834, 267406, 276458, 286328, 296358, 305767, 316074, 326531, 336255, 346965, 357812, 367807, 378880, 390077, 400293, 411686, 423190, 433572, 445239, 457001, 467489, 479378, 491346, 501878, 513934, 526049, 536557, 548720, 560922, 571333, 583539, 591882, 600000 ],
|
||||
|
|
162
src/data/move.ts
162
src/data/move.ts
|
@ -1,29 +1,29 @@
|
|||
import { Moves } from "./enums/moves";
|
||||
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
||||
import { BattleEndPhase, MoveEffectPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase, ToggleDoublePositionPhase } from "../phases";
|
||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||
import { EncoreTag } from "./battler-tags";
|
||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||
import { getPokemonMessage } from "../messages";
|
||||
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
||||
import { StatusEffect, getStatusEffectHealText } from "./status-effect";
|
||||
import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import { WeatherType } from "./weather";
|
||||
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
||||
import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, NoTransformAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, PreventBerryUseAbAttr, BlockItemTheftAbAttr } from "./ability";
|
||||
import { Abilities } from "./enums/abilities";
|
||||
import { Moves } from './enums/moves';
|
||||
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from './battle-anims';
|
||||
import { BattleEndPhase, MoveEffectPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase, ToggleDoublePositionPhase } from '../phases';
|
||||
import { BattleStat, getBattleStatName } from './battle-stat';
|
||||
import { EncoreTag } from './battler-tags';
|
||||
import { BattlerTagType } from './enums/battler-tag-type';
|
||||
import { getPokemonMessage } from '../messages';
|
||||
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from '../field/pokemon';
|
||||
import { StatusEffect, getStatusEffectHealText } from './status-effect';
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import { WeatherType } from './weather';
|
||||
import { ArenaTagSide, ArenaTrapTag } from './arena-tag';
|
||||
import { ArenaTagType } from './enums/arena-tag-type';
|
||||
import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, NoTransformAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, PreventBerryUseAbAttr, BlockItemTheftAbAttr } from './ability';
|
||||
import { Abilities } from './enums/abilities';
|
||||
import { allAbilities } from './ability';
|
||||
import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier } from "../modifier/modifier";
|
||||
import { BattlerIndex } from "../battle";
|
||||
import { Stat } from "./pokemon-stat";
|
||||
import { TerrainType } from "./terrain";
|
||||
import { SpeciesFormChangeActiveTrigger } from "./pokemon-forms";
|
||||
import { Species } from "./enums/species";
|
||||
import { ModifierPoolType } from "#app/modifier/modifier-type";
|
||||
import { Command } from "../ui/command-ui-handler";
|
||||
import { Biome } from "./enums/biome";
|
||||
import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier } from '../modifier/modifier';
|
||||
import { BattlerIndex } from '../battle';
|
||||
import { Stat } from './pokemon-stat';
|
||||
import { TerrainType } from './terrain';
|
||||
import { SpeciesFormChangeActiveTrigger } from './pokemon-forms';
|
||||
import { Species } from './enums/species';
|
||||
import { ModifierPoolType } from '#app/modifier/modifier-type';
|
||||
import { Command } from '../ui/command-ui-handler';
|
||||
import { Biome } from './enums/biome';
|
||||
import i18next, { Localizable } from '../plugins/i18n';
|
||||
import { BerryType, BerryEffectFunc, getBerryEffectFunc } from './berry';
|
||||
|
||||
|
@ -345,7 +345,7 @@ export default class Move implements Localizable {
|
|||
}
|
||||
|
||||
applyConditions(user: Pokemon, target: Pokemon, move: Move): boolean {
|
||||
for (let condition of this.conditions) {
|
||||
for (const condition of this.conditions) {
|
||||
if (!condition.apply(user, target, move))
|
||||
return false;
|
||||
}
|
||||
|
@ -354,8 +354,8 @@ export default class Move implements Localizable {
|
|||
}
|
||||
|
||||
getFailedText(user: Pokemon, target: Pokemon, move: Move, cancelled: Utils.BooleanHolder): string | null {
|
||||
for (let attr of this.attrs) {
|
||||
let failedText = attr.getFailedText(user, target, move, cancelled);
|
||||
for (const attr of this.attrs) {
|
||||
const failedText = attr.getFailedText(user, target, move, cancelled);
|
||||
if (failedText !== null)
|
||||
return failedText;
|
||||
}
|
||||
|
@ -365,10 +365,10 @@ export default class Move implements Localizable {
|
|||
getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
let score = 0;
|
||||
|
||||
for (let attr of this.attrs)
|
||||
for (const attr of this.attrs)
|
||||
score += attr.getUserBenefitScore(user, target, move);
|
||||
|
||||
for (let condition of this.conditions)
|
||||
for (const condition of this.conditions)
|
||||
score += condition.getUserBenefitScore(user, target, move);
|
||||
|
||||
return score;
|
||||
|
@ -377,7 +377,7 @@ export default class Move implements Localizable {
|
|||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
let score = 0;
|
||||
|
||||
for (let attr of this.attrs)
|
||||
for (const attr of this.attrs)
|
||||
score += attr.getTargetBenefitScore(user, !attr.selfTarget ? target : user, move) * (target !== user && attr.selfTarget ? -1 : 1);
|
||||
|
||||
return score;
|
||||
|
@ -954,7 +954,7 @@ export class HealAttr extends MoveEffectAttr {
|
|||
}
|
||||
|
||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
let score = ((1 - (this.selfTarget ? user : target).getHpRatio()) * 20) - this.healRatio * 10;
|
||||
const score = ((1 - (this.selfTarget ? user : target).getHpRatio()) * 20) - this.healRatio * 10;
|
||||
return Math.round(score / (1 - this.healRatio / 2));
|
||||
}
|
||||
}
|
||||
|
@ -1143,7 +1143,7 @@ export class HitHealAttr extends MoveEffectAttr {
|
|||
const reverseDrain = user.hasAbilityWithAttr(ReverseDrainAbAttr);
|
||||
user.scene.unshiftPhase(new PokemonHealPhase(user.scene, user.getBattlerIndex(),
|
||||
!reverseDrain ? healAmount : healAmount * -1,
|
||||
!reverseDrain ? getPokemonMessage(target, ` had its\nenergy drained!`) : undefined,
|
||||
!reverseDrain ? getPokemonMessage(target, ' had its\nenergy drained!') : undefined,
|
||||
false, true));
|
||||
if (reverseDrain) user.turnData.damageTaken += healAmount;
|
||||
return true;
|
||||
|
@ -1164,7 +1164,7 @@ export class StrengthSapHealAttr extends MoveEffectAttr {
|
|||
const reverseDrain = user.hasAbilityWithAttr(ReverseDrainAbAttr);
|
||||
user.scene.unshiftPhase(new PokemonHealPhase(user.scene, user.getBattlerIndex(),
|
||||
!reverseDrain ? healAmount : healAmount * -1,
|
||||
!reverseDrain ? getPokemonMessage(user, ` regained\nhealth!`) : undefined,
|
||||
!reverseDrain ? getPokemonMessage(user, ' regained\nhealth!') : undefined,
|
||||
false, true));
|
||||
return true;
|
||||
}
|
||||
|
@ -1217,8 +1217,8 @@ export class MultiHitAttr extends MoveAttr {
|
|||
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
let hitTimes: integer;
|
||||
const hitType = new Utils.IntegerHolder(this.multiHitType)
|
||||
applyMoveAttrs(ChangeMultiHitTypeAttr, user, target, move, hitType)
|
||||
const hitType = new Utils.IntegerHolder(this.multiHitType);
|
||||
applyMoveAttrs(ChangeMultiHitTypeAttr, user, target, move, hitType);
|
||||
switch (hitType.value) {
|
||||
case MultiHitType._2_TO_5:
|
||||
{
|
||||
|
@ -1275,7 +1275,7 @@ export class MultiHitAttr extends MoveAttr {
|
|||
case MultiHitType.BEAT_UP:
|
||||
// No status means the ally pokemon can contribute to Beat Up
|
||||
hitTimes = user.scene.getParty().reduce((total, pokemon) => {
|
||||
return total + (pokemon.id === user.id ? 1 : pokemon?.status && pokemon.status.effect !== StatusEffect.NONE ? 0 : 1)
|
||||
return total + (pokemon.id === user.id ? 1 : pokemon?.status && pokemon.status.effect !== StatusEffect.NONE ? 0 : 1);
|
||||
}, 0);
|
||||
}
|
||||
(args[0] as Utils.IntegerHolder).value = hitTimes;
|
||||
|
@ -1297,7 +1297,7 @@ export class ChangeMultiHitTypeAttr extends MoveAttr {
|
|||
export class WaterShurikenMultiHitTypeAttr extends ChangeMultiHitTypeAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (user.species.speciesId == Species.GRENINJA && user.hasAbility(Abilities.BATTLE_BOND) && user.formIndex == 2) {
|
||||
(args[0] as Utils.IntegerHolder).value = MultiHitType._3
|
||||
(args[0] as Utils.IntegerHolder).value = MultiHitType._3;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -1369,7 +1369,7 @@ export class PsychoShiftEffectAttr extends MoveEffectAttr {
|
|||
return false;
|
||||
}
|
||||
if (!target.status || (target.status.effect === statusToApply && move.chance < 0)) {
|
||||
var statusAfflictResult = target.trySetStatus(statusToApply, true, user);
|
||||
const statusAfflictResult = target.trySetStatus(statusToApply, true, user);
|
||||
if (statusAfflictResult) {
|
||||
user.scene.queueMessage(getPokemonMessage(user, getStatusEffectHealText(user.status.effect)));
|
||||
user.resetStatus();
|
||||
|
@ -1489,7 +1489,7 @@ export class EatBerryAttr extends MoveEffectAttr {
|
|||
super(true, MoveEffectTrigger.HIT);
|
||||
this.chosenBerry = undefined;
|
||||
}
|
||||
/**
|
||||
/**
|
||||
* Causes the target to eat a berry.
|
||||
* @param user {@linkcode Pokemon} Pokemon that used the move
|
||||
* @param target {@linkcode Pokemon} Pokemon that will eat a berry
|
||||
|
@ -1517,7 +1517,7 @@ export class EatBerryAttr extends MoveEffectAttr {
|
|||
if (!--this.chosenBerry.stackCount)
|
||||
target.scene.removeModifier(this.chosenBerry, !target.isPlayer());
|
||||
target.scene.updateModifiers(target.isPlayer());
|
||||
}
|
||||
}
|
||||
this.chosenBerry = undefined;
|
||||
|
||||
return true;
|
||||
|
@ -1537,7 +1537,7 @@ export class StealEatBerryAttr extends EatBerryAttr {
|
|||
constructor() {
|
||||
super();
|
||||
}
|
||||
/**
|
||||
/**
|
||||
* User steals a random berry from the target and then eats it.
|
||||
* @param {Pokemon} user Pokemon that used the move and will eat the stolen berry
|
||||
* @param {Pokemon} target Pokemon that will have its berry stolen
|
||||
|
@ -1718,7 +1718,7 @@ export class OneHitKOAttr extends MoveAttr {
|
|||
const cancelled = new Utils.BooleanHolder(false);
|
||||
applyAbAttrs(BlockOneHitKOAbAttr, target, cancelled);
|
||||
return !cancelled.value && user.level >= target.level;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1901,8 +1901,8 @@ export class StatChangeAttr extends MoveEffectAttr {
|
|||
|
||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
let ret = 0;
|
||||
let moveLevels = this.getLevels(user);
|
||||
for (let stat of this.stats) {
|
||||
const moveLevels = this.getLevels(user);
|
||||
for (const stat of this.stats) {
|
||||
let levels = moveLevels;
|
||||
if (levels > 0)
|
||||
levels = Math.min(target.summonData.battleStats[stat] + levels, 6) - target.summonData.battleStats[stat];
|
||||
|
@ -1967,7 +1967,7 @@ export class AcupressureStatChangeAttr extends MoveEffectAttr {
|
|||
let randStats = [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD, BattleStat.ACC, BattleStat.EVA ];
|
||||
randStats = randStats.filter(s => target.summonData.battleStats[s] < 6);
|
||||
if (randStats.length > 0) {
|
||||
let boostStat = [randStats[Utils.randInt(randStats.length)]];
|
||||
const boostStat = [randStats[Utils.randInt(randStats.length)]];
|
||||
user.scene.unshiftPhase(new StatChangePhase(user.scene, target.getBattlerIndex(), this.selfTarget, boostStat, 2));
|
||||
return true;
|
||||
}
|
||||
|
@ -2055,7 +2055,7 @@ export class CopyStatsAttr extends MoveEffectAttr {
|
|||
target.updateInfo();
|
||||
user.updateInfo();
|
||||
|
||||
target.scene.queueMessage(getPokemonMessage(user, ' copied\n') + getPokemonMessage(target, `'s stat changes!`));
|
||||
target.scene.queueMessage(getPokemonMessage(user, ' copied\n') + getPokemonMessage(target, '\'s stat changes!'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -2071,7 +2071,7 @@ export class InvertStatsAttr extends MoveEffectAttr {
|
|||
target.updateInfo();
|
||||
user.updateInfo();
|
||||
|
||||
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere all reversed!`));
|
||||
target.scene.queueMessage(getPokemonMessage(target, '\'s stat changes\nwere all reversed!'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -2087,7 +2087,7 @@ export class ResetStatsAttr extends MoveEffectAttr {
|
|||
target.updateInfo();
|
||||
user.updateInfo();
|
||||
|
||||
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere eliminated!`));
|
||||
target.scene.queueMessage(getPokemonMessage(target, '\'s stat changes\nwere eliminated!'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -2178,7 +2178,7 @@ export class LessPPMorePowerAttr extends VariablePowerAttr {
|
|||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
const ppMax = move.pp;
|
||||
let ppUsed = user.moveset.find((m) => m.moveId === move.id).ppUsed;
|
||||
const ppUsed = user.moveset.find((m) => m.moveId === move.id).ppUsed;
|
||||
|
||||
let ppRemains = ppMax - ppUsed;
|
||||
/** Reduce to 0 to avoid negative numbers if user has 1PP before attack and target has Ability.PRESSURE */
|
||||
|
@ -2243,7 +2243,7 @@ const beatUpFunc = (user: Pokemon, allyIndex: number): number => {
|
|||
}
|
||||
return (pokemon.species.getBaseStat(Stat.ATK) / 10) + 5;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export class BeatUpAttr extends VariablePowerAttr {
|
||||
|
||||
|
@ -2266,7 +2266,7 @@ export class BeatUpAttr extends VariablePowerAttr {
|
|||
const doublePowerChanceMessageFunc = (user: Pokemon, target: Pokemon, move: Move) => {
|
||||
let message: string = null;
|
||||
user.scene.executeWithSeedOffset(() => {
|
||||
let rand = Utils.randSeedInt(100);
|
||||
const rand = Utils.randSeedInt(100);
|
||||
if (rand < move.chance)
|
||||
message = getPokemonMessage(user, ' is going all out for this attack!');
|
||||
}, user.scene.currentBattle.turn << 6, user.scene.waveSeed);
|
||||
|
@ -2644,7 +2644,7 @@ export class KnockOffPowerAttr extends VariablePowerAttr {
|
|||
export class WaterShurikenPowerAttr extends VariablePowerAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (user.species.speciesId == Species.GRENINJA && user.hasAbility(Abilities.BATTLE_BOND) && user.formIndex == 2) {
|
||||
(args[0] as Utils.IntegerHolder).value = 20
|
||||
(args[0] as Utils.IntegerHolder).value = 20;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -2751,7 +2751,7 @@ export class MinimizeAccuracyAttr extends VariableAccuracyAttr {
|
|||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (target.getTag(BattlerTagType.MINIMIZED)){
|
||||
const accuracy = args[0] as Utils.NumberHolder
|
||||
const accuracy = args[0] as Utils.NumberHolder;
|
||||
accuracy.value = -1;
|
||||
|
||||
return true;
|
||||
|
@ -3405,7 +3405,7 @@ export class CurseAttr extends MoveEffectAttr {
|
|||
user.scene.queueMessage('But it failed!');
|
||||
return false;
|
||||
}
|
||||
let curseRecoilDamage = Math.max(1, Math.floor(user.getMaxHp() / 2));
|
||||
const curseRecoilDamage = Math.max(1, Math.floor(user.getMaxHp() / 2));
|
||||
user.damageAndUpdate(curseRecoilDamage, HitResult.OTHER, false, true, true);
|
||||
user.scene.queueMessage(getPokemonMessage(user, ` cut its own HP\nand laid a curse on the ${target.name}!`));
|
||||
target.addTag(BattlerTagType.CURSED, 0, move.id, user.id);
|
||||
|
@ -3431,7 +3431,7 @@ export class LapseBattlerTagAttr extends MoveEffectAttr {
|
|||
if (!super.apply(user, target, move, args))
|
||||
return false;
|
||||
|
||||
for (let tagType of this.tagTypes)
|
||||
for (const tagType of this.tagTypes)
|
||||
(this.selfTarget ? user : target).lapseTag(tagType);
|
||||
|
||||
return true;
|
||||
|
@ -3451,7 +3451,7 @@ export class RemoveBattlerTagAttr extends MoveEffectAttr {
|
|||
if (!super.apply(user, target, move, args))
|
||||
return false;
|
||||
|
||||
for (let tagType of this.tagTypes)
|
||||
for (const tagType of this.tagTypes)
|
||||
(this.selfTarget ? user : target).removeTag(tagType);
|
||||
|
||||
return true;
|
||||
|
@ -3718,7 +3718,7 @@ export class RevivalBlessingAttr extends MoveEffectAttr {
|
|||
if(user instanceof PlayerPokemon
|
||||
&& user.scene.getParty().findIndex(p => p.isFainted())>-1) {
|
||||
(user as PlayerPokemon).revivalBlessing().then(() => {
|
||||
resolve(true)
|
||||
resolve(true);
|
||||
});
|
||||
// If user is enemy, checks that it is a trainer, and it has fainted non-boss pokemon in party
|
||||
} else if(user instanceof EnemyPokemon
|
||||
|
@ -3742,10 +3742,10 @@ export class RevivalBlessingAttr extends MoveEffectAttr {
|
|||
}
|
||||
resolve(true);
|
||||
} else {
|
||||
user.scene.queueMessage(`But it failed!`);
|
||||
user.scene.queueMessage('But it failed!');
|
||||
resolve(false);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
|
@ -3830,7 +3830,7 @@ export class ForceSwitchOutAttr extends MoveEffectAttr {
|
|||
getFailedText(user: Pokemon, target: Pokemon, move: Move, cancelled: Utils.BooleanHolder): string | null {
|
||||
const blockedByAbility = new Utils.BooleanHolder(false);
|
||||
applyAbAttrs(ForceSwitchOutImmunityAbAttr, target, blockedByAbility);
|
||||
return blockedByAbility.value ? getPokemonMessage(target, ` can't be switched out!`) : null;
|
||||
return blockedByAbility.value ? getPokemonMessage(target, ' can\'t be switched out!') : null;
|
||||
}
|
||||
|
||||
getSwitchOutCondition(): MoveConditionFunc {
|
||||
|
@ -3885,7 +3885,7 @@ export class RemoveTypeAttr extends MoveEffectAttr {
|
|||
if(user.isTerastallized && user.getTeraType() == this.removedType) // active tera types cannot be removed
|
||||
return false;
|
||||
|
||||
const userTypes = user.getTypes(true)
|
||||
const userTypes = user.getTypes(true);
|
||||
const modifiedTypes = userTypes.filter(type => type !== this.removedType);
|
||||
user.summonData.types = modifiedTypes;
|
||||
user.updateInfo();
|
||||
|
@ -3998,7 +3998,7 @@ export class FirstMoveTypeAttr extends MoveEffectAttr {
|
|||
if (!super.apply(user, target, move, args))
|
||||
return false;
|
||||
|
||||
const firstMoveType = target.getMoveset()[0].getMove().type
|
||||
const firstMoveType = target.getMoveset()[0].getMove().type;
|
||||
|
||||
user.summonData.types = [ firstMoveType ];
|
||||
|
||||
|
@ -4081,7 +4081,7 @@ export class RandomMoveAttr extends OverrideMoveEffectAttr {
|
|||
export class NaturePowerAttr extends OverrideMoveEffectAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<boolean> {
|
||||
return new Promise(resolve => {
|
||||
var moveId;
|
||||
let moveId;
|
||||
switch (user.scene.arena.getTerrainType()) {
|
||||
// this allows terrains to 'override' the biome move
|
||||
case TerrainType.NONE:
|
||||
|
@ -4432,11 +4432,11 @@ export class AbilityCopyAttr extends MoveEffectAttr {
|
|||
|
||||
user.summonData.ability = target.getAbility().id;
|
||||
|
||||
user.scene.queueMessage(getPokemonMessage(user, ` copied the `) + getPokemonMessage(target, `'s\n${allAbilities[target.getAbility().id].name}!`));
|
||||
user.scene.queueMessage(getPokemonMessage(user, ' copied the ') + getPokemonMessage(target, `'s\n${allAbilities[target.getAbility().id].name}!`));
|
||||
|
||||
if (this.copyToPartner && user.scene.currentBattle?.double && user.getAlly().hp) {
|
||||
user.getAlly().summonData.ability = target.getAbility().id;
|
||||
user.getAlly().scene.queueMessage(getPokemonMessage(user.getAlly(), ` copied the `) + getPokemonMessage(target, `'s\n${allAbilities[target.getAbility().id].name}!`));
|
||||
user.getAlly().scene.queueMessage(getPokemonMessage(user.getAlly(), ' copied the ') + getPokemonMessage(target, `'s\n${allAbilities[target.getAbility().id].name}!`));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -4486,7 +4486,7 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr {
|
|||
user.summonData.ability = target.getAbility().id;
|
||||
target.summonData.ability = tempAbilityId;
|
||||
|
||||
user.scene.queueMessage(getPokemonMessage(user, ` swapped\nabilities with its target!`));
|
||||
user.scene.queueMessage(getPokemonMessage(user, ' swapped\nabilities with its target!'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -4503,7 +4503,7 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr {
|
|||
|
||||
target.summonData.abilitySuppressed = true;
|
||||
|
||||
target.scene.queueMessage(getPokemonMessage(target, ` ability\nwas suppressed!`));
|
||||
target.scene.queueMessage(getPokemonMessage(target, ' ability\nwas suppressed!'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -4559,7 +4559,7 @@ export class MoneyAttr extends MoveEffectAttr {
|
|||
|
||||
apply(user: Pokemon, target: Pokemon, move: Move): boolean {
|
||||
user.scene.currentBattle.moneyScattered += user.scene.getWaveMoneyAmount(0.2);
|
||||
user.scene.queueMessage("Coins were scattered everywhere!")
|
||||
user.scene.queueMessage('Coins were scattered everywhere!');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -4607,7 +4607,7 @@ const failIfDampCondition: MoveConditionFunc = (user, target, move) => {
|
|||
if (cancelled.value)
|
||||
user.scene.queueMessage(getPokemonMessage(user, ` cannot use ${move.name}!`));
|
||||
return !cancelled.value;
|
||||
}
|
||||
};
|
||||
|
||||
export type MoveAttrFilter = (attr: MoveAttr) => boolean;
|
||||
|
||||
|
@ -4615,7 +4615,7 @@ function applyMoveAttrsInternal(attrFilter: MoveAttrFilter, user: Pokemon, targe
|
|||
return new Promise(resolve => {
|
||||
const attrPromises: Promise<boolean>[] = [];
|
||||
const moveAttrs = move.attrs.filter(a => attrFilter(a));
|
||||
for (let attr of moveAttrs) {
|
||||
for (const attr of moveAttrs) {
|
||||
const result = attr.apply(user, target, move, args);
|
||||
if (result instanceof Promise)
|
||||
attrPromises.push(result);
|
||||
|
@ -4674,7 +4674,7 @@ const unknownTypeCondition: MoveConditionFunc = (user, target, move) => !user.ge
|
|||
export type MoveTargetSet = {
|
||||
targets: BattlerIndex[];
|
||||
multiple: boolean;
|
||||
}
|
||||
};
|
||||
|
||||
export function getMoveTargets(user: Pokemon, move: Moves): MoveTargetSet {
|
||||
const variableTarget = new Utils.NumberHolder(0);
|
||||
|
@ -4696,7 +4696,7 @@ export function getMoveTargets(user: Pokemon, move: Moves): MoveTargetSet {
|
|||
case MoveTarget.ALL_NEAR_OTHERS:
|
||||
case MoveTarget.ALL_OTHERS:
|
||||
set = (opponents.concat([ user.getAlly() ]));
|
||||
multiple = moveTarget === MoveTarget.ALL_NEAR_OTHERS || moveTarget === MoveTarget.ALL_OTHERS
|
||||
multiple = moveTarget === MoveTarget.ALL_NEAR_OTHERS || moveTarget === MoveTarget.ALL_OTHERS;
|
||||
break;
|
||||
case MoveTarget.NEAR_ENEMY:
|
||||
case MoveTarget.ALL_NEAR_ENEMIES:
|
||||
|
@ -5323,7 +5323,7 @@ export function initMoves() {
|
|||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP)
|
||||
.ignoresVirtual(),
|
||||
new StatusMove(Moves.HEAL_BELL, Type.NORMAL, -1, 5, -1, 0, 2)
|
||||
.attr(PartyStatusCureAttr, "A bell chimed!", Abilities.SOUNDPROOF)
|
||||
.attr(PartyStatusCureAttr, 'A bell chimed!', Abilities.SOUNDPROOF)
|
||||
.soundBased()
|
||||
.target(MoveTarget.PARTY),
|
||||
new AttackMove(Moves.RETURN, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 20, -1, 0, 2)
|
||||
|
@ -5598,7 +5598,7 @@ export function initMoves() {
|
|||
.attr(MovePowerMultiplierAttr, (user, target, move) => [WeatherType.SUNNY, WeatherType.RAIN, WeatherType.SANDSTORM, WeatherType.HAIL, WeatherType.SNOW, WeatherType.FOG, WeatherType.HEAVY_RAIN, WeatherType.HARSH_SUN].includes(user.scene.arena.weather?.weatherType) && !user.scene.arena.weather?.isEffectSuppressed(user.scene) ? 2 : 1)
|
||||
.ballBombMove(),
|
||||
new StatusMove(Moves.AROMATHERAPY, Type.GRASS, -1, 5, -1, 0, 3)
|
||||
.attr(PartyStatusCureAttr, "A soothing aroma wafted through the area!", Abilities.SAP_SIPPER)
|
||||
.attr(PartyStatusCureAttr, 'A soothing aroma wafted through the area!', Abilities.SAP_SIPPER)
|
||||
.target(MoveTarget.PARTY),
|
||||
new StatusMove(Moves.FAKE_TEARS, Type.DARK, 100, 20, -1, 0, 3)
|
||||
.attr(StatChangeAttr, BattleStat.SPDEF, -2),
|
||||
|
@ -6396,7 +6396,7 @@ export function initMoves() {
|
|||
.powderMove()
|
||||
.unimplemented(),
|
||||
new SelfStatusMove(Moves.GEOMANCY, Type.FAIRY, -1, 10, -1, 0, 6)
|
||||
.attr(ChargeAttr, ChargeAnim.GEOMANCY_CHARGING, "is charging its power!")
|
||||
.attr(ChargeAttr, ChargeAnim.GEOMANCY_CHARGING, 'is charging its power!')
|
||||
.attr(StatChangeAttr, [ BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 2, true)
|
||||
.ignoresVirtual(),
|
||||
new StatusMove(Moves.MAGNETIC_FLUX, Type.ELECTRIC, -1, 20, -1, 0, 6)
|
||||
|
@ -6599,7 +6599,7 @@ export function initMoves() {
|
|||
.condition((user, target, move) => target.summonData.battleStats[BattleStat.ATK] > -6)
|
||||
.triageMove(),
|
||||
new AttackMove(Moves.SOLAR_BLADE, Type.GRASS, MoveCategory.PHYSICAL, 125, 100, 10, -1, 0, 7)
|
||||
.attr(SunlightChargeAttr, ChargeAnim.SOLAR_BLADE_CHARGING, "is glowing!")
|
||||
.attr(SunlightChargeAttr, ChargeAnim.SOLAR_BLADE_CHARGING, 'is glowing!')
|
||||
.attr(AntiSunlightPowerDecreaseAttr)
|
||||
.slicingMove(),
|
||||
new AttackMove(Moves.LEAFAGE, Type.GRASS, MoveCategory.PHYSICAL, 40, 100, 40, -1, 0, 7)
|
||||
|
@ -6638,7 +6638,7 @@ export function initMoves() {
|
|||
})
|
||||
.attr(HealStatusEffectAttr, true, StatusEffect.FREEZE)
|
||||
.attr(RemoveTypeAttr, Type.FIRE, (user) => {
|
||||
user.scene.queueMessage(getPokemonMessage(user, ` burned itself out!`));
|
||||
user.scene.queueMessage(getPokemonMessage(user, ' burned itself out!'));
|
||||
}),
|
||||
new StatusMove(Moves.SPEED_SWAP, Type.PSYCHIC, -1, 10, -1, 0, 7)
|
||||
.unimplemented(),
|
||||
|
@ -6657,7 +6657,7 @@ export function initMoves() {
|
|||
new StatusMove(Moves.INSTRUCT, Type.PSYCHIC, -1, 15, -1, 0, 7)
|
||||
.unimplemented(),
|
||||
new AttackMove(Moves.BEAK_BLAST, Type.FLYING, MoveCategory.PHYSICAL, 100, 100, 15, -1, 5, 7)
|
||||
.attr(ChargeAttr, ChargeAnim.BEAK_BLAST_CHARGING, "started\nheating up its beak!", undefined, false, true, -3)
|
||||
.attr(ChargeAttr, ChargeAnim.BEAK_BLAST_CHARGING, 'started\nheating up its beak!', undefined, false, true, -3)
|
||||
.ballBombMove()
|
||||
.makesContact(false)
|
||||
.partial(),
|
||||
|
@ -7271,7 +7271,7 @@ export function initMoves() {
|
|||
new AttackMove(Moves.LAST_RESPECTS, Type.GHOST, MoveCategory.PHYSICAL, 50, 100, 10, -1, 0, 9)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => {
|
||||
return user.scene.getParty().reduce((acc, pokemonInParty) => acc + (pokemonInParty.status?.effect == StatusEffect.FAINT ? 1 : 0),
|
||||
1,)
|
||||
1,);
|
||||
})
|
||||
.makesContact(false),
|
||||
new AttackMove(Moves.LUMINA_CRASH, Type.PSYCHIC, MoveCategory.SPECIAL, 80, 100, 10, 100, 0, 9)
|
||||
|
@ -7393,7 +7393,7 @@ export function initMoves() {
|
|||
return userTypes.includes(Type.ELECTRIC);
|
||||
})
|
||||
.attr(RemoveTypeAttr, Type.ELECTRIC, (user) => {
|
||||
user.scene.queueMessage(getPokemonMessage(user, ` used up all its electricity!`));
|
||||
user.scene.queueMessage(getPokemonMessage(user, ' used up all its electricity!'));
|
||||
}),
|
||||
new AttackMove(Moves.GIGATON_HAMMER, Type.STEEL, MoveCategory.PHYSICAL, 160, 100, 5, -1, 0, 9)
|
||||
.makesContact(false)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Stat, getStatName } from "./pokemon-stat";
|
||||
import * as Utils from "../utils";
|
||||
import { TextStyle, getBBCodeFrag } from "../ui/text";
|
||||
import { UiTheme } from "#app/enums/ui-theme";
|
||||
import { Stat, getStatName } from './pokemon-stat';
|
||||
import * as Utils from '../utils';
|
||||
import { TextStyle, getBBCodeFrag } from '../ui/text';
|
||||
import { UiTheme } from '#app/enums/ui-theme';
|
||||
import i18next from 'i18next';
|
||||
|
||||
export enum Nature {
|
||||
|
@ -36,13 +36,13 @@ export function getNatureName(nature: Nature, includeStatEffects: boolean = fals
|
|||
let ret = Utils.toReadableString(Nature[nature]);
|
||||
//Translating nature
|
||||
if(i18next.exists('nature:' + ret)){
|
||||
ret = i18next.t('nature:' + ret as any)
|
||||
ret = i18next.t('nature:' + ret as any);
|
||||
}
|
||||
if (includeStatEffects) {
|
||||
const stats = Utils.getEnumValues(Stat).slice(1);
|
||||
let increasedStat: Stat = null;
|
||||
let decreasedStat: Stat = null;
|
||||
for (let stat of stats) {
|
||||
for (const stat of stats) {
|
||||
const multiplier = getNatureStatMultiplier(nature, stat);
|
||||
if (multiplier > 1)
|
||||
increasedStat = stat;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import BattleScene from "../battle-scene";
|
||||
import BattleScene from '../battle-scene';
|
||||
import i18next from '../plugins/i18n';
|
||||
|
||||
export enum PokeballType {
|
||||
|
@ -8,7 +8,7 @@ export enum PokeballType {
|
|||
ROGUE_BALL,
|
||||
MASTER_BALL,
|
||||
LUXURY_BALL
|
||||
};
|
||||
}
|
||||
|
||||
export function getPokeballAtlasKey(type: PokeballType): string {
|
||||
switch (type) {
|
||||
|
@ -90,7 +90,7 @@ export function doPokeballBounceAnim(scene: BattleScene, pokeball: Phaser.GameOb
|
|||
let bouncePower = 1;
|
||||
let bounceYOffset = y1;
|
||||
let bounceY = y2;
|
||||
let yd = y2 - y1;
|
||||
const yd = y2 - y1;
|
||||
|
||||
const doBounce = () => {
|
||||
scene.tweens.add({
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import { Gender } from "./gender";
|
||||
import { AttackTypeBoosterModifier, FlinchChanceModifier } from "../modifier/modifier";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { PokeballType } from "./pokeball";
|
||||
import Pokemon from "../field/pokemon";
|
||||
import { Stat } from "./pokemon-stat";
|
||||
import { Species } from "./enums/species";
|
||||
import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import { SpeciesFormKey } from "./pokemon-species";
|
||||
import { WeatherType } from "./weather";
|
||||
import { Biome } from "./enums/biome";
|
||||
import { TimeOfDay } from "./enums/time-of-day";
|
||||
import { Nature } from "./nature";
|
||||
import { Gender } from './gender';
|
||||
import { AttackTypeBoosterModifier, FlinchChanceModifier } from '../modifier/modifier';
|
||||
import { Moves } from './enums/moves';
|
||||
import { PokeballType } from './pokeball';
|
||||
import Pokemon from '../field/pokemon';
|
||||
import { Stat } from './pokemon-stat';
|
||||
import { Species } from './enums/species';
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import { SpeciesFormKey } from './pokemon-species';
|
||||
import { WeatherType } from './weather';
|
||||
import { Biome } from './enums/biome';
|
||||
import { TimeOfDay } from './enums/time-of-day';
|
||||
import { Nature } from './nature';
|
||||
|
||||
export enum SpeciesWildEvolutionDelay {
|
||||
NONE,
|
||||
|
@ -1623,7 +1623,7 @@ export const pokemonPrevolutions: PokemonPrevolutions = {};
|
|||
const prevolutionKeys = Object.keys(pokemonEvolutions);
|
||||
prevolutionKeys.forEach(pk => {
|
||||
const evolutions = pokemonEvolutions[pk];
|
||||
for (let ev of evolutions) {
|
||||
for (const ev of evolutions) {
|
||||
if (ev.evoFormKey && megaFormKeys.indexOf(ev.evoFormKey) > -1)
|
||||
continue;
|
||||
pokemonPrevolutions[ev.speciesId] = parseInt(pk) as Species;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import { TimeOfDay } from "./enums/time-of-day";
|
||||
import { PokemonFormChangeItemModifier } from "../modifier/modifier";
|
||||
import Pokemon from "../field/pokemon";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { SpeciesFormKey } from "./pokemon-species";
|
||||
import { Species } from "./enums/species";
|
||||
import { StatusEffect } from "./status-effect";
|
||||
import { MoveCategory, allMoves } from "./move";
|
||||
import { Abilities } from "./enums/abilities";
|
||||
import { TimeOfDay } from './enums/time-of-day';
|
||||
import { PokemonFormChangeItemModifier } from '../modifier/modifier';
|
||||
import Pokemon from '../field/pokemon';
|
||||
import { Moves } from './enums/moves';
|
||||
import { SpeciesFormKey } from './pokemon-species';
|
||||
import { Species } from './enums/species';
|
||||
import { StatusEffect } from './status-effect';
|
||||
import { MoveCategory, allMoves } from './move';
|
||||
import { Abilities } from './enums/abilities';
|
||||
|
||||
export enum FormChangeItem {
|
||||
NONE,
|
||||
|
@ -123,7 +123,7 @@ export class SpeciesFormChange {
|
|||
if (formKeys[pokemon.formIndex] === this.formKey)
|
||||
return false;
|
||||
|
||||
for (let condition of this.conditions) {
|
||||
for (const condition of this.conditions) {
|
||||
if (!condition.predicate(pokemon))
|
||||
return false;
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ export class SpeciesFormChange {
|
|||
if (!this.trigger.hasTriggerType(triggerType))
|
||||
return null;
|
||||
|
||||
let trigger = this.trigger;
|
||||
const trigger = this.trigger;
|
||||
|
||||
if (trigger instanceof SpeciesFormChangeCompoundTrigger)
|
||||
return trigger.triggers.find(t => t.hasTriggerType(triggerType));
|
||||
|
@ -181,7 +181,7 @@ export class SpeciesFormChangeCompoundTrigger {
|
|||
}
|
||||
|
||||
canChange(pokemon: Pokemon): boolean {
|
||||
for (let trigger of this.triggers) {
|
||||
for (const trigger of this.triggers) {
|
||||
if (!trigger.canChange(pokemon))
|
||||
return false;
|
||||
}
|
||||
|
@ -719,8 +719,8 @@ export const pokemonFormChanges: PokemonFormChanges = {
|
|||
const formChangeKeys = Object.keys(pokemonFormChanges);
|
||||
formChangeKeys.forEach(pk => {
|
||||
const formChanges = pokemonFormChanges[pk];
|
||||
let newFormChanges: SpeciesFormChange[] = [];
|
||||
for (let fc of formChanges) {
|
||||
const newFormChanges: SpeciesFormChange[] = [];
|
||||
for (const fc of formChanges) {
|
||||
const itemTrigger = fc.findTrigger(SpeciesFormChangeItemTrigger) as SpeciesFormChangeItemTrigger;
|
||||
if (itemTrigger && !formChanges.find(c => fc.formKey === c.preFormKey && fc.preFormKey === c.formKey))
|
||||
newFormChanges.push(new SpeciesFormChange(fc.speciesId, fc.formKey, fc.preFormKey, new SpeciesFormChangeItemTrigger(itemTrigger.item, false)));
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Moves } from "./enums/moves";
|
||||
import { Species } from "./enums/species";
|
||||
import { Moves } from './enums/moves';
|
||||
import { Species } from './enums/species';
|
||||
|
||||
export type LevelMoves = ([integer, Moves])[];
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,7 +7,7 @@ export enum Stat {
|
|||
SPATK,
|
||||
SPDEF,
|
||||
SPD
|
||||
};
|
||||
}
|
||||
|
||||
export function getStatName(stat: Stat, shorten: boolean = false) {
|
||||
let ret: string;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import i18next from "../plugins/i18n";
|
||||
import i18next from '../plugins/i18n';
|
||||
|
||||
export function getBattleCountSplashMessage(): string {
|
||||
return `{COUNT} ${i18next.t('splashMessages:battlesWon')}`;
|
||||
|
@ -41,5 +41,5 @@ export function getSplashMessages(): string[] {
|
|||
i18next.t('splashMessages:ynoproject'),
|
||||
]);
|
||||
|
||||
return splashMessages
|
||||
return splashMessages;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import * as Utils from "../utils";
|
||||
import * as Utils from '../utils';
|
||||
|
||||
export enum StatusEffect {
|
||||
NONE,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||
import { BattleStat, getBattleStatName } from './battle-stat';
|
||||
|
||||
export enum TempBattleStat {
|
||||
ATK,
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import Pokemon from "../field/pokemon";
|
||||
import Move from "./move";
|
||||
import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import { IncrementMovePriorityAbAttr, applyAbAttrs } from "./ability";
|
||||
import { ProtectAttr } from "./move";
|
||||
import { BattlerIndex } from "#app/battle.js";
|
||||
import Pokemon from '../field/pokemon';
|
||||
import Move from './move';
|
||||
import { Type } from './type';
|
||||
import * as Utils from '../utils';
|
||||
import { IncrementMovePriorityAbAttr, applyAbAttrs } from './ability';
|
||||
import { ProtectAttr } from './move';
|
||||
import { BattlerIndex } from '#app/battle.js';
|
||||
|
||||
export enum TerrainType {
|
||||
NONE,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { ModifierTier } from "../modifier/modifier-tier";
|
||||
import { Moves } from "./enums/moves";
|
||||
import { Species } from "./enums/species";
|
||||
import { ModifierTier } from '../modifier/modifier-tier';
|
||||
import { Moves } from './enums/moves';
|
||||
import { Species } from './enums/species';
|
||||
|
||||
interface TmSpecies {
|
||||
[key: integer]: Array<Species | Array<Species | string>>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
import BattleScene, {startingWave} from "../battle-scene";
|
||||
import {ModifierTypeFunc, modifierTypes} from "../modifier/modifier-type";
|
||||
import {EnemyPokemon} from "../field/pokemon";
|
||||
import * as Utils from "../utils";
|
||||
import {TrainerType} from "./enums/trainer-type";
|
||||
import {Moves} from "./enums/moves";
|
||||
import {PokeballType} from "./pokeball";
|
||||
import {pokemonEvolutions, pokemonPrevolutions} from "./pokemon-evolutions";
|
||||
import PokemonSpecies, {PokemonSpeciesFilter, getPokemonSpecies} from "./pokemon-species";
|
||||
import {Species} from "./enums/species";
|
||||
import {tmSpecies} from "./tms";
|
||||
import {Type} from "./type";
|
||||
import {initTrainerTypeDialogue} from "./dialogue";
|
||||
import {PersistentModifier} from "../modifier/modifier";
|
||||
import {TrainerVariant} from "../field/trainer";
|
||||
import {PartyMemberStrength} from "./enums/party-member-strength";
|
||||
import i18next from "i18next";
|
||||
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
||||
import BattleScene, {startingWave} from '../battle-scene';
|
||||
import {ModifierTypeFunc, modifierTypes} from '../modifier/modifier-type';
|
||||
import {EnemyPokemon} from '../field/pokemon';
|
||||
import * as Utils from '../utils';
|
||||
import {TrainerType} from './enums/trainer-type';
|
||||
import {Moves} from './enums/moves';
|
||||
import {PokeballType} from './pokeball';
|
||||
import {pokemonEvolutions, pokemonPrevolutions} from './pokemon-evolutions';
|
||||
import PokemonSpecies, {PokemonSpeciesFilter, getPokemonSpecies} from './pokemon-species';
|
||||
import {Species} from './enums/species';
|
||||
import {tmSpecies} from './tms';
|
||||
import {Type} from './type';
|
||||
import {initTrainerTypeDialogue} from './dialogue';
|
||||
import {PersistentModifier} from '../modifier/modifier';
|
||||
import {TrainerVariant} from '../field/trainer';
|
||||
import {PartyMemberStrength} from './enums/party-member-strength';
|
||||
import i18next from 'i18next';
|
||||
import {getIsInitialized, initI18n} from '#app/plugins/i18n';
|
||||
|
||||
export enum TrainerPoolTier {
|
||||
COMMON,
|
||||
|
@ -74,7 +74,7 @@ export class TrainerPartyCompoundTemplate extends TrainerPartyTemplate {
|
|||
|
||||
getStrength(index: integer): PartyMemberStrength {
|
||||
let t = 0;
|
||||
for (let template of this.templates) {
|
||||
for (const template of this.templates) {
|
||||
if (t + template.size > index)
|
||||
return template.getStrength(index - t);
|
||||
t += template.size;
|
||||
|
@ -85,7 +85,7 @@ export class TrainerPartyCompoundTemplate extends TrainerPartyTemplate {
|
|||
|
||||
isSameSpecies(index: integer): boolean {
|
||||
let t = 0;
|
||||
for (let template of this.templates) {
|
||||
for (const template of this.templates) {
|
||||
if (t + template.size > index)
|
||||
return template.isSameSpecies(index - t);
|
||||
t += template.size;
|
||||
|
@ -96,7 +96,7 @@ export class TrainerPartyCompoundTemplate extends TrainerPartyTemplate {
|
|||
|
||||
isBalanced(index: integer): boolean {
|
||||
let t = 0;
|
||||
for (let template of this.templates) {
|
||||
for (const template of this.templates) {
|
||||
if (t + template.size > index)
|
||||
return template.isBalanced(index - t);
|
||||
t += template.size;
|
||||
|
@ -569,7 +569,7 @@ export class TrainerConfig {
|
|||
* @returns {string} - The title of the trainer.
|
||||
**/
|
||||
getTitle(trainerSlot: TrainerSlot = TrainerSlot.NONE, variant: TrainerVariant): string {
|
||||
let ret = this.name;
|
||||
const ret = this.name;
|
||||
|
||||
// Check if the variant is double and the name for double exists
|
||||
if (!trainerSlot && variant === TrainerVariant.DOUBLE && this.nameDouble)
|
||||
|
@ -591,7 +591,7 @@ export class TrainerConfig {
|
|||
// Check if the female version exists in the i18n file
|
||||
if (i18next.exists(`trainerClasses:${this.name.toLowerCase().replace()}`)) {
|
||||
// If it does, return
|
||||
return ret + "_female";
|
||||
return ret + '_female';
|
||||
} else {
|
||||
// If it doesn't, we do not do anything and go to the normal return
|
||||
// This is to prevent the game from displaying an error if a female version of the trainer does not exist in the localization
|
||||
|
@ -615,9 +615,9 @@ export class TrainerConfig {
|
|||
// Ignore warnings for missing frames, because there will be a lot
|
||||
console.warn = () => {
|
||||
};
|
||||
const frameNames = scene.anims.generateFrameNames(trainerKey, {zeroPad: 4,suffix: ".png",start: 1,end: 128});
|
||||
const frameNames = scene.anims.generateFrameNames(trainerKey, {zeroPad: 4,suffix: '.png',start: 1,end: 128});
|
||||
const partnerFrameNames = isDouble
|
||||
? scene.anims.generateFrameNames(partnerTrainerKey, {zeroPad: 4,suffix: ".png",start: 1,end: 128})
|
||||
? scene.anims.generateFrameNames(partnerTrainerKey, {zeroPad: 4,suffix: '.png',start: 1,end: 128})
|
||||
: null;
|
||||
console.warn = originalWarn;
|
||||
scene.anims.create({
|
||||
|
@ -691,8 +691,8 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
.setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.THREE_WEAK_BALANCED, trainerPartyTemplates.FOUR_WEAK_BALANCED, trainerPartyTemplates.FIVE_WEAK_BALANCED, trainerPartyTemplates.SIX_WEAK_BALANCED)),
|
||||
[TrainerType.ARTIST]: new TrainerConfig(++t).setEncounterBgm(TrainerType.RICH).setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.THREE_AVG)
|
||||
.setSpeciesPools([ Species.SMEARGLE ]),
|
||||
[TrainerType.BACKERS]: new TrainerConfig(++t).setHasGenders("Backers").setDoubleOnly().setEncounterBgm(TrainerType.CYCLIST),
|
||||
[TrainerType.BACKPACKER]: new TrainerConfig(++t).setHasGenders("Backpacker Female").setHasDouble('Backpackers').setSpeciesFilter(s => s.isOfType(Type.FLYING) || s.isOfType(Type.ROCK)).setEncounterBgm(TrainerType.BACKPACKER)
|
||||
[TrainerType.BACKERS]: new TrainerConfig(++t).setHasGenders('Backers').setDoubleOnly().setEncounterBgm(TrainerType.CYCLIST),
|
||||
[TrainerType.BACKPACKER]: new TrainerConfig(++t).setHasGenders('Backpacker Female').setHasDouble('Backpackers').setSpeciesFilter(s => s.isOfType(Type.FLYING) || s.isOfType(Type.ROCK)).setEncounterBgm(TrainerType.BACKPACKER)
|
||||
.setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.ONE_WEAK_ONE_STRONG, trainerPartyTemplates.ONE_AVG_ONE_STRONG)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, Species.WOOLOO ],
|
||||
|
@ -712,17 +712,17 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerPoolTier.SUPER_RARE]: [ Species.HITMONTOP, Species.INFERNAPE, Species.GALLADE, Species.HAWLUCHA, Species.HAKAMO_O ],
|
||||
[TrainerPoolTier.ULTRA_RARE]: [ Species.KUBFU ]
|
||||
}),
|
||||
[TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders("Breeder Female").setHasDouble('Breeders')
|
||||
[TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders('Breeder Female').setHasDouble('Breeders')
|
||||
.setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.FIVE_WEAKER, trainerPartyTemplates.SIX_WEAKER))
|
||||
.setSpeciesFilter(s => s.baseTotal < 450),
|
||||
[TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders("Clerk Female").setHasDouble('Colleagues').setEncounterBgm(TrainerType.CLERK)
|
||||
[TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders('Clerk Female').setHasDouble('Colleagues').setEncounterBgm(TrainerType.CLERK)
|
||||
.setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.MEOWTH, Species.PSYDUCK, Species.BUDEW, Species.PIDOVE, Species.CINCCINO, Species.LITLEO ],
|
||||
[TrainerPoolTier.UNCOMMON]: [ Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, Species.SKIDDO ],
|
||||
[TrainerPoolTier.RARE]: [ Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, Species.INDEEDEE ]
|
||||
}),
|
||||
[TrainerType.CYCLIST]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setHasGenders("Cyclist Female").setHasDouble('Cyclists').setEncounterBgm(TrainerType.CYCLIST)
|
||||
[TrainerType.CYCLIST]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setHasGenders('Cyclist Female').setHasDouble('Cyclists').setEncounterBgm(TrainerType.CYCLIST)
|
||||
.setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.PICHU, Species.STARLY, Species.TAILLOW, Species.BOLTUND ],
|
||||
|
@ -781,9 +781,9 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
}),
|
||||
[TrainerType.PARASOL_LADY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY).setSpeciesFilter(s => s.isOfType(Type.WATER)),
|
||||
[TrainerType.PILOT]: new TrainerConfig(++t).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => tmSpecies[Moves.FLY].indexOf(s.speciesId) > -1),
|
||||
[TrainerType.POKEFAN]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName('PokéFan').setHasGenders("PokéFan Female").setHasDouble('PokéFan Family').setEncounterBgm(TrainerType.POKEFAN)
|
||||
[TrainerType.POKEFAN]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName('PokéFan').setHasGenders('PokéFan Female').setHasDouble('PokéFan Family').setEncounterBgm(TrainerType.POKEFAN)
|
||||
.setPartyTemplates(trainerPartyTemplates.SIX_WEAKER, trainerPartyTemplates.FOUR_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.FOUR_WEAK_SAME, trainerPartyTemplates.FIVE_WEAK, trainerPartyTemplates.SIX_WEAKER_SAME),
|
||||
[TrainerType.PRESCHOOLER]: new TrainerConfig(++t).setMoneyMultiplier(0.2).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("Preschooler Female", 'lass').setHasDouble('Preschoolers')
|
||||
[TrainerType.PRESCHOOLER]: new TrainerConfig(++t).setMoneyMultiplier(0.2).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders('Preschooler Female', 'lass').setHasDouble('Preschoolers')
|
||||
.setPartyTemplates(trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.FIVE_WEAKER)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.CATERPIE, Species.PICHU, Species.SANDSHREW, Species.LEDYBA, Species.BUDEW, Species.BURMY, Species.WOOLOO, Species.PAWMI, Species.SMOLIV ],
|
||||
|
@ -791,7 +791,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerPoolTier.RARE]: [ Species.RALTS, Species.RIOLU, Species.JOLTIK, Species.TANDEMAUS ],
|
||||
[TrainerPoolTier.SUPER_RARE]: [ Species.DARUMAKA, Species.TINKATINK ],
|
||||
}),
|
||||
[TrainerType.PSYCHIC]: new TrainerConfig(++t).setHasGenders("Psychic Female").setHasDouble('Psychics').setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.PSYCHIC)
|
||||
[TrainerType.PSYCHIC]: new TrainerConfig(++t).setHasGenders('Psychic Female').setHasDouble('Psychics').setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.PSYCHIC)
|
||||
.setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME, trainerPartyTemplates.ONE_STRONGER)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, Species.BLIPBUG, Species.ESPURR, Species.HATENNA ],
|
||||
|
@ -799,7 +799,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerPoolTier.RARE]: [ Species.ELGYEM, Species.SIGILYPH, Species.BALTOY, Species.GIRAFARIG, Species.MEOWSTIC ],
|
||||
[TrainerPoolTier.SUPER_RARE]: [ Species.BELDUM, Species.ESPEON, Species.STANTLER ],
|
||||
}),
|
||||
[TrainerType.RANGER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName('Pokémon Ranger').setEncounterBgm(TrainerType.BACKPACKER).setHasGenders("Pokémon Ranger Female").setHasDouble('Pokémon Rangers')
|
||||
[TrainerType.RANGER]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setName('Pokémon Ranger').setEncounterBgm(TrainerType.BACKPACKER).setHasGenders('Pokémon Ranger Female').setHasDouble('Pokémon Rangers')
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.PICHU, Species.GROWLITHE, Species.PONYTA, Species.ZIGZAGOON, Species.SEEDOT, Species.BIDOOF, Species.RIOLU, Species.SEWADDLE, Species.SKIDDO, Species.SALANDIT, Species.YAMPER ],
|
||||
[TrainerPoolTier.UNCOMMON]: [ Species.AZURILL, Species.TAUROS, Species.MAREEP, Species.FARFETCHD, Species.TEDDIURSA, Species.SHROOMISH, Species.ELECTRIKE, Species.BUDEW, Species.BUIZEL, Species.MUDBRAY, Species.STUFFUL ],
|
||||
|
@ -809,7 +809,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerType.RICH]: new TrainerConfig(++t).setMoneyMultiplier(5).setName('Gentleman').setHasGenders('Madame').setHasDouble('Rich Couple'),
|
||||
[TrainerType.RICH_KID]: new TrainerConfig(++t).setMoneyMultiplier(3.75).setName('Rich Boy').setHasGenders('Lady').setHasDouble('Rich Kids').setEncounterBgm(TrainerType.RICH),
|
||||
[TrainerType.ROUGHNECK]: new TrainerConfig(++t).setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.DARK)),
|
||||
[TrainerType.SCIENTIST]: new TrainerConfig(++t).setHasGenders("Scientist Female").setHasDouble('Scientists').setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.SCIENTIST)
|
||||
[TrainerType.SCIENTIST]: new TrainerConfig(++t).setHasGenders('Scientist Female').setHasDouble('Scientists').setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.SCIENTIST)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.MAGNEMITE, Species.GRIMER, Species.DROWZEE, Species.VOLTORB, Species.KOFFING ],
|
||||
[TrainerPoolTier.UNCOMMON]: [ Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, Species.CHARJABUG, Species.BLIPBUG, Species.HELIOPTILE ],
|
||||
|
@ -818,29 +818,29 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerPoolTier.ULTRA_RARE]: [ Species.ROTOM, Species.MELTAN ]
|
||||
}),
|
||||
[TrainerType.SMASHER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST),
|
||||
[TrainerType.SNOW_WORKER]: new TrainerConfig(++t).setName('Worker').setHasGenders("Worker Female").setHasDouble('Workers').setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => s.isOfType(Type.ICE) || s.isOfType(Type.STEEL)),
|
||||
[TrainerType.SNOW_WORKER]: new TrainerConfig(++t).setName('Worker').setHasGenders('Worker Female').setHasDouble('Workers').setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.CLERK).setSpeciesFilter(s => s.isOfType(Type.ICE) || s.isOfType(Type.STEEL)),
|
||||
[TrainerType.STRIKER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST),
|
||||
[TrainerType.SCHOOL_KID]: new TrainerConfig(++t).setMoneyMultiplier(0.75).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders("School Kid Female", 'lass').setHasDouble('School Kids')
|
||||
[TrainerType.SCHOOL_KID]: new TrainerConfig(++t).setMoneyMultiplier(0.75).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders('School Kid Female', 'lass').setHasDouble('School Kids')
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.ODDISH, Species.EXEGGCUTE, Species.TEDDIURSA, Species.WURMPLE, Species.RALTS, Species.SHROOMISH, Species.FLETCHLING ],
|
||||
[TrainerPoolTier.UNCOMMON]: [ Species.VOLTORB, Species.WHISMUR, Species.MEDITITE, Species.MIME_JR, Species.NYMBLE ],
|
||||
[TrainerPoolTier.RARE]: [ Species.TANGELA, Species.EEVEE, Species.YANMA ],
|
||||
[TrainerPoolTier.SUPER_RARE]: [ Species.TADBULB ]
|
||||
}),
|
||||
[TrainerType.SWIMMER]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm(TrainerType.PARASOL_LADY).setHasGenders("Swimmer Female").setHasDouble('Swimmers').setSpecialtyTypes(Type.WATER).setSpeciesFilter(s => s.isOfType(Type.WATER)),
|
||||
[TrainerType.SWIMMER]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm(TrainerType.PARASOL_LADY).setHasGenders('Swimmer Female').setHasDouble('Swimmers').setSpecialtyTypes(Type.WATER).setSpeciesFilter(s => s.isOfType(Type.WATER)),
|
||||
[TrainerType.TWINS]: new TrainerConfig(++t).setDoubleOnly().setMoneyMultiplier(0.65).setUseSameSeedForAllMembers()
|
||||
.setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_STRONG))
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.PLUSLE, Species.VOLBEAT, Species.PACHIRISU, Species.SILCOON, Species.METAPOD, Species.IGGLYBUFF, Species.PETILIL, Species.EEVEE ]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.MINUN, Species.ILLUMISE, Species.EMOLGA, Species.CASCOON, Species.KAKUNA, Species.CLEFFA, Species.COTTONEE, Species.EEVEE ], TrainerSlot.TRAINER_PARTNER))
|
||||
.setEncounterBgm(TrainerType.TWINS),
|
||||
[TrainerType.VETERAN]: new TrainerConfig(++t).setHasGenders("Veteran Female").setHasDouble('Veteran Duo').setMoneyMultiplier(2.5).setEncounterBgm(TrainerType.ACE_TRAINER).setSpeciesFilter(s => s.isOfType(Type.DRAGON)),
|
||||
[TrainerType.VETERAN]: new TrainerConfig(++t).setHasGenders('Veteran Female').setHasDouble('Veteran Duo').setMoneyMultiplier(2.5).setEncounterBgm(TrainerType.ACE_TRAINER).setSpeciesFilter(s => s.isOfType(Type.DRAGON)),
|
||||
[TrainerType.WAITER]: new TrainerConfig(++t).setHasGenders('Waitress').setHasDouble('Restaurant Staff').setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.CLERK)
|
||||
.setSpeciesPools({
|
||||
[TrainerPoolTier.COMMON]: [ Species.CLEFFA, Species.CHATOT, Species.PANSAGE, Species.PANSEAR, Species.PANPOUR, Species.MINCCINO ],
|
||||
[TrainerPoolTier.UNCOMMON]: [ Species.TROPIUS, Species.PETILIL, Species.BOUNSWEET, Species.INDEEDEE ],
|
||||
[TrainerPoolTier.RARE]: [ Species.APPLIN, Species.SINISTEA, Species.POLTCHAGEIST ]
|
||||
}),
|
||||
[TrainerType.WORKER]: new TrainerConfig(++t).setHasGenders("Worker Female").setHasDouble('Workers').setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.7).setSpeciesFilter(s => s.isOfType(Type.ROCK) || s.isOfType(Type.STEEL)),
|
||||
[TrainerType.WORKER]: new TrainerConfig(++t).setHasGenders('Worker Female').setHasDouble('Workers').setEncounterBgm(TrainerType.CLERK).setMoneyMultiplier(1.7).setSpeciesFilter(s => s.isOfType(Type.ROCK) || s.isOfType(Type.STEEL)),
|
||||
[TrainerType.YOUNGSTER]: new TrainerConfig(++t).setMoneyMultiplier(0.5).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders('Lass', 'lass').setHasDouble('Beginners').setPartyTemplates(trainerPartyTemplates.TWO_WEAKER)
|
||||
.setSpeciesPools(
|
||||
[ Species.CATERPIE, Species.WEEDLE, Species.RATTATA, Species.SENTRET, Species.POOCHYENA, Species.ZIGZAGOON, Species.WURMPLE, Species.BIDOOF, Species.PATRAT, Species.LILLIPUP ]
|
||||
|
@ -915,7 +915,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader([ Species.SMOLIV, Species.SHROOMISH, Species.ODDISH ], Type.GRASS),
|
||||
[TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader([ Species.TADBULB, Species.WATTREL, Species.VOLTORB ], Type.ELECTRIC),
|
||||
[TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader([ Species.VELUZA, Species.WIGLETT, Species.WINGULL ], Type.WATER),
|
||||
[TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader([ Species.STARLY, Species.DUNSPARCE, Species.KOMALA ], Type.NORMAL),
|
||||
[TrainerType.LARRY]: new TrainerConfig(++t).setName('Larry').initForGymLeader([ Species.STARLY, Species.DUNSPARCE, Species.KOMALA ], Type.NORMAL),
|
||||
[TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader([ Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU ], Type.GHOST),
|
||||
[TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.FLITTLE, Species.RALTS ], Type.PSYCHIC),
|
||||
[TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader([ Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO ], Type.ICE),
|
||||
|
@ -923,7 +923,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour([ Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH ], Type.ICE),
|
||||
[TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour([ Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM ], Type.FIGHTING),
|
||||
[TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour([ Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK ], Type.GHOST),
|
||||
[TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour([ Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR ], Type.DRAGON),
|
||||
[TrainerType.LANCE]: new TrainerConfig(++t).setName('Lance').initForEliteFour([ Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR ], Type.DRAGON),
|
||||
[TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour([ Species.XATU, Species.JYNX, Species.SLOWBRO, Species.EXEGGUTOR ], Type.PSYCHIC),
|
||||
[TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour([ Species.WEEZING, Species.VENOMOTH, Species.CROBAT, Species.TENTACRUEL ], Type.POISON),
|
||||
[TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour([ Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE ], Type.DARK),
|
||||
|
@ -950,7 +950,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
[TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour([ Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON ], Type.FLYING),
|
||||
[TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour([ Species. WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE ], Type.GROUND),
|
||||
[TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour([ Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON ], Type.STEEL),
|
||||
[TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING),
|
||||
[TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName('Larry').initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING),
|
||||
[TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour([ Species.NOIVERN, Species.HAXORUS, Species.DRAGALGE, Species.BAXCALIBUR ], Type.DRAGON),
|
||||
[TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour([ Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN ], Type.FIRE),
|
||||
[TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour([ Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS ], Type.STEEL),
|
||||
|
@ -959,7 +959,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||
|
||||
[TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion([ Species.GYARADOS, Species.MEWTWO, Species.ARCANINE, Species.ALAKAZAM, Species.PIDGEOT ]).setBattleBgm('battle_kanto_champion'),
|
||||
[TrainerType.RED]: new TrainerConfig(++t).initForChampion([ Species.CHARIZARD, [ Species.LUGIA, Species.HO_OH ], Species.SNORLAX, Species.RAICHU, Species.ESPEON ]).setBattleBgm('battle_johto_champion'),
|
||||
[TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion([ Species.DRAGONITE, Species.ZYGARDE, Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR ]).setBattleBgm('battle_johto_champion'),
|
||||
[TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName('Lance').initForChampion([ Species.DRAGONITE, Species.ZYGARDE, Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR ]).setBattleBgm('battle_johto_champion'),
|
||||
[TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion([ Species.METAGROSS, [ Species.DIALGA, Species.PALKIA ], Species.SKARMORY, Species.AGGRON, Species.CARBINK ]).setBattleBgm('battle_hoenn_champion'),
|
||||
[TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion([ Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO ]).setBattleBgm('battle_hoenn_champion'),
|
||||
[TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion([ Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS ]).setBattleBgm('battle_sinnoh_champion'),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { TrainerType } from "./enums/trainer-type";
|
||||
import * as Utils from "../utils";
|
||||
import { TrainerType } from './enums/trainer-type';
|
||||
import * as Utils from '../utils';
|
||||
|
||||
class TrainerNameConfig {
|
||||
public urls: string[];
|
||||
|
@ -71,54 +71,54 @@ const trainerNameConfigs: TrainerNameConfigs = {
|
|||
};
|
||||
|
||||
export const trainerNamePools = {
|
||||
[TrainerType.ACE_TRAINER]: [["Aaron","Allen","Blake","Brian","Gaven","Jake","Kevin","Mike","Nick","Paul","Ryan","Sean","Darin","Albert","Berke","Clyde","Edgar","George","Leroy","Owen","Parker","Randall","Ruben","Samuel","Vincent","Warren","Wilton","Zane","Alfred","Braxton","Felix","Gerald","Jonathan","Leonel","Marcel","Mitchell","Quincy","Roderick","Colby","Rolando","Yuji","Abel","Anton","Arthur","Cesar","Dalton","Dennis","Ernest","Garrett","Graham","Henry","Isaiah","Jonah","Jose","Keenan","Micah","Omar","Quinn","Rodolfo","Saul","Sergio","Skylar","Stefan","Zachery","Alton","Arabella","Bonita","Cal","Cody","French","Kobe","Paulo","Shaye","Austin","Beckett","Charlie","Corky","David","Dwayne","Elmer","Jesse","Jared","Johan","Jordan","Kipp","Lou","Terry","Tom","Webster","Billy","Doyle","Enzio","Geoff","Grant","Kelsey","Miguel","Pierce","Ray","Santino","Shel","Adelbert","Bence","Emil","Evan","Mathis","Maxim","Neil","Rico","Robbie","Theo","Viktor","Benedict","Cornelius","Hisato","Leopold","Neville","Vito","Chase","Cole","Hiroshi","Jackson","Jim","Kekoa","Makana","Yuki","Elwood","Seth","Alvin","Arjun","Arnold","Cameron","Carl","Carlton","Christopher","Dave","Dax","Dominic","Edmund","Finn","Fred","Garret","Grayson","Jace","Jaxson","Jay","Jirard","Johnson","Kayden","Kite","Louis","Mac","Marty","Percy","Raymond","Ronnie","Satch","Tim","Zach","Conner","Vince","Bedro","Boda","Botan","Daras","Dury","Herton","Rewn","Stum","Tock","Trilo","Berki","Cruik","Dazon","Desid","Dillot","Farfin","Forgon","Hebel","Morfon","Moril","Shadd","Vanhub","Bardo","Carben","Degin","Gorps","Klept","Lask","Malex","Mopar","Niled","Noxon","Teslor","Tetil"],["Beth","Carol","Cybil","Emma","Fran","Gwen","Irene","Jenn","Joyce","Kate","Kelly","Lois","Lola","Megan","Quinn","Reena","Cara","Alexa","Brooke","Caroline","Elaine","Hope","Jennifer","Jody","Julie","Lori","Mary","Michelle","Shannon","Wendy","Alexia","Alicia","Athena","Carolina","Cristin","Darcy","Dianne","Halle","Jazmyn","Katelynn","Keira","Marley","Allyson","Kathleen","Naomi","Alyssa","Ariana","Brandi","Breanna","Brenda","Brenna","Catherine","Clarice","Dana","Deanna","Destiny","Jamie","Jasmin","Kassandra","Laura","Maria","Mariah","Maya","Meagan","Mikayla","Monique","Natasha","Olivia","Sandra","Savannah","Sydney","Moira","Piper","Salma","Allison","Beverly","Cathy","Cheyenne","Clara","Dara","Eileen","Glinda","Junko","Lena","Lucille","Mariana","Olwen","Shanta","Stella","Angi","Belle","Chandra","Cora","Eve","Jacqueline","Jeanne","Juliet","Kathrine","Layla","Lucca","Melina","Miki","Nina","Sable","Shelly","Summer","Trish","Vicki","Alanza","Cordelia","Hilde","Imelda","Michele","Mireille","Claudia","Constance","Harriet","Honor","Melba","Portia","Alexis","Angela","Karla","Lindsey","Tori","Sheri","Jada","Kailee","Amanda","Annie","Kindra","Kyla","Sofia","Yvette","Becky","Flora","Gloria","Buna","Ferda","Lehan","Liqui","Lomen","Neira","Atilo","Detta","Gilly","Gosney","Levens","Moden","Rask","Rateis","Rosno","Tynan","Veron","Zoel","Cida","Dibsin","Dodin","Ebson","Equin","Flostin","Gabsen","Halsion","Hileon","Quelor","Rapeel","Roze","Tensin"]],
|
||||
[TrainerType.ARTIST]: [["Ismael","William","Horton","Pierre","Zach","Gough","Salvador","Vincent","Duncan"],["Georgia"]],
|
||||
[TrainerType.BACKERS]: [["Alf & Fred","Hawk & Dar","Joe & Ross","Les & Web","Masa & Yas","Stu & Art"],["Ai & Ciel","Ami & Eira","Cam & Abby","Fey & Sue","Kat & Phae","Kay & Ali","Ava & Aya","Cleo & Rio","May & Mal"]],
|
||||
[TrainerType.BACKPACKER]: [["Alexander","Carlos","Herman","Jerome","Keane","Kelsey","Kiyo","Michael","Nate","Peter","Sam","Stephen","Talon","Terrance","Toru","Waylon","Boone","Clifford","Ivan","Kendall","Lowell","Randall","Reece","Roland","Shane","Walt","Farid","Heike","Joren","Lane","Roderick","Darnell","Deon","Emory","Graeme","Grayson","Ashley","Mikiko","Kiana","Perdy","Maria","Yuho","Peren","Barbara","Diane","Ruth","Aitor","Alex","Arturo","Asier","Jaime","Jonathan","Julio","Kevin","Kosuke","Lander","Markel","Mateo","Nil","Pau","Samuel"],["Anna","Corin","Elaine","Emi","Jill","Kumiko","Liz","Lois","Lora","Molly","Patty","Ruth","Vicki","Annie","Blossom","Clara","Eileen","Mae","Myra","Rachel","Tami"]],
|
||||
[TrainerType.BAKER]: ["Chris","Jenn","Lilly"],
|
||||
[TrainerType.BEAUTY]: ["Cassie","Julia","Olivia","Samantha","Valerie","Victoria","Bridget","Connie","Jessica","Johanna","Melissa","Sheila","Shirley","Tiffany","Namiko","Thalia","Grace","Lola","Lori","Maura","Tamia","Cyndy","Devon","Gabriella","Harley","Lindsay","Nicola","Callie","Charlotte","Kassandra","December","Fleming","Nikola","Aimee","Anais","Brigitte","Cassandra","Andrea","Brittney","Carolyn","Krystal","Alexis","Alice","Aina","Anya","Arianna","Aubrey","Beverly","Camille","Beauty","Evette","Hansol","Haruka","Jill","Jo","Lana","Lois","Lucy","Mai","Nickie","Nicole","Prita","Rose","Shelly","Suzy","Tessa","Anita","Alissa","Rita","Cudsy","Eloff","Miru","Minot","Nevah","Niven","Ogoin"],
|
||||
[TrainerType.BIKER]: ["Charles","Dwayne","Glenn","Harris","Joel","Riley","Zeke","Alex","Billy","Ernest","Gerald","Hideo","Isaac","Jared","Jaren","Jaxon","Jordy","Lao","Lukas","Malik","Nikolas","Ricardo","Ruben","Virgil","William","Aiden","Dale","Dan","Jacob","Markey","Reese","Teddy","Theron","Jeremy","Morgann","Phillip","Philip","Stanley","Dillon"],
|
||||
[TrainerType.BLACK_BELT]: [["Kenji","Lao","Lung","Nob","Wai","Yoshi","Atsushi","Daisuke","Hideki","Hitoshi","Kiyo","Koichi","Koji","Yuji","Cristian","Rhett","Takao","Theodore","Zander","Aaron","Hugh","Mike","Nicolas","Shea","Takashi","Adam","Carl","Colby","Darren","David","Davon","Derek","Eddie","Gregory","Griffin","Jarrett","Jeffery","Kendal","Kyle","Luke","Miles","Nathaniel","Philip","Rafael","Ray","Ricky","Sean","Willie","Ander","Manford","Benjamin","Corey","Edward","Grant","Jay","Kendrew","Kentaro","Ryder","Teppei","Thomas","Tyrone","Andrey","Donny","Drago","Gordon","Grigor","Jeriel","Kenneth","Martell","Mathis","Rich","Rocky","Rodrigo","Wesley","Zachery","Alonzo","Cadoc","Gunnar","Igor","Killian","Markus","Ricardo","Yanis","Banting","Clayton","Duane","Earl","Greg","Roy","Terry","Tracy","Walter","Alvaro","Curtis","Francis","Ross","Brice","Cheng","Dudley","Eric","Kano","Masahiro","Randy","Ryuji","Steve","Tadashi","Wong","Yuen","Brian","Carter","Reece","Nick","Yang"],["Cora","Cyndy","Jill","Laura","Sadie","Tessa","Vivian","Aisha","Callie","Danielle","Helene","Jocelyn","Lilith","Paula","Reyna","Helen","Kelsey","Tyler","Amy","Chandra","Hillary","Janie","Lee","Maggie","Mikiko","Miriam","Sharon","Susie","Xiao","Alize","Azra","Brenda","Chalina","Chan","Glinda","Maki","Tia","Tiffany","Wendy","Andrea","Gabrielle","Gerardine","Hailey","Hedvig","Justine","Kinsey","Sigrid","Veronique","Tess"]],
|
||||
[TrainerType.BREEDER]: [["Isaac","Myles","Salvadore","Albert","Kahlil","Eustace","Galen","Owen","Addison","Marcus","Foster","Cory","Glenn","Jay","Wesley","William","Adrian","Bradley","Jaime"],["Allison","Alize","Bethany","Lily","Lydia","Gabrielle","Jayden","Pat","Veronica","Amber","Jennifer","Kaylee","Adelaide","Brooke","Ethel","April","Irene","Magnolia","Amala","Mercy","Amanda","Ikue","Savannah","Yuka","Chloe","Debra","Denise","Elena"]],
|
||||
[TrainerType.CLERK]: [["Chaz","Clemens","Doug","Fredric","Ivan","Isaac","Nelson","Wade","Warren","Augustin","Gilligan","Cody","Jeremy","Shane","Dugal","Royce","Ronald"],["Alberta","Ingrid","Katie","Piper","Trisha","Wren","Britney","Lana","Jessica","Kristen","Michelle","Gabrielle"]],
|
||||
[TrainerType.CYCLIST]: [["Axel","James","John","Ryan","Hector","Jeremiah"],["Kayla","Megan","Nicole","Rachel","Krissa","Adelaide"]],
|
||||
[TrainerType.DANCER]: ["Brian","Davey","Dirk","Edmond","Mickey","Raymond","Cara","Julia","Maika","Mireille","Ronda","Zoe"],
|
||||
[TrainerType.DEPOT_AGENT]: ["Josh","Hank","Vincent"],
|
||||
[TrainerType.DOCTOR]: [["Hank","Jerry","Jules","Logan","Wayne","Braid","Derek","Heath","Julius","Kit","Graham"],["Kirsten","Sachiko","Shery","Carol","Dixie","Mariah"]],
|
||||
[TrainerType.FISHERMAN]: ["Andre","Arnold","Barney","Chris","Edgar","Henry","Jonah","Justin","Kyle","Martin","Marvin","Ralph","Raymond","Scott","Stephen","Wilton","Tully","Andrew","Barny","Carter","Claude","Dale","Elliot","Eugene","Ivan","Ned","Nolan","Roger","Ronald","Wade","Wayne","Darian","Kai","Chip","Hank","Kaden","Tommy","Tylor","Alec","Brett","Cameron","Cody","Cole","Cory","Erick","George","Joseph","Juan","Kenneth","Luc","Miguel","Travis","Walter","Zachary","Josh","Gideon","Kyler","Liam","Murphy","Bruce","Damon","Devon","Hubert","Jones","Lydon","Mick","Pete","Sean","Sid","Vince","Bucky","Dean","Eustace","Kenzo","Leroy","Mack","Ryder","Ewan","Finn","Murray","Seward","Shad","Wharton","Finley","Fisher","Fisk","River","Sheaffer","Timin","Carl","Ernest","Hal","Herbert","Hisato","Mike","Vernon","Harriet","Marina","Chase"],
|
||||
[TrainerType.GUITARIST]: ["Anna","Beverly","January","Tina","Alicia","Claudia","Julia","Lidia","Mireia","Noelia","Sara","Sheila","Tatiana"],
|
||||
[TrainerType.HARLEQUIN]: ["Charley","Ian","Jack","Kerry","Louis","Pat","Paul","Rick","Anders","Clarence","Gary"],
|
||||
[TrainerType.HIKER]: ["Anthony","Bailey","Benjamin","Daniel","Erik","Jim","Kenny","Leonard","Michael","Parry","Phillip","Russell","Sidney","Tim","Timothy","Alan","Brice","Clark","Eric","Lenny","Lucas","Mike","Trent","Devan","Eli","Marc","Sawyer","Allen","Daryl","Dudley","Earl","Franklin","Jeremy","Marcos","Nob","Oliver","Wayne","Alexander","Damon","Jonathan","Justin","Kevin","Lorenzo","Louis","Maurice","Nicholas","Reginald","Robert","Theodore","Bruce","Clarke","Devin","Dwight","Edwin","Eoin","Noland","Russel","Andy","Bret","Darrell","Gene","Hardy","Hugh","Jebediah","Jeremiah","Kit","Neil","Terrell","Don","Doug","Hunter","Jared","Jerome","Keith","Manuel","Markus","Otto","Shelby","Stephen","Teppei","Tobias","Wade","Zaiem","Aaron","Alain","Bergin","Bernard","Brent","Corwin","Craig","Delmon","Dunstan","Orestes","Ross","Davian","Calhoun","David","Gabriel","Ryan","Thomas","Travis","Zachary","Anuhea","Barnaby","Claus","Collin","Colson","Dexter","Dillan","Eugine","Farkas","Hisato","Julius","Kenji","Irwin","Lionel","Paul","Richter","Valentino","Donald","Douglas","Kevyn","Angela","Carla","Celia","Daniela","Estela","Fatima","Helena","Leire","Lucia","Luna","Manuela","Mar","Marina","Miyu","Nancy","Nerea","Paula","Rocio","Yanira","Chester"],
|
||||
[TrainerType.HOOLIGANS]: ["Jim & Cas","Rob & Sal"],
|
||||
[TrainerType.HOOPSTER]: ["Bobby","John","Lamarcus","Derrick","Nicolas"],
|
||||
[TrainerType.INFIELDER]: ["Alex","Connor","Todd"],
|
||||
[TrainerType.JANITOR]: ["Caleb","Geoff","Brady","Felix","Orville","Melvin","Shawn"],
|
||||
[TrainerType.LINEBACKER]: ["Bob","Dan","Jonah"],
|
||||
[TrainerType.MAID]: ["Belinda","Sophie","Emily","Elena","Clare","Alica","Tanya","Tammy"],
|
||||
[TrainerType.MUSICIAN]: ["Boris","Preston","Charles","Clyde","Vincent","Dalton","Kirk","Shawn","Fabian","Fernando","Joseph","Marcos","Arturo","Jerry","Lonnie","Tony"],
|
||||
[TrainerType.NURSERY_AIDE]: ["Autumn","Briana","Leah","Miho","Ethel","Hollie","Ilse","June","Kimya","Rosalyn"],
|
||||
[TrainerType.OFFICER]: ["Dirk","Keith","Alex","Bobby","Caleb","Danny","Dylan","Thomas","Daniel","Jeff","Braven","Dell","Neagle","Haruki","Mitchell","Raymond"],
|
||||
[TrainerType.PARASOL_LADY]: ["Angelica","Clarissa","Madeline","Akari","Annabell","Kayley","Rachel","Alexa","Sabrina","April","Gwyneth","Laura","Lumi","Mariah","Melita","Nicole","Tihana","Ingrid","Tyra"],
|
||||
[TrainerType.PILOT]: ["Chase","Leonard","Ted","Elron","Ewing","Flynn","Winslow"],
|
||||
[TrainerType.POKEFAN]: [["Alex","Allan","Brandon","Carter","Colin","Derek","Jeremy","Joshua","Rex","Robert","Trevor","William","Colton","Miguel","Francisco","Kaleb","Leonard","Boone","Elliot","Jude","Norbert","Corey","Gabe","Baxter"],["Beverly","Georgia","Jaime","Ruth","Isabel","Marissa","Vanessa","Annika","Bethany","Kimberly","Meredith","Rebekah","Eleanor","Darcy","Lydia","Sachiko","Abigail","Agnes","Lydie","Roisin","Tara","Carmen","Janet"]],
|
||||
[TrainerType.PRESCHOOLER]: [["Billy","Doyle","Evan","Homer","Tully","Albert","Buster","Greg","Ike","Jojo","Tyrone","Adrian","Oliver","Hayden","Hunter","Kaleb","Liam","Dylan"],["Juliet","Mia","Sarah","Wendy","Winter","Chrissy","Eva","Lin","Samantha","Ella","Lily","Natalie","Ailey","Hannah","Malia","Kindra","Nancy"]],
|
||||
[TrainerType.PSYCHIC]: [["Fidel","Franklin","Gilbert","Greg","Herman","Jared","Mark","Nathan","Norman","Phil","Richard","Rodney","Cameron","Edward","Fritz","Joshua","Preston","Virgil","William","Alvaro","Blake","Cedric","Keenan","Nicholas","Dario","Johan","Lorenzo","Tyron","Bryce","Corbin","Deandre","Elijah","Kody","Landon","Maxwell","Mitchell","Sterling","Eli","Nelson","Vernon","Gaven","Gerard","Low","Micki","Perry","Rudolf","Tommy","Al","Nandor","Tully","Arthur","Emanuel","Franz","Harry","Paschal","Robert","Sayid","Angelo","Anton","Arin","Avery","Danny","Frasier","Harrison","Jaime","Ross","Rui","Vlad","Mason"],["Alexis","Hannah","Jacki","Jaclyn","Kayla","Maura","Samantha","Alix","Brandi","Edie","Macey","Mariella","Marlene","Laura","Rodette","Abigail","Brittney","Chelsey","Daisy","Desiree","Kendra","Lindsey","Rachael","Valencia","Belle","Cybil","Doreen","Dua","Future","Lin","Madhu","Alia","Ena","Joyce","Lynette","Olesia","Sarah"]],
|
||||
[TrainerType.RANGER]: [["Carlos","Jackson","Sebastian","Gav","Lorenzo","Logan","Nicolas","Trenton","Deshawn","Dwayne","Jeffery","Kyler","Taylor","Alain","Claude","Crofton","Forrest","Harry","Jaden","Keith","Lewis","Miguel","Pedro","Ralph","Richard","Bret","Daryl","Eddie","Johan","Leaf","Louis","Maxwell","Parker","Rick","Steve","Bjorn","Chaise","Dean","Lee","Maurice","Nash","Ralf","Reed","Shinobu","Silas"],["Catherine","Jenna","Sophia","Merdith","Nora","Beth","Chelsea","Katelyn","Madeline","Allison","Ashlee","Felicia","Krista","Annie","Audra","Brenda","Chloris","Eliza","Heidi","Irene","Mary","Mylene","Shanti","Shelly","Thalia","Anja","Briana","Dianna","Elaine","Elle","Hillary","Katie","Lena","Lois","Malory","Melita","Mikiko","Naoko","Serenity","Ambre","Brooke","Clementine","Melina","Petra","Twiggy"]],
|
||||
[TrainerType.RICH]: [["Alfred","Edward","Gregory","Preston","Thomas","Tucker","Walter","Clifford","Everett","Micah","Nate","Pierre","Terrance","Arthur","Brooks","Emanuel","Lamar","Jeremy","Leonardo","Milton","Frederic","Renaud","Robert","Yan","Daniel","Sheldon","Stonewall","Gerald","Ronald","Smith","Stanley","Reginald","Orson","Wilco","Caden","Glenn"],["Rebecca","Reina","Cassandra","Emilia","Grace","Marian","Elizabeth","Kathleen","Sayuri","Caroline","Judy"]],
|
||||
[TrainerType.RICH_KID]: [["Garret","Winston","Dawson","Enrique","Jason","Roman","Trey","Liam","Anthony","Brad","Cody","Manuel","Martin","Pierce","Rolan","Keenan","Filbert","Antoin","Cyus","Diek","Dugo","Flitz","Jurek","Lond","Perd","Quint","Basto","Benit","Brot","Denc","Guyit","Marcon","Perc","Puros","Roex","Sainz","Symin","Tark","Venak"],["Anette","Brianna","Cindy","Colleen","Daphne","Elizabeth","Naomi","Sarah","Charlotte","Gillian","Jacki","Lady","Melissa","Celeste","Colette","Elizandra","Isabel","Lynette","Magnolia","Sophie","Lina","Dulcie","Auro","Brin","Caril","Eloos","Gwin","Illa","Kowly","Rima","Ristin","Vesey","Brena","Deasy","Denslon","Kylet","Nemi","Rene","Sanol","Stouner","Sturk","Talmen","Zoila"]],
|
||||
[TrainerType.ROUGHNECK]: ["Camron","Corey","Gabriel","Isaiah","Jamal","Koji","Luke","Paxton","Raul","Zeek","Kirby","Chance","Dave","Fletcher","Johnny","Reese","Joey","Ricky","Silvester","Martin"],
|
||||
[TrainerType.SCIENTIST]: [["Jed","Marc","Mitch","Rich","Ross","Beau","Braydon","Connor","Ed","Ivan","Jerry","Jose","Joshua","Parker","Rodney","Taylor","Ted","Travis","Zackery","Darrius","Emilio","Fredrick","Shaun","Stefano","Travon","Daniel","Garett","Gregg","Linden","Lowell","Trenton","Dudley","Luke","Markus","Nathan","Orville","Randall","Ron","Ronald","Simon","Steve","William","Franklin","Clarke","Jacques","Terrance","Ernst","Justus","Ikaika","Jayson","Kyle","Reid","Tyrone","Adam","Albert","Alphonse","Cory","Donnie","Elton","Francis","Gordon","Herbert","Humphrey","Jordan","Julian","Keaton","Levi","Melvin","Murray","West","Craig","Coren","Dubik","Kotan","Lethco","Mante","Mort","Myron","Odlow","Ribek","Roeck","Vogi","Vonder","Zogo","Doimo","Doton","Durel","Hildon","Kukla","Messa","Nanot","Platen","Raburn","Reman","Acrod","Coffy","Elrok","Foss","Hardig","Hombol","Hospel","Kaller","Klots","Krilok","Limar","Loket","Mesak","Morbit","Newin","Orill","Tabor","Tekot"],["Blythe","Chan","Kathrine","Marie","Maria","Naoko","Samantha","Satomi","Shannon","Athena","Caroline","Lumi","Lumina","Marissa","Sonia"]],
|
||||
[TrainerType.SMASHER]: ["Aspen","Elena","Mari","Amy","Lizzy"],
|
||||
[TrainerType.SNOW_WORKER]: [["Braden","Brendon","Colin","Conrad","Dillan","Gary","Gerardo","Holden","Jackson","Mason","Quentin","Willy","Noel","Arnold","Brady","Brand","Cairn","Cliff","Don","Eddie","Felix","Filipe","Glenn","Gus","Heath","Matthew","Patton","Rich","Rob","Ryan","Scott","Shelby","Sterling","Tyler","Victor","Zack","Friedrich","Herman","Isaac","Leo","Maynard","Mitchell","Morgann","Nathan","Niel","Pasqual","Paul","Tavarius","Tibor","Dimitri","Narek","Yusif","Frank","Jeff","Vaclav","Ovid","Francis","Keith","Russel","Sangon","Toway","Bomber","Chean","Demit","Hubor","Kebile","Laber","Ordo","Retay","Ronix","Wagel","Dobit","Kaster","Lobel","Releo","Saken","Rustix"],["Georgia","Sandra","Yvonne"]],
|
||||
[TrainerType.STRIKER]: ["Marco","Roberto","Tony"],
|
||||
[TrainerType.SCHOOL_KID]: [["Alan","Billy","Chad","Danny","Dudley","Jack","Joe","Johnny","Kipp","Nate","Ricky","Tommy","Jerry","Paul","Ted","Chance","Esteban","Forrest","Harrison","Connor","Sherman","Torin","Travis","Al","Carter","Edgar","Jem","Sammy","Shane","Shayne","Alvin","Keston","Neil","Seymour","William","Carson","Clark","Nolan"],["Georgia","Karen","Meiko","Christine","Mackenzie","Tiera","Ann","Gina","Lydia","Marsha","Millie","Sally","Serena","Silvia","Alberta","Cassie","Mara","Rita","Georgie","Meena","Nitzel"]],
|
||||
[TrainerType.SWIMMER]: [["Berke","Cameron","Charlie","George","Harold","Jerome","Kirk","Mathew","Parker","Randall","Seth","Simon","Tucker","Austin","Barry","Chad","Cody","Darrin","David","Dean","Douglas","Franklin","Gilbert","Herman","Jack","Luis","Matthew","Reed","Richard","Rodney","Roland","Spencer","Stan","Tony","Clarence","Declan","Dominik","Harrison","Kevin","Leonardo","Nolen","Pete","Santiago","Axle","Braden","Finn","Garrett","Mymo","Reece","Samir","Toby","Adrian","Colton","Dillon","Erik","Evan","Francisco","Glenn","Kurt","Oscar","Ricardo","Sam","Sheltin","Troy","Vincent","Wade","Wesley","Duane","Elmo","Esteban","Frankie","Ronald","Tyson","Bart","Matt","Tim","Wright","Jeffery","Kyle","Alessandro","Estaban","Kieran","Ramses","Casey","Dakota","Jared","Kalani","Keoni","Lawrence","Logan","Robert","Roddy","Yasu","Derek","Jacob","Bruce","Clayton"],["Briana","Dawn","Denise","Diana","Elaine","Kara","Kaylee","Lori","Nicole","Nikki","Paula","Susie","Wendy","Alice","Beth","Beverly","Brenda","Dana","Debra","Grace","Jenny","Katie","Laurel","Linda","Missy","Sharon","Tanya","Tara","Tisha","Carlee","Imani","Isabelle","Kyla","Sienna","Abigail","Amara","Anya","Connie","Maria","Melissa","Nora","Shirley","Shania","Tiffany","Aubree","Cassandra","Claire","Crystal","Erica","Gabrielle","Haley","Jessica","Joanna","Lydia","Mallory","Mary","Miranda","Paige","Sophia","Vanessa","Chelan","Debbie","Joy","Kendra","Leona","Mina","Caroline","Joyce","Larissa","Rebecca","Tyra","Dara","Desiree","Kaoru","Ruth","Coral","Genevieve","Isla","Marissa","Romy","Sheryl","Alexandria","Alicia","Chelsea","Jade","Kelsie","Laura","Portia","Shelby","Sara","Tiare","Kyra","Natasha","Layla","Scarlett","Cora"]],
|
||||
[TrainerType.TWINS]: ["Amy & May","Jo & Zoe","Meg & Peg","Ann & Anne","Lea & Pia","Amy & Liv","Gina & Mia","Miu & Yuki","Tori & Tia","Eli & Anne","Jen & Kira","Joy & Meg","Kiri & Jan","Miu & Mia","Emma & Lil","Liv & Liz","Teri & Tia","Amy & Mimi","Clea & Gil","Day & Dani","Kay & Tia","Tori & Til","Saya & Aya","Emy & Lin","Kumi & Amy","Mayo & May","Ally & Amy","Lia & Lily","Rae & Ula","Sola & Ana","Tara & Val","Faith & Joy","Nana & Nina"],
|
||||
[TrainerType.VETERAN]: [["Armando","Brenden","Brian","Clayton","Edgar","Emanuel","Grant","Harlan","Terrell","Arlen","Chester","Hugo","Martell","Ray","Shaun","Abraham","Carter","Claude","Jerry","Lucius","Murphy","Rayne","Ron","Sinan","Sterling","Vincent","Zach","Gerard","Gilles","Louis","Timeo","Akira","Don","Eric","Harry","Leon","Roger","Angus","Aristo","Brone","Johnny"],["Julia","Karla","Kim","Sayuri","Tiffany","Cathy","Cecile","Chloris","Denae","Gina","Maya","Oriana","Portia","Rhona","Rosaline","Catrina","Inga","Trisha","Heather","Lynn","Sheri","Alonsa","Ella","Leticia","Kiara"]],
|
||||
[TrainerType.WAITER]: [["Bert","Clint","Maxwell","Lou"],["Kati","Aurora","Bonita","Flo","Tia","Jan","Olwen","Paget","Paula","Talia"]],
|
||||
[TrainerType.WORKER]: [["Braden","Brendon","Colin","Conrad","Dillan","Gary","Gerardo","Holden","Jackson","Mason","Quentin","Willy","Noel","Arnold","Brady","Brand","Cairn","Cliff","Don","Eddie","Felix","Filipe","Glenn","Gus","Heath","Matthew","Patton","Rich","Rob","Ryan","Scott","Shelby","Sterling","Tyler","Victor","Zack","Friedrich","Herman","Isaac","Leo","Maynard","Mitchell","Morgann","Nathan","Niel","Pasqual","Paul","Tavarius","Tibor","Dimitri","Narek","Yusif","Frank","Jeff","Vaclav","Ovid","Francis","Keith","Russel","Sangon","Toway","Bomber","Chean","Demit","Hubor","Kebile","Laber","Ordo","Retay","Ronix","Wagel","Dobit","Kaster","Lobel","Releo","Saken","Rustix"],["Georgia","Sandra","Yvonne"]],
|
||||
[TrainerType.YOUNGSTER]: [["Albert","Gordon","Ian","Jason","Jimmy","Mikey","Owen","Samuel","Warren","Allen","Ben","Billy","Calvin","Dillion","Eddie","Joey","Josh","Neal","Timmy","Tommy","Breyden","Deandre","Demetrius","Dillon","Jaylen","Johnson","Shigenobu","Chad","Cole","Cordell","Dan","Dave","Destin","Nash","Tyler","Yasu","Austin","Dallas","Darius","Donny","Jonathon","Logan","Michael","Oliver","Sebastian","Tristan","Wayne","Norman","Roland","Regis","Abe","Astor","Keita","Kenneth","Kevin","Kyle","Lester","Masao","Nicholas","Parker","Wes","Zachary","Cody","Henley","Jaye","Karl","Kenny","Masahiro","Pedro","Petey","Sinclair","Terrell","Waylon","Aidan","Anthony","David","Jacob","Jayden","Cutler","Ham","Caleb","Kai","Honus","Kenway","Bret","Chris","Cid","Dennis","Easton","Ken","Robby","Ronny","Shawn","Benjamin","Jake","Travis","Adan","Aday","Beltran","Elian","Hernan","Julen","Luka","Roi","Bernie","Dustin","Jonathan","Wyatt"],["Alice","Bridget","Carrie","Connie","Dana","Ellen","Krise","Laura","Linda","Michelle","Shannon","Andrea","Crissy","Janice","Robin","Sally","Tiana","Haley","Ali","Ann","Dalia","Dawn","Iris","Joana","Julia","Kay","Lisa","Megan","Mikaela","Miriam","Paige","Reli","Blythe","Briana","Caroline","Cassidy","Kaitlin","Madeline","Molly","Natalie","Samantha","Sarah","Cathy","Dye","Eri","Eva","Fey","Kara","Lurleen","Maki","Mali","Maya","Miki","Sibyl","Daya","Diana","Flo","Helia","Henrietta","Isabel","Mai","Persephone","Serena","Anna","Charlotte","Elin","Elsa","Lise","Sara","Suzette","Audrey","Emmy","Isabella","Madison","Rika","Rylee","Salla","Ellie","Alexandra","Amy","Lass","Brittany","Chel","Cindy","Dianne","Emily","Emma","Evelyn","Hana","Harleen","Hazel","Jocelyn","Katrina","Kimberly","Lina","Marge","Mila","Mizuki","Rena","Sal","Satoko","Summer","Tomoe","Vicky","Yue","Yumi","Lauren","Rei","Riley","Lois","Nancy","Tammy","Terry"]],
|
||||
[TrainerType.HEX_MANIAC]: ["Kindra","Patricia","Tammy","Tasha","Valerie","Alaina","Kathleen","Leah","Makie","Sylvia","Anina","Arachna","Carrie","Desdemona","Josette","Luna","Melanie","Osanna","Raziah"],
|
||||
[TrainerType.ACE_TRAINER]: [['Aaron','Allen','Blake','Brian','Gaven','Jake','Kevin','Mike','Nick','Paul','Ryan','Sean','Darin','Albert','Berke','Clyde','Edgar','George','Leroy','Owen','Parker','Randall','Ruben','Samuel','Vincent','Warren','Wilton','Zane','Alfred','Braxton','Felix','Gerald','Jonathan','Leonel','Marcel','Mitchell','Quincy','Roderick','Colby','Rolando','Yuji','Abel','Anton','Arthur','Cesar','Dalton','Dennis','Ernest','Garrett','Graham','Henry','Isaiah','Jonah','Jose','Keenan','Micah','Omar','Quinn','Rodolfo','Saul','Sergio','Skylar','Stefan','Zachery','Alton','Arabella','Bonita','Cal','Cody','French','Kobe','Paulo','Shaye','Austin','Beckett','Charlie','Corky','David','Dwayne','Elmer','Jesse','Jared','Johan','Jordan','Kipp','Lou','Terry','Tom','Webster','Billy','Doyle','Enzio','Geoff','Grant','Kelsey','Miguel','Pierce','Ray','Santino','Shel','Adelbert','Bence','Emil','Evan','Mathis','Maxim','Neil','Rico','Robbie','Theo','Viktor','Benedict','Cornelius','Hisato','Leopold','Neville','Vito','Chase','Cole','Hiroshi','Jackson','Jim','Kekoa','Makana','Yuki','Elwood','Seth','Alvin','Arjun','Arnold','Cameron','Carl','Carlton','Christopher','Dave','Dax','Dominic','Edmund','Finn','Fred','Garret','Grayson','Jace','Jaxson','Jay','Jirard','Johnson','Kayden','Kite','Louis','Mac','Marty','Percy','Raymond','Ronnie','Satch','Tim','Zach','Conner','Vince','Bedro','Boda','Botan','Daras','Dury','Herton','Rewn','Stum','Tock','Trilo','Berki','Cruik','Dazon','Desid','Dillot','Farfin','Forgon','Hebel','Morfon','Moril','Shadd','Vanhub','Bardo','Carben','Degin','Gorps','Klept','Lask','Malex','Mopar','Niled','Noxon','Teslor','Tetil'],['Beth','Carol','Cybil','Emma','Fran','Gwen','Irene','Jenn','Joyce','Kate','Kelly','Lois','Lola','Megan','Quinn','Reena','Cara','Alexa','Brooke','Caroline','Elaine','Hope','Jennifer','Jody','Julie','Lori','Mary','Michelle','Shannon','Wendy','Alexia','Alicia','Athena','Carolina','Cristin','Darcy','Dianne','Halle','Jazmyn','Katelynn','Keira','Marley','Allyson','Kathleen','Naomi','Alyssa','Ariana','Brandi','Breanna','Brenda','Brenna','Catherine','Clarice','Dana','Deanna','Destiny','Jamie','Jasmin','Kassandra','Laura','Maria','Mariah','Maya','Meagan','Mikayla','Monique','Natasha','Olivia','Sandra','Savannah','Sydney','Moira','Piper','Salma','Allison','Beverly','Cathy','Cheyenne','Clara','Dara','Eileen','Glinda','Junko','Lena','Lucille','Mariana','Olwen','Shanta','Stella','Angi','Belle','Chandra','Cora','Eve','Jacqueline','Jeanne','Juliet','Kathrine','Layla','Lucca','Melina','Miki','Nina','Sable','Shelly','Summer','Trish','Vicki','Alanza','Cordelia','Hilde','Imelda','Michele','Mireille','Claudia','Constance','Harriet','Honor','Melba','Portia','Alexis','Angela','Karla','Lindsey','Tori','Sheri','Jada','Kailee','Amanda','Annie','Kindra','Kyla','Sofia','Yvette','Becky','Flora','Gloria','Buna','Ferda','Lehan','Liqui','Lomen','Neira','Atilo','Detta','Gilly','Gosney','Levens','Moden','Rask','Rateis','Rosno','Tynan','Veron','Zoel','Cida','Dibsin','Dodin','Ebson','Equin','Flostin','Gabsen','Halsion','Hileon','Quelor','Rapeel','Roze','Tensin']],
|
||||
[TrainerType.ARTIST]: [['Ismael','William','Horton','Pierre','Zach','Gough','Salvador','Vincent','Duncan'],['Georgia']],
|
||||
[TrainerType.BACKERS]: [['Alf & Fred','Hawk & Dar','Joe & Ross','Les & Web','Masa & Yas','Stu & Art'],['Ai & Ciel','Ami & Eira','Cam & Abby','Fey & Sue','Kat & Phae','Kay & Ali','Ava & Aya','Cleo & Rio','May & Mal']],
|
||||
[TrainerType.BACKPACKER]: [['Alexander','Carlos','Herman','Jerome','Keane','Kelsey','Kiyo','Michael','Nate','Peter','Sam','Stephen','Talon','Terrance','Toru','Waylon','Boone','Clifford','Ivan','Kendall','Lowell','Randall','Reece','Roland','Shane','Walt','Farid','Heike','Joren','Lane','Roderick','Darnell','Deon','Emory','Graeme','Grayson','Ashley','Mikiko','Kiana','Perdy','Maria','Yuho','Peren','Barbara','Diane','Ruth','Aitor','Alex','Arturo','Asier','Jaime','Jonathan','Julio','Kevin','Kosuke','Lander','Markel','Mateo','Nil','Pau','Samuel'],['Anna','Corin','Elaine','Emi','Jill','Kumiko','Liz','Lois','Lora','Molly','Patty','Ruth','Vicki','Annie','Blossom','Clara','Eileen','Mae','Myra','Rachel','Tami']],
|
||||
[TrainerType.BAKER]: ['Chris','Jenn','Lilly'],
|
||||
[TrainerType.BEAUTY]: ['Cassie','Julia','Olivia','Samantha','Valerie','Victoria','Bridget','Connie','Jessica','Johanna','Melissa','Sheila','Shirley','Tiffany','Namiko','Thalia','Grace','Lola','Lori','Maura','Tamia','Cyndy','Devon','Gabriella','Harley','Lindsay','Nicola','Callie','Charlotte','Kassandra','December','Fleming','Nikola','Aimee','Anais','Brigitte','Cassandra','Andrea','Brittney','Carolyn','Krystal','Alexis','Alice','Aina','Anya','Arianna','Aubrey','Beverly','Camille','Beauty','Evette','Hansol','Haruka','Jill','Jo','Lana','Lois','Lucy','Mai','Nickie','Nicole','Prita','Rose','Shelly','Suzy','Tessa','Anita','Alissa','Rita','Cudsy','Eloff','Miru','Minot','Nevah','Niven','Ogoin'],
|
||||
[TrainerType.BIKER]: ['Charles','Dwayne','Glenn','Harris','Joel','Riley','Zeke','Alex','Billy','Ernest','Gerald','Hideo','Isaac','Jared','Jaren','Jaxon','Jordy','Lao','Lukas','Malik','Nikolas','Ricardo','Ruben','Virgil','William','Aiden','Dale','Dan','Jacob','Markey','Reese','Teddy','Theron','Jeremy','Morgann','Phillip','Philip','Stanley','Dillon'],
|
||||
[TrainerType.BLACK_BELT]: [['Kenji','Lao','Lung','Nob','Wai','Yoshi','Atsushi','Daisuke','Hideki','Hitoshi','Kiyo','Koichi','Koji','Yuji','Cristian','Rhett','Takao','Theodore','Zander','Aaron','Hugh','Mike','Nicolas','Shea','Takashi','Adam','Carl','Colby','Darren','David','Davon','Derek','Eddie','Gregory','Griffin','Jarrett','Jeffery','Kendal','Kyle','Luke','Miles','Nathaniel','Philip','Rafael','Ray','Ricky','Sean','Willie','Ander','Manford','Benjamin','Corey','Edward','Grant','Jay','Kendrew','Kentaro','Ryder','Teppei','Thomas','Tyrone','Andrey','Donny','Drago','Gordon','Grigor','Jeriel','Kenneth','Martell','Mathis','Rich','Rocky','Rodrigo','Wesley','Zachery','Alonzo','Cadoc','Gunnar','Igor','Killian','Markus','Ricardo','Yanis','Banting','Clayton','Duane','Earl','Greg','Roy','Terry','Tracy','Walter','Alvaro','Curtis','Francis','Ross','Brice','Cheng','Dudley','Eric','Kano','Masahiro','Randy','Ryuji','Steve','Tadashi','Wong','Yuen','Brian','Carter','Reece','Nick','Yang'],['Cora','Cyndy','Jill','Laura','Sadie','Tessa','Vivian','Aisha','Callie','Danielle','Helene','Jocelyn','Lilith','Paula','Reyna','Helen','Kelsey','Tyler','Amy','Chandra','Hillary','Janie','Lee','Maggie','Mikiko','Miriam','Sharon','Susie','Xiao','Alize','Azra','Brenda','Chalina','Chan','Glinda','Maki','Tia','Tiffany','Wendy','Andrea','Gabrielle','Gerardine','Hailey','Hedvig','Justine','Kinsey','Sigrid','Veronique','Tess']],
|
||||
[TrainerType.BREEDER]: [['Isaac','Myles','Salvadore','Albert','Kahlil','Eustace','Galen','Owen','Addison','Marcus','Foster','Cory','Glenn','Jay','Wesley','William','Adrian','Bradley','Jaime'],['Allison','Alize','Bethany','Lily','Lydia','Gabrielle','Jayden','Pat','Veronica','Amber','Jennifer','Kaylee','Adelaide','Brooke','Ethel','April','Irene','Magnolia','Amala','Mercy','Amanda','Ikue','Savannah','Yuka','Chloe','Debra','Denise','Elena']],
|
||||
[TrainerType.CLERK]: [['Chaz','Clemens','Doug','Fredric','Ivan','Isaac','Nelson','Wade','Warren','Augustin','Gilligan','Cody','Jeremy','Shane','Dugal','Royce','Ronald'],['Alberta','Ingrid','Katie','Piper','Trisha','Wren','Britney','Lana','Jessica','Kristen','Michelle','Gabrielle']],
|
||||
[TrainerType.CYCLIST]: [['Axel','James','John','Ryan','Hector','Jeremiah'],['Kayla','Megan','Nicole','Rachel','Krissa','Adelaide']],
|
||||
[TrainerType.DANCER]: ['Brian','Davey','Dirk','Edmond','Mickey','Raymond','Cara','Julia','Maika','Mireille','Ronda','Zoe'],
|
||||
[TrainerType.DEPOT_AGENT]: ['Josh','Hank','Vincent'],
|
||||
[TrainerType.DOCTOR]: [['Hank','Jerry','Jules','Logan','Wayne','Braid','Derek','Heath','Julius','Kit','Graham'],['Kirsten','Sachiko','Shery','Carol','Dixie','Mariah']],
|
||||
[TrainerType.FISHERMAN]: ['Andre','Arnold','Barney','Chris','Edgar','Henry','Jonah','Justin','Kyle','Martin','Marvin','Ralph','Raymond','Scott','Stephen','Wilton','Tully','Andrew','Barny','Carter','Claude','Dale','Elliot','Eugene','Ivan','Ned','Nolan','Roger','Ronald','Wade','Wayne','Darian','Kai','Chip','Hank','Kaden','Tommy','Tylor','Alec','Brett','Cameron','Cody','Cole','Cory','Erick','George','Joseph','Juan','Kenneth','Luc','Miguel','Travis','Walter','Zachary','Josh','Gideon','Kyler','Liam','Murphy','Bruce','Damon','Devon','Hubert','Jones','Lydon','Mick','Pete','Sean','Sid','Vince','Bucky','Dean','Eustace','Kenzo','Leroy','Mack','Ryder','Ewan','Finn','Murray','Seward','Shad','Wharton','Finley','Fisher','Fisk','River','Sheaffer','Timin','Carl','Ernest','Hal','Herbert','Hisato','Mike','Vernon','Harriet','Marina','Chase'],
|
||||
[TrainerType.GUITARIST]: ['Anna','Beverly','January','Tina','Alicia','Claudia','Julia','Lidia','Mireia','Noelia','Sara','Sheila','Tatiana'],
|
||||
[TrainerType.HARLEQUIN]: ['Charley','Ian','Jack','Kerry','Louis','Pat','Paul','Rick','Anders','Clarence','Gary'],
|
||||
[TrainerType.HIKER]: ['Anthony','Bailey','Benjamin','Daniel','Erik','Jim','Kenny','Leonard','Michael','Parry','Phillip','Russell','Sidney','Tim','Timothy','Alan','Brice','Clark','Eric','Lenny','Lucas','Mike','Trent','Devan','Eli','Marc','Sawyer','Allen','Daryl','Dudley','Earl','Franklin','Jeremy','Marcos','Nob','Oliver','Wayne','Alexander','Damon','Jonathan','Justin','Kevin','Lorenzo','Louis','Maurice','Nicholas','Reginald','Robert','Theodore','Bruce','Clarke','Devin','Dwight','Edwin','Eoin','Noland','Russel','Andy','Bret','Darrell','Gene','Hardy','Hugh','Jebediah','Jeremiah','Kit','Neil','Terrell','Don','Doug','Hunter','Jared','Jerome','Keith','Manuel','Markus','Otto','Shelby','Stephen','Teppei','Tobias','Wade','Zaiem','Aaron','Alain','Bergin','Bernard','Brent','Corwin','Craig','Delmon','Dunstan','Orestes','Ross','Davian','Calhoun','David','Gabriel','Ryan','Thomas','Travis','Zachary','Anuhea','Barnaby','Claus','Collin','Colson','Dexter','Dillan','Eugine','Farkas','Hisato','Julius','Kenji','Irwin','Lionel','Paul','Richter','Valentino','Donald','Douglas','Kevyn','Angela','Carla','Celia','Daniela','Estela','Fatima','Helena','Leire','Lucia','Luna','Manuela','Mar','Marina','Miyu','Nancy','Nerea','Paula','Rocio','Yanira','Chester'],
|
||||
[TrainerType.HOOLIGANS]: ['Jim & Cas','Rob & Sal'],
|
||||
[TrainerType.HOOPSTER]: ['Bobby','John','Lamarcus','Derrick','Nicolas'],
|
||||
[TrainerType.INFIELDER]: ['Alex','Connor','Todd'],
|
||||
[TrainerType.JANITOR]: ['Caleb','Geoff','Brady','Felix','Orville','Melvin','Shawn'],
|
||||
[TrainerType.LINEBACKER]: ['Bob','Dan','Jonah'],
|
||||
[TrainerType.MAID]: ['Belinda','Sophie','Emily','Elena','Clare','Alica','Tanya','Tammy'],
|
||||
[TrainerType.MUSICIAN]: ['Boris','Preston','Charles','Clyde','Vincent','Dalton','Kirk','Shawn','Fabian','Fernando','Joseph','Marcos','Arturo','Jerry','Lonnie','Tony'],
|
||||
[TrainerType.NURSERY_AIDE]: ['Autumn','Briana','Leah','Miho','Ethel','Hollie','Ilse','June','Kimya','Rosalyn'],
|
||||
[TrainerType.OFFICER]: ['Dirk','Keith','Alex','Bobby','Caleb','Danny','Dylan','Thomas','Daniel','Jeff','Braven','Dell','Neagle','Haruki','Mitchell','Raymond'],
|
||||
[TrainerType.PARASOL_LADY]: ['Angelica','Clarissa','Madeline','Akari','Annabell','Kayley','Rachel','Alexa','Sabrina','April','Gwyneth','Laura','Lumi','Mariah','Melita','Nicole','Tihana','Ingrid','Tyra'],
|
||||
[TrainerType.PILOT]: ['Chase','Leonard','Ted','Elron','Ewing','Flynn','Winslow'],
|
||||
[TrainerType.POKEFAN]: [['Alex','Allan','Brandon','Carter','Colin','Derek','Jeremy','Joshua','Rex','Robert','Trevor','William','Colton','Miguel','Francisco','Kaleb','Leonard','Boone','Elliot','Jude','Norbert','Corey','Gabe','Baxter'],['Beverly','Georgia','Jaime','Ruth','Isabel','Marissa','Vanessa','Annika','Bethany','Kimberly','Meredith','Rebekah','Eleanor','Darcy','Lydia','Sachiko','Abigail','Agnes','Lydie','Roisin','Tara','Carmen','Janet']],
|
||||
[TrainerType.PRESCHOOLER]: [['Billy','Doyle','Evan','Homer','Tully','Albert','Buster','Greg','Ike','Jojo','Tyrone','Adrian','Oliver','Hayden','Hunter','Kaleb','Liam','Dylan'],['Juliet','Mia','Sarah','Wendy','Winter','Chrissy','Eva','Lin','Samantha','Ella','Lily','Natalie','Ailey','Hannah','Malia','Kindra','Nancy']],
|
||||
[TrainerType.PSYCHIC]: [['Fidel','Franklin','Gilbert','Greg','Herman','Jared','Mark','Nathan','Norman','Phil','Richard','Rodney','Cameron','Edward','Fritz','Joshua','Preston','Virgil','William','Alvaro','Blake','Cedric','Keenan','Nicholas','Dario','Johan','Lorenzo','Tyron','Bryce','Corbin','Deandre','Elijah','Kody','Landon','Maxwell','Mitchell','Sterling','Eli','Nelson','Vernon','Gaven','Gerard','Low','Micki','Perry','Rudolf','Tommy','Al','Nandor','Tully','Arthur','Emanuel','Franz','Harry','Paschal','Robert','Sayid','Angelo','Anton','Arin','Avery','Danny','Frasier','Harrison','Jaime','Ross','Rui','Vlad','Mason'],['Alexis','Hannah','Jacki','Jaclyn','Kayla','Maura','Samantha','Alix','Brandi','Edie','Macey','Mariella','Marlene','Laura','Rodette','Abigail','Brittney','Chelsey','Daisy','Desiree','Kendra','Lindsey','Rachael','Valencia','Belle','Cybil','Doreen','Dua','Future','Lin','Madhu','Alia','Ena','Joyce','Lynette','Olesia','Sarah']],
|
||||
[TrainerType.RANGER]: [['Carlos','Jackson','Sebastian','Gav','Lorenzo','Logan','Nicolas','Trenton','Deshawn','Dwayne','Jeffery','Kyler','Taylor','Alain','Claude','Crofton','Forrest','Harry','Jaden','Keith','Lewis','Miguel','Pedro','Ralph','Richard','Bret','Daryl','Eddie','Johan','Leaf','Louis','Maxwell','Parker','Rick','Steve','Bjorn','Chaise','Dean','Lee','Maurice','Nash','Ralf','Reed','Shinobu','Silas'],['Catherine','Jenna','Sophia','Merdith','Nora','Beth','Chelsea','Katelyn','Madeline','Allison','Ashlee','Felicia','Krista','Annie','Audra','Brenda','Chloris','Eliza','Heidi','Irene','Mary','Mylene','Shanti','Shelly','Thalia','Anja','Briana','Dianna','Elaine','Elle','Hillary','Katie','Lena','Lois','Malory','Melita','Mikiko','Naoko','Serenity','Ambre','Brooke','Clementine','Melina','Petra','Twiggy']],
|
||||
[TrainerType.RICH]: [['Alfred','Edward','Gregory','Preston','Thomas','Tucker','Walter','Clifford','Everett','Micah','Nate','Pierre','Terrance','Arthur','Brooks','Emanuel','Lamar','Jeremy','Leonardo','Milton','Frederic','Renaud','Robert','Yan','Daniel','Sheldon','Stonewall','Gerald','Ronald','Smith','Stanley','Reginald','Orson','Wilco','Caden','Glenn'],['Rebecca','Reina','Cassandra','Emilia','Grace','Marian','Elizabeth','Kathleen','Sayuri','Caroline','Judy']],
|
||||
[TrainerType.RICH_KID]: [['Garret','Winston','Dawson','Enrique','Jason','Roman','Trey','Liam','Anthony','Brad','Cody','Manuel','Martin','Pierce','Rolan','Keenan','Filbert','Antoin','Cyus','Diek','Dugo','Flitz','Jurek','Lond','Perd','Quint','Basto','Benit','Brot','Denc','Guyit','Marcon','Perc','Puros','Roex','Sainz','Symin','Tark','Venak'],['Anette','Brianna','Cindy','Colleen','Daphne','Elizabeth','Naomi','Sarah','Charlotte','Gillian','Jacki','Lady','Melissa','Celeste','Colette','Elizandra','Isabel','Lynette','Magnolia','Sophie','Lina','Dulcie','Auro','Brin','Caril','Eloos','Gwin','Illa','Kowly','Rima','Ristin','Vesey','Brena','Deasy','Denslon','Kylet','Nemi','Rene','Sanol','Stouner','Sturk','Talmen','Zoila']],
|
||||
[TrainerType.ROUGHNECK]: ['Camron','Corey','Gabriel','Isaiah','Jamal','Koji','Luke','Paxton','Raul','Zeek','Kirby','Chance','Dave','Fletcher','Johnny','Reese','Joey','Ricky','Silvester','Martin'],
|
||||
[TrainerType.SCIENTIST]: [['Jed','Marc','Mitch','Rich','Ross','Beau','Braydon','Connor','Ed','Ivan','Jerry','Jose','Joshua','Parker','Rodney','Taylor','Ted','Travis','Zackery','Darrius','Emilio','Fredrick','Shaun','Stefano','Travon','Daniel','Garett','Gregg','Linden','Lowell','Trenton','Dudley','Luke','Markus','Nathan','Orville','Randall','Ron','Ronald','Simon','Steve','William','Franklin','Clarke','Jacques','Terrance','Ernst','Justus','Ikaika','Jayson','Kyle','Reid','Tyrone','Adam','Albert','Alphonse','Cory','Donnie','Elton','Francis','Gordon','Herbert','Humphrey','Jordan','Julian','Keaton','Levi','Melvin','Murray','West','Craig','Coren','Dubik','Kotan','Lethco','Mante','Mort','Myron','Odlow','Ribek','Roeck','Vogi','Vonder','Zogo','Doimo','Doton','Durel','Hildon','Kukla','Messa','Nanot','Platen','Raburn','Reman','Acrod','Coffy','Elrok','Foss','Hardig','Hombol','Hospel','Kaller','Klots','Krilok','Limar','Loket','Mesak','Morbit','Newin','Orill','Tabor','Tekot'],['Blythe','Chan','Kathrine','Marie','Maria','Naoko','Samantha','Satomi','Shannon','Athena','Caroline','Lumi','Lumina','Marissa','Sonia']],
|
||||
[TrainerType.SMASHER]: ['Aspen','Elena','Mari','Amy','Lizzy'],
|
||||
[TrainerType.SNOW_WORKER]: [['Braden','Brendon','Colin','Conrad','Dillan','Gary','Gerardo','Holden','Jackson','Mason','Quentin','Willy','Noel','Arnold','Brady','Brand','Cairn','Cliff','Don','Eddie','Felix','Filipe','Glenn','Gus','Heath','Matthew','Patton','Rich','Rob','Ryan','Scott','Shelby','Sterling','Tyler','Victor','Zack','Friedrich','Herman','Isaac','Leo','Maynard','Mitchell','Morgann','Nathan','Niel','Pasqual','Paul','Tavarius','Tibor','Dimitri','Narek','Yusif','Frank','Jeff','Vaclav','Ovid','Francis','Keith','Russel','Sangon','Toway','Bomber','Chean','Demit','Hubor','Kebile','Laber','Ordo','Retay','Ronix','Wagel','Dobit','Kaster','Lobel','Releo','Saken','Rustix'],['Georgia','Sandra','Yvonne']],
|
||||
[TrainerType.STRIKER]: ['Marco','Roberto','Tony'],
|
||||
[TrainerType.SCHOOL_KID]: [['Alan','Billy','Chad','Danny','Dudley','Jack','Joe','Johnny','Kipp','Nate','Ricky','Tommy','Jerry','Paul','Ted','Chance','Esteban','Forrest','Harrison','Connor','Sherman','Torin','Travis','Al','Carter','Edgar','Jem','Sammy','Shane','Shayne','Alvin','Keston','Neil','Seymour','William','Carson','Clark','Nolan'],['Georgia','Karen','Meiko','Christine','Mackenzie','Tiera','Ann','Gina','Lydia','Marsha','Millie','Sally','Serena','Silvia','Alberta','Cassie','Mara','Rita','Georgie','Meena','Nitzel']],
|
||||
[TrainerType.SWIMMER]: [['Berke','Cameron','Charlie','George','Harold','Jerome','Kirk','Mathew','Parker','Randall','Seth','Simon','Tucker','Austin','Barry','Chad','Cody','Darrin','David','Dean','Douglas','Franklin','Gilbert','Herman','Jack','Luis','Matthew','Reed','Richard','Rodney','Roland','Spencer','Stan','Tony','Clarence','Declan','Dominik','Harrison','Kevin','Leonardo','Nolen','Pete','Santiago','Axle','Braden','Finn','Garrett','Mymo','Reece','Samir','Toby','Adrian','Colton','Dillon','Erik','Evan','Francisco','Glenn','Kurt','Oscar','Ricardo','Sam','Sheltin','Troy','Vincent','Wade','Wesley','Duane','Elmo','Esteban','Frankie','Ronald','Tyson','Bart','Matt','Tim','Wright','Jeffery','Kyle','Alessandro','Estaban','Kieran','Ramses','Casey','Dakota','Jared','Kalani','Keoni','Lawrence','Logan','Robert','Roddy','Yasu','Derek','Jacob','Bruce','Clayton'],['Briana','Dawn','Denise','Diana','Elaine','Kara','Kaylee','Lori','Nicole','Nikki','Paula','Susie','Wendy','Alice','Beth','Beverly','Brenda','Dana','Debra','Grace','Jenny','Katie','Laurel','Linda','Missy','Sharon','Tanya','Tara','Tisha','Carlee','Imani','Isabelle','Kyla','Sienna','Abigail','Amara','Anya','Connie','Maria','Melissa','Nora','Shirley','Shania','Tiffany','Aubree','Cassandra','Claire','Crystal','Erica','Gabrielle','Haley','Jessica','Joanna','Lydia','Mallory','Mary','Miranda','Paige','Sophia','Vanessa','Chelan','Debbie','Joy','Kendra','Leona','Mina','Caroline','Joyce','Larissa','Rebecca','Tyra','Dara','Desiree','Kaoru','Ruth','Coral','Genevieve','Isla','Marissa','Romy','Sheryl','Alexandria','Alicia','Chelsea','Jade','Kelsie','Laura','Portia','Shelby','Sara','Tiare','Kyra','Natasha','Layla','Scarlett','Cora']],
|
||||
[TrainerType.TWINS]: ['Amy & May','Jo & Zoe','Meg & Peg','Ann & Anne','Lea & Pia','Amy & Liv','Gina & Mia','Miu & Yuki','Tori & Tia','Eli & Anne','Jen & Kira','Joy & Meg','Kiri & Jan','Miu & Mia','Emma & Lil','Liv & Liz','Teri & Tia','Amy & Mimi','Clea & Gil','Day & Dani','Kay & Tia','Tori & Til','Saya & Aya','Emy & Lin','Kumi & Amy','Mayo & May','Ally & Amy','Lia & Lily','Rae & Ula','Sola & Ana','Tara & Val','Faith & Joy','Nana & Nina'],
|
||||
[TrainerType.VETERAN]: [['Armando','Brenden','Brian','Clayton','Edgar','Emanuel','Grant','Harlan','Terrell','Arlen','Chester','Hugo','Martell','Ray','Shaun','Abraham','Carter','Claude','Jerry','Lucius','Murphy','Rayne','Ron','Sinan','Sterling','Vincent','Zach','Gerard','Gilles','Louis','Timeo','Akira','Don','Eric','Harry','Leon','Roger','Angus','Aristo','Brone','Johnny'],['Julia','Karla','Kim','Sayuri','Tiffany','Cathy','Cecile','Chloris','Denae','Gina','Maya','Oriana','Portia','Rhona','Rosaline','Catrina','Inga','Trisha','Heather','Lynn','Sheri','Alonsa','Ella','Leticia','Kiara']],
|
||||
[TrainerType.WAITER]: [['Bert','Clint','Maxwell','Lou'],['Kati','Aurora','Bonita','Flo','Tia','Jan','Olwen','Paget','Paula','Talia']],
|
||||
[TrainerType.WORKER]: [['Braden','Brendon','Colin','Conrad','Dillan','Gary','Gerardo','Holden','Jackson','Mason','Quentin','Willy','Noel','Arnold','Brady','Brand','Cairn','Cliff','Don','Eddie','Felix','Filipe','Glenn','Gus','Heath','Matthew','Patton','Rich','Rob','Ryan','Scott','Shelby','Sterling','Tyler','Victor','Zack','Friedrich','Herman','Isaac','Leo','Maynard','Mitchell','Morgann','Nathan','Niel','Pasqual','Paul','Tavarius','Tibor','Dimitri','Narek','Yusif','Frank','Jeff','Vaclav','Ovid','Francis','Keith','Russel','Sangon','Toway','Bomber','Chean','Demit','Hubor','Kebile','Laber','Ordo','Retay','Ronix','Wagel','Dobit','Kaster','Lobel','Releo','Saken','Rustix'],['Georgia','Sandra','Yvonne']],
|
||||
[TrainerType.YOUNGSTER]: [['Albert','Gordon','Ian','Jason','Jimmy','Mikey','Owen','Samuel','Warren','Allen','Ben','Billy','Calvin','Dillion','Eddie','Joey','Josh','Neal','Timmy','Tommy','Breyden','Deandre','Demetrius','Dillon','Jaylen','Johnson','Shigenobu','Chad','Cole','Cordell','Dan','Dave','Destin','Nash','Tyler','Yasu','Austin','Dallas','Darius','Donny','Jonathon','Logan','Michael','Oliver','Sebastian','Tristan','Wayne','Norman','Roland','Regis','Abe','Astor','Keita','Kenneth','Kevin','Kyle','Lester','Masao','Nicholas','Parker','Wes','Zachary','Cody','Henley','Jaye','Karl','Kenny','Masahiro','Pedro','Petey','Sinclair','Terrell','Waylon','Aidan','Anthony','David','Jacob','Jayden','Cutler','Ham','Caleb','Kai','Honus','Kenway','Bret','Chris','Cid','Dennis','Easton','Ken','Robby','Ronny','Shawn','Benjamin','Jake','Travis','Adan','Aday','Beltran','Elian','Hernan','Julen','Luka','Roi','Bernie','Dustin','Jonathan','Wyatt'],['Alice','Bridget','Carrie','Connie','Dana','Ellen','Krise','Laura','Linda','Michelle','Shannon','Andrea','Crissy','Janice','Robin','Sally','Tiana','Haley','Ali','Ann','Dalia','Dawn','Iris','Joana','Julia','Kay','Lisa','Megan','Mikaela','Miriam','Paige','Reli','Blythe','Briana','Caroline','Cassidy','Kaitlin','Madeline','Molly','Natalie','Samantha','Sarah','Cathy','Dye','Eri','Eva','Fey','Kara','Lurleen','Maki','Mali','Maya','Miki','Sibyl','Daya','Diana','Flo','Helia','Henrietta','Isabel','Mai','Persephone','Serena','Anna','Charlotte','Elin','Elsa','Lise','Sara','Suzette','Audrey','Emmy','Isabella','Madison','Rika','Rylee','Salla','Ellie','Alexandra','Amy','Lass','Brittany','Chel','Cindy','Dianne','Emily','Emma','Evelyn','Hana','Harleen','Hazel','Jocelyn','Katrina','Kimberly','Lina','Marge','Mila','Mizuki','Rena','Sal','Satoko','Summer','Tomoe','Vicky','Yue','Yumi','Lauren','Rei','Riley','Lois','Nancy','Tammy','Terry']],
|
||||
[TrainerType.HEX_MANIAC]: ['Kindra','Patricia','Tammy','Tasha','Valerie','Alaina','Kathleen','Leah','Makie','Sylvia','Anina','Arachna','Carrie','Desdemona','Josette','Luna','Melanie','Osanna','Raziah'],
|
||||
};
|
||||
|
||||
function fetchAndPopulateTrainerNames(url: string, parser: DOMParser, trainerNames: Set<string>, femaleTrainerNames: Set<string>, forceFemale: boolean = false) {
|
||||
|
@ -138,16 +138,16 @@ function fetchAndPopulateTrainerNames(url: string, parser: DOMParser, trainerNam
|
|||
const childIndex = elements.indexOf(t);
|
||||
return childIndex > startChildIndex && childIndex < endChildIndex;
|
||||
}).map(t => t as Element);
|
||||
console.log(url, tables)
|
||||
for (let table of tables) {
|
||||
console.log(url, tables);
|
||||
for (const table of tables) {
|
||||
const trainerRows = [...table.querySelectorAll('tr:not(:first-child)')].filter(r => r.children.length === 9);
|
||||
for (let row of trainerRows) {
|
||||
for (const row of trainerRows) {
|
||||
const nameCell = row.firstElementChild;
|
||||
const content = nameCell.innerHTML;
|
||||
if (content.indexOf(' <a ') > -1) {
|
||||
const female = /♀/.test(content);
|
||||
if (url === 'Twins')
|
||||
console.log(content)
|
||||
console.log(content);
|
||||
const nameMatch = />([a-z]+(?: & [a-z]+)?)<\/a>/i.exec(content);
|
||||
if (nameMatch)
|
||||
(female || forceFemale ? femaleTrainerNames : trainerNames).add(nameMatch[1].replace('&', '&'));
|
||||
|
|
|
@ -19,7 +19,7 @@ export enum Type {
|
|||
DARK,
|
||||
FAIRY,
|
||||
STELLAR
|
||||
};
|
||||
}
|
||||
|
||||
export type TypeDamageMultiplier = 0 | 0.125 | 0.25 | 0.5 | 1 | 2 | 4 | 8;
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import { Biome } from "./enums/biome";
|
||||
import { getPokemonMessage, getPokemonPrefix } from "../messages";
|
||||
import Pokemon from "../field/pokemon";
|
||||
import { Type } from "./type";
|
||||
import Move, { AttackMove } from "./move";
|
||||
import * as Utils from "../utils";
|
||||
import BattleScene from "../battle-scene";
|
||||
import { SuppressWeatherEffectAbAttr } from "./ability";
|
||||
import { TerrainType } from "./terrain";
|
||||
import i18next from "i18next";
|
||||
import { Biome } from './enums/biome';
|
||||
import { getPokemonMessage, getPokemonPrefix } from '../messages';
|
||||
import Pokemon from '../field/pokemon';
|
||||
import { Type } from './type';
|
||||
import Move, { AttackMove } from './move';
|
||||
import * as Utils from '../utils';
|
||||
import BattleScene from '../battle-scene';
|
||||
import { SuppressWeatherEffectAbAttr } from './ability';
|
||||
import { TerrainType } from './terrain';
|
||||
import i18next from 'i18next';
|
||||
|
||||
export enum WeatherType {
|
||||
NONE,
|
||||
|
@ -107,7 +107,7 @@ export class Weather {
|
|||
isEffectSuppressed(scene: BattleScene): boolean {
|
||||
const field = scene.getField(true);
|
||||
|
||||
for (let pokemon of field) {
|
||||
for (const pokemon of field) {
|
||||
let suppressWeatherEffectAbAttr = pokemon.getAbility().getAttrs(SuppressWeatherEffectAbAttr).find(() => true) as SuppressWeatherEffectAbAttr;
|
||||
if (!suppressWeatherEffectAbAttr)
|
||||
suppressWeatherEffectAbAttr = pokemon.hasPassive() ? pokemon.getPassiveAbility().getAttrs(SuppressWeatherEffectAbAttr).find(() => true) as SuppressWeatherEffectAbAttr : null;
|
||||
|
@ -233,7 +233,7 @@ export function getTerrainClearMessage(terrainType: TerrainType): string {
|
|||
|
||||
export function getTerrainBlockMessage(pokemon: Pokemon, terrainType: TerrainType): string {
|
||||
if (terrainType === TerrainType.MISTY)
|
||||
return getPokemonMessage(pokemon, ` surrounds itself with a protective mist!`);
|
||||
return getPokemonMessage(pokemon, ' surrounds itself with a protective mist!');
|
||||
return getPokemonMessage(pokemon, ` is protected by the ${Utils.toReadableString(TerrainType[terrainType])} Terrain!`);
|
||||
}
|
||||
|
||||
|
@ -367,7 +367,7 @@ export function getRandomWeatherType(arena: any /* Importing from arena causes a
|
|||
|
||||
const rand = Utils.randSeedInt(totalWeight);
|
||||
let w = 0;
|
||||
for (let weather of weatherPool) {
|
||||
for (const weather of weatherPool) {
|
||||
w += weather.weight;
|
||||
if (rand < w)
|
||||
return weather.weatherType;
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
||||
import { Phase } from "./phase";
|
||||
import BattleScene, { AnySound } from "./battle-scene";
|
||||
import * as Utils from "./utils";
|
||||
import { Mode } from "./ui/ui";
|
||||
import { EGG_SEED, Egg, GachaType, getLegendaryGachaSpeciesForTimestamp } from "./data/egg";
|
||||
import EggHatchSceneHandler from "./ui/egg-hatch-scene-handler";
|
||||
import { Species } from "./data/enums/species";
|
||||
import { PlayerPokemon } from "./field/pokemon";
|
||||
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
||||
import { achvs } from "./system/achv";
|
||||
import { pokemonPrevolutions } from "./data/pokemon-evolutions";
|
||||
import { EggTier } from "./data/enums/egg-type";
|
||||
import PokemonInfoContainer from "./ui/pokemon-info-container";
|
||||
import SoundFade from 'phaser3-rex-plugins/plugins/soundfade';
|
||||
import { Phase } from './phase';
|
||||
import BattleScene, { AnySound } from './battle-scene';
|
||||
import * as Utils from './utils';
|
||||
import { Mode } from './ui/ui';
|
||||
import { EGG_SEED, Egg, GachaType, getLegendaryGachaSpeciesForTimestamp } from './data/egg';
|
||||
import EggHatchSceneHandler from './ui/egg-hatch-scene-handler';
|
||||
import { Species } from './data/enums/species';
|
||||
import { PlayerPokemon } from './field/pokemon';
|
||||
import { getPokemonSpecies, speciesStarters } from './data/pokemon-species';
|
||||
import { achvs } from './system/achv';
|
||||
import { pokemonPrevolutions } from './data/pokemon-evolutions';
|
||||
import { EggTier } from './data/enums/egg-type';
|
||||
import PokemonInfoContainer from './ui/pokemon-info-container';
|
||||
|
||||
export class EggHatchPhase extends Phase {
|
||||
private egg: Egg;
|
||||
|
@ -83,7 +83,7 @@ export class EggHatchPhase extends Phase {
|
|||
this.eggHatchContainer.add(this.eggContainer);
|
||||
|
||||
const getPokemonSprite = () => {
|
||||
const ret = this.scene.add.sprite(this.eggHatchBg.displayWidth / 2, this.eggHatchBg.displayHeight / 2, `pkmn__sub`);
|
||||
const ret = this.scene.add.sprite(this.eggHatchBg.displayWidth / 2, this.eggHatchBg.displayHeight / 2, 'pkmn__sub');
|
||||
ret.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true });
|
||||
return ret;
|
||||
};
|
||||
|
@ -151,7 +151,7 @@ export class EggHatchPhase extends Phase {
|
|||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -196,7 +196,7 @@ export class EggHatchPhase extends Phase {
|
|||
onComplete: () => resolve()
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -312,8 +312,8 @@ export class EggHatchPhase extends Phase {
|
|||
|
||||
let f = 0;
|
||||
let yOffset = 0;
|
||||
let speed = 3 - Utils.randInt(8);
|
||||
let amp = 24 + Utils.randInt(32);
|
||||
const speed = 3 - Utils.randInt(8);
|
||||
const amp = 24 + Utils.randInt(32);
|
||||
|
||||
const particleTimer = this.scene.tweens.addCounter({
|
||||
repeat: -1,
|
||||
|
@ -386,14 +386,14 @@ export class EggHatchPhase extends Phase {
|
|||
|
||||
const ignoredSpecies = [ Species.PHIONE, Species.MANAPHY, Species.ETERNATUS ];
|
||||
|
||||
let speciesPool = Object.keys(speciesStarters)
|
||||
const speciesPool = Object.keys(speciesStarters)
|
||||
.filter(s => speciesStarters[s] >= minStarterValue && speciesStarters[s] <= maxStarterValue)
|
||||
.map(s => parseInt(s) as Species)
|
||||
.filter(s => !pokemonPrevolutions.hasOwnProperty(s) && getPokemonSpecies(s).isObtainable() && ignoredSpecies.indexOf(s) === -1);
|
||||
|
||||
let totalWeight = 0;
|
||||
const speciesWeights = [];
|
||||
for (let speciesId of speciesPool) {
|
||||
for (const speciesId of speciesPool) {
|
||||
let weight = Math.floor((((maxStarterValue - speciesStarters[speciesId]) / ((maxStarterValue - minStarterValue) + 1)) * 1.5 + 1) * 100);
|
||||
const species = getPokemonSpecies(speciesId);
|
||||
if (species.isRegional())
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
||||
import { Phase } from "./phase";
|
||||
import BattleScene from "./battle-scene";
|
||||
import { SpeciesFormEvolution } from "./data/pokemon-evolutions";
|
||||
import EvolutionSceneHandler from "./ui/evolution-scene-handler";
|
||||
import * as Utils from "./utils";
|
||||
import { Mode } from "./ui/ui";
|
||||
import { LearnMovePhase } from "./phases";
|
||||
import { cos, sin } from "./field/anims";
|
||||
import { PlayerPokemon } from "./field/pokemon";
|
||||
import { getTypeRgb } from "./data/type";
|
||||
import i18next from "i18next";
|
||||
import SoundFade from 'phaser3-rex-plugins/plugins/soundfade';
|
||||
import { Phase } from './phase';
|
||||
import BattleScene from './battle-scene';
|
||||
import { SpeciesFormEvolution } from './data/pokemon-evolutions';
|
||||
import EvolutionSceneHandler from './ui/evolution-scene-handler';
|
||||
import * as Utils from './utils';
|
||||
import { Mode } from './ui/ui';
|
||||
import { LearnMovePhase } from './phases';
|
||||
import { cos, sin } from './field/anims';
|
||||
import { PlayerPokemon } from './field/pokemon';
|
||||
import { getTypeRgb } from './data/type';
|
||||
import i18next from 'i18next';
|
||||
|
||||
export class EvolutionPhase extends Phase {
|
||||
protected pokemon: PlayerPokemon;
|
||||
|
@ -73,7 +73,7 @@ export class EvolutionPhase extends Phase {
|
|||
this.evolutionContainer.add(this.evolutionBgOverlay);
|
||||
|
||||
const getPokemonSprite = () => {
|
||||
const ret = this.scene.addPokemonSprite(this.pokemon, this.evolutionBaseBg.displayWidth / 2, this.evolutionBaseBg.displayHeight / 2, `pkmn__sub`);
|
||||
const ret = this.scene.addPokemonSprite(this.pokemon, this.evolutionBaseBg.displayWidth / 2, this.evolutionBaseBg.displayHeight / 2, 'pkmn__sub');
|
||||
ret.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true });
|
||||
return ret;
|
||||
};
|
||||
|
@ -217,7 +217,7 @@ export class EvolutionPhase extends Phase {
|
|||
|
||||
this.pokemon.evolve(this.evolution).then(() => {
|
||||
const levelMoves = this.pokemon.getLevelMoves(this.lastLevel + 1, true);
|
||||
for (let lm of levelMoves)
|
||||
for (const lm of levelMoves)
|
||||
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.scene.getParty().indexOf(this.pokemon), lm[1]));
|
||||
this.scene.unshiftPhase(new EndEvolutionPhase(this.scene));
|
||||
|
||||
|
@ -266,7 +266,7 @@ export class EvolutionPhase extends Phase {
|
|||
});
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -485,8 +485,8 @@ export class EvolutionPhase extends Phase {
|
|||
|
||||
let f = 0;
|
||||
let yOffset = 0;
|
||||
let speed = 3 - Utils.randInt(8);
|
||||
let amp = 48 + Utils.randInt(64);
|
||||
const speed = 3 - Utils.randInt(8);
|
||||
const amp = 48 + Utils.randInt(64);
|
||||
|
||||
const particleTimer = this.scene.tweens.addCounter({
|
||||
repeat: -1,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import BattleScene from "../battle-scene";
|
||||
import { PokeballType } from "../data/pokeball";
|
||||
import * as Utils from "../utils";
|
||||
import BattleScene from '../battle-scene';
|
||||
import { PokeballType } from '../data/pokeball';
|
||||
import * as Utils from '../utils';
|
||||
|
||||
export function addPokeballOpenParticles(scene: BattleScene, x: number, y: number, pokeballType: PokeballType): void {
|
||||
switch (pokeballType) {
|
||||
|
@ -66,7 +66,7 @@ function doDefaultPbOpenParticles(scene: BattleScene, x: number, y: number, radi
|
|||
}
|
||||
|
||||
function doUbOpenParticles(scene: BattleScene, x: number, y: number, frameIndex: integer) {
|
||||
let particles: Phaser.GameObjects.Image[] = [];
|
||||
const particles: Phaser.GameObjects.Image[] = [];
|
||||
for (let i = 0; i < 10; i++)
|
||||
particles.push(doFanOutParticle(scene, i * 25, x, y, 1, 1, 5, frameIndex));
|
||||
|
||||
|
@ -77,14 +77,14 @@ function doUbOpenParticles(scene: BattleScene, x: number, y: number, frameIndex:
|
|||
alpha: 0,
|
||||
ease: 'Sine.easeIn',
|
||||
onComplete: () => {
|
||||
for (let particle of particles)
|
||||
for (const particle of particles)
|
||||
particle.destroy();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function doMbOpenParticles(scene: BattleScene, x: number, y: number) {
|
||||
let particles: Phaser.GameObjects.Image[] = [];
|
||||
const particles: Phaser.GameObjects.Image[] = [];
|
||||
for (let j = 0; j < 2; j++) {
|
||||
for (let i = 0; i < 8; i++)
|
||||
particles.push(doFanOutParticle(scene, i * 32, x, y, j ? 1 : 2, j ? 2 : 1, 8, 4));
|
||||
|
@ -96,7 +96,7 @@ function doMbOpenParticles(scene: BattleScene, x: number, y: number) {
|
|||
alpha: 0,
|
||||
ease: 'Sine.easeIn',
|
||||
onComplete: () => {
|
||||
for (let particle of particles)
|
||||
for (const particle of particles)
|
||||
particle.destroy();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
import BattleScene from "../battle-scene";
|
||||
import { BiomePoolTier, PokemonPools, BiomeTierTrainerPools, biomePokemonPools, biomeTrainerPools } from "../data/biomes";
|
||||
import { Biome } from "../data/enums/biome";
|
||||
import * as Utils from "../utils";
|
||||
import PokemonSpecies, { getPokemonSpecies } from "../data/pokemon-species";
|
||||
import { Species } from "../data/enums/species";
|
||||
import { Weather, WeatherType, getTerrainClearMessage, getTerrainStartMessage, getWeatherClearMessage, getWeatherStartMessage } from "../data/weather";
|
||||
import { CommonAnimPhase, WeatherEffectPhase } from "../phases";
|
||||
import { CommonAnim } from "../data/battle-anims";
|
||||
import { Type } from "../data/type";
|
||||
import Move from "../data/move";
|
||||
import { ArenaTag, ArenaTagSide, getArenaTag } from "../data/arena-tag";
|
||||
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
||||
import { TrainerType } from "../data/enums/trainer-type";
|
||||
import { BattlerIndex } from "../battle";
|
||||
import { Moves } from "../data/enums/moves";
|
||||
import { TimeOfDay } from "../data/enums/time-of-day";
|
||||
import { Terrain, TerrainType } from "../data/terrain";
|
||||
import { PostTerrainChangeAbAttr, PostWeatherChangeAbAttr, applyPostTerrainChangeAbAttrs, applyPostWeatherChangeAbAttrs } from "../data/ability";
|
||||
import Pokemon from "./pokemon";
|
||||
import BattleScene from '../battle-scene';
|
||||
import { BiomePoolTier, PokemonPools, BiomeTierTrainerPools, biomePokemonPools, biomeTrainerPools } from '../data/biomes';
|
||||
import { Biome } from '../data/enums/biome';
|
||||
import * as Utils from '../utils';
|
||||
import PokemonSpecies, { getPokemonSpecies } from '../data/pokemon-species';
|
||||
import { Species } from '../data/enums/species';
|
||||
import { Weather, WeatherType, getTerrainClearMessage, getTerrainStartMessage, getWeatherClearMessage, getWeatherStartMessage } from '../data/weather';
|
||||
import { CommonAnimPhase, WeatherEffectPhase } from '../phases';
|
||||
import { CommonAnim } from '../data/battle-anims';
|
||||
import { Type } from '../data/type';
|
||||
import Move from '../data/move';
|
||||
import { ArenaTag, ArenaTagSide, getArenaTag } from '../data/arena-tag';
|
||||
import { ArenaTagType } from '../data/enums/arena-tag-type';
|
||||
import { TrainerType } from '../data/enums/trainer-type';
|
||||
import { BattlerIndex } from '../battle';
|
||||
import { Moves } from '../data/enums/moves';
|
||||
import { TimeOfDay } from '../data/enums/time-of-day';
|
||||
import { Terrain, TerrainType } from '../data/terrain';
|
||||
import { PostTerrainChangeAbAttr, PostWeatherChangeAbAttr, applyPostTerrainChangeAbAttrs, applyPostWeatherChangeAbAttrs } from '../data/ability';
|
||||
import Pokemon from './pokemon';
|
||||
import * as Overrides from '../overrides';
|
||||
|
||||
export class Arena {
|
||||
|
@ -58,7 +58,7 @@ export class Arena {
|
|||
const timeOfDay = this.getTimeOfDay();
|
||||
if (timeOfDay !== this.lastTimeOfDay) {
|
||||
this.pokemonPool = {};
|
||||
for (let tier of Object.keys(biomePokemonPools[this.biomeType]))
|
||||
for (const tier of Object.keys(biomePokemonPools[this.biomeType]))
|
||||
this.pokemonPool[tier] = Object.assign([], biomePokemonPools[this.biomeType][tier][TimeOfDay.ALL]).concat(biomePokemonPools[this.biomeType][tier][timeOfDay]);
|
||||
this.lastTimeOfDay = timeOfDay;
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ export class Arena {
|
|||
randomTrainerType(waveIndex: integer): TrainerType {
|
||||
const isBoss = !!this.trainerPool[BiomePoolTier.BOSS].length
|
||||
&& this.scene.gameMode.isTrainerBoss(waveIndex, this.biomeType, this.scene.offsetGym);
|
||||
console.log(isBoss, this.trainerPool)
|
||||
console.log(isBoss, this.trainerPool);
|
||||
const tierValue = Utils.randSeedInt(!isBoss ? 512 : 64);
|
||||
let tier = !isBoss
|
||||
? tierValue >= 156 ? BiomePoolTier.COMMON : tierValue >= 32 ? BiomePoolTier.UNCOMMON : tierValue >= 6 ? BiomePoolTier.RARE : tierValue >= 1 ? BiomePoolTier.SUPER_RARE : BiomePoolTier.ULTRA_RARE
|
||||
|
@ -276,7 +276,7 @@ export class Arena {
|
|||
this.weather = new Weather(weather, 0);
|
||||
this.scene.unshiftPhase(new CommonAnimPhase(this.scene, undefined, undefined, CommonAnim.SUNNY + (weather - 1)));
|
||||
this.scene.queueMessage(getWeatherStartMessage(weather));
|
||||
return true
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -709,7 +709,7 @@ export class ArenaBase extends Phaser.GameObjects.Container {
|
|||
this.base.setTexture(baseKey);
|
||||
|
||||
if (this.base.texture.frameTotal > 1) {
|
||||
const baseFrameNames = this.scene.anims.generateFrameNames(baseKey, { zeroPad: 4, suffix: ".png", start: 1, end: this.base.texture.frameTotal - 1 });
|
||||
const baseFrameNames = this.scene.anims.generateFrameNames(baseKey, { zeroPad: 4, suffix: '.png', start: 1, end: this.base.texture.frameTotal - 1 });
|
||||
this.scene.anims.create({
|
||||
key: baseKey,
|
||||
frames: baseFrameNames,
|
||||
|
@ -733,7 +733,7 @@ export class ArenaBase extends Phaser.GameObjects.Container {
|
|||
prop.setTexture(propKey);
|
||||
|
||||
if (hasProps && prop.texture.frameTotal > 1) {
|
||||
const propFrameNames = this.scene.anims.generateFrameNames(propKey, { zeroPad: 4, suffix: ".png", start: 1, end: prop.texture.frameTotal - 1 });
|
||||
const propFrameNames = this.scene.anims.generateFrameNames(propKey, { zeroPad: 4, suffix: '.png', start: 1, end: prop.texture.frameTotal - 1 });
|
||||
this.scene.anims.create({
|
||||
key: propKey,
|
||||
frames: propFrameNames,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { TextStyle, addTextObject } from "../ui/text";
|
||||
import Pokemon, { DamageResult, HitResult } from "./pokemon";
|
||||
import * as Utils from "../utils";
|
||||
import { BattlerIndex } from "../battle";
|
||||
import { TextStyle, addTextObject } from '../ui/text';
|
||||
import Pokemon, { DamageResult, HitResult } from './pokemon';
|
||||
import * as Utils from '../utils';
|
||||
import { BattlerIndex } from '../battle';
|
||||
|
||||
export default class DamageNumberHandler {
|
||||
private damageNumbers: Map<BattlerIndex, Phaser.GameObjects.Text[]>;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import BattleScene from "../battle-scene";
|
||||
import Pokemon from "./pokemon";
|
||||
import * as Utils from "../utils";
|
||||
import BattleScene from '../battle-scene';
|
||||
import Pokemon from './pokemon';
|
||||
import * as Utils from '../utils';
|
||||
|
||||
export default class PokemonSpriteSparkleHandler {
|
||||
private sprites: Set<Phaser.GameObjects.Sprite>;
|
||||
|
@ -20,7 +20,7 @@ export default class PokemonSpriteSparkleHandler {
|
|||
|
||||
onLapse(): void {
|
||||
Array.from(this.sprites.values()).filter(s => !s.scene).map(s => this.sprites.delete(s));
|
||||
for (let s of this.sprites.values()) {
|
||||
for (const s of this.sprites.values()) {
|
||||
if (!s.pipelineData['teraColor'] || !(s.pipelineData['teraColor'] as number[]).find(c => c))
|
||||
continue;
|
||||
if (!s.visible || (s.parentContainer instanceof Pokemon && !s.parentContainer.parentContainer))
|
||||
|
@ -47,7 +47,7 @@ export default class PokemonSpriteSparkleHandler {
|
|||
add(sprites: Phaser.GameObjects.Sprite | Phaser.GameObjects.Sprite[]): void {
|
||||
if (!Array.isArray(sprites))
|
||||
sprites = [ sprites ];
|
||||
for (let s of sprites) {
|
||||
for (const s of sprites) {
|
||||
if (this.sprites.has(s))
|
||||
continue;
|
||||
this.sprites.add(s);
|
||||
|
@ -57,13 +57,13 @@ export default class PokemonSpriteSparkleHandler {
|
|||
remove(sprites: Phaser.GameObjects.Sprite | Phaser.GameObjects.Sprite[]): void {
|
||||
if (!Array.isArray(sprites))
|
||||
sprites = [ sprites ];
|
||||
for (let s of sprites) {
|
||||
for (const s of sprites) {
|
||||
this.sprites.delete(s);
|
||||
}
|
||||
}
|
||||
|
||||
removeAll(): void {
|
||||
for (let s of this.sprites.values())
|
||||
for (const s of this.sprites.values())
|
||||
this.sprites.delete(s);
|
||||
}
|
||||
}
|
|
@ -3,8 +3,8 @@ import BattleScene, { AnySound } from '../battle-scene';
|
|||
import { Variant, VariantSet, variantColorCache } from '#app/data/variant';
|
||||
import { variantData } from '#app/data/variant';
|
||||
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
|
||||
import { Moves } from "../data/enums/moves";
|
||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit } from "../data/move";
|
||||
import { Moves } from '../data/enums/moves';
|
||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit } from '../data/move';
|
||||
import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species';
|
||||
import * as Utils from '../utils';
|
||||
import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from '../data/type';
|
||||
|
@ -20,18 +20,18 @@ import { reverseCompatibleTms, tmSpecies, tmPoolTiers } from '../data/tms';
|
|||
import { DamagePhase, FaintPhase, LearnMovePhase, ObtainStatusEffectPhase, StatChangePhase, SwitchPhase, SwitchSummonPhase, ToggleDoublePositionPhase } from '../phases';
|
||||
import { BattleStat } from '../data/battle-stat';
|
||||
import { BattlerTag, BattlerTagLapseType, EncoreTag, HelpingHandTag, HighestStatBoostTag, TypeBoostTag, getBattlerTag } from '../data/battler-tags';
|
||||
import { BattlerTagType } from "../data/enums/battler-tag-type";
|
||||
import { BattlerTagType } from '../data/enums/battler-tag-type';
|
||||
import { Species } from '../data/enums/species';
|
||||
import { WeatherType } from '../data/weather';
|
||||
import { TempBattleStat } from '../data/temp-battle-stat';
|
||||
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/arena-tag';
|
||||
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
||||
import { Biome } from "../data/enums/biome";
|
||||
import { ArenaTagType } from '../data/enums/arena-tag-type';
|
||||
import { Biome } from '../data/enums/biome';
|
||||
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr } from '../data/ability';
|
||||
import { Abilities } from "#app/data/enums/abilities";
|
||||
import { Abilities } from '#app/data/enums/abilities';
|
||||
import PokemonData from '../system/pokemon-data';
|
||||
import Battle, { BattlerIndex } from '../battle';
|
||||
import { BattleSpec } from "../enums/battle-spec";
|
||||
import { BattleSpec } from '../enums/battle-spec';
|
||||
import { Mode } from '../ui/ui';
|
||||
import PartyUiHandler, { PartyOption, PartyUiMode } from '../ui/party-ui-handler';
|
||||
import SoundFade from 'phaser3-rex-plugins/plugins/soundfade';
|
||||
|
@ -301,7 +301,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const originalWarn = console.warn;
|
||||
// Ignore warnings for missing frames, because there will be a lot
|
||||
console.warn = () => {};
|
||||
const battleFrameNames = this.scene.anims.generateFrameNames(this.getBattleSpriteKey(), { zeroPad: 4, suffix: ".png", start: 1, end: 400 });
|
||||
const battleFrameNames = this.scene.anims.generateFrameNames(this.getBattleSpriteKey(), { zeroPad: 4, suffix: '.png', start: 1, end: 400 });
|
||||
console.warn = originalWarn;
|
||||
this.scene.anims.create({
|
||||
key: this.getBattleSpriteKey(),
|
||||
|
@ -336,7 +336,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
console.error(`Could not load ${res.url}!`);
|
||||
return;
|
||||
}
|
||||
return res.json()
|
||||
return res.json();
|
||||
}).then(c => {
|
||||
variantColorCache[key] = c;
|
||||
resolve();
|
||||
|
@ -555,8 +555,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
|
||||
const newOffset = this.getFieldPositionOffset();
|
||||
|
||||
let relX = newOffset[0] - initialOffset[0];
|
||||
let relY = newOffset[1] - initialOffset[1];
|
||||
const relX = newOffset[0] - initialOffset[0];
|
||||
const relY = newOffset[1] - initialOffset[1];
|
||||
|
||||
if (duration) {
|
||||
this.scene.tweens.add({
|
||||
|
@ -654,9 +654,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
}
|
||||
this.scene.applyModifiers(PokemonBaseStatModifier, this.isPlayer(), this, baseStats);
|
||||
const stats = Utils.getEnumValues(Stat);
|
||||
for (let s of stats) {
|
||||
for (const s of stats) {
|
||||
const isHp = s === Stat.HP;
|
||||
let baseStat = baseStats[s];
|
||||
const baseStat = baseStats[s];
|
||||
let value = Math.floor(((2 * baseStat + this.ivs[s]) * this.level) * 0.01);
|
||||
if (isHp) {
|
||||
value = value + this.level + 10;
|
||||
|
@ -762,7 +762,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
if (overrideArray.length > 0) {
|
||||
overrideArray.forEach((move: Moves, index: number) => {
|
||||
const ppUsed = this.moveset[index]?.ppUsed || 0;
|
||||
this.moveset[index] = new PokemonMove(move, Math.min(ppUsed, allMoves[move].pp))
|
||||
this.moveset[index] = new PokemonMove(move, Math.min(ppUsed, allMoves[move].pp));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1025,7 +1025,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
getEvolution(): SpeciesFormEvolution {
|
||||
if (pokemonEvolutions.hasOwnProperty(this.species.speciesId)) {
|
||||
const evolutions = pokemonEvolutions[this.species.speciesId];
|
||||
for (let e of evolutions) {
|
||||
for (const e of evolutions) {
|
||||
if (!e.item && this.level >= e.level && (!e.preFormKey || this.getFormKey() === e.preFormKey)) {
|
||||
if (e.condition === null || (e.condition as SpeciesEvolutionCondition).predicate(this))
|
||||
return e;
|
||||
|
@ -1035,7 +1035,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
|
||||
if (this.isFusion() && pokemonEvolutions.hasOwnProperty(this.fusionSpecies.speciesId)) {
|
||||
const fusionEvolutions = pokemonEvolutions[this.fusionSpecies.speciesId].map(e => new FusionSpeciesFormEvolution(this.species.speciesId, e));
|
||||
for (let fe of fusionEvolutions) {
|
||||
for (const fe of fusionEvolutions) {
|
||||
if (!fe.item && this.level >= fe.level && (!fe.preFormKey || this.getFusionFormKey() === fe.preFormKey)) {
|
||||
if (fe.condition === null || (fe.condition as SpeciesEvolutionCondition).predicate(this))
|
||||
return fe;
|
||||
|
@ -1077,7 +1077,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
while (fusionLevelMoves.length && fusionLevelMoves[0][0] < startingLevel)
|
||||
fusionLevelMoves.shift();
|
||||
if (includeEvolutionMoves) {
|
||||
for (let elm of evolutionLevelMoves.reverse())
|
||||
for (const elm of evolutionLevelMoves.reverse())
|
||||
levelMoves.unshift(elm);
|
||||
}
|
||||
for (let l = includeEvolutionMoves ? 0 : startingLevel; l <= this.level; l++) {
|
||||
|
@ -1097,7 +1097,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
levelMoves = newLevelMoves;
|
||||
}
|
||||
if (levelMoves) {
|
||||
for (let lm of levelMoves) {
|
||||
for (const lm of levelMoves) {
|
||||
const level = lm[0];
|
||||
if ((!includeEvolutionMoves || level) && level < startingLevel)
|
||||
continue;
|
||||
|
@ -1124,7 +1124,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const E = this.scene.gameData.trainerId ^ this.scene.gameData.secretId;
|
||||
const F = rand1 ^ rand2;
|
||||
|
||||
let shinyThreshold = new Utils.IntegerHolder(32);
|
||||
const shinyThreshold = new Utils.IntegerHolder(32);
|
||||
if (thresholdOverride === undefined) {
|
||||
if (!this.hasTrainer()) {
|
||||
if (new Date() < new Date(Date.UTC(2024, 4, 22, 0)))
|
||||
|
@ -1171,7 +1171,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
&& !species.legendary
|
||||
&& !species.mythical
|
||||
&& !species.isTrainerForbidden()
|
||||
&& species.speciesId !== this.species.speciesId
|
||||
&& species.speciesId !== this.species.speciesId;
|
||||
};
|
||||
|
||||
this.fusionSpecies = this.scene.randomSpecies(this.scene.currentBattle?.waveIndex || 0, this.level, false, filter, true);
|
||||
|
@ -1234,10 +1234,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
|
||||
if (this.hasTrainer()) {
|
||||
const tms = Object.keys(tmSpecies);
|
||||
for (let tm of tms) {
|
||||
for (const tm of tms) {
|
||||
const moveId = parseInt(tm) as Moves;
|
||||
let compatible = false;
|
||||
for (let p of tmSpecies[tm]) {
|
||||
for (const p of tmSpecies[tm]) {
|
||||
if (Array.isArray(p)) {
|
||||
if (p[0] === this.species.speciesId || (this.fusionSpecies && p[0] === this.fusionSpecies.speciesId) && p.slice(1).indexOf(this.species.forms[this.formIndex]) > -1) {
|
||||
compatible = true;
|
||||
|
@ -1450,7 +1450,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
apply(source: Pokemon, battlerMove: PokemonMove): HitResult {
|
||||
let result: HitResult;
|
||||
const move = battlerMove.getMove();
|
||||
let damage = new Utils.NumberHolder(0);
|
||||
const damage = new Utils.NumberHolder(0);
|
||||
const defendingSidePlayField = this.isPlayer() ? this.scene.getPlayerField() : this.scene.getEnemyField();
|
||||
|
||||
const variableCategory = new Utils.IntegerHolder(move.category);
|
||||
|
@ -1502,7 +1502,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
if (cancelled.value)
|
||||
result = HitResult.NO_EFFECT;
|
||||
else {
|
||||
let typeBoost = source.findTag(t => t instanceof TypeBoostTag && (t as TypeBoostTag).boostedType === type) as TypeBoostTag;
|
||||
const typeBoost = source.findTag(t => t instanceof TypeBoostTag && (t as TypeBoostTag).boostedType === type) as TypeBoostTag;
|
||||
if (typeBoost) {
|
||||
power.value *= typeBoost.boostValue;
|
||||
if (typeBoost.oneUse) {
|
||||
|
@ -1559,7 +1559,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const isTypeImmune = (typeMultiplier.value * arenaAttackTypeMultiplier.value) === 0;
|
||||
const sourceTypes = source.getTypes();
|
||||
const matchesSourceType = sourceTypes[0] === type || (sourceTypes.length > 1 && sourceTypes[1] === type);
|
||||
let stabMultiplier = new Utils.NumberHolder(1);
|
||||
const stabMultiplier = new Utils.NumberHolder(1);
|
||||
if (sourceTeraType === Type.UNKNOWN && matchesSourceType)
|
||||
stabMultiplier.value += 0.5;
|
||||
else if (sourceTeraType !== Type.UNKNOWN && sourceTeraType === type)
|
||||
|
@ -1666,7 +1666,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const attackResult = { move: move.id, result: result as DamageResult, damage: damage.value, critical: isCritical, sourceId: source.id };
|
||||
this.turnData.attacksReceived.unshift(attackResult);
|
||||
if (source.isPlayer() && !this.isPlayer())
|
||||
this.scene.applyModifiers(DamageMoneyRewardModifier, true, source, damage)
|
||||
this.scene.applyModifiers(DamageMoneyRewardModifier, true, source, damage);
|
||||
}
|
||||
|
||||
if (source.turnData.hitsLeft === 1) {
|
||||
|
@ -1716,9 +1716,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
|
||||
if (!preventEndure && this.hp - damage <= 0) {
|
||||
if(this.hp >= 1 && this.getTag(BattlerTagType.ENDURING))
|
||||
surviveDamage.value = this.lapseTag(BattlerTagType.ENDURING)
|
||||
surviveDamage.value = this.lapseTag(BattlerTagType.ENDURING);
|
||||
else if (this.hp > 1 && this.getTag(BattlerTagType.STURDY))
|
||||
surviveDamage.value = this.lapseTag(BattlerTagType.STURDY)
|
||||
surviveDamage.value = this.lapseTag(BattlerTagType.STURDY);
|
||||
if (!surviveDamage.value)
|
||||
this.scene.applyModifiers(SurviveDamageModifier, this.isPlayer(), this, surviveDamage);
|
||||
if (surviveDamage.value)
|
||||
|
@ -1844,7 +1844,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
return false;
|
||||
const tags = this.summonData.tags;
|
||||
const tagsToRemove = tags.filter(t => tagFilter(t));
|
||||
for (let tag of tagsToRemove) {
|
||||
for (const tag of tagsToRemove) {
|
||||
tag.turnCount = 0;
|
||||
tag.onRemove(this);
|
||||
tags.splice(tags.indexOf(tag), 1);
|
||||
|
@ -1865,9 +1865,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
|
||||
transferSummon(source: Pokemon): void {
|
||||
const battleStats = Utils.getEnumValues(BattleStat);
|
||||
for (let stat of battleStats)
|
||||
for (const stat of battleStats)
|
||||
this.summonData.battleStats[stat] = source.summonData.battleStats[stat];
|
||||
for (let tag of source.summonData.tags)
|
||||
for (const tag of source.summonData.tags)
|
||||
this.summonData.tags.push(tag);
|
||||
if (this instanceof PlayerPokemon && source.summonData.battleStats.find(bs => bs === 6))
|
||||
this.scene.validateAchv(achvs.TRANSFER_MAX_BATTLE_STAT);
|
||||
|
@ -1992,7 +1992,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const key = this.getSpeciesForm().getCryKey(this.formIndex);
|
||||
let i = 0;
|
||||
let rate = 0.85;
|
||||
let cry = this.scene.playSound(key, { rate: rate }) as AnySound;
|
||||
const cry = this.scene.playSound(key, { rate: rate }) as AnySound;
|
||||
const sprite = this.getSprite();
|
||||
const tintSprite = this.getTintSprite();
|
||||
let duration = cry.totalDuration * 1000;
|
||||
|
@ -2090,7 +2090,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
case StatusEffect.POISON:
|
||||
case StatusEffect.TOXIC:
|
||||
// Check if the Pokemon is immune to Poison/Toxic or if the source pokemon is canceling the immunity
|
||||
let poisonImmunity = types.map(defType => {
|
||||
const poisonImmunity = types.map(defType => {
|
||||
// Check if the Pokemon is not immune to Poison/Toxic
|
||||
if (defType !== Type.POISON && defType !== Type.STEEL)
|
||||
return false;
|
||||
|
@ -2104,7 +2104,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
}
|
||||
|
||||
return true;
|
||||
})
|
||||
});
|
||||
|
||||
if (this.isOfType(Type.POISON) || this.isOfType(Type.STEEL)) {
|
||||
if (poisonImmunity.includes(true))
|
||||
|
@ -2210,7 +2210,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
this.resetBattleData();
|
||||
this.resetBattleSummonData();
|
||||
if (this.summonDataPrimer) {
|
||||
for (let k of Object.keys(this.summonData)) {
|
||||
for (const k of Object.keys(this.summonData)) {
|
||||
if (this.summonDataPrimer[k])
|
||||
this.summonData[k] = this.summonDataPrimer[k];
|
||||
}
|
||||
|
@ -2357,7 +2357,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
|
||||
for (let f = 0; f < 2; f++) {
|
||||
const variantColors = variantColorCache[!f ? spriteKey : backSpriteKey];
|
||||
let variantColorSet = new Map<integer, integer[]>();
|
||||
const variantColorSet = new Map<integer, integer[]>();
|
||||
if (this.shiny && variantColors && variantColors[this.variant]) {
|
||||
Object.keys(variantColors[this.variant]).forEach(k => {
|
||||
variantColorSet.set(Utils.rgbaToInt(Array.from(Object.values(Utils.rgbHexToRgba(k)))), Array.from(Object.values(Utils.rgbHexToRgba(variantColors[this.variant][k]))));
|
||||
|
@ -2396,7 +2396,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const fusionPixelColors = [];
|
||||
for (let f = 0; f < 2; f++) {
|
||||
const variantColors = variantColorCache[!f ? fusionSpriteKey : fusionBackSpriteKey];
|
||||
let variantColorSet = new Map<integer, integer[]>();
|
||||
const variantColorSet = new Map<integer, integer[]>();
|
||||
if (this.fusionShiny && variantColors && variantColors[this.fusionVariant]) {
|
||||
Object.keys(variantColors[this.fusionVariant]).forEach(k => {
|
||||
variantColorSet.set(Utils.rgbaToInt(Array.from(Object.values(Utils.rgbHexToRgba(k)))), Array.from(Object.values(Utils.rgbHexToRgba(variantColors[this.fusionVariant][k]))));
|
||||
|
@ -2467,9 +2467,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
mappedColors.forEach((values: integer[], key: integer) => {
|
||||
const keyColor = rgbaColors.get(key);
|
||||
const valueColors = values.map(v => rgbaColors.get(v));
|
||||
let color = keyColor.slice(0);
|
||||
const color = keyColor.slice(0);
|
||||
let count = paletteColors.get(key);
|
||||
for (let value of values) {
|
||||
for (const value of values) {
|
||||
const valueCount = paletteColors.get(value);
|
||||
if (!valueCount)
|
||||
continue;
|
||||
|
@ -2488,7 +2488,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
}
|
||||
|
||||
paletteColors.delete(key);
|
||||
for (let value of values) {
|
||||
for (const value of values) {
|
||||
paletteColors.delete(value);
|
||||
if (mappedColors.has(value))
|
||||
mappedColors.delete(value);
|
||||
|
@ -2500,7 +2500,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
keys = Array.from(paletteColors.keys()).sort((a: integer, b: integer) => paletteColors.get(a) < paletteColors.get(b) ? 1 : -1);
|
||||
} while (mappedColors.size);
|
||||
|
||||
return keys.map(c => Object.values(rgbaFromArgb(c)))
|
||||
return keys.map(c => Object.values(rgbaFromArgb(c)));
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -2519,7 +2519,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||
const paletteIndex = Math.min(paletteDeltas[sc].findIndex(pd => pd === delta), fusionPalette.length - 1);
|
||||
if (delta < 255) {
|
||||
const ratio = easeFunc(delta / 255);
|
||||
let color = [ 0, 0, 0, fusionSpriteColors[sc][3] ];
|
||||
const color = [ 0, 0, 0, fusionSpriteColors[sc][3] ];
|
||||
for (let c = 0; c < 3; c++)
|
||||
color[c] = Math.round((fusionSpriteColors[sc][c] * ratio) + (fusionPalette[paletteIndex][c] * (1 - ratio)));
|
||||
fusionSpriteColors[sc] = color;
|
||||
|
@ -2602,10 +2602,10 @@ export class PlayerPokemon extends Pokemon {
|
|||
this.compatibleTms = [];
|
||||
|
||||
const tms = Object.keys(tmSpecies);
|
||||
for (let tm of tms) {
|
||||
for (const tm of tms) {
|
||||
const moveId = parseInt(tm) as Moves;
|
||||
let compatible = false;
|
||||
for (let p of tmSpecies[tm]) {
|
||||
for (const p of tmSpecies[tm]) {
|
||||
if (Array.isArray(p)) {
|
||||
if (p[0] === this.species.speciesId || (this.fusionSpecies && p[0] === this.fusionSpecies.speciesId) && p.slice(1).indexOf(this.species.forms[this.formIndex]) > -1) {
|
||||
compatible = true;
|
||||
|
@ -2679,7 +2679,7 @@ export class PlayerPokemon extends Pokemon {
|
|||
});
|
||||
} else {
|
||||
this.friendship = Math.max(this.friendship + amount.value, 0);
|
||||
for (let sd of starterData)
|
||||
for (const sd of starterData)
|
||||
sd.friendship = Math.max((sd.friendship || 0) + starterAmount.value, 0);
|
||||
}
|
||||
}
|
||||
|
@ -2716,8 +2716,8 @@ export class PlayerPokemon extends Pokemon {
|
|||
|
||||
}
|
||||
this.scene.ui.setMode(Mode.MESSAGE).then(() => resolve());
|
||||
}, PartyUiHandler.FilterFainted)
|
||||
})
|
||||
}, PartyUiHandler.FilterFainted);
|
||||
});
|
||||
}
|
||||
|
||||
getPossibleEvolution(evolution: SpeciesFormEvolution): Promise<Pokemon> {
|
||||
|
@ -2787,7 +2787,7 @@ export class PlayerPokemon extends Pokemon {
|
|||
private handleSpecialEvolutions(evolution: SpeciesFormEvolution) {
|
||||
const isFusion = evolution instanceof FusionSpeciesFormEvolution;
|
||||
|
||||
const evoSpecies = (!isFusion ? this.species : this.fusionSpecies)
|
||||
const evoSpecies = (!isFusion ? this.species : this.fusionSpecies);
|
||||
if (evoSpecies.speciesId === Species.NINCADA && evolution.speciesId === Species.NINJASK) {
|
||||
const newEvolution = pokemonEvolutions[evoSpecies.speciesId][1];
|
||||
|
||||
|
@ -2902,7 +2902,7 @@ export class PlayerPokemon extends Pokemon {
|
|||
const fusedPartyMemberHeldModifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
||||
&& (m as PokemonHeldItemModifier).pokemonId === pokemon.id, true) as PokemonHeldItemModifier[];
|
||||
const transferModifiers: Promise<boolean>[] = [];
|
||||
for (let modifier of fusedPartyMemberHeldModifiers)
|
||||
for (const modifier of fusedPartyMemberHeldModifiers)
|
||||
transferModifiers.push(this.scene.tryTransferHeldItemModifier(modifier, this, true, false, true, true));
|
||||
Promise.allSettled(transferModifiers).then(() => {
|
||||
this.scene.updateModifiers(true, true).then(() => {
|
||||
|
@ -2929,7 +2929,7 @@ export class PlayerPokemon extends Pokemon {
|
|||
|
||||
/** Returns a deep copy of this Pokemon's moveset array */
|
||||
copyMoveset(): PokemonMove[] {
|
||||
let newMoveset = [];
|
||||
const newMoveset = [];
|
||||
this.moveset.forEach(move =>
|
||||
newMoveset.push(new PokemonMove(move.moveId, 0, move.ppUp, move.virtual)));
|
||||
|
||||
|
@ -3061,7 +3061,7 @@ export class EnemyPokemon extends Pokemon {
|
|||
case AiType.SMART:
|
||||
const moveScores = movePool.map(() => 0);
|
||||
const moveTargets = Object.fromEntries(movePool.map(m => [ m.moveId, this.getNextTargets(m.moveId) ]));
|
||||
for (let m in movePool) {
|
||||
for (const m in movePool) {
|
||||
const pokemonMove = movePool[m];
|
||||
const move = pokemonMove.getMove();
|
||||
|
||||
|
@ -3070,9 +3070,9 @@ export class EnemyPokemon extends Pokemon {
|
|||
const moveType = variableType.value as Type;
|
||||
|
||||
let moveScore = moveScores[m];
|
||||
let targetScores: integer[] = [];
|
||||
const targetScores: integer[] = [];
|
||||
|
||||
for (let mt of moveTargets[move.id]) {
|
||||
for (const mt of moveTargets[move.id]) {
|
||||
// Prevent a target score from being calculated when the target is whoever attacks the user
|
||||
if (mt === BattlerIndex.ATTACKER)
|
||||
break;
|
||||
|
@ -3252,7 +3252,7 @@ export class EnemyPokemon extends Pokemon {
|
|||
damage = Math.min(damage, this.hp - 1);
|
||||
}
|
||||
|
||||
let ret = super.damage(damage, ignoreSegments, preventEndure);
|
||||
const ret = super.damage(damage, ignoreSegments, preventEndure);
|
||||
|
||||
if (this.isBoss()) {
|
||||
if (ignoreSegments) {
|
||||
|
@ -3284,14 +3284,14 @@ export class EnemyPokemon extends Pokemon {
|
|||
const statWeights = new Array().fill(battleStats.length).filter((bs: BattleStat) => this.summonData.battleStats[bs] < 6).map((bs: BattleStat) => this.getStat(bs + 1));
|
||||
const statThresholds: integer[] = [];
|
||||
let totalWeight = 0;
|
||||
for (let bs of battleStats) {
|
||||
for (const bs of battleStats) {
|
||||
totalWeight += statWeights[bs];
|
||||
statThresholds.push(totalWeight);
|
||||
}
|
||||
|
||||
const randInt = Utils.randSeedInt(totalWeight);
|
||||
|
||||
for (let bs of battleStats) {
|
||||
for (const bs of battleStats) {
|
||||
if (randInt < statThresholds[bs]) {
|
||||
boostedStat = bs;
|
||||
break;
|
||||
|
@ -3319,8 +3319,8 @@ export class EnemyPokemon extends Pokemon {
|
|||
|
||||
heal(amount: integer): integer {
|
||||
if (this.isBoss()) {
|
||||
let amountRatio = amount / this.getMaxHp();
|
||||
let segmentBypassCount = Math.floor(amountRatio / (1 / this.bossSegments));
|
||||
const amountRatio = amount / this.getMaxHp();
|
||||
const segmentBypassCount = Math.floor(amountRatio / (1 / this.bossSegments));
|
||||
const segmentSize = this.getMaxHp() / this.bossSegments;
|
||||
for (let s = 1; s < this.bossSegments; s++) {
|
||||
const hpThreshold = segmentSize * s;
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import BattleScene from "../battle-scene";
|
||||
import { pokemonPrevolutions } from "../data/pokemon-evolutions";
|
||||
import PokemonSpecies, { getPokemonSpecies } from "../data/pokemon-species";
|
||||
import { TrainerConfig, TrainerPartyCompoundTemplate, TrainerPartyTemplate, TrainerPoolTier, TrainerSlot, trainerConfigs, trainerPartyTemplates } from "../data/trainer-config";
|
||||
import { PartyMemberStrength } from "../data/enums/party-member-strength";
|
||||
import { TrainerType } from "../data/enums/trainer-type";
|
||||
import { EnemyPokemon } from "./pokemon";
|
||||
import * as Utils from "../utils";
|
||||
import { PersistentModifier } from "../modifier/modifier";
|
||||
import { trainerNamePools } from "../data/trainer-names";
|
||||
import { ArenaTagType } from "#app/data/enums/arena-tag-type";
|
||||
import { ArenaTag, ArenaTagSide, ArenaTrapTag } from "#app/data/arena-tag";
|
||||
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
||||
import i18next from "i18next";
|
||||
import BattleScene from '../battle-scene';
|
||||
import { pokemonPrevolutions } from '../data/pokemon-evolutions';
|
||||
import PokemonSpecies, { getPokemonSpecies } from '../data/pokemon-species';
|
||||
import { TrainerConfig, TrainerPartyCompoundTemplate, TrainerPartyTemplate, TrainerPoolTier, TrainerSlot, trainerConfigs, trainerPartyTemplates } from '../data/trainer-config';
|
||||
import { PartyMemberStrength } from '../data/enums/party-member-strength';
|
||||
import { TrainerType } from '../data/enums/trainer-type';
|
||||
import { EnemyPokemon } from './pokemon';
|
||||
import * as Utils from '../utils';
|
||||
import { PersistentModifier } from '../modifier/modifier';
|
||||
import { trainerNamePools } from '../data/trainer-names';
|
||||
import { ArenaTagType } from '#app/data/enums/arena-tag-type';
|
||||
import { ArenaTag, ArenaTagSide, ArenaTrapTag } from '#app/data/arena-tag';
|
||||
import {getIsInitialized, initI18n} from '#app/plugins/i18n';
|
||||
import i18next from 'i18next';
|
||||
|
||||
export enum TrainerVariant {
|
||||
DEFAULT,
|
||||
|
@ -179,7 +179,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||
const partyTemplate = this.getPartyTemplate();
|
||||
|
||||
const difficultyWaveIndex = this.scene.gameMode.getWaveForDifficulty(waveIndex);
|
||||
let baseLevel = 1 + difficultyWaveIndex / 2 + Math.pow(difficultyWaveIndex / 25, 2);
|
||||
const baseLevel = 1 + difficultyWaveIndex / 2 + Math.pow(difficultyWaveIndex / 25, 2);
|
||||
|
||||
if (this.isDouble() && partyTemplate.size < 2)
|
||||
partyTemplate.size = 2;
|
||||
|
@ -243,7 +243,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||
let offset = 0;
|
||||
|
||||
if (template instanceof TrainerPartyCompoundTemplate) {
|
||||
for (let innerTemplate of template.templates) {
|
||||
for (const innerTemplate of template.templates) {
|
||||
if (offset + innerTemplate.size > index)
|
||||
break;
|
||||
offset += innerTemplate.size;
|
||||
|
@ -267,7 +267,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||
let species: PokemonSpecies;
|
||||
if (this.config.speciesPools) {
|
||||
const tierValue = Utils.randSeedInt(512);
|
||||
let tier = tierValue >= 156 ? TrainerPoolTier.COMMON : tierValue >= 32 ? TrainerPoolTier.UNCOMMON : tierValue >= 6 ? TrainerPoolTier.RARE : tierValue >= 1 ? TrainerPoolTier.SUPER_RARE : TrainerPoolTier.ULTRA_RARE
|
||||
let tier = tierValue >= 156 ? TrainerPoolTier.COMMON : tierValue >= 32 ? TrainerPoolTier.UNCOMMON : tierValue >= 6 ? TrainerPoolTier.RARE : tierValue >= 1 ? TrainerPoolTier.SUPER_RARE : TrainerPoolTier.ULTRA_RARE;
|
||||
console.log(TrainerPoolTier[tier]);
|
||||
while (!this.config.speciesPools.hasOwnProperty(tier) || !this.config.speciesPools[tier].length) {
|
||||
console.log(`Downgraded trainer Pokemon rarity tier from ${TrainerPoolTier[tier]} to ${TrainerPoolTier[tier - 1]}`);
|
||||
|
@ -304,7 +304,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||
}
|
||||
|
||||
if (retry && (attempt || 0) < 10) {
|
||||
console.log('Rerolling party member...')
|
||||
console.log('Rerolling party member...');
|
||||
ret = this.genNewPartyMemberSpecies(level, strength, (attempt || 0) + 1);
|
||||
}
|
||||
|
||||
|
@ -321,7 +321,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||
const playerField = this.scene.getPlayerField();
|
||||
let score = 0;
|
||||
let ret: [integer, integer];
|
||||
for (let playerPokemon of playerField) {
|
||||
for (const playerPokemon of playerField) {
|
||||
score += p.getMatchupScore(playerPokemon);
|
||||
if (playerPokemon.species.legendary)
|
||||
score /= 2;
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import BattleScene from "./battle-scene";
|
||||
import * as Utils from "./utils";
|
||||
import { SpeciesFormKey } from "./data/pokemon-species";
|
||||
import { achvs } from "./system/achv";
|
||||
import { SpeciesFormChange, getSpeciesFormChangeMessage } from "./data/pokemon-forms";
|
||||
import { EndEvolutionPhase, EvolutionPhase } from "./evolution-phase";
|
||||
import Pokemon, { EnemyPokemon, PlayerPokemon } from "./field/pokemon";
|
||||
import { Mode } from "./ui/ui";
|
||||
import PartyUiHandler from "./ui/party-ui-handler";
|
||||
import { BattleSpec } from "./enums/battle-spec";
|
||||
import { BattlePhase, MovePhase, PokemonHealPhase } from "./phases";
|
||||
import { getTypeRgb } from "./data/type";
|
||||
import BattleScene from './battle-scene';
|
||||
import * as Utils from './utils';
|
||||
import { SpeciesFormKey } from './data/pokemon-species';
|
||||
import { achvs } from './system/achv';
|
||||
import { SpeciesFormChange, getSpeciesFormChangeMessage } from './data/pokemon-forms';
|
||||
import { EndEvolutionPhase, EvolutionPhase } from './evolution-phase';
|
||||
import Pokemon, { EnemyPokemon, PlayerPokemon } from './field/pokemon';
|
||||
import { Mode } from './ui/ui';
|
||||
import PartyUiHandler from './ui/party-ui-handler';
|
||||
import { BattleSpec } from './enums/battle-spec';
|
||||
import { BattlePhase, MovePhase, PokemonHealPhase } from './phases';
|
||||
import { getTypeRgb } from './data/type';
|
||||
|
||||
export class FormChangePhase extends EvolutionPhase {
|
||||
private formChange: SpeciesFormChange;
|
||||
|
@ -147,7 +147,7 @@ export class FormChangePhase extends EvolutionPhase {
|
|||
});
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -196,7 +196,7 @@ export class QuietFormChangePhase extends BattlePhase {
|
|||
}
|
||||
|
||||
const getPokemonSprite = () => {
|
||||
const sprite = this.scene.addPokemonSprite(this.pokemon, this.pokemon.x + this.pokemon.getSprite().x, this.pokemon.y + this.pokemon.getSprite().y, `pkmn__sub`);
|
||||
const sprite = this.scene.addPokemonSprite(this.pokemon, this.pokemon.x + this.pokemon.getSprite().x, this.pokemon.y + this.pokemon.getSprite().y, 'pkmn__sub');
|
||||
sprite.setOrigin(0.5, 1);
|
||||
sprite.play(this.pokemon.getBattleSpriteKey()).stop();
|
||||
sprite.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], hasShadow: false, teraColor: getTypeRgb(this.pokemon.getTeraType()) });
|
||||
|
@ -207,7 +207,7 @@ export class QuietFormChangePhase extends BattlePhase {
|
|||
});
|
||||
this.scene.field.add(sprite);
|
||||
return sprite;
|
||||
}
|
||||
};
|
||||
|
||||
const [ pokemonTintSprite, pokemonFormTintSprite ] = [ getPokemonSprite(), getPokemonSprite() ];
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { fixedBattles } from "./battle";
|
||||
import BattleScene from "./battle-scene";
|
||||
import { Biome } from "./data/enums/biome";
|
||||
import { Species } from "./data/enums/species";
|
||||
import PokemonSpecies, { allSpecies } from "./data/pokemon-species";
|
||||
import { Arena } from "./field/arena";
|
||||
import * as Utils from "./utils";
|
||||
import { fixedBattles } from './battle';
|
||||
import BattleScene from './battle-scene';
|
||||
import { Biome } from './data/enums/biome';
|
||||
import { Species } from './data/enums/species';
|
||||
import PokemonSpecies, { allSpecies } from './data/pokemon-species';
|
||||
import { Arena } from './field/arena';
|
||||
import * as Utils from './utils';
|
||||
import * as Overrides from './overrides';
|
||||
|
||||
export enum GameModes {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import Phaser, {Time} from "phaser";
|
||||
import * as Utils from "./utils";
|
||||
import Phaser, {Time} from 'phaser';
|
||||
import * as Utils from './utils';
|
||||
import {initTouchControls} from './touch-controls';
|
||||
import pad_generic from "./configs/pad_generic";
|
||||
import pad_unlicensedSNES from "./configs/pad_unlicensedSNES";
|
||||
import pad_xbox360 from "./configs/pad_xbox360";
|
||||
import pad_dualshock from "./configs/pad_dualshock";
|
||||
import {Button} from "./enums/buttons";
|
||||
import pad_generic from './configs/pad_generic';
|
||||
import pad_unlicensedSNES from './configs/pad_unlicensedSNES';
|
||||
import pad_xbox360 from './configs/pad_xbox360';
|
||||
import pad_dualshock from './configs/pad_dualshock';
|
||||
import {Button} from './enums/buttons';
|
||||
|
||||
export interface GamepadMapping {
|
||||
[key: string]: number;
|
||||
|
@ -79,7 +79,7 @@ export class InputsController {
|
|||
pressTime: false,
|
||||
isPressed: false,
|
||||
source: null,
|
||||
}
|
||||
};
|
||||
}
|
||||
// We don't want the menu key to be repeated
|
||||
delete this.interactions[Button.MENU];
|
||||
|
@ -98,8 +98,8 @@ export class InputsController {
|
|||
init(): void {
|
||||
this.events = new Phaser.Events.EventEmitter();
|
||||
this.scene.game.events.on(Phaser.Core.Events.BLUR, () => {
|
||||
this.loseFocus()
|
||||
})
|
||||
this.loseFocus();
|
||||
});
|
||||
|
||||
if (typeof this.scene.input.gamepad !== 'undefined') {
|
||||
this.scene.input.gamepad.on('connected', function (thisGamepad) {
|
||||
|
@ -199,7 +199,7 @@ export class InputsController {
|
|||
* that the gamepad controls are correctly mapped to in-game actions.
|
||||
*/
|
||||
setupGamepad(thisGamepad: Phaser.Input.Gamepad.Gamepad): void {
|
||||
let gamepadID = thisGamepad.id.toLowerCase();
|
||||
const gamepadID = thisGamepad.id.toLowerCase();
|
||||
const mappedPad = this.mapGamepad(gamepadID);
|
||||
this.player['mapping'] = mappedPad.gamepadMapping;
|
||||
}
|
||||
|
@ -353,7 +353,7 @@ export class InputsController {
|
|||
for (const b of Utils.getEnumValues(Button)) {
|
||||
const keys: Phaser.Input.Keyboard.Key[] = [];
|
||||
if (keyConfig.hasOwnProperty(b)) {
|
||||
for (let k of keyConfig[b])
|
||||
for (const k of keyConfig[b])
|
||||
keys.push(this.scene.input.keyboard.addKey(k, false));
|
||||
mobileKeyConfig[Button[b]] = keys[0];
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
import { GachaType } from "./data/egg";
|
||||
import { Biome } from "./data/enums/biome";
|
||||
import { TrainerType } from "./data/enums/trainer-type";
|
||||
import { trainerConfigs } from "./data/trainer-config";
|
||||
import { getBiomeHasProps } from "./field/arena";
|
||||
import CacheBustedLoaderPlugin from "./plugins/cache-busted-loader-plugin";
|
||||
import { SceneBase } from "./scene-base";
|
||||
import { WindowVariant, getWindowVariantSuffix } from "./ui/ui-theme";
|
||||
import { isMobile } from "./touch-controls";
|
||||
import * as Utils from "./utils";
|
||||
import { initI18n } from "./plugins/i18n";
|
||||
import { GachaType } from './data/egg';
|
||||
import { Biome } from './data/enums/biome';
|
||||
import { TrainerType } from './data/enums/trainer-type';
|
||||
import { trainerConfigs } from './data/trainer-config';
|
||||
import { getBiomeHasProps } from './field/arena';
|
||||
import CacheBustedLoaderPlugin from './plugins/cache-busted-loader-plugin';
|
||||
import { SceneBase } from './scene-base';
|
||||
import { WindowVariant, getWindowVariantSuffix } from './ui/ui-theme';
|
||||
import { isMobile } from './touch-controls';
|
||||
import * as Utils from './utils';
|
||||
import { initI18n } from './plugins/i18n';
|
||||
|
||||
export class LoadingScene extends SceneBase {
|
||||
constructor() {
|
||||
|
@ -35,7 +35,7 @@ export class LoadingScene extends SceneBase {
|
|||
this.loadImage('candy_overlay', 'ui');
|
||||
this.loadImage('cursor', 'ui');
|
||||
this.loadImage('cursor_reverse', 'ui');
|
||||
for (let wv of Utils.getEnumValues(WindowVariant)) {
|
||||
for (const wv of Utils.getEnumValues(WindowVariant)) {
|
||||
for (let w = 1; w <= 5; w++)
|
||||
this.loadImage(`window_${w}${getWindowVariantSuffix(wv)}`, 'ui/windows');
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ export class LoadingScene extends SceneBase {
|
|||
this.loadImage('summary_bg', 'ui');
|
||||
this.loadImage('summary_overlay_shiny', 'ui');
|
||||
this.loadImage('summary_profile', 'ui');
|
||||
this.loadImage('summary_profile_prompt_z', 'ui') // The pixel Z button prompt
|
||||
this.loadImage('summary_profile_prompt_z', 'ui'); // The pixel Z button prompt
|
||||
this.loadImage('summary_profile_prompt_a', 'ui'); // The pixel A button prompt
|
||||
this.loadImage('summary_profile_ability', 'ui'); // Pixel text 'ABILITY'
|
||||
this.loadImage('summary_profile_passive', 'ui'); // Pixel text 'PASSIVE'
|
||||
|
@ -174,8 +174,8 @@ export class LoadingScene extends SceneBase {
|
|||
this.loadAtlas('c_rival_f', 'character', 'rival_f');
|
||||
|
||||
// Load pokemon-related images
|
||||
this.loadImage(`pkmn__back__sub`, 'pokemon/back', 'sub.png');
|
||||
this.loadImage(`pkmn__sub`, 'pokemon', 'sub.png');
|
||||
this.loadImage('pkmn__back__sub', 'pokemon/back', 'sub.png');
|
||||
this.loadImage('pkmn__sub', 'pokemon', 'sub.png');
|
||||
this.loadAtlas('battle_stats', 'effects');
|
||||
this.loadAtlas('shiny', 'effects');
|
||||
this.loadAtlas('shiny_2', 'effects');
|
||||
|
@ -310,8 +310,8 @@ export class LoadingScene extends SceneBase {
|
|||
y: height / 2 - 24,
|
||||
text: '0%',
|
||||
style: {
|
||||
font: "72px emerald",
|
||||
color: "#ffffff",
|
||||
font: '72px emerald',
|
||||
color: '#ffffff',
|
||||
},
|
||||
});
|
||||
percentText.setOrigin(0.5, 0.5);
|
||||
|
@ -319,10 +319,10 @@ export class LoadingScene extends SceneBase {
|
|||
const assetText = this.make.text({
|
||||
x: width / 2,
|
||||
y: height / 2 + 48,
|
||||
text: "",
|
||||
text: '',
|
||||
style: {
|
||||
font: "48px emerald",
|
||||
color: "#ffffff",
|
||||
font: '48px emerald',
|
||||
color: '#ffffff',
|
||||
},
|
||||
});
|
||||
assetText.setOrigin(0.5, 0.5);
|
||||
|
@ -331,7 +331,7 @@ export class LoadingScene extends SceneBase {
|
|||
intro.setOrigin(0, 0);
|
||||
intro.setScale(3);
|
||||
|
||||
this.load.on("progress", (value: string) => {
|
||||
this.load.on('progress', (value: string) => {
|
||||
const parsedValue = parseFloat(value);
|
||||
percentText.setText(`${Math.floor(parsedValue * 100)}%`);
|
||||
progressBar.clear();
|
||||
|
@ -339,7 +339,7 @@ export class LoadingScene extends SceneBase {
|
|||
progressBar.fillRect(width / 2 - 320, 360, 640 * parsedValue, 64);
|
||||
});
|
||||
|
||||
this.load.on("fileprogress", file => {
|
||||
this.load.on('fileprogress', file => {
|
||||
assetText.setText(`Loading asset: ${file.key}`);
|
||||
});
|
||||
|
||||
|
@ -386,7 +386,7 @@ export class LoadingScene extends SceneBase {
|
|||
}
|
||||
});
|
||||
|
||||
this.load.on("complete", () => destroyLoadingAssets());
|
||||
this.load.on('complete', () => destroyLoadingAssets());
|
||||
}
|
||||
|
||||
get gameHeight() {
|
||||
|
@ -398,6 +398,6 @@ export class LoadingScene extends SceneBase {
|
|||
}
|
||||
|
||||
async create() {
|
||||
this.scene.start("battle");
|
||||
this.scene.start('battle');
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{pokemonName}} wurde durch {{abilityName}}\nvor Rückstoß geschützt!`,
|
||||
'badDreams': `{{pokemonName}} ist in einem Alptraum gefangen!`,
|
||||
'blockRecoilDamage' : '{{pokemonName}} wurde durch {{abilityName}}\nvor Rückstoß geschützt!',
|
||||
'badDreams': '{{pokemonName}} ist in einem Alptraum gefangen!',
|
||||
} as const;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const battleMessageUiHandler: SimpleTranslationEntries = {
|
||||
"ivBest": "Sensationell",
|
||||
"ivFantastic": "Fantastisch",
|
||||
"ivVeryGood": "Sehr Gut",
|
||||
"ivPrettyGood": "Gut",
|
||||
"ivDecent": "Nicht Übel",
|
||||
"ivNoGood": "Schlecht",
|
||||
'ivBest': 'Sensationell',
|
||||
'ivFantastic': 'Fantastisch',
|
||||
'ivVeryGood': 'Sehr Gut',
|
||||
'ivPrettyGood': 'Gut',
|
||||
'ivDecent': 'Nicht Übel',
|
||||
'ivNoGood': 'Schlecht',
|
||||
} as const;
|
||||
|
|
|
@ -1,56 +1,56 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const battle: SimpleTranslationEntries = {
|
||||
"bossAppeared": "{{bossName}} erscheint.",
|
||||
"trainerAppeared": "{{trainerName}}\nmöchte kämpfen!",
|
||||
"trainerAppearedDouble": "{{trainerName}}\nmöchten kämpfen!",
|
||||
"singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!",
|
||||
"multiWildAppeared": "Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!",
|
||||
"playerComeBack": "Komm zurück, {{pokemonName}}!",
|
||||
"trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
|
||||
"playerGo": "Los! {{pokemonName}}!",
|
||||
"trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
|
||||
"switchQuestion": "Möchtest du\n{{pokemonName}} auswechseln?",
|
||||
"trainerDefeated": `{{trainerName}}\nwurde besiegt!`,
|
||||
"pokemonCaught": "{{pokemonName}} wurde gefangen!",
|
||||
"pokemon": "Pokémon",
|
||||
"sendOutPokemon": "Los, {{pokemonName}}!",
|
||||
"hitResultCriticalHit": "Ein Volltreffer!",
|
||||
"hitResultSuperEffective": "Das ist sehr effektiv!",
|
||||
"hitResultNotVeryEffective": "Das ist nicht sehr effektiv…",
|
||||
"hitResultNoEffect": "Es hat keine Wirkung auf {{pokemonName}}…",
|
||||
"hitResultOneHitKO": "Ein K.O.-Treffer!",
|
||||
"attackFailed": "Es ist fehlgeschlagen!",
|
||||
"attackHitsCount": `{{count}}-mal getroffen!`,
|
||||
"expGain": "{{pokemonName}} erhält\n{{exp}} Erfahrungspunkte!",
|
||||
"levelUp": "{{pokemonName}} erreicht\nLv. {{level}}!",
|
||||
"learnMove": "{{pokemonName}} erlernt\n{{moveName}}!",
|
||||
"learnMovePrompt": "{{pokemonName}} versucht, {{moveName}} zu erlernen.",
|
||||
"learnMoveLimitReached": "Aber {{pokemonName}} kann nur\nmaximal vier Attacken erlernen.",
|
||||
"learnMoveReplaceQuestion": "Soll eine bekannte Attacke durch\n{{moveName}} ersetzt werden?",
|
||||
"learnMoveStopTeaching": "{{moveName}} nicht\nerlernen?",
|
||||
"learnMoveNotLearned": "{{pokemonName}} hat\n{{moveName}} nicht erlernt.",
|
||||
"learnMoveForgetQuestion": "Welche Attacke soll vergessen werden?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} hat\n{{moveName}} vergessen.",
|
||||
"countdownPoof": "@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}schwupp!",
|
||||
"learnMoveAnd": "Und…",
|
||||
"levelCapUp": "Das Levelbeschränkung\nwurde auf {{levelCap}} erhöht!",
|
||||
"moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
|
||||
"moveNoPP": "Es sind keine AP für\ndiese Attacke mehr übrig!",
|
||||
"moveDisabled": "{{moveName}} ist deaktiviert!",
|
||||
"noPokeballForce": "Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.",
|
||||
"noPokeballTrainer": "Du kannst das Pokémon\neines anderen Trainers nicht fangen!",
|
||||
"noPokeballMulti": "Du kannst erst einen Pokéball werfen,\nwenn nur noch ein Pokémon übrig ist!",
|
||||
"noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!",
|
||||
"noEscapeForce": "Eine unsichtbare Kraft\nverhindert die Flucht.",
|
||||
"noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!",
|
||||
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!",
|
||||
"runAwaySuccess": "Du bist entkommen!",
|
||||
"runAwayCannotEscape": 'Flucht gescheitert!',
|
||||
"escapeVerbSwitch": "auswechseln",
|
||||
"escapeVerbFlee": "flucht",
|
||||
"skipItemQuestion": "Bist du sicher, dass du kein Item nehmen willst?",
|
||||
"notDisabled": "{{pokemonName}}'s {{moveName}} ist\nnicht mehr deaktiviert!",
|
||||
"eggHatching": "Oh?",
|
||||
"ivScannerUseQuestion": "IV-Scanner auf {{pokemonName}} benutzen?"
|
||||
'bossAppeared': '{{bossName}} erscheint.',
|
||||
'trainerAppeared': '{{trainerName}}\nmöchte kämpfen!',
|
||||
'trainerAppearedDouble': '{{trainerName}}\nmöchten kämpfen!',
|
||||
'singleWildAppeared': 'Ein wildes {{pokemonName}} erscheint!',
|
||||
'multiWildAppeared': 'Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!',
|
||||
'playerComeBack': 'Komm zurück, {{pokemonName}}!',
|
||||
'trainerComeBack': '{{trainerName}} ruft {{pokemonName}} zurück!',
|
||||
'playerGo': 'Los! {{pokemonName}}!',
|
||||
'trainerGo': '{{trainerName}} sendet {{pokemonName}} raus!',
|
||||
'switchQuestion': 'Möchtest du\n{{pokemonName}} auswechseln?',
|
||||
'trainerDefeated': '{{trainerName}}\nwurde besiegt!',
|
||||
'pokemonCaught': '{{pokemonName}} wurde gefangen!',
|
||||
'pokemon': 'Pokémon',
|
||||
'sendOutPokemon': 'Los, {{pokemonName}}!',
|
||||
'hitResultCriticalHit': 'Ein Volltreffer!',
|
||||
'hitResultSuperEffective': 'Das ist sehr effektiv!',
|
||||
'hitResultNotVeryEffective': 'Das ist nicht sehr effektiv…',
|
||||
'hitResultNoEffect': 'Es hat keine Wirkung auf {{pokemonName}}…',
|
||||
'hitResultOneHitKO': 'Ein K.O.-Treffer!',
|
||||
'attackFailed': 'Es ist fehlgeschlagen!',
|
||||
'attackHitsCount': '{{count}}-mal getroffen!',
|
||||
'expGain': '{{pokemonName}} erhält\n{{exp}} Erfahrungspunkte!',
|
||||
'levelUp': '{{pokemonName}} erreicht\nLv. {{level}}!',
|
||||
'learnMove': '{{pokemonName}} erlernt\n{{moveName}}!',
|
||||
'learnMovePrompt': '{{pokemonName}} versucht, {{moveName}} zu erlernen.',
|
||||
'learnMoveLimitReached': 'Aber {{pokemonName}} kann nur\nmaximal vier Attacken erlernen.',
|
||||
'learnMoveReplaceQuestion': 'Soll eine bekannte Attacke durch\n{{moveName}} ersetzt werden?',
|
||||
'learnMoveStopTeaching': '{{moveName}} nicht\nerlernen?',
|
||||
'learnMoveNotLearned': '{{pokemonName}} hat\n{{moveName}} nicht erlernt.',
|
||||
'learnMoveForgetQuestion': 'Welche Attacke soll vergessen werden?',
|
||||
'learnMoveForgetSuccess': '{{pokemonName}} hat\n{{moveName}} vergessen.',
|
||||
'countdownPoof': '@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}schwupp!',
|
||||
'learnMoveAnd': 'Und…',
|
||||
'levelCapUp': 'Das Levelbeschränkung\nwurde auf {{levelCap}} erhöht!',
|
||||
'moveNotImplemented': '{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.',
|
||||
'moveNoPP': 'Es sind keine AP für\ndiese Attacke mehr übrig!',
|
||||
'moveDisabled': '{{moveName}} ist deaktiviert!',
|
||||
'noPokeballForce': 'Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.',
|
||||
'noPokeballTrainer': 'Du kannst das Pokémon\neines anderen Trainers nicht fangen!',
|
||||
'noPokeballMulti': 'Du kannst erst einen Pokéball werfen,\nwenn nur noch ein Pokémon übrig ist!',
|
||||
'noPokeballStrong': 'Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!',
|
||||
'noEscapeForce': 'Eine unsichtbare Kraft\nverhindert die Flucht.',
|
||||
'noEscapeTrainer': 'Du kannst nicht\naus einem Trainerkampf fliehen!',
|
||||
'noEscapePokemon': '{{pokemonName}}\'s {{moveName}}\nverhindert {{escapeVerb}}!',
|
||||
'runAwaySuccess': 'Du bist entkommen!',
|
||||
'runAwayCannotEscape': 'Flucht gescheitert!',
|
||||
'escapeVerbSwitch': 'auswechseln',
|
||||
'escapeVerbFlee': 'flucht',
|
||||
'skipItemQuestion': 'Bist du sicher, dass du kein Item nehmen willst?',
|
||||
'notDisabled': '{{pokemonName}}\'s {{moveName}} ist\nnicht mehr deaktiviert!',
|
||||
'eggHatching': 'Oh?',
|
||||
'ivScannerUseQuestion': 'IV-Scanner auf {{pokemonName}} benutzen?'
|
||||
} as const;
|
||||
|
|
|
@ -1,48 +1,48 @@
|
|||
import { BerryTranslationEntries } from "#app/plugins/i18n";
|
||||
import { BerryTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const berry: BerryTranslationEntries = {
|
||||
"SITRUS": {
|
||||
name: "Tsitrubeere",
|
||||
effect: "Stellt 25% der KP wieder her, wenn die KP unter 50% sind"
|
||||
'SITRUS': {
|
||||
name: 'Tsitrubeere',
|
||||
effect: 'Stellt 25% der KP wieder her, wenn die KP unter 50% sind'
|
||||
},
|
||||
"LUM": {
|
||||
name: "Prunusbeere",
|
||||
effect: "Heilt jede nichtflüchtige Statusveränderung und Verwirrung"
|
||||
'LUM': {
|
||||
name: 'Prunusbeere',
|
||||
effect: 'Heilt jede nichtflüchtige Statusveränderung und Verwirrung'
|
||||
},
|
||||
"ENIGMA": {
|
||||
name: "Enigmabeere",
|
||||
effect: "Stellt 25% der KP wieder her, wenn der Träger von einer sehr effektiven Attacke getroffen wird",
|
||||
'ENIGMA': {
|
||||
name: 'Enigmabeere',
|
||||
effect: 'Stellt 25% der KP wieder her, wenn der Träger von einer sehr effektiven Attacke getroffen wird',
|
||||
},
|
||||
"LIECHI": {
|
||||
name: "Lydzibeere",
|
||||
effect: "Steigert den Angriff, wenn die KP unter 25% sind"
|
||||
'LIECHI': {
|
||||
name: 'Lydzibeere',
|
||||
effect: 'Steigert den Angriff, wenn die KP unter 25% sind'
|
||||
},
|
||||
"GANLON": {
|
||||
name: "Linganbeere",
|
||||
effect: "Steigert die Verteidigung, wenn die KP unter 25% sind"
|
||||
'GANLON': {
|
||||
name: 'Linganbeere',
|
||||
effect: 'Steigert die Verteidigung, wenn die KP unter 25% sind'
|
||||
},
|
||||
"PETAYA": {
|
||||
name: "Tahaybeere",
|
||||
effect: "Steigert den Spezial-Angriff, wenn die KP unter 25% sind"
|
||||
'PETAYA': {
|
||||
name: 'Tahaybeere',
|
||||
effect: 'Steigert den Spezial-Angriff, wenn die KP unter 25% sind'
|
||||
},
|
||||
"APICOT": {
|
||||
name: "Apikobeere",
|
||||
effect: "Steigert die Spezial-Verteidigung, wenn die KP unter 25% sind"
|
||||
'APICOT': {
|
||||
name: 'Apikobeere',
|
||||
effect: 'Steigert die Spezial-Verteidigung, wenn die KP unter 25% sind'
|
||||
},
|
||||
"SALAC": {
|
||||
name: "Salkabeere",
|
||||
effect: "Steigert die Initiative, wenn die KP unter 25% sind"
|
||||
'SALAC': {
|
||||
name: 'Salkabeere',
|
||||
effect: 'Steigert die Initiative, wenn die KP unter 25% sind'
|
||||
},
|
||||
"LANSAT": {
|
||||
name: "Lansatbeere",
|
||||
effect: "Erhöht die Volltrefferchance, wenn die KP unter 25% sind"
|
||||
'LANSAT': {
|
||||
name: 'Lansatbeere',
|
||||
effect: 'Erhöht die Volltrefferchance, wenn die KP unter 25% sind'
|
||||
},
|
||||
"STARF": {
|
||||
name: "Krambobeere",
|
||||
effect: "Erhöht eine Statuswert stark, wenn die KP unter 25% sind"
|
||||
'STARF': {
|
||||
name: 'Krambobeere',
|
||||
effect: 'Erhöht eine Statuswert stark, wenn die KP unter 25% sind'
|
||||
},
|
||||
"LEPPA": {
|
||||
name: "Jonagobeere",
|
||||
effect: "Stellt 10 AP für eine Attacke wieder her, wenn deren AP auf 0 fallen"
|
||||
'LEPPA': {
|
||||
name: 'Jonagobeere',
|
||||
effect: 'Stellt 10 AP für eine Attacke wieder her, wenn deren AP auf 0 fallen'
|
||||
},
|
||||
} as const;
|
|
@ -1,9 +1,9 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const commandUiHandler: SimpleTranslationEntries = {
|
||||
"fight": "Kampf",
|
||||
"ball": "Ball",
|
||||
"pokemon": "Pokémon",
|
||||
"run": "Fliehen",
|
||||
"actionMessage": "Was soll\n{{pokemonName}} tun?",
|
||||
'fight': 'Kampf',
|
||||
'ball': 'Ball',
|
||||
'pokemon': 'Pokémon',
|
||||
'run': 'Fliehen',
|
||||
'actionMessage': 'Was soll\n{{pokemonName}} tun?',
|
||||
} as const;
|
|
@ -1,26 +1,26 @@
|
|||
import { ability } from "./ability";
|
||||
import { abilityTriggers } from "./ability-trigger";
|
||||
import { battle } from "./battle";
|
||||
import { commandUiHandler } from "./command-ui-handler";
|
||||
import { egg } from "./egg";
|
||||
import { fightUiHandler } from "./fight-ui-handler";
|
||||
import { growth } from "./growth";
|
||||
import { menu } from "./menu";
|
||||
import { menuUiHandler } from "./menu-ui-handler";
|
||||
import { modifierType } from "./modifier-type";
|
||||
import { move } from "./move";
|
||||
import { nature } from "./nature";
|
||||
import { pokeball } from "./pokeball";
|
||||
import { pokemon } from "./pokemon";
|
||||
import { pokemonInfo } from "./pokemon-info";
|
||||
import { splashMessages } from "./splash-messages";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { voucher } from "./voucher";
|
||||
import { ability } from './ability';
|
||||
import { abilityTriggers } from './ability-trigger';
|
||||
import { battle } from './battle';
|
||||
import { commandUiHandler } from './command-ui-handler';
|
||||
import { egg } from './egg';
|
||||
import { fightUiHandler } from './fight-ui-handler';
|
||||
import { growth } from './growth';
|
||||
import { menu } from './menu';
|
||||
import { menuUiHandler } from './menu-ui-handler';
|
||||
import { modifierType } from './modifier-type';
|
||||
import { move } from './move';
|
||||
import { nature } from './nature';
|
||||
import { pokeball } from './pokeball';
|
||||
import { pokemon } from './pokemon';
|
||||
import { pokemonInfo } from './pokemon-info';
|
||||
import { splashMessages } from './splash-messages';
|
||||
import { starterSelectUiHandler } from './starter-select-ui-handler';
|
||||
import { titles, trainerClasses, trainerNames } from './trainers';
|
||||
import { tutorial } from './tutorial';
|
||||
import { weather } from './weather';
|
||||
import { battleMessageUiHandler } from './battle-message-ui-handler';
|
||||
import { berry } from './berry';
|
||||
import { voucher } from './voucher';
|
||||
|
||||
export const deConfig = {
|
||||
ability: ability,
|
||||
|
@ -48,4 +48,4 @@ export const deConfig = {
|
|||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
voucher: voucher,
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const egg: SimpleTranslationEntries = {
|
||||
"egg": "Ei",
|
||||
"greatTier": "Selten",
|
||||
"ultraTier": "Episch",
|
||||
"masterTier": "Legendär",
|
||||
"defaultTier": "Gewöhnlich",
|
||||
"hatchWavesMessageSoon": "Man kann schon etwas hören! Es wird wohl bald schlüpfen!",
|
||||
"hatchWavesMessageClose": "Manchmal bewegt es sich! Es braucht wohl noch ein Weilchen.",
|
||||
"hatchWavesMessageNotClose": "Was wird da wohl schlüpfen? Es wird sicher noch lange dauern.",
|
||||
"hatchWavesMessageLongTime": "Dieses Ei braucht sicher noch sehr viel Zeit.",
|
||||
"gachaTypeLegendary": "Erhöhte Chance auf legendäre Eier",
|
||||
"gachaTypeMove": "Erhöhte Chance auf Eier mit seltenen Attacken",
|
||||
"gachaTypeShiny": "Erhöhte Chance auf schillernde Eier",
|
||||
"selectMachine": "Wähle eine Maschine",
|
||||
"notEnoughVouchers": "Du hast nicht genug Ei-Gutscheine!",
|
||||
"tooManyEggs": "Du hast schon zu viele Eier!",
|
||||
"pull": "Pull",
|
||||
"pulls": "Pulls"
|
||||
'egg': 'Ei',
|
||||
'greatTier': 'Selten',
|
||||
'ultraTier': 'Episch',
|
||||
'masterTier': 'Legendär',
|
||||
'defaultTier': 'Gewöhnlich',
|
||||
'hatchWavesMessageSoon': 'Man kann schon etwas hören! Es wird wohl bald schlüpfen!',
|
||||
'hatchWavesMessageClose': 'Manchmal bewegt es sich! Es braucht wohl noch ein Weilchen.',
|
||||
'hatchWavesMessageNotClose': 'Was wird da wohl schlüpfen? Es wird sicher noch lange dauern.',
|
||||
'hatchWavesMessageLongTime': 'Dieses Ei braucht sicher noch sehr viel Zeit.',
|
||||
'gachaTypeLegendary': 'Erhöhte Chance auf legendäre Eier',
|
||||
'gachaTypeMove': 'Erhöhte Chance auf Eier mit seltenen Attacken',
|
||||
'gachaTypeShiny': 'Erhöhte Chance auf schillernde Eier',
|
||||
'selectMachine': 'Wähle eine Maschine',
|
||||
'notEnoughVouchers': 'Du hast nicht genug Ei-Gutscheine!',
|
||||
'tooManyEggs': 'Du hast schon zu viele Eier!',
|
||||
'pull': 'Pull',
|
||||
'pulls': 'Pulls'
|
||||
} as const;
|
|
@ -1,7 +1,7 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const fightUiHandler: SimpleTranslationEntries = {
|
||||
"pp": "AP",
|
||||
"power": "Stärke",
|
||||
"accuracy": "Genauigkeit",
|
||||
'pp': 'AP',
|
||||
'power': 'Stärke',
|
||||
'accuracy': 'Genauigkeit',
|
||||
} as const;
|
|
@ -1,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const growth: SimpleTranslationEntries = {
|
||||
"Erratic": "Unregelmäßig",
|
||||
"Fast": "Schnell",
|
||||
"Medium_Fast": "Schneller",
|
||||
"Medium_Slow": "Langsamer",
|
||||
"Slow": "Langsam",
|
||||
"Fluctuating": "Schwankend"
|
||||
'Erratic': 'Unregelmäßig',
|
||||
'Fast': 'Schnell',
|
||||
'Medium_Fast': 'Schneller',
|
||||
'Medium_Slow': 'Langsamer',
|
||||
'Slow': 'Langsam',
|
||||
'Fluctuating': 'Schwankend'
|
||||
} as const;
|
|
@ -1,23 +1,23 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"GAME_SETTINGS": 'Spieleinstellungen',
|
||||
"ACHIEVEMENTS": "Erfolge",
|
||||
"STATS": "Statistiken",
|
||||
"VOUCHERS": "Gutscheine",
|
||||
"EGG_LIST": "Eierliste",
|
||||
"EGG_GACHA": "Eier-Gacha",
|
||||
"MANAGE_DATA": "Daten verwalten",
|
||||
"COMMUNITY": "Community",
|
||||
"SAVE_AND_QUIT": "Speichern und Beenden",
|
||||
"LOG_OUT": "Abmelden",
|
||||
"slot": "Slot {{slotNumber}}",
|
||||
"importSession": "Sitzung importieren",
|
||||
"importSlotSelect": "Wähle einen Slot zum Importieren.",
|
||||
"exportSession": "Sitzung exportieren",
|
||||
"exportSlotSelect": "Wähle einen Slot zum Exportieren.",
|
||||
"importData": "Daten importieren",
|
||||
"exportData": "Daten exportieren",
|
||||
"cancel": "Abbrechen",
|
||||
"losingProgressionWarning": "Du wirst jeglichen Fortschritt seit Anfang dieses Kampfes verlieren. Fortfahren?"
|
||||
'GAME_SETTINGS': 'Spieleinstellungen',
|
||||
'ACHIEVEMENTS': 'Erfolge',
|
||||
'STATS': 'Statistiken',
|
||||
'VOUCHERS': 'Gutscheine',
|
||||
'EGG_LIST': 'Eierliste',
|
||||
'EGG_GACHA': 'Eier-Gacha',
|
||||
'MANAGE_DATA': 'Daten verwalten',
|
||||
'COMMUNITY': 'Community',
|
||||
'SAVE_AND_QUIT': 'Speichern und Beenden',
|
||||
'LOG_OUT': 'Abmelden',
|
||||
'slot': 'Slot {{slotNumber}}',
|
||||
'importSession': 'Sitzung importieren',
|
||||
'importSlotSelect': 'Wähle einen Slot zum Importieren.',
|
||||
'exportSession': 'Sitzung exportieren',
|
||||
'exportSlotSelect': 'Wähle einen Slot zum Exportieren.',
|
||||
'importData': 'Daten importieren',
|
||||
'exportData': 'Daten exportieren',
|
||||
'cancel': 'Abbrechen',
|
||||
'losingProgressionWarning': 'Du wirst jeglichen Fortschritt seit Anfang dieses Kampfes verlieren. Fortfahren?'
|
||||
} as const;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
/**
|
||||
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||
|
@ -6,46 +6,46 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||
* account interactions, descriptive text, etc.
|
||||
*/
|
||||
export const menu: SimpleTranslationEntries = {
|
||||
"cancel": "Abbrechen",
|
||||
"continue": "Fortfahren",
|
||||
"dailyRun": "Täglicher Run (Beta)",
|
||||
"loadGame": "Spiel laden",
|
||||
"newGame": "Neues Spiel",
|
||||
"selectGameMode": "Wähle einen Spielmodus",
|
||||
"logInOrCreateAccount": "Melde dich an oder erstelle einen Account zum starten. Keine Email nötig!",
|
||||
"username": "Benutzername",
|
||||
"password": "Passwort",
|
||||
"login": "Anmelden",
|
||||
"register": "Registrieren",
|
||||
"emptyUsername": "Benutzername darf nicht leer sein",
|
||||
"invalidLoginUsername": "Der eingegebene Benutzername ist ungültig",
|
||||
"invalidRegisterUsername": "Benutzername darf nur Buchstaben, Zahlen oder Unterstriche enthalten",
|
||||
"invalidLoginPassword": "Das eingegebene Passwort ist ungültig",
|
||||
"invalidRegisterPassword": "Passwort muss 6 Zeichen oder länger sein",
|
||||
"usernameAlreadyUsed": "Der eingegebene Benutzername wird bereits verwendet",
|
||||
"accountNonExistent": "Der eingegebene Benutzer existiert nicht",
|
||||
"unmatchingPassword": "Das eingegebene Passwort stimmt nicht überein",
|
||||
"passwordNotMatchingConfirmPassword": "Passwort muss mit Bestätigungspasswort übereinstimmen",
|
||||
"confirmPassword": "Bestätige Passwort",
|
||||
"registrationAgeWarning": "Mit der Registrierung bestätigen Sie, dass Sie 13 Jahre oder älter sind.",
|
||||
"backToLogin": "Zurück zur Anmeldung",
|
||||
"failedToLoadSaveData": "Speicherdaten konnten nicht geladen werden. Bitte laden Sie die Seite neu.\nWenn dies weiterhin der Fall ist, wenden Sie sich bitte an den Administrator.",
|
||||
"sessionSuccess": "Sitzung erfolgreich geladen.",
|
||||
"failedToLoadSession": "Ihre Sitzungsdaten konnten nicht geladen werden.\nSie könnten beschädigt sein.",
|
||||
"boyOrGirl": "Bist du ein Junge oder ein Mädchen?",
|
||||
"boy": "Junge",
|
||||
"girl": "Mädchen",
|
||||
"evolving": "Nanu?\n{{pokemonName}} entwickelt sich!",
|
||||
"stoppedEvolving": "Hm? {{pokemonName}} hat die Entwicklung \nabgebrochen.", // "Hm? Entwicklung wurde abgebrochen!" without naming the pokemon seems to be the original.
|
||||
"pauseEvolutionsQuestion": "Die Entwicklung von {{pokemonName}} vorübergehend pausieren?\nEntwicklungen können im Gruppenmenü wieder aktiviert werden.",
|
||||
"evolutionsPaused": "Entwicklung von {{pokemonName}} pausiert.",
|
||||
"evolutionDone": "Glückwunsch!\nDein {{pokemonName}} entwickelte sich zu {{evolvedPokemonName}}!",
|
||||
"dailyRankings": "Tägliche Rangliste",
|
||||
"weeklyRankings": "Wöchentliche Rangliste",
|
||||
"noRankings": "Keine Rangliste",
|
||||
"loading": "Lade…",
|
||||
"playersOnline": "Spieler Online",
|
||||
"empty":"Leer",
|
||||
"yes":"Ja",
|
||||
"no":"Nein",
|
||||
'cancel': 'Abbrechen',
|
||||
'continue': 'Fortfahren',
|
||||
'dailyRun': 'Täglicher Run (Beta)',
|
||||
'loadGame': 'Spiel laden',
|
||||
'newGame': 'Neues Spiel',
|
||||
'selectGameMode': 'Wähle einen Spielmodus',
|
||||
'logInOrCreateAccount': 'Melde dich an oder erstelle einen Account zum starten. Keine Email nötig!',
|
||||
'username': 'Benutzername',
|
||||
'password': 'Passwort',
|
||||
'login': 'Anmelden',
|
||||
'register': 'Registrieren',
|
||||
'emptyUsername': 'Benutzername darf nicht leer sein',
|
||||
'invalidLoginUsername': 'Der eingegebene Benutzername ist ungültig',
|
||||
'invalidRegisterUsername': 'Benutzername darf nur Buchstaben, Zahlen oder Unterstriche enthalten',
|
||||
'invalidLoginPassword': 'Das eingegebene Passwort ist ungültig',
|
||||
'invalidRegisterPassword': 'Passwort muss 6 Zeichen oder länger sein',
|
||||
'usernameAlreadyUsed': 'Der eingegebene Benutzername wird bereits verwendet',
|
||||
'accountNonExistent': 'Der eingegebene Benutzer existiert nicht',
|
||||
'unmatchingPassword': 'Das eingegebene Passwort stimmt nicht überein',
|
||||
'passwordNotMatchingConfirmPassword': 'Passwort muss mit Bestätigungspasswort übereinstimmen',
|
||||
'confirmPassword': 'Bestätige Passwort',
|
||||
'registrationAgeWarning': 'Mit der Registrierung bestätigen Sie, dass Sie 13 Jahre oder älter sind.',
|
||||
'backToLogin': 'Zurück zur Anmeldung',
|
||||
'failedToLoadSaveData': 'Speicherdaten konnten nicht geladen werden. Bitte laden Sie die Seite neu.\nWenn dies weiterhin der Fall ist, wenden Sie sich bitte an den Administrator.',
|
||||
'sessionSuccess': 'Sitzung erfolgreich geladen.',
|
||||
'failedToLoadSession': 'Ihre Sitzungsdaten konnten nicht geladen werden.\nSie könnten beschädigt sein.',
|
||||
'boyOrGirl': 'Bist du ein Junge oder ein Mädchen?',
|
||||
'boy': 'Junge',
|
||||
'girl': 'Mädchen',
|
||||
'evolving': 'Nanu?\n{{pokemonName}} entwickelt sich!',
|
||||
'stoppedEvolving': 'Hm? {{pokemonName}} hat die Entwicklung \nabgebrochen.', // "Hm? Entwicklung wurde abgebrochen!" without naming the pokemon seems to be the original.
|
||||
'pauseEvolutionsQuestion': 'Die Entwicklung von {{pokemonName}} vorübergehend pausieren?\nEntwicklungen können im Gruppenmenü wieder aktiviert werden.',
|
||||
'evolutionsPaused': 'Entwicklung von {{pokemonName}} pausiert.',
|
||||
'evolutionDone': 'Glückwunsch!\nDein {{pokemonName}} entwickelte sich zu {{evolvedPokemonName}}!',
|
||||
'dailyRankings': 'Tägliche Rangliste',
|
||||
'weeklyRankings': 'Wöchentliche Rangliste',
|
||||
'noRankings': 'Keine Rangliste',
|
||||
'loading': 'Lade…',
|
||||
'playersOnline': 'Spieler Online',
|
||||
'empty':'Leer',
|
||||
'yes':'Ja',
|
||||
'no':'Nein',
|
||||
} as const;
|
||||
|
|
|
@ -1,388 +1,388 @@
|
|||
import { ModifierTypeTranslationEntries } from "#app/plugins/i18n";
|
||||
import { ModifierTypeTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const modifierType: ModifierTypeTranslationEntries = {
|
||||
ModifierType: {
|
||||
"AddPokeballModifierType": {
|
||||
name: "{{modifierCount}}x {{pokeballName}}",
|
||||
description: "Erhalte {{pokeballName}} x{{modifierCount}} (Inventar: {{pokeballAmount}}) \nFangrate: {{catchRate}}",
|
||||
'AddPokeballModifierType': {
|
||||
name: '{{modifierCount}}x {{pokeballName}}',
|
||||
description: 'Erhalte {{pokeballName}} x{{modifierCount}} (Inventar: {{pokeballAmount}}) \nFangrate: {{catchRate}}',
|
||||
},
|
||||
"AddVoucherModifierType": {
|
||||
name: "{{modifierCount}}x {{voucherTypeName}}",
|
||||
description: "Erhalte {{voucherTypeName}} x{{modifierCount}}",
|
||||
'AddVoucherModifierType': {
|
||||
name: '{{modifierCount}}x {{voucherTypeName}}',
|
||||
description: 'Erhalte {{voucherTypeName}} x{{modifierCount}}',
|
||||
},
|
||||
"PokemonHeldItemModifierType": {
|
||||
'PokemonHeldItemModifierType': {
|
||||
extra: {
|
||||
"inoperable": "{{pokemonName}} kann dieses\nItem nicht nehmen!",
|
||||
"tooMany": "{{pokemonName}} hat zu viele\nvon diesem Item!",
|
||||
'inoperable': '{{pokemonName}} kann dieses\nItem nicht nehmen!',
|
||||
'tooMany': '{{pokemonName}} hat zu viele\nvon diesem Item!',
|
||||
}
|
||||
},
|
||||
"PokemonHpRestoreModifierType": {
|
||||
description: "Füllt {{restorePoints}} KP oder {{restorePercent}}% der KP für ein Pokémon auf. Je nachdem, welcher Wert höher ist",
|
||||
'PokemonHpRestoreModifierType': {
|
||||
description: 'Füllt {{restorePoints}} KP oder {{restorePercent}}% der KP für ein Pokémon auf. Je nachdem, welcher Wert höher ist',
|
||||
extra: {
|
||||
"fully": "Füllt die KP eines Pokémon wieder vollständig auf.",
|
||||
"fullyWithStatus": "Füllt die KP eines Pokémon wieder vollständig auf und behebt alle Statusprobleme",
|
||||
'fully': 'Füllt die KP eines Pokémon wieder vollständig auf.',
|
||||
'fullyWithStatus': 'Füllt die KP eines Pokémon wieder vollständig auf und behebt alle Statusprobleme',
|
||||
}
|
||||
},
|
||||
"PokemonReviveModifierType": {
|
||||
description: "Belebt ein kampunfähiges Pokémon wieder und stellt {{restorePercent}}% KP wieder her",
|
||||
'PokemonReviveModifierType': {
|
||||
description: 'Belebt ein kampunfähiges Pokémon wieder und stellt {{restorePercent}}% KP wieder her',
|
||||
},
|
||||
"PokemonStatusHealModifierType": {
|
||||
description: "Behebt alle Statusprobleme eines Pokémon",
|
||||
'PokemonStatusHealModifierType': {
|
||||
description: 'Behebt alle Statusprobleme eines Pokémon',
|
||||
},
|
||||
"PokemonPpRestoreModifierType": {
|
||||
description: "Füllt {{restorePoints}} AP der ausgewählten Attacke eines Pokémon auf",
|
||||
'PokemonPpRestoreModifierType': {
|
||||
description: 'Füllt {{restorePoints}} AP der ausgewählten Attacke eines Pokémon auf',
|
||||
extra: {
|
||||
"fully": "Füllt alle AP der ausgewählten Attacke eines Pokémon auf",
|
||||
'fully': 'Füllt alle AP der ausgewählten Attacke eines Pokémon auf',
|
||||
}
|
||||
},
|
||||
"PokemonAllMovePpRestoreModifierType": {
|
||||
description: "Stellt {{restorePoints}} AP für alle Attacken eines Pokémon auf",
|
||||
'PokemonAllMovePpRestoreModifierType': {
|
||||
description: 'Stellt {{restorePoints}} AP für alle Attacken eines Pokémon auf',
|
||||
extra: {
|
||||
"fully": "Füllt alle AP für alle Attacken eines Pokémon auf",
|
||||
'fully': 'Füllt alle AP für alle Attacken eines Pokémon auf',
|
||||
}
|
||||
},
|
||||
"PokemonPpUpModifierType": {
|
||||
description: "Erhöht die maximale Anzahl der AP der ausgewählten Attacke um {{upPoints}} für jede 5 maximale AP (maximal 3)",
|
||||
'PokemonPpUpModifierType': {
|
||||
description: 'Erhöht die maximale Anzahl der AP der ausgewählten Attacke um {{upPoints}} für jede 5 maximale AP (maximal 3)',
|
||||
},
|
||||
"PokemonNatureChangeModifierType": {
|
||||
name: "{{natureName}} Minze",
|
||||
description: "Ändert das Wesen zu {{natureName}}. Schaltet dieses Wesen permanent für diesen Starter frei.",
|
||||
'PokemonNatureChangeModifierType': {
|
||||
name: '{{natureName}} Minze',
|
||||
description: 'Ändert das Wesen zu {{natureName}}. Schaltet dieses Wesen permanent für diesen Starter frei.',
|
||||
},
|
||||
"DoubleBattleChanceBoosterModifierType": {
|
||||
description: "Verdoppelt die Wahrscheinlichkeit, dass die nächsten {{battleCount}} Begegnungen mit wilden Pokémon ein Doppelkampf sind.",
|
||||
'DoubleBattleChanceBoosterModifierType': {
|
||||
description: 'Verdoppelt die Wahrscheinlichkeit, dass die nächsten {{battleCount}} Begegnungen mit wilden Pokémon ein Doppelkampf sind.',
|
||||
},
|
||||
"TempBattleStatBoosterModifierType": {
|
||||
description: "Erhöht die {{tempBattleStatName}} aller Teammitglieder für 5 Kämpfe um eine Stufe",
|
||||
'TempBattleStatBoosterModifierType': {
|
||||
description: 'Erhöht die {{tempBattleStatName}} aller Teammitglieder für 5 Kämpfe um eine Stufe',
|
||||
},
|
||||
"AttackTypeBoosterModifierType": {
|
||||
description: "Erhöht die Stärke aller {{moveType}}-Attacken eines Pokémon um 20%",
|
||||
'AttackTypeBoosterModifierType': {
|
||||
description: 'Erhöht die Stärke aller {{moveType}}-Attacken eines Pokémon um 20%',
|
||||
},
|
||||
"PokemonLevelIncrementModifierType": {
|
||||
description: "Erhöht das Level eines Pokémon um 1",
|
||||
'PokemonLevelIncrementModifierType': {
|
||||
description: 'Erhöht das Level eines Pokémon um 1',
|
||||
},
|
||||
"AllPokemonLevelIncrementModifierType": {
|
||||
description: "Erhöht das Level aller Teammitglieder um 1",
|
||||
'AllPokemonLevelIncrementModifierType': {
|
||||
description: 'Erhöht das Level aller Teammitglieder um 1',
|
||||
},
|
||||
"PokemonBaseStatBoosterModifierType": {
|
||||
description: "Erhöht den {{statName}} Basiswert des Trägers um 10%. Das Stapellimit erhöht sich, je höher dein IS-Wert ist.",
|
||||
'PokemonBaseStatBoosterModifierType': {
|
||||
description: 'Erhöht den {{statName}} Basiswert des Trägers um 10%. Das Stapellimit erhöht sich, je höher dein IS-Wert ist.',
|
||||
},
|
||||
"AllPokemonFullHpRestoreModifierType": {
|
||||
description: "Stellt 100% der KP aller Pokémon her",
|
||||
'AllPokemonFullHpRestoreModifierType': {
|
||||
description: 'Stellt 100% der KP aller Pokémon her',
|
||||
},
|
||||
"AllPokemonFullReviveModifierType": {
|
||||
description: "Belebt alle kampunfähigen Pokémon wieder und stellt ihre KP vollständig wieder her",
|
||||
'AllPokemonFullReviveModifierType': {
|
||||
description: 'Belebt alle kampunfähigen Pokémon wieder und stellt ihre KP vollständig wieder her',
|
||||
},
|
||||
"MoneyRewardModifierType": {
|
||||
description:"Gewährt einen {{moneyMultiplier}} Geldbetrag von (₽{{moneyAmount}})",
|
||||
'MoneyRewardModifierType': {
|
||||
description:'Gewährt einen {{moneyMultiplier}} Geldbetrag von (₽{{moneyAmount}})',
|
||||
extra: {
|
||||
"small": "kleinen",
|
||||
"moderate": "moderaten",
|
||||
"large": "großen",
|
||||
'small': 'kleinen',
|
||||
'moderate': 'moderaten',
|
||||
'large': 'großen',
|
||||
},
|
||||
},
|
||||
"ExpBoosterModifierType": {
|
||||
description: "Erhöht die erhaltenen Erfahrungspunkte um {{boostPercent}}%",
|
||||
'ExpBoosterModifierType': {
|
||||
description: 'Erhöht die erhaltenen Erfahrungspunkte um {{boostPercent}}%',
|
||||
},
|
||||
"PokemonExpBoosterModifierType": {
|
||||
description: "Erhöht die Menge der erhaltenen Erfahrungspunkte für den Träger um {{boostPercent}}%",
|
||||
'PokemonExpBoosterModifierType': {
|
||||
description: 'Erhöht die Menge der erhaltenen Erfahrungspunkte für den Träger um {{boostPercent}}%',
|
||||
},
|
||||
"PokemonFriendshipBoosterModifierType": {
|
||||
description: "Erhöht den Freundschaftszuwachs pro Sieg um 50%.",
|
||||
'PokemonFriendshipBoosterModifierType': {
|
||||
description: 'Erhöht den Freundschaftszuwachs pro Sieg um 50%.',
|
||||
},
|
||||
"PokemonMoveAccuracyBoosterModifierType": {
|
||||
description: "Erhöht die Genauigkeit der Angriffe um {{accuracyAmount}} (maximal 100)",
|
||||
'PokemonMoveAccuracyBoosterModifierType': {
|
||||
description: 'Erhöht die Genauigkeit der Angriffe um {{accuracyAmount}} (maximal 100)',
|
||||
},
|
||||
"PokemonMultiHitModifierType": {
|
||||
description: "Attacken treffen ein weiteres mal mit einer Reduktion von 60/75/82,5% der Stärke",
|
||||
'PokemonMultiHitModifierType': {
|
||||
description: 'Attacken treffen ein weiteres mal mit einer Reduktion von 60/75/82,5% der Stärke',
|
||||
},
|
||||
"TmModifierType": {
|
||||
name: "TM{{moveId}} - {{moveName}}",
|
||||
description: "Bringt einem Pokémon {{moveName}} bei",
|
||||
'TmModifierType': {
|
||||
name: 'TM{{moveId}} - {{moveName}}',
|
||||
description: 'Bringt einem Pokémon {{moveName}} bei',
|
||||
},
|
||||
"EvolutionItemModifierType": {
|
||||
description: "Erlaubt es bestimmten Pokémon sich zu entwickeln",
|
||||
'EvolutionItemModifierType': {
|
||||
description: 'Erlaubt es bestimmten Pokémon sich zu entwickeln',
|
||||
},
|
||||
"FormChangeItemModifierType": {
|
||||
description: "Erlaubt es bestimmten Pokémon ihre Form zu ändern",
|
||||
'FormChangeItemModifierType': {
|
||||
description: 'Erlaubt es bestimmten Pokémon ihre Form zu ändern',
|
||||
},
|
||||
"FusePokemonModifierType": {
|
||||
description: "Fusioniert zwei Pokémon (überträgt die Fähigkeit, teilt Basiswerte und Typ auf, gemeinsamer Attackenpool)",
|
||||
'FusePokemonModifierType': {
|
||||
description: 'Fusioniert zwei Pokémon (überträgt die Fähigkeit, teilt Basiswerte und Typ auf, gemeinsamer Attackenpool)',
|
||||
},
|
||||
"TerastallizeModifierType": {
|
||||
name: "{{teraType}} Terra-Stück",
|
||||
description: "{{teraType}} Terakristallisiert den Träger für bis zu 10 Kämpfe",
|
||||
'TerastallizeModifierType': {
|
||||
name: '{{teraType}} Terra-Stück',
|
||||
description: '{{teraType}} Terakristallisiert den Träger für bis zu 10 Kämpfe',
|
||||
},
|
||||
"ContactHeldItemTransferChanceModifierType": {
|
||||
description:"Beim Angriff besteht eine {{chancePercent}}%ige Chance, dass das getragene Item des Gegners gestohlen wird."
|
||||
'ContactHeldItemTransferChanceModifierType': {
|
||||
description:'Beim Angriff besteht eine {{chancePercent}}%ige Chance, dass das getragene Item des Gegners gestohlen wird.'
|
||||
},
|
||||
"TurnHeldItemTransferModifierType": {
|
||||
description: "Jede Runde erhält der Träger ein getragenes Item des Gegners",
|
||||
'TurnHeldItemTransferModifierType': {
|
||||
description: 'Jede Runde erhält der Träger ein getragenes Item des Gegners',
|
||||
},
|
||||
"EnemyAttackStatusEffectChanceModifierType": {
|
||||
description: "Fügt Angriffen eine {{chancePercent}}%ige Chance hinzu, {{statusEffect}} zu verursachen",
|
||||
'EnemyAttackStatusEffectChanceModifierType': {
|
||||
description: 'Fügt Angriffen eine {{chancePercent}}%ige Chance hinzu, {{statusEffect}} zu verursachen',
|
||||
},
|
||||
"EnemyEndureChanceModifierType": {
|
||||
description: "Gibt den Träger eine {{chancePercent}}%ige Chance, einen Angriff zu überleben",
|
||||
'EnemyEndureChanceModifierType': {
|
||||
description: 'Gibt den Träger eine {{chancePercent}}%ige Chance, einen Angriff zu überleben',
|
||||
},
|
||||
|
||||
"RARE_CANDY": { name: "Sonderbonbon" },
|
||||
"RARER_CANDY": { name: "Supersondererbonbon" },
|
||||
'RARE_CANDY': { name: 'Sonderbonbon' },
|
||||
'RARER_CANDY': { name: 'Supersondererbonbon' },
|
||||
|
||||
"MEGA_BRACELET": { name: "Mega-Armband", description: "Mega-Steine werden verfügbar" },
|
||||
"DYNAMAX_BAND": { name: "Dynamax-Band", description: "Dyna-Pilze werden verfügbar" },
|
||||
"TERA_ORB": { name: "Terakristall-Orb", description: "Tera-Stücke werden verfügbar" },
|
||||
'MEGA_BRACELET': { name: 'Mega-Armband', description: 'Mega-Steine werden verfügbar' },
|
||||
'DYNAMAX_BAND': { name: 'Dynamax-Band', description: 'Dyna-Pilze werden verfügbar' },
|
||||
'TERA_ORB': { name: 'Terakristall-Orb', description: 'Tera-Stücke werden verfügbar' },
|
||||
|
||||
"MAP": { name: "Karte", description: "Ermöglicht es dir, an einer Kreuzung dein Ziel zu wählen." },
|
||||
'MAP': { name: 'Karte', description: 'Ermöglicht es dir, an einer Kreuzung dein Ziel zu wählen.' },
|
||||
|
||||
"POTION": { name: "Trank" },
|
||||
"SUPER_POTION": { name: "Supertrank" },
|
||||
"HYPER_POTION": { name: "Hypertrank" },
|
||||
"MAX_POTION": { name: "Top-Trank" },
|
||||
"FULL_RESTORE": { name: "Top-Genesung" },
|
||||
'POTION': { name: 'Trank' },
|
||||
'SUPER_POTION': { name: 'Supertrank' },
|
||||
'HYPER_POTION': { name: 'Hypertrank' },
|
||||
'MAX_POTION': { name: 'Top-Trank' },
|
||||
'FULL_RESTORE': { name: 'Top-Genesung' },
|
||||
|
||||
"REVIVE": { name: "Beleber" },
|
||||
"MAX_REVIVE": { name: "Top-Beleber" },
|
||||
'REVIVE': { name: 'Beleber' },
|
||||
'MAX_REVIVE': { name: 'Top-Beleber' },
|
||||
|
||||
"FULL_HEAL": { name: "Hyperheiler" },
|
||||
'FULL_HEAL': { name: 'Hyperheiler' },
|
||||
|
||||
"SACRED_ASH": { name: "Zauberasche" },
|
||||
'SACRED_ASH': { name: 'Zauberasche' },
|
||||
|
||||
"REVIVER_SEED": { name: "Belebersamen", description: "Belebt den Träger mit der Hälfte seiner KP wieder sollte er kampfunfähig werden" },
|
||||
'REVIVER_SEED': { name: 'Belebersamen', description: 'Belebt den Träger mit der Hälfte seiner KP wieder sollte er kampfunfähig werden' },
|
||||
|
||||
"ETHER": { name: "Äther" },
|
||||
"MAX_ETHER": { name: "Top-Äther" },
|
||||
'ETHER': { name: 'Äther' },
|
||||
'MAX_ETHER': { name: 'Top-Äther' },
|
||||
|
||||
"ELIXIR": { name: "Elixir" },
|
||||
"MAX_ELIXIR": { name: "Top-Elixir" },
|
||||
'ELIXIR': { name: 'Elixir' },
|
||||
'MAX_ELIXIR': { name: 'Top-Elixir' },
|
||||
|
||||
"PP_UP": { name: "AP-Plus" },
|
||||
"PP_MAX": { name: "AP-Top" },
|
||||
'PP_UP': { name: 'AP-Plus' },
|
||||
'PP_MAX': { name: 'AP-Top' },
|
||||
|
||||
"LURE": { name: "Lockparfüm" },
|
||||
"SUPER_LURE": { name: "Super-Lockparfüm" },
|
||||
"MAX_LURE": { name: "Top-Lockparfüm" },
|
||||
'LURE': { name: 'Lockparfüm' },
|
||||
'SUPER_LURE': { name: 'Super-Lockparfüm' },
|
||||
'MAX_LURE': { name: 'Top-Lockparfüm' },
|
||||
|
||||
"MEMORY_MUSHROOM": { name: "Erinnerungspilz", description: "Lässt ein Pokémon eine vergessene Attacke wiedererlernen" },
|
||||
'MEMORY_MUSHROOM': { name: 'Erinnerungspilz', description: 'Lässt ein Pokémon eine vergessene Attacke wiedererlernen' },
|
||||
|
||||
"EXP_SHARE": { name: "EP-Teiler", description: "Pokémon, die nicht am Kampf teilgenommen haben, bekommen 20% der Erfahrungspunkte eines Kampfteilnehmers" },
|
||||
"EXP_BALANCE": { name: "EP-Ausgleicher", description: "Gewichtet die in Kämpfen erhaltenen Erfahrungspunkte auf niedrigstufigere Gruppenmitglieder." },
|
||||
'EXP_SHARE': { name: 'EP-Teiler', description: 'Pokémon, die nicht am Kampf teilgenommen haben, bekommen 20% der Erfahrungspunkte eines Kampfteilnehmers' },
|
||||
'EXP_BALANCE': { name: 'EP-Ausgleicher', description: 'Gewichtet die in Kämpfen erhaltenen Erfahrungspunkte auf niedrigstufigere Gruppenmitglieder.' },
|
||||
|
||||
"OVAL_CHARM": { name: "Ovalpin", description: "Wenn mehrere Pokémon am Kampf teilnehmen, erhählt jeder von ihnen 10% extra Erfahrungspunkte" },
|
||||
'OVAL_CHARM': { name: 'Ovalpin', description: 'Wenn mehrere Pokémon am Kampf teilnehmen, erhählt jeder von ihnen 10% extra Erfahrungspunkte' },
|
||||
|
||||
"EXP_CHARM": { name: "EP-Pin" },
|
||||
"SUPER_EXP_CHARM": { name: "Super-EP-Pin" },
|
||||
"GOLDEN_EXP_CHARM": { name: "Goldener EP-Pin" },
|
||||
'EXP_CHARM': { name: 'EP-Pin' },
|
||||
'SUPER_EXP_CHARM': { name: 'Super-EP-Pin' },
|
||||
'GOLDEN_EXP_CHARM': { name: 'Goldener EP-Pin' },
|
||||
|
||||
"LUCKY_EGG": { name: "Glücks-Ei" },
|
||||
"GOLDEN_EGG": { name: "Goldenes Ei" },
|
||||
'LUCKY_EGG': { name: 'Glücks-Ei' },
|
||||
'GOLDEN_EGG': { name: 'Goldenes Ei' },
|
||||
|
||||
"SOOTHE_BELL": { name: "Sanftglocke" },
|
||||
'SOOTHE_BELL': { name: 'Sanftglocke' },
|
||||
|
||||
"SOUL_DEW": { name: "Seelentau", description: "Erhöht den Einfluss des Wesens eines Pokemon auf seine Werte um 10% (additiv)" },
|
||||
'SOUL_DEW': { name: 'Seelentau', description: 'Erhöht den Einfluss des Wesens eines Pokemon auf seine Werte um 10% (additiv)' },
|
||||
|
||||
"NUGGET": { name: "Nugget" },
|
||||
"BIG_NUGGET": { name: "Riesennugget" },
|
||||
"RELIC_GOLD": { name: "Alter Dukat" },
|
||||
'NUGGET': { name: 'Nugget' },
|
||||
'BIG_NUGGET': { name: 'Riesennugget' },
|
||||
'RELIC_GOLD': { name: 'Alter Dukat' },
|
||||
|
||||
"AMULET_COIN": { name: "Münzamulett", description: "Erhöht das Preisgeld um 20%" },
|
||||
"GOLDEN_PUNCH": { name: "Goldschlag", description: "Gewährt Geld in Höhe von 50% des zugefügten Schadens" },
|
||||
"COIN_CASE": { name: "Münzkorb", description: "Erhalte nach jedem 10ten Kampf 10% Zinsen auf dein Geld" },
|
||||
'AMULET_COIN': { name: 'Münzamulett', description: 'Erhöht das Preisgeld um 20%' },
|
||||
'GOLDEN_PUNCH': { name: 'Goldschlag', description: 'Gewährt Geld in Höhe von 50% des zugefügten Schadens' },
|
||||
'COIN_CASE': { name: 'Münzkorb', description: 'Erhalte nach jedem 10ten Kampf 10% Zinsen auf dein Geld' },
|
||||
|
||||
"LOCK_CAPSULE": { name: "Tresorkapsel", description: "Erlaubt es die Seltenheitsstufe der Items festzusetzen wenn diese neu gerollt werden" },
|
||||
'LOCK_CAPSULE': { name: 'Tresorkapsel', description: 'Erlaubt es die Seltenheitsstufe der Items festzusetzen wenn diese neu gerollt werden' },
|
||||
|
||||
"GRIP_CLAW": { name: "Griffklaue" },
|
||||
"WIDE_LENS": { name: "Großlinse" },
|
||||
'GRIP_CLAW': { name: 'Griffklaue' },
|
||||
'WIDE_LENS': { name: 'Großlinse' },
|
||||
|
||||
"MULTI_LENS": { name: "Mehrfachlinse" },
|
||||
'MULTI_LENS': { name: 'Mehrfachlinse' },
|
||||
|
||||
"HEALING_CHARM": { name: "Heilungspin", description: "Erhöht die Effektivität von Heilungsattacken sowie Heilitems um 10% (Beleber ausgenommen)" },
|
||||
"CANDY_JAR": { name: "Bonbonglas", description: "Erhöht die Anzahl der Level die ein Sonderbonbon erhöht um 1" },
|
||||
'HEALING_CHARM': { name: 'Heilungspin', description: 'Erhöht die Effektivität von Heilungsattacken sowie Heilitems um 10% (Beleber ausgenommen)' },
|
||||
'CANDY_JAR': { name: 'Bonbonglas', description: 'Erhöht die Anzahl der Level die ein Sonderbonbon erhöht um 1' },
|
||||
|
||||
"BERRY_POUCH": { name: "Beerentüte", description: "Fügt eine 25% Chance hinzu, dass Beeren nicht verbraucht werden" },
|
||||
'BERRY_POUCH': { name: 'Beerentüte', description: 'Fügt eine 25% Chance hinzu, dass Beeren nicht verbraucht werden' },
|
||||
|
||||
"FOCUS_BAND": { name: "Fokusband", description: "Fügt eine 10% Chance hinzu, dass Angriffe die zur Kampfunfähigkeit führen mit 1 KP überlebt werden" },
|
||||
'FOCUS_BAND': { name: 'Fokusband', description: 'Fügt eine 10% Chance hinzu, dass Angriffe die zur Kampfunfähigkeit führen mit 1 KP überlebt werden' },
|
||||
|
||||
"QUICK_CLAW": { name: "Quick Claw", description: "Fügt eine 10% Change hinzu als erster anzugreifen. (Nach Prioritätsangriffen)" },
|
||||
'QUICK_CLAW': { name: 'Quick Claw', description: 'Fügt eine 10% Change hinzu als erster anzugreifen. (Nach Prioritätsangriffen)' },
|
||||
|
||||
"KINGS_ROCK": { name: "King-Stein", description: "Fügt eine 10% Chance hinzu, dass der Gegner nach einem Angriff zurückschreckt" },
|
||||
'KINGS_ROCK': { name: 'King-Stein', description: 'Fügt eine 10% Chance hinzu, dass der Gegner nach einem Angriff zurückschreckt' },
|
||||
|
||||
"LEFTOVERS": { name: "Überreste", description: "Heilt 1/16 der maximalen KP eines Pokémon pro Runde" },
|
||||
"SHELL_BELL": { name: "Muschelglocke", description: "Heilt den Anwender um 1/8 des von ihm zugefügten Schadens" },
|
||||
'LEFTOVERS': { name: 'Überreste', description: 'Heilt 1/16 der maximalen KP eines Pokémon pro Runde' },
|
||||
'SHELL_BELL': { name: 'Muschelglocke', description: 'Heilt den Anwender um 1/8 des von ihm zugefügten Schadens' },
|
||||
|
||||
"BATON": { name: "Stab", description: "Ermöglicht das Weitergeben von Effekten beim Wechseln von Pokémon, wodurch auch Fallen umgangen werden." },
|
||||
'BATON': { name: 'Stab', description: 'Ermöglicht das Weitergeben von Effekten beim Wechseln von Pokémon, wodurch auch Fallen umgangen werden.' },
|
||||
|
||||
"SHINY_CHARM": { name: "Schillerpin", description: "Erhöht die Chance deutlich, dass ein wildes Pokémon ein schillernd ist" },
|
||||
"ABILITY_CHARM": { name: "Ability Charm", description: "Erhöht die Chance deutlich, dass ein wildes Pokémon eine versteckte Fähigkeit hat" },
|
||||
'SHINY_CHARM': { name: 'Schillerpin', description: 'Erhöht die Chance deutlich, dass ein wildes Pokémon ein schillernd ist' },
|
||||
'ABILITY_CHARM': { name: 'Ability Charm', description: 'Erhöht die Chance deutlich, dass ein wildes Pokémon eine versteckte Fähigkeit hat' },
|
||||
|
||||
"IV_SCANNER": { name: "IS-Scanner", description: "Erlaubt es die IS-Werte von wilden Pokémon zu scannen.\n(2 IS-Werte pro Staplung. Die besten IS-Werte zuerst)" },
|
||||
'IV_SCANNER': { name: 'IS-Scanner', description: 'Erlaubt es die IS-Werte von wilden Pokémon zu scannen.\n(2 IS-Werte pro Staplung. Die besten IS-Werte zuerst)' },
|
||||
|
||||
"DNA_SPLICERS": { name: "DNS-Keil" },
|
||||
'DNA_SPLICERS': { name: 'DNS-Keil' },
|
||||
|
||||
"MINI_BLACK_HOLE": { name: "Mini schwarzes Loch" },
|
||||
'MINI_BLACK_HOLE': { name: 'Mini schwarzes Loch' },
|
||||
|
||||
"GOLDEN_POKEBALL": { name: "Goldener Pokéball", description: "Fügt eine zusätzliche Item-Auswahlmöglichkeit nach jedem Kampf hinzu" },
|
||||
'GOLDEN_POKEBALL': { name: 'Goldener Pokéball', description: 'Fügt eine zusätzliche Item-Auswahlmöglichkeit nach jedem Kampf hinzu' },
|
||||
|
||||
"ENEMY_DAMAGE_BOOSTER": { name: "Schadensmarke", description: "Erhöht den Schaden um 5%" },
|
||||
"ENEMY_DAMAGE_REDUCTION": { name: "Schutzmarke", description: "Verringert den erhaltenen Schaden um 2,5%" },
|
||||
"ENEMY_HEAL": { name: "Wiederherstellungsmarke", description: "Heilt 2% der maximalen KP pro Runde" },
|
||||
"ENEMY_ATTACK_POISON_CHANCE": { name: "Giftmarke" },
|
||||
"ENEMY_ATTACK_PARALYZE_CHANCE": { "name": "Lähmungsmarke" },
|
||||
"ENEMY_ATTACK_SLEEP_CHANCE": { "name": "Schlafmarke" },
|
||||
"ENEMY_ATTACK_FREEZE_CHANCE": { "name": "Gefriermarke" },
|
||||
"ENEMY_ATTACK_BURN_CHANCE": { "name": "Brandmarke" },
|
||||
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { "name": "Vollheilungsmarke", "description": "Fügt eine 10%ige Chance hinzu, jede Runde einen Statuszustand zu heilen" },
|
||||
"ENEMY_ENDURE_CHANCE": { "name": "Ausdauer-Marke" },
|
||||
"ENEMY_FUSED_CHANCE": { "name": "Fusionsmarke", "description": "Fügt eine 1%ige Chance hinzu, dass ein wildes Pokémon eine Fusion ist" },
|
||||
'ENEMY_DAMAGE_BOOSTER': { name: 'Schadensmarke', description: 'Erhöht den Schaden um 5%' },
|
||||
'ENEMY_DAMAGE_REDUCTION': { name: 'Schutzmarke', description: 'Verringert den erhaltenen Schaden um 2,5%' },
|
||||
'ENEMY_HEAL': { name: 'Wiederherstellungsmarke', description: 'Heilt 2% der maximalen KP pro Runde' },
|
||||
'ENEMY_ATTACK_POISON_CHANCE': { name: 'Giftmarke' },
|
||||
'ENEMY_ATTACK_PARALYZE_CHANCE': { 'name': 'Lähmungsmarke' },
|
||||
'ENEMY_ATTACK_SLEEP_CHANCE': { 'name': 'Schlafmarke' },
|
||||
'ENEMY_ATTACK_FREEZE_CHANCE': { 'name': 'Gefriermarke' },
|
||||
'ENEMY_ATTACK_BURN_CHANCE': { 'name': 'Brandmarke' },
|
||||
'ENEMY_STATUS_EFFECT_HEAL_CHANCE': { 'name': 'Vollheilungsmarke', 'description': 'Fügt eine 10%ige Chance hinzu, jede Runde einen Statuszustand zu heilen' },
|
||||
'ENEMY_ENDURE_CHANCE': { 'name': 'Ausdauer-Marke' },
|
||||
'ENEMY_FUSED_CHANCE': { 'name': 'Fusionsmarke', 'description': 'Fügt eine 1%ige Chance hinzu, dass ein wildes Pokémon eine Fusion ist' },
|
||||
|
||||
},
|
||||
TempBattleStatBoosterItem: {
|
||||
"x_attack": "X-Angriff",
|
||||
"x_defense": "X-Verteidigung",
|
||||
"x_sp_atk": "X-Sp.-Ang.",
|
||||
"x_sp_def": "X-Sp.-Vert.",
|
||||
"x_speed": "X-Tempo",
|
||||
"x_accuracy": "X-Treffer",
|
||||
"dire_hit": "X-Volltreffer",
|
||||
'x_attack': 'X-Angriff',
|
||||
'x_defense': 'X-Verteidigung',
|
||||
'x_sp_atk': 'X-Sp.-Ang.',
|
||||
'x_sp_def': 'X-Sp.-Vert.',
|
||||
'x_speed': 'X-Tempo',
|
||||
'x_accuracy': 'X-Treffer',
|
||||
'dire_hit': 'X-Volltreffer',
|
||||
},
|
||||
AttackTypeBoosterItem: {
|
||||
"silk_scarf": "Seidenschal",
|
||||
"black_belt": "Schwarzgurt",
|
||||
"sharp_beak": "Spitzer Schnabel",
|
||||
"poison_barb": "Giftstich",
|
||||
"soft_sand": "Pudersand",
|
||||
"hard_stone": "Granitstein",
|
||||
"silver_powder": "Silberstaub",
|
||||
"spell_tag": "Bannsticker",
|
||||
"metal_coat": "Metallmantel",
|
||||
"charcoal": "Holzkohle",
|
||||
"mystic_water": "Zauberwasser",
|
||||
"miracle_seed": "Wundersaat",
|
||||
"magnet": "Magnet",
|
||||
"twisted_spoon": "Krümmlöffel",
|
||||
"never_melt_ice": "Ewiges Eis",
|
||||
"dragon_fang": "Drachenzahn",
|
||||
"black_glasses": "Schattenbrille",
|
||||
"fairy_feather": "Feendaune",
|
||||
'silk_scarf': 'Seidenschal',
|
||||
'black_belt': 'Schwarzgurt',
|
||||
'sharp_beak': 'Spitzer Schnabel',
|
||||
'poison_barb': 'Giftstich',
|
||||
'soft_sand': 'Pudersand',
|
||||
'hard_stone': 'Granitstein',
|
||||
'silver_powder': 'Silberstaub',
|
||||
'spell_tag': 'Bannsticker',
|
||||
'metal_coat': 'Metallmantel',
|
||||
'charcoal': 'Holzkohle',
|
||||
'mystic_water': 'Zauberwasser',
|
||||
'miracle_seed': 'Wundersaat',
|
||||
'magnet': 'Magnet',
|
||||
'twisted_spoon': 'Krümmlöffel',
|
||||
'never_melt_ice': 'Ewiges Eis',
|
||||
'dragon_fang': 'Drachenzahn',
|
||||
'black_glasses': 'Schattenbrille',
|
||||
'fairy_feather': 'Feendaune',
|
||||
},
|
||||
BaseStatBoosterItem: {
|
||||
"hp_up": "KP-Plus",
|
||||
"protein": "Protein",
|
||||
"iron": "Eisen",
|
||||
"calcium": "Kalzium",
|
||||
"zinc": "Zink",
|
||||
"carbos": "Carbon",
|
||||
'hp_up': 'KP-Plus',
|
||||
'protein': 'Protein',
|
||||
'iron': 'Eisen',
|
||||
'calcium': 'Kalzium',
|
||||
'zinc': 'Zink',
|
||||
'carbos': 'Carbon',
|
||||
},
|
||||
EvolutionItem: {
|
||||
"NONE": "Keins",
|
||||
'NONE': 'Keins',
|
||||
|
||||
"LINKING_CORD": "Linkkabel",
|
||||
"SUN_STONE": "Sonnenstein",
|
||||
"MOON_STONE": "Mondstein",
|
||||
"LEAF_STONE": "Blattstein",
|
||||
"FIRE_STONE": "Feuerstein",
|
||||
"WATER_STONE": "Wasserstein",
|
||||
"THUNDER_STONE": "Donnerstein",
|
||||
"ICE_STONE": "Eisstein",
|
||||
"DUSK_STONE": "Finsterstein",
|
||||
"DAWN_STONE": "Funkelstein",
|
||||
"SHINY_STONE": "Leuchtstein",
|
||||
"CRACKED_POT": "Rissige Kanne",
|
||||
"SWEET_APPLE": "Süßer Apfel",
|
||||
"TART_APPLE": "Saurer Apfel",
|
||||
"STRAWBERRY_SWEET": "Zucker-Erdbeere",
|
||||
"UNREMARKABLE_TEACUP": "Simple Teeschale",
|
||||
'LINKING_CORD': 'Linkkabel',
|
||||
'SUN_STONE': 'Sonnenstein',
|
||||
'MOON_STONE': 'Mondstein',
|
||||
'LEAF_STONE': 'Blattstein',
|
||||
'FIRE_STONE': 'Feuerstein',
|
||||
'WATER_STONE': 'Wasserstein',
|
||||
'THUNDER_STONE': 'Donnerstein',
|
||||
'ICE_STONE': 'Eisstein',
|
||||
'DUSK_STONE': 'Finsterstein',
|
||||
'DAWN_STONE': 'Funkelstein',
|
||||
'SHINY_STONE': 'Leuchtstein',
|
||||
'CRACKED_POT': 'Rissige Kanne',
|
||||
'SWEET_APPLE': 'Süßer Apfel',
|
||||
'TART_APPLE': 'Saurer Apfel',
|
||||
'STRAWBERRY_SWEET': 'Zucker-Erdbeere',
|
||||
'UNREMARKABLE_TEACUP': 'Simple Teeschale',
|
||||
|
||||
"CHIPPED_POT": "Löchrige Kanne",
|
||||
"BLACK_AUGURITE": "Schwarzaugit",
|
||||
"GALARICA_CUFF": "Galarnuss-Reif",
|
||||
"GALARICA_WREATH": "Galarnuss-Kranz",
|
||||
"PEAT_BLOCK": "Torfblock",
|
||||
"AUSPICIOUS_ARMOR": "Glorienrüstung",
|
||||
"MALICIOUS_ARMOR": "Fluchrüstung",
|
||||
"MASTERPIECE_TEACUP": "Edle Teeschale",
|
||||
"METAL_ALLOY": "Legierungsmetall",
|
||||
"SCROLL_OF_DARKNESS": "Unlicht-Schriftrolle",
|
||||
"SCROLL_OF_WATERS": "Wasser-Schriftrolle",
|
||||
"SYRUPY_APPLE": "Saftiger Apfel",
|
||||
'CHIPPED_POT': 'Löchrige Kanne',
|
||||
'BLACK_AUGURITE': 'Schwarzaugit',
|
||||
'GALARICA_CUFF': 'Galarnuss-Reif',
|
||||
'GALARICA_WREATH': 'Galarnuss-Kranz',
|
||||
'PEAT_BLOCK': 'Torfblock',
|
||||
'AUSPICIOUS_ARMOR': 'Glorienrüstung',
|
||||
'MALICIOUS_ARMOR': 'Fluchrüstung',
|
||||
'MASTERPIECE_TEACUP': 'Edle Teeschale',
|
||||
'METAL_ALLOY': 'Legierungsmetall',
|
||||
'SCROLL_OF_DARKNESS': 'Unlicht-Schriftrolle',
|
||||
'SCROLL_OF_WATERS': 'Wasser-Schriftrolle',
|
||||
'SYRUPY_APPLE': 'Saftiger Apfel',
|
||||
},
|
||||
FormChangeItem: {
|
||||
"NONE": "Keins",
|
||||
'NONE': 'Keins',
|
||||
|
||||
"ABOMASITE": "Rexblisarnit",
|
||||
"ABSOLITE": "Absolnit",
|
||||
"AERODACTYLITE": "Aerodactylonit",
|
||||
"AGGRONITE": "Stollossnit",
|
||||
"ALAKAZITE": "Simsalanit",
|
||||
"ALTARIANITE": "Altarianit",
|
||||
"AMPHAROSITE": "Ampharosnit",
|
||||
"AUDINITE": "Ohrdochnit",
|
||||
"BANETTITE": "Banetteonit",
|
||||
"BEEDRILLITE": "Bibornit",
|
||||
"BLASTOISINITE": "Turtoknit",
|
||||
"BLAZIKENITE": "Lohgocknit",
|
||||
"CAMERUPTITE": "Cameruptnit",
|
||||
"CHARIZARDITE_X": "Gluraknit X",
|
||||
"CHARIZARDITE_Y": "Gluraknit Y",
|
||||
"DIANCITE": "Diancienit",
|
||||
"GALLADITE": "Galagladinit",
|
||||
"GARCHOMPITE": "Knakracknit",
|
||||
"GARDEVOIRITE": "Guardevoirnit",
|
||||
"GENGARITE": "Gengarnit ",
|
||||
"GLALITITE": "Firnontornit",
|
||||
"GYARADOSITE": "Garadosnit",
|
||||
"HERACRONITE": "Skarabornit",
|
||||
"HOUNDOOMINITE": "Hundemonit ",
|
||||
"KANGASKHANITE": "Kangamanit",
|
||||
"LATIASITE": "Latiasnit",
|
||||
"LATIOSITE": "Latiosnit",
|
||||
"LOPUNNITE": "Schlapornit",
|
||||
"LUCARIONITE": "Lucarionit",
|
||||
"MANECTITE": "Voltensonit",
|
||||
"MAWILITE": "Flunkifernit",
|
||||
"MEDICHAMITE": "Meditalisnit",
|
||||
"METAGROSSITE": "Metagrossnit",
|
||||
"MEWTWONITE_X": "Mewtunit X",
|
||||
"MEWTWONITE_Y": "Mewtunit Y",
|
||||
"PIDGEOTITE": "Taubossnit",
|
||||
"PINSIRITE": "Pinsirnit",
|
||||
"RAYQUAZITE": "Rayquazanit",
|
||||
"SABLENITE": "Zobirisnit",
|
||||
"SALAMENCITE": "Brutalandanit",
|
||||
"SCEPTILITE": "Gewaldronit",
|
||||
"SCIZORITE": "Scheroxnit",
|
||||
"SHARPEDONITE": "Tohaidonit",
|
||||
"SLOWBRONITE": "Lahmusnit",
|
||||
"STEELIXITE": "Stahlosnit",
|
||||
"SWAMPERTITE": "Sumpexnit",
|
||||
"TYRANITARITE": "Despotarnit",
|
||||
"VENUSAURITE": "Bisaflornit",
|
||||
'ABOMASITE': 'Rexblisarnit',
|
||||
'ABSOLITE': 'Absolnit',
|
||||
'AERODACTYLITE': 'Aerodactylonit',
|
||||
'AGGRONITE': 'Stollossnit',
|
||||
'ALAKAZITE': 'Simsalanit',
|
||||
'ALTARIANITE': 'Altarianit',
|
||||
'AMPHAROSITE': 'Ampharosnit',
|
||||
'AUDINITE': 'Ohrdochnit',
|
||||
'BANETTITE': 'Banetteonit',
|
||||
'BEEDRILLITE': 'Bibornit',
|
||||
'BLASTOISINITE': 'Turtoknit',
|
||||
'BLAZIKENITE': 'Lohgocknit',
|
||||
'CAMERUPTITE': 'Cameruptnit',
|
||||
'CHARIZARDITE_X': 'Gluraknit X',
|
||||
'CHARIZARDITE_Y': 'Gluraknit Y',
|
||||
'DIANCITE': 'Diancienit',
|
||||
'GALLADITE': 'Galagladinit',
|
||||
'GARCHOMPITE': 'Knakracknit',
|
||||
'GARDEVOIRITE': 'Guardevoirnit',
|
||||
'GENGARITE': 'Gengarnit ',
|
||||
'GLALITITE': 'Firnontornit',
|
||||
'GYARADOSITE': 'Garadosnit',
|
||||
'HERACRONITE': 'Skarabornit',
|
||||
'HOUNDOOMINITE': 'Hundemonit ',
|
||||
'KANGASKHANITE': 'Kangamanit',
|
||||
'LATIASITE': 'Latiasnit',
|
||||
'LATIOSITE': 'Latiosnit',
|
||||
'LOPUNNITE': 'Schlapornit',
|
||||
'LUCARIONITE': 'Lucarionit',
|
||||
'MANECTITE': 'Voltensonit',
|
||||
'MAWILITE': 'Flunkifernit',
|
||||
'MEDICHAMITE': 'Meditalisnit',
|
||||
'METAGROSSITE': 'Metagrossnit',
|
||||
'MEWTWONITE_X': 'Mewtunit X',
|
||||
'MEWTWONITE_Y': 'Mewtunit Y',
|
||||
'PIDGEOTITE': 'Taubossnit',
|
||||
'PINSIRITE': 'Pinsirnit',
|
||||
'RAYQUAZITE': 'Rayquazanit',
|
||||
'SABLENITE': 'Zobirisnit',
|
||||
'SALAMENCITE': 'Brutalandanit',
|
||||
'SCEPTILITE': 'Gewaldronit',
|
||||
'SCIZORITE': 'Scheroxnit',
|
||||
'SHARPEDONITE': 'Tohaidonit',
|
||||
'SLOWBRONITE': 'Lahmusnit',
|
||||
'STEELIXITE': 'Stahlosnit',
|
||||
'SWAMPERTITE': 'Sumpexnit',
|
||||
'TYRANITARITE': 'Despotarnit',
|
||||
'VENUSAURITE': 'Bisaflornit',
|
||||
|
||||
"BLUE_ORB": "Blauer Edelstein",
|
||||
"RED_ORB": "Roter Edelstein",
|
||||
"SHARP_METEORITE": "Scharfer Meteorit",
|
||||
"HARD_METEORITE": "Harter Meteorit",
|
||||
"SMOOTH_METEORITE": "Glatter Meteorit",
|
||||
"ADAMANT_CRYSTAL": "Adamantkristall",
|
||||
"LUSTROUS_ORB": "Weiß-Orb",
|
||||
"GRISEOUS_CORE": "Platinumkristall",
|
||||
"REVEAL_GLASS": "Wahrspiegel",
|
||||
"GRACIDEA": "Gracidea",
|
||||
"MAX_MUSHROOMS": "Dyna-Pilz",
|
||||
"DARK_STONE": "Dunkelstein",
|
||||
"LIGHT_STONE": "Lichtstein",
|
||||
"PRISON_BOTTLE": "Banngefäß",
|
||||
"N_LUNARIZER": "Necrolun",
|
||||
"N_SOLARIZER": "Necrosol",
|
||||
"RUSTED_SWORD": "Rostiges Schwert",
|
||||
"RUSTED_SHIELD": "Rostiges Schild",
|
||||
"ICY_REINS_OF_UNITY": "eisige Zügel des Bundes",
|
||||
"SHADOW_REINS_OF_UNITY": "schattige Zügel des Bundes",
|
||||
"WELLSPRING_MASK": "Brunnenmaske",
|
||||
"HEARTHFLAME_MASK": "Ofenmaske",
|
||||
"CORNERSTONE_MASK": "Fundamentmaske",
|
||||
"SHOCK_DRIVE": "Blitzmodul",
|
||||
"BURN_DRIVE": "Flammenmodul",
|
||||
"CHILL_DRIVE": "Gefriermodul",
|
||||
"DOUSE_DRIVE": "Aquamodul",
|
||||
'BLUE_ORB': 'Blauer Edelstein',
|
||||
'RED_ORB': 'Roter Edelstein',
|
||||
'SHARP_METEORITE': 'Scharfer Meteorit',
|
||||
'HARD_METEORITE': 'Harter Meteorit',
|
||||
'SMOOTH_METEORITE': 'Glatter Meteorit',
|
||||
'ADAMANT_CRYSTAL': 'Adamantkristall',
|
||||
'LUSTROUS_ORB': 'Weiß-Orb',
|
||||
'GRISEOUS_CORE': 'Platinumkristall',
|
||||
'REVEAL_GLASS': 'Wahrspiegel',
|
||||
'GRACIDEA': 'Gracidea',
|
||||
'MAX_MUSHROOMS': 'Dyna-Pilz',
|
||||
'DARK_STONE': 'Dunkelstein',
|
||||
'LIGHT_STONE': 'Lichtstein',
|
||||
'PRISON_BOTTLE': 'Banngefäß',
|
||||
'N_LUNARIZER': 'Necrolun',
|
||||
'N_SOLARIZER': 'Necrosol',
|
||||
'RUSTED_SWORD': 'Rostiges Schwert',
|
||||
'RUSTED_SHIELD': 'Rostiges Schild',
|
||||
'ICY_REINS_OF_UNITY': 'eisige Zügel des Bundes',
|
||||
'SHADOW_REINS_OF_UNITY': 'schattige Zügel des Bundes',
|
||||
'WELLSPRING_MASK': 'Brunnenmaske',
|
||||
'HEARTHFLAME_MASK': 'Ofenmaske',
|
||||
'CORNERSTONE_MASK': 'Fundamentmaske',
|
||||
'SHOCK_DRIVE': 'Blitzmodul',
|
||||
'BURN_DRIVE': 'Flammenmodul',
|
||||
'CHILL_DRIVE': 'Gefriermodul',
|
||||
'DOUSE_DRIVE': 'Aquamodul',
|
||||
},
|
||||
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -1,29 +1,29 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const nature: SimpleTranslationEntries = {
|
||||
"Hardy": "Robust",
|
||||
"Lonely": "Solo",
|
||||
"Brave": "Mutig",
|
||||
"Adamant": "Hart",
|
||||
"Naughty": "Frech",
|
||||
"Bold": "Kühn",
|
||||
"Docile": "Sanft",
|
||||
"Relaxed": "Locker",
|
||||
"Impish": "Pfiffig",
|
||||
"Lax": "Lasch",
|
||||
"Timid": "Scheu",
|
||||
"Hasty": "Hastig",
|
||||
"Serious": "Ernst",
|
||||
"Jolly": "Froh",
|
||||
"Naive": "Naiv",
|
||||
"Modest": "Mäßig",
|
||||
"Mild": "Mild",
|
||||
"Quiet": "Ruhig",
|
||||
"Bashful": "Zaghaft",
|
||||
"Rash": "Hitzig",
|
||||
"Calm": "Still",
|
||||
"Gentle": "Zart",
|
||||
"Sassy": "Forsch",
|
||||
"Careful": "Sacht",
|
||||
"Quirky": "Kauzig"
|
||||
'Hardy': 'Robust',
|
||||
'Lonely': 'Solo',
|
||||
'Brave': 'Mutig',
|
||||
'Adamant': 'Hart',
|
||||
'Naughty': 'Frech',
|
||||
'Bold': 'Kühn',
|
||||
'Docile': 'Sanft',
|
||||
'Relaxed': 'Locker',
|
||||
'Impish': 'Pfiffig',
|
||||
'Lax': 'Lasch',
|
||||
'Timid': 'Scheu',
|
||||
'Hasty': 'Hastig',
|
||||
'Serious': 'Ernst',
|
||||
'Jolly': 'Froh',
|
||||
'Naive': 'Naiv',
|
||||
'Modest': 'Mäßig',
|
||||
'Mild': 'Mild',
|
||||
'Quiet': 'Ruhig',
|
||||
'Bashful': 'Zaghaft',
|
||||
'Rash': 'Hitzig',
|
||||
'Calm': 'Still',
|
||||
'Gentle': 'Zart',
|
||||
'Sassy': 'Forsch',
|
||||
'Careful': 'Sacht',
|
||||
'Quirky': 'Kauzig'
|
||||
} as const;
|
|
@ -1,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const pokeball: SimpleTranslationEntries = {
|
||||
"pokeBall": "Pokéball",
|
||||
"greatBall": "Superball",
|
||||
"ultraBall": "Hyperball",
|
||||
"rogueBall": "Rogueball",
|
||||
"masterBall": "Meisterball",
|
||||
"luxuryBall": "Luxusball",
|
||||
'pokeBall': 'Pokéball',
|
||||
'greatBall': 'Superball',
|
||||
'ultraBall': 'Hyperball',
|
||||
'rogueBall': 'Rogueball',
|
||||
'masterBall': 'Meisterball',
|
||||
'luxuryBall': 'Luxusball',
|
||||
} as const;
|
|
@ -1,41 +1,41 @@
|
|||
import { PokemonInfoTranslationEntries } from "#app/plugins/i18n";
|
||||
import { PokemonInfoTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const pokemonInfo: PokemonInfoTranslationEntries = {
|
||||
Stat: {
|
||||
"HP": "Max. KP",
|
||||
"HPshortened": "MaxKP",
|
||||
"ATK": "Angriff",
|
||||
"ATKshortened": "Ang",
|
||||
"DEF": "Verteidigung",
|
||||
"DEFshortened": "Vert",
|
||||
"SPATK": "Sp. Ang",
|
||||
"SPATKshortened": "SpAng",
|
||||
"SPDEF": "Sp. Vert",
|
||||
"SPDEFshortened": "SpVert",
|
||||
"SPD": "Initiative",
|
||||
"SPDshortened": "Init",
|
||||
'HP': 'Max. KP',
|
||||
'HPshortened': 'MaxKP',
|
||||
'ATK': 'Angriff',
|
||||
'ATKshortened': 'Ang',
|
||||
'DEF': 'Verteidigung',
|
||||
'DEFshortened': 'Vert',
|
||||
'SPATK': 'Sp. Ang',
|
||||
'SPATKshortened': 'SpAng',
|
||||
'SPDEF': 'Sp. Vert',
|
||||
'SPDEFshortened': 'SpVert',
|
||||
'SPD': 'Initiative',
|
||||
'SPDshortened': 'Init',
|
||||
},
|
||||
|
||||
Type: {
|
||||
"UNKNOWN": "Unbekannt",
|
||||
"NORMAL": "Normal",
|
||||
"FIGHTING": "Kampf",
|
||||
"FLYING": "Flug",
|
||||
"POISON": "Gift",
|
||||
"GROUND": "Boden",
|
||||
"ROCK": "Gestein",
|
||||
"BUG": "Käfer",
|
||||
"GHOST": "Geist",
|
||||
"STEEL": "Stahl",
|
||||
"FIRE": "Feuer",
|
||||
"WATER": "Wasser",
|
||||
"GRASS": "Pflanze",
|
||||
"ELECTRIC": "Elektro",
|
||||
"PSYCHIC": "Psycho",
|
||||
"ICE": "Eis",
|
||||
"DRAGON": "Drache",
|
||||
"DARK": "Unlicht",
|
||||
"FAIRY": "Fee",
|
||||
"STELLAR": "Stellar",
|
||||
'UNKNOWN': 'Unbekannt',
|
||||
'NORMAL': 'Normal',
|
||||
'FIGHTING': 'Kampf',
|
||||
'FLYING': 'Flug',
|
||||
'POISON': 'Gift',
|
||||
'GROUND': 'Boden',
|
||||
'ROCK': 'Gestein',
|
||||
'BUG': 'Käfer',
|
||||
'GHOST': 'Geist',
|
||||
'STEEL': 'Stahl',
|
||||
'FIRE': 'Feuer',
|
||||
'WATER': 'Wasser',
|
||||
'GRASS': 'Pflanze',
|
||||
'ELECTRIC': 'Elektro',
|
||||
'PSYCHIC': 'Psycho',
|
||||
'ICE': 'Eis',
|
||||
'DRAGON': 'Drache',
|
||||
'DARK': 'Unlicht',
|
||||
'FAIRY': 'Fee',
|
||||
'STELLAR': 'Stellar',
|
||||
},
|
||||
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -1,37 +1,37 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const splashMessages: SimpleTranslationEntries = {
|
||||
"battlesWon": "Kämpfe gewonnen!",
|
||||
"joinTheDiscord": "Tritt dem Discord bei!",
|
||||
"infiniteLevels": "Unendliche Level!",
|
||||
"everythingStacks": "Alles stapelt sich!",
|
||||
"optionalSaveScumming": "Optionales Save Scumming!",
|
||||
"biomes": "35 Biome!",
|
||||
"openSource": "Open Source!",
|
||||
"playWithSpeed": "Spiele mit fünffacher Geschwindigkeit!",
|
||||
"liveBugTesting": "Live-Bug-Tests!",
|
||||
"heavyInfluence": "Starker RoR2-Einfluss!",
|
||||
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||
"nowWithMoreSalt": "Jetzt mit 33% mehr Salz!",
|
||||
"infiniteFusionAtHome": "Wir haben Infinite Fusionen zu Hause!",
|
||||
"brokenEggMoves": "Übermächtige Ei-Attacken!",
|
||||
"magnificent": "Herrlich!",
|
||||
"mubstitute": "Melegator!",
|
||||
"thatsCrazy": "Das ist verrückt!",
|
||||
"oranceJuice": "Orangensaft!",
|
||||
"questionableBalancing": "Fragwürdiges Balancing!",
|
||||
"coolShaders": "Coole Shader!",
|
||||
"aiFree": "Ohne KI!",
|
||||
"suddenDifficultySpikes": "Plötzliche Schwierigkeitsspitzen!",
|
||||
"basedOnAnUnfinishedFlashGame": "Basierend auf einem unfertigen Flash-Spiel!",
|
||||
"moreAddictiveThanIntended": "Süchtig machender als beabsichtigt!",
|
||||
"mostlyConsistentSeeds": "Meistens konsistente Seeds!",
|
||||
"achievementPointsDontDoAnything": "Erungenschaftspunkte tun nichts!",
|
||||
"youDoNotStartAtLevel": "Du startest nicht auf Level 2000!",
|
||||
"dontTalkAboutTheManaphyEggIncident": "Wir reden nicht über den Manaphy-Ei-Vorfall!",
|
||||
"alsoTryPokengine": "Versuche auch Pokéngine!",
|
||||
"alsoTryEmeraldRogue": "Versuche auch Emerald Rogue!",
|
||||
"alsoTryRadicalRed": "Versuche auch Radical Red!",
|
||||
"eeveeExpo": "Evoli-Expo!",
|
||||
"ynoproject": "YNO-Projekt!",
|
||||
'battlesWon': 'Kämpfe gewonnen!',
|
||||
'joinTheDiscord': 'Tritt dem Discord bei!',
|
||||
'infiniteLevels': 'Unendliche Level!',
|
||||
'everythingStacks': 'Alles stapelt sich!',
|
||||
'optionalSaveScumming': 'Optionales Save Scumming!',
|
||||
'biomes': '35 Biome!',
|
||||
'openSource': 'Open Source!',
|
||||
'playWithSpeed': 'Spiele mit fünffacher Geschwindigkeit!',
|
||||
'liveBugTesting': 'Live-Bug-Tests!',
|
||||
'heavyInfluence': 'Starker RoR2-Einfluss!',
|
||||
'pokemonRiskAndPokemonRain': 'Pokémon Risk and Pokémon Rain!',
|
||||
'nowWithMoreSalt': 'Jetzt mit 33% mehr Salz!',
|
||||
'infiniteFusionAtHome': 'Wir haben Infinite Fusionen zu Hause!',
|
||||
'brokenEggMoves': 'Übermächtige Ei-Attacken!',
|
||||
'magnificent': 'Herrlich!',
|
||||
'mubstitute': 'Melegator!',
|
||||
'thatsCrazy': 'Das ist verrückt!',
|
||||
'oranceJuice': 'Orangensaft!',
|
||||
'questionableBalancing': 'Fragwürdiges Balancing!',
|
||||
'coolShaders': 'Coole Shader!',
|
||||
'aiFree': 'Ohne KI!',
|
||||
'suddenDifficultySpikes': 'Plötzliche Schwierigkeitsspitzen!',
|
||||
'basedOnAnUnfinishedFlashGame': 'Basierend auf einem unfertigen Flash-Spiel!',
|
||||
'moreAddictiveThanIntended': 'Süchtig machender als beabsichtigt!',
|
||||
'mostlyConsistentSeeds': 'Meistens konsistente Seeds!',
|
||||
'achievementPointsDontDoAnything': 'Erungenschaftspunkte tun nichts!',
|
||||
'youDoNotStartAtLevel': 'Du startest nicht auf Level 2000!',
|
||||
'dontTalkAboutTheManaphyEggIncident': 'Wir reden nicht über den Manaphy-Ei-Vorfall!',
|
||||
'alsoTryPokengine': 'Versuche auch Pokéngine!',
|
||||
'alsoTryEmeraldRogue': 'Versuche auch Emerald Rogue!',
|
||||
'alsoTryRadicalRed': 'Versuche auch Radical Red!',
|
||||
'eeveeExpo': 'Evoli-Expo!',
|
||||
'ynoproject': 'YNO-Projekt!',
|
||||
} as const;
|
|
@ -1,4 +1,4 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
/**
|
||||
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||
|
@ -6,39 +6,39 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||
* account interactions, descriptive text, etc.
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam": "Mit diesen Pokémon losziehen?",
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
"gen4": "IV",
|
||||
"gen5": "V",
|
||||
"gen6": "VI",
|
||||
"gen7": "VII",
|
||||
"gen8": "VIII",
|
||||
"gen9": "IX",
|
||||
"growthRate": "Wachstum:",
|
||||
"ability": "Fähgkeit:",
|
||||
"passive": "Passiv:",
|
||||
"nature": "Wesen:",
|
||||
"eggMoves": "Ei-Attacken",
|
||||
"start": "Start",
|
||||
"addToParty": "Zum Team hinzufügen",
|
||||
"toggleIVs": "DVs anzeigen/verbergen",
|
||||
"manageMoves": "Attacken ändern",
|
||||
"useCandies": "Bonbons verwenden",
|
||||
"selectMoveSwapOut": "Wähle die zu ersetzende Attacke.",
|
||||
"selectMoveSwapWith": "Wähle die gewünschte Attacke.",
|
||||
"unlockPassive": "Passiv-Skill freischalten",
|
||||
"reduceCost": "Preis reduzieren",
|
||||
"cycleShiny": "R: Schillernd Ja/Nein",
|
||||
"cycleForm": "F: Form ändern",
|
||||
"cycleGender": "G: Geschlecht ändern",
|
||||
"cycleAbility": "E: Fähigkeit ändern",
|
||||
"cycleNature": "N: Wesen Ändern",
|
||||
"cycleVariant": "V: Seltenheit ändern",
|
||||
"enablePassive": "Passiv-Skill aktivieren",
|
||||
"disablePassive": "Passiv-Skill deaktivieren",
|
||||
"locked": "Gesperrt",
|
||||
"disabled": "Deaktiviert",
|
||||
"uncaught": "Ungefangen"
|
||||
}
|
||||
'confirmStartTeam': 'Mit diesen Pokémon losziehen?',
|
||||
'gen1': 'I',
|
||||
'gen2': 'II',
|
||||
'gen3': 'III',
|
||||
'gen4': 'IV',
|
||||
'gen5': 'V',
|
||||
'gen6': 'VI',
|
||||
'gen7': 'VII',
|
||||
'gen8': 'VIII',
|
||||
'gen9': 'IX',
|
||||
'growthRate': 'Wachstum:',
|
||||
'ability': 'Fähgkeit:',
|
||||
'passive': 'Passiv:',
|
||||
'nature': 'Wesen:',
|
||||
'eggMoves': 'Ei-Attacken',
|
||||
'start': 'Start',
|
||||
'addToParty': 'Zum Team hinzufügen',
|
||||
'toggleIVs': 'DVs anzeigen/verbergen',
|
||||
'manageMoves': 'Attacken ändern',
|
||||
'useCandies': 'Bonbons verwenden',
|
||||
'selectMoveSwapOut': 'Wähle die zu ersetzende Attacke.',
|
||||
'selectMoveSwapWith': 'Wähle die gewünschte Attacke.',
|
||||
'unlockPassive': 'Passiv-Skill freischalten',
|
||||
'reduceCost': 'Preis reduzieren',
|
||||
'cycleShiny': 'R: Schillernd Ja/Nein',
|
||||
'cycleForm': 'F: Form ändern',
|
||||
'cycleGender': 'G: Geschlecht ändern',
|
||||
'cycleAbility': 'E: Fähigkeit ändern',
|
||||
'cycleNature': 'N: Wesen Ändern',
|
||||
'cycleVariant': 'V: Seltenheit ändern',
|
||||
'enablePassive': 'Passiv-Skill aktivieren',
|
||||
'disablePassive': 'Passiv-Skill deaktivieren',
|
||||
'locked': 'Gesperrt',
|
||||
'disabled': 'Deaktiviert',
|
||||
'uncaught': 'Ungefangen'
|
||||
};
|
||||
|
|
|
@ -1,244 +1,244 @@
|
|||
import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
import {SimpleTranslationEntries} from '#app/plugins/i18n';
|
||||
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Top Vier",
|
||||
"gym_leader": "Arenaleiter",
|
||||
"gym_leader_female": "Arenaleiterin",
|
||||
"champion": "Champion",
|
||||
"rival": "Rivale",
|
||||
"professor": "Professor",
|
||||
"frontier_brain": "Kampfkoryphäen",
|
||||
'elite_four': 'Top Vier',
|
||||
'gym_leader': 'Arenaleiter',
|
||||
'gym_leader_female': 'Arenaleiterin',
|
||||
'champion': 'Champion',
|
||||
'rival': 'Rivale',
|
||||
'professor': 'Professor',
|
||||
'frontier_brain': 'Kampfkoryphäen',
|
||||
// Maybe if we add the evil teams we can add "Team Rocket" and "Team Aqua" etc. here as well as "Team Rocket Boss" and "Team Aqua Admin" etc.
|
||||
} as const;
|
||||
|
||||
// Titles of trainers like "Youngster" or "Lass"
|
||||
export const trainerClasses: SimpleTranslationEntries = {
|
||||
"ace_trainer": "Ass-Trainer",
|
||||
"ace_trainer_female": "Ass-Trainerin",
|
||||
"ace_duo": "Ass-Duo",
|
||||
"artist": "Künstler",
|
||||
"artist_female": "Künstlerin",
|
||||
"backers": "Anhänger",
|
||||
"backpacker": "Backpacker",
|
||||
"backpacker_female": "Backpackerin",
|
||||
"backpackers": "Backpacker",
|
||||
"baker": "Bäckerin",
|
||||
"battle_girl": "Kämpferin",
|
||||
"beauty": "Schönheit",
|
||||
"beginners": "Anfänger",
|
||||
"biker": "Rowdy",
|
||||
"black_belt": "Schwarzgurt",
|
||||
"breeder": "Pokémon Züchter",
|
||||
"breeder_female": "Pokémon Züchterin",
|
||||
"breeders": "Pokémon Züchter",
|
||||
"clerk": "Angestellter",
|
||||
"clerk_female": "Angestellte",
|
||||
"colleagues": "Geschäftspartner",
|
||||
"crush_kin": "Mühlensippe",
|
||||
"cyclist": "Biker",
|
||||
"cyclist_female": "Bikerin",
|
||||
"cyclists": "Biker",
|
||||
"dancer": "Tänzer",
|
||||
"dancer_female": "Tänzerin",
|
||||
"depot_agent": "Bahnangestellter",
|
||||
"doctor": "Arzt",
|
||||
"doctor_female": "Ärztin",
|
||||
"fisherman": "Angler",
|
||||
"fisherman_female": "Angler", // Seems to be the same in german but exists in other languages like italian
|
||||
"gentleman": "Gentleman",
|
||||
"guitarist": "Gitarrist",
|
||||
"guitarist_female": "Gitarristin",
|
||||
"harlequin": "Kasper",
|
||||
"hiker": "Wanderer",
|
||||
"hooligans": "Rabauken",
|
||||
"hoopster": "Basketballer",
|
||||
"infielder": "Baseballer",
|
||||
"janitor": "Hausmeister",
|
||||
"lady": "Lady",
|
||||
"lass": "Göre",
|
||||
"linebacker": "Footballer",
|
||||
"maid": "Zofe",
|
||||
"madame": "Madam",
|
||||
"medical_team": "Mediziner",
|
||||
"musician": "Musiker",
|
||||
"hex_maniac": "Hexe",
|
||||
"nurse": "Pflegerin",
|
||||
"nursery_aide": "Erzieherin",
|
||||
"officer": "Polizist",
|
||||
"parasol_lady": "Schirmdame",
|
||||
"pilot": "Pilot",
|
||||
"pokéfan": "Pokéfan",
|
||||
"pokéfan_female": "Pokéfan",
|
||||
"pokéfan_family": "Pokéfan-Pärchen",
|
||||
"preschooler": "Vorschüler",
|
||||
"preschooler_female": "Vorschülerin",
|
||||
"preschoolers": "Vorschüler",
|
||||
"psychic": "Seher",
|
||||
"psychic_female": "Seherin",
|
||||
"psychics": "Seher",
|
||||
"pokémon_ranger": "Pokémon-Ranger",
|
||||
"pokémon_ranger_female": "Pokémon-Ranger",
|
||||
"pokémon_rangers": "Pokémon-Ranger",
|
||||
"ranger": "Ranger",
|
||||
"restaurant_staff": "Restaurant Angestellte",
|
||||
"rich": "Rich",
|
||||
"rich_female": "Rich",
|
||||
"rich_boy": "Schnösel",
|
||||
"rich_couple": "Reiches Paar",
|
||||
"rich_kid": "Rich Kid",
|
||||
"rich_kid_female": "Rich Kid",
|
||||
"rich_kids": "Schnösel",
|
||||
"roughneck": "Raufbold",
|
||||
"scientist": "Forscher",
|
||||
"scientist_female": "Forscherin",
|
||||
"scientists": "Forscher",
|
||||
"smasher": "Tennis-Ass",
|
||||
"snow_worker": "Schneearbeiter", // There is a trainer type for this but no actual trainer class? They seem to be just workers but dressed differently
|
||||
"snow_worker_female": "Schneearbeiterin",
|
||||
"striker": "Fußballer",
|
||||
"school_kid": "Schulkind",
|
||||
"school_kid_female": "Schulkind", // Same in german but different in italian
|
||||
"school_kids": "Schüler",
|
||||
"swimmer": "Schwimmer",
|
||||
"swimmer_female": "Schwimmerin",
|
||||
"swimmers": "Schwimmerpaar",
|
||||
"twins": "Zwillinge",
|
||||
"veteran": "Veteran",
|
||||
"veteran_female": "Veteran", // same in german, different in other languages
|
||||
"veteran_duo": "Veteranen",
|
||||
"waiter": "Servierer",
|
||||
"waitress": "Serviererin",
|
||||
"worker": "Arbeiter",
|
||||
"worker_female": "Arbeiterin",
|
||||
"workers": "Arbeiter",
|
||||
"youngster": "Knirps"
|
||||
'ace_trainer': 'Ass-Trainer',
|
||||
'ace_trainer_female': 'Ass-Trainerin',
|
||||
'ace_duo': 'Ass-Duo',
|
||||
'artist': 'Künstler',
|
||||
'artist_female': 'Künstlerin',
|
||||
'backers': 'Anhänger',
|
||||
'backpacker': 'Backpacker',
|
||||
'backpacker_female': 'Backpackerin',
|
||||
'backpackers': 'Backpacker',
|
||||
'baker': 'Bäckerin',
|
||||
'battle_girl': 'Kämpferin',
|
||||
'beauty': 'Schönheit',
|
||||
'beginners': 'Anfänger',
|
||||
'biker': 'Rowdy',
|
||||
'black_belt': 'Schwarzgurt',
|
||||
'breeder': 'Pokémon Züchter',
|
||||
'breeder_female': 'Pokémon Züchterin',
|
||||
'breeders': 'Pokémon Züchter',
|
||||
'clerk': 'Angestellter',
|
||||
'clerk_female': 'Angestellte',
|
||||
'colleagues': 'Geschäftspartner',
|
||||
'crush_kin': 'Mühlensippe',
|
||||
'cyclist': 'Biker',
|
||||
'cyclist_female': 'Bikerin',
|
||||
'cyclists': 'Biker',
|
||||
'dancer': 'Tänzer',
|
||||
'dancer_female': 'Tänzerin',
|
||||
'depot_agent': 'Bahnangestellter',
|
||||
'doctor': 'Arzt',
|
||||
'doctor_female': 'Ärztin',
|
||||
'fisherman': 'Angler',
|
||||
'fisherman_female': 'Angler', // Seems to be the same in german but exists in other languages like italian
|
||||
'gentleman': 'Gentleman',
|
||||
'guitarist': 'Gitarrist',
|
||||
'guitarist_female': 'Gitarristin',
|
||||
'harlequin': 'Kasper',
|
||||
'hiker': 'Wanderer',
|
||||
'hooligans': 'Rabauken',
|
||||
'hoopster': 'Basketballer',
|
||||
'infielder': 'Baseballer',
|
||||
'janitor': 'Hausmeister',
|
||||
'lady': 'Lady',
|
||||
'lass': 'Göre',
|
||||
'linebacker': 'Footballer',
|
||||
'maid': 'Zofe',
|
||||
'madame': 'Madam',
|
||||
'medical_team': 'Mediziner',
|
||||
'musician': 'Musiker',
|
||||
'hex_maniac': 'Hexe',
|
||||
'nurse': 'Pflegerin',
|
||||
'nursery_aide': 'Erzieherin',
|
||||
'officer': 'Polizist',
|
||||
'parasol_lady': 'Schirmdame',
|
||||
'pilot': 'Pilot',
|
||||
'pokéfan': 'Pokéfan',
|
||||
'pokéfan_female': 'Pokéfan',
|
||||
'pokéfan_family': 'Pokéfan-Pärchen',
|
||||
'preschooler': 'Vorschüler',
|
||||
'preschooler_female': 'Vorschülerin',
|
||||
'preschoolers': 'Vorschüler',
|
||||
'psychic': 'Seher',
|
||||
'psychic_female': 'Seherin',
|
||||
'psychics': 'Seher',
|
||||
'pokémon_ranger': 'Pokémon-Ranger',
|
||||
'pokémon_ranger_female': 'Pokémon-Ranger',
|
||||
'pokémon_rangers': 'Pokémon-Ranger',
|
||||
'ranger': 'Ranger',
|
||||
'restaurant_staff': 'Restaurant Angestellte',
|
||||
'rich': 'Rich',
|
||||
'rich_female': 'Rich',
|
||||
'rich_boy': 'Schnösel',
|
||||
'rich_couple': 'Reiches Paar',
|
||||
'rich_kid': 'Rich Kid',
|
||||
'rich_kid_female': 'Rich Kid',
|
||||
'rich_kids': 'Schnösel',
|
||||
'roughneck': 'Raufbold',
|
||||
'scientist': 'Forscher',
|
||||
'scientist_female': 'Forscherin',
|
||||
'scientists': 'Forscher',
|
||||
'smasher': 'Tennis-Ass',
|
||||
'snow_worker': 'Schneearbeiter', // There is a trainer type for this but no actual trainer class? They seem to be just workers but dressed differently
|
||||
'snow_worker_female': 'Schneearbeiterin',
|
||||
'striker': 'Fußballer',
|
||||
'school_kid': 'Schulkind',
|
||||
'school_kid_female': 'Schulkind', // Same in german but different in italian
|
||||
'school_kids': 'Schüler',
|
||||
'swimmer': 'Schwimmer',
|
||||
'swimmer_female': 'Schwimmerin',
|
||||
'swimmers': 'Schwimmerpaar',
|
||||
'twins': 'Zwillinge',
|
||||
'veteran': 'Veteran',
|
||||
'veteran_female': 'Veteran', // same in german, different in other languages
|
||||
'veteran_duo': 'Veteranen',
|
||||
'waiter': 'Servierer',
|
||||
'waitress': 'Serviererin',
|
||||
'worker': 'Arbeiter',
|
||||
'worker_female': 'Arbeiterin',
|
||||
'workers': 'Arbeiter',
|
||||
'youngster': 'Knirps'
|
||||
} as const;
|
||||
|
||||
// Names of special trainers like gym leaders, elite four, and the champion
|
||||
export const trainerNames: SimpleTranslationEntries = {
|
||||
"brock": "Rocko",
|
||||
"misty": "Misty",
|
||||
"lt_surge": "Major Bob",
|
||||
"erika": "Erika",
|
||||
"janine": "Janina",
|
||||
"sabrina": "Sabrina",
|
||||
"blaine": "Pyro",
|
||||
"giovanni": "Giovanni",
|
||||
"falkner": "Falk",
|
||||
"bugsy": "Kai",
|
||||
"whitney": "Bianka",
|
||||
"morty": "Jens",
|
||||
"chuck": "Hartwig",
|
||||
"jasmine": "Jasmin",
|
||||
"pryce": "Norbert",
|
||||
"clair": "Sandra",
|
||||
"roxanne": "Felizia",
|
||||
"brawly": "Kamillo",
|
||||
"wattson": "Walter",
|
||||
"flannery": "Flavia",
|
||||
"norman": "Norman",
|
||||
"winona": "Wibke",
|
||||
"tate": "Ben",
|
||||
"liza": "Svenja",
|
||||
"juan": "Juan",
|
||||
"roark": "Veit",
|
||||
"gardenia": "Silvana",
|
||||
"maylene": "Hilda",
|
||||
"crasher_wake": "Wellenbrecher Marinus",
|
||||
"fantina": "Lamina",
|
||||
"byron": "Adam",
|
||||
"candice": "Frida",
|
||||
"volkner": "Volkner",
|
||||
"cilan": "Benny",
|
||||
"chili": "Maik",
|
||||
"cress": "Colin",
|
||||
"cheren": "Cheren",
|
||||
"lenora": "Aloe",
|
||||
"roxie": "Mica",
|
||||
"burgh": "Artie",
|
||||
"elesa": "Kamilla",
|
||||
"clay": "Turner",
|
||||
"skyla": "Géraldine",
|
||||
"brycen": "Sandro",
|
||||
"drayden": "Lysander",
|
||||
"marlon": "Benson",
|
||||
"viola": "Viola",
|
||||
"grant": "Lino",
|
||||
"korrina": "Connie",
|
||||
"ramos": "Amaro",
|
||||
"clemont": "Citro",
|
||||
"valerie": "Valerie",
|
||||
"olympia": "Astrid",
|
||||
"wulfric": "Galantho",
|
||||
"milo": "Yarro",
|
||||
"nessa": "Kate",
|
||||
"kabu": "Kabu",
|
||||
"bea": "Saida",
|
||||
"allister": "Nio",
|
||||
"opal": "Papella",
|
||||
"bede": "Betys",
|
||||
"gordie": "Mac",
|
||||
"melony": "Mel",
|
||||
"piers": "Nezz",
|
||||
"marnie": "Mary",
|
||||
"raihan": "Roy",
|
||||
"katy": "Ronah",
|
||||
"brassius": "Colzo",
|
||||
"iono": "Enigmara",
|
||||
"kofu": "Kombu",
|
||||
"larry": "Aoki",
|
||||
"ryme": "Etta",
|
||||
"tulip": "Tulia",
|
||||
"grusha": "Grusha",
|
||||
"lorelei": "Lorelei",
|
||||
"bruno": "Bruno",
|
||||
"agatha": "Agathe",
|
||||
"lance": "Siegfried",
|
||||
"will": "Willi",
|
||||
"koga": "Koga",
|
||||
"karen": "Melanie",
|
||||
"sidney": "Ulrich",
|
||||
"phoebe": "Antonia",
|
||||
"glacia": "Frosina",
|
||||
"drake": "Dragan",
|
||||
"aaron": "Herbaro",
|
||||
"bertha": "Teresa",
|
||||
"flint": "Ignaz",
|
||||
"lucian": "Lucian",
|
||||
"shauntal": "Anissa",
|
||||
"marshal": "Eugen",
|
||||
"grimsley": "Astor",
|
||||
"caitlin": "Kattlea",
|
||||
"malva": "Pachira",
|
||||
"siebold": "Narcisse",
|
||||
"wikstrom": "Thymelot",
|
||||
"drasna": "Dracena",
|
||||
"hala": "Hala",
|
||||
"molayne": "Marlon",
|
||||
"olivia": "Mayla",
|
||||
"acerola": "Lola",
|
||||
"kahili": "Kahili",
|
||||
"rika": "Cay",
|
||||
"poppy": "Poppy",
|
||||
"hassel": "Sinius",
|
||||
"crispin": "Matt",
|
||||
"amarys": "Erin",
|
||||
"lacey": "Tara",
|
||||
"drayton": "Levy",
|
||||
"blue": "Blau",
|
||||
"red": "Rot",
|
||||
"steven": "Troy",
|
||||
"wallace": "Wassili",
|
||||
"cynthia": "Cynthia",
|
||||
"alder": "Lauro",
|
||||
"iris": "Lilia",
|
||||
"diantha": "Diantha",
|
||||
"hau": "Tali",
|
||||
"geeta": "Sagaria",
|
||||
"nemona": "Nemila",
|
||||
"kieran": "Jo",
|
||||
"leon": "Delion",
|
||||
"rival": "Finn",
|
||||
"rival_female": "Ivy",
|
||||
'brock': 'Rocko',
|
||||
'misty': 'Misty',
|
||||
'lt_surge': 'Major Bob',
|
||||
'erika': 'Erika',
|
||||
'janine': 'Janina',
|
||||
'sabrina': 'Sabrina',
|
||||
'blaine': 'Pyro',
|
||||
'giovanni': 'Giovanni',
|
||||
'falkner': 'Falk',
|
||||
'bugsy': 'Kai',
|
||||
'whitney': 'Bianka',
|
||||
'morty': 'Jens',
|
||||
'chuck': 'Hartwig',
|
||||
'jasmine': 'Jasmin',
|
||||
'pryce': 'Norbert',
|
||||
'clair': 'Sandra',
|
||||
'roxanne': 'Felizia',
|
||||
'brawly': 'Kamillo',
|
||||
'wattson': 'Walter',
|
||||
'flannery': 'Flavia',
|
||||
'norman': 'Norman',
|
||||
'winona': 'Wibke',
|
||||
'tate': 'Ben',
|
||||
'liza': 'Svenja',
|
||||
'juan': 'Juan',
|
||||
'roark': 'Veit',
|
||||
'gardenia': 'Silvana',
|
||||
'maylene': 'Hilda',
|
||||
'crasher_wake': 'Wellenbrecher Marinus',
|
||||
'fantina': 'Lamina',
|
||||
'byron': 'Adam',
|
||||
'candice': 'Frida',
|
||||
'volkner': 'Volkner',
|
||||
'cilan': 'Benny',
|
||||
'chili': 'Maik',
|
||||
'cress': 'Colin',
|
||||
'cheren': 'Cheren',
|
||||
'lenora': 'Aloe',
|
||||
'roxie': 'Mica',
|
||||
'burgh': 'Artie',
|
||||
'elesa': 'Kamilla',
|
||||
'clay': 'Turner',
|
||||
'skyla': 'Géraldine',
|
||||
'brycen': 'Sandro',
|
||||
'drayden': 'Lysander',
|
||||
'marlon': 'Benson',
|
||||
'viola': 'Viola',
|
||||
'grant': 'Lino',
|
||||
'korrina': 'Connie',
|
||||
'ramos': 'Amaro',
|
||||
'clemont': 'Citro',
|
||||
'valerie': 'Valerie',
|
||||
'olympia': 'Astrid',
|
||||
'wulfric': 'Galantho',
|
||||
'milo': 'Yarro',
|
||||
'nessa': 'Kate',
|
||||
'kabu': 'Kabu',
|
||||
'bea': 'Saida',
|
||||
'allister': 'Nio',
|
||||
'opal': 'Papella',
|
||||
'bede': 'Betys',
|
||||
'gordie': 'Mac',
|
||||
'melony': 'Mel',
|
||||
'piers': 'Nezz',
|
||||
'marnie': 'Mary',
|
||||
'raihan': 'Roy',
|
||||
'katy': 'Ronah',
|
||||
'brassius': 'Colzo',
|
||||
'iono': 'Enigmara',
|
||||
'kofu': 'Kombu',
|
||||
'larry': 'Aoki',
|
||||
'ryme': 'Etta',
|
||||
'tulip': 'Tulia',
|
||||
'grusha': 'Grusha',
|
||||
'lorelei': 'Lorelei',
|
||||
'bruno': 'Bruno',
|
||||
'agatha': 'Agathe',
|
||||
'lance': 'Siegfried',
|
||||
'will': 'Willi',
|
||||
'koga': 'Koga',
|
||||
'karen': 'Melanie',
|
||||
'sidney': 'Ulrich',
|
||||
'phoebe': 'Antonia',
|
||||
'glacia': 'Frosina',
|
||||
'drake': 'Dragan',
|
||||
'aaron': 'Herbaro',
|
||||
'bertha': 'Teresa',
|
||||
'flint': 'Ignaz',
|
||||
'lucian': 'Lucian',
|
||||
'shauntal': 'Anissa',
|
||||
'marshal': 'Eugen',
|
||||
'grimsley': 'Astor',
|
||||
'caitlin': 'Kattlea',
|
||||
'malva': 'Pachira',
|
||||
'siebold': 'Narcisse',
|
||||
'wikstrom': 'Thymelot',
|
||||
'drasna': 'Dracena',
|
||||
'hala': 'Hala',
|
||||
'molayne': 'Marlon',
|
||||
'olivia': 'Mayla',
|
||||
'acerola': 'Lola',
|
||||
'kahili': 'Kahili',
|
||||
'rika': 'Cay',
|
||||
'poppy': 'Poppy',
|
||||
'hassel': 'Sinius',
|
||||
'crispin': 'Matt',
|
||||
'amarys': 'Erin',
|
||||
'lacey': 'Tara',
|
||||
'drayton': 'Levy',
|
||||
'blue': 'Blau',
|
||||
'red': 'Rot',
|
||||
'steven': 'Troy',
|
||||
'wallace': 'Wassili',
|
||||
'cynthia': 'Cynthia',
|
||||
'alder': 'Lauro',
|
||||
'iris': 'Lilia',
|
||||
'diantha': 'Diantha',
|
||||
'hau': 'Tali',
|
||||
'geeta': 'Sagaria',
|
||||
'nemona': 'Nemila',
|
||||
'kieran': 'Jo',
|
||||
'leon': 'Delion',
|
||||
'rival': 'Finn',
|
||||
'rival_female': 'Ivy',
|
||||
} as const;
|
|
@ -1,34 +1,34 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const tutorial: SimpleTranslationEntries = {
|
||||
"intro": `Willkommen bei PokéRogue! Dies ist ein kampforientiertes Pokémon-Fangame mit Roguelite-Elementen.
|
||||
'intro': `Willkommen bei PokéRogue! Dies ist ein kampforientiertes Pokémon-Fangame mit Roguelite-Elementen.
|
||||
$Dieses Spiel ist nicht monetarisiert.
|
||||
$Wir erheben keinen Eigentumsanspruch an Pokémon oder\nverwendeten, urheberrechtlich geschützten Inhalten.
|
||||
$Das Spiel befindet sich noch in der Entwicklung, ist aber voll spielbar.
|
||||
$Für Fehlerberichte nutze bitte den PokéRogue Discord-Server.
|
||||
$Sollte das Spiel langsam laufen, überprüfe, ob in deinem Browser "Hardwarebeschleunigung" aktiviert ist.`,
|
||||
|
||||
"accessMenu": `Nutze M oder Esc, um das Menü zu öffnen. Dort hast du Zugriff auf die Einstellungen und andere Funktionen.`,
|
||||
'accessMenu': 'Nutze M oder Esc, um das Menü zu öffnen. Dort hast du Zugriff auf die Einstellungen und andere Funktionen.',
|
||||
|
||||
"menu": `In diesem Menü hast du Zugriff auf die Einstellungen.
|
||||
'menu': `In diesem Menü hast du Zugriff auf die Einstellungen.
|
||||
$Dort kannst du u. A. die Spielgeschwin-\ndigkeit und das Fensterdesign ändern.
|
||||
$Das Menü verbirgt noch andere Funktionen - probier' sie gerne aus!`,
|
||||
|
||||
"starterSelect": `Hier kannst du deine Starter-Pokémon auswählen.\nSie begleiten dich am Anfang deines Abenteuers.
|
||||
'starterSelect': `Hier kannst du deine Starter-Pokémon auswählen.\nSie begleiten dich am Anfang deines Abenteuers.
|
||||
$Jeder Starter hat einen Preis. Dein Team kann bis zu sechs\nMitglieder haben, solange der Gesamtpreis max. 10 beträgt.
|
||||
$Du kannst Geschlecht, Fähigkeit und Form beliebig auswählen,\nsobald du sie mindestens einmal gefangen hast.
|
||||
$Die DVs ergeben sich aus den Höchstwerten aller Pokémon,\ndie du bereits gefangen hast.
|
||||
$Es lohnt sich also, das selbe Pokémon mehrmals zu fangen!`,
|
||||
|
||||
"pokerus": `Jeden Tag haben drei zufällige Pokémon einen lila Rahmen.
|
||||
'pokerus': `Jeden Tag haben drei zufällige Pokémon einen lila Rahmen.
|
||||
$Wenn du eins von ihnen besitzt,
|
||||
$nimm es doch mal mit und sieh dir seinen Bericht an!`,
|
||||
|
||||
"statChange": `Statuswertveränderungen halten solange an, wie dein Pokémon auf dem Feld bleibt.
|
||||
'statChange': `Statuswertveränderungen halten solange an, wie dein Pokémon auf dem Feld bleibt.
|
||||
$Pokémon werden am Anfang eines Trainerkampfes oder bei einem Arealwechsel automatisch zurückgerufen.
|
||||
$Nutze C oder Shift, um aktuelle Statuswertveränderungen anzuzeigen.`,
|
||||
|
||||
"selectItem": `Nach jedem Kampf kannst du aus 3 zufälligen Items exakt eines auswählen.
|
||||
'selectItem': `Nach jedem Kampf kannst du aus 3 zufälligen Items exakt eines auswählen.
|
||||
$Es gibt u. A. Heilitems, tragbare Items und Basis-Items, die dir einen permanenten Vorteil verschaffen.
|
||||
$Die meisten tragbaren und permanenten Items werden stärker, wenn du sie mehrfach sammelst.
|
||||
$Manche Items, wie Entwicklungssteine, tauchen nur auf, wenn du sie auch nutzen kannst.
|
||||
|
@ -37,7 +37,7 @@ export const tutorial: SimpleTranslationEntries = {
|
|||
$Du kannst Heilitems auch gegen Geld erwerben. Je weiter du kommst, desto mehr stehen dir zur Auswahl.
|
||||
$Erledige deine Einkäufe als erstes, denn sobald du dein zufälliges Item auswählst, beginnt der nächste Kampf.`,
|
||||
|
||||
"eggGacha": `Hier kannst du deine Gutscheine gegen Pokémon-Eier\ntauschen.
|
||||
'eggGacha': `Hier kannst du deine Gutscheine gegen Pokémon-Eier\ntauschen.
|
||||
$Eier schlüpfen, nachdem du eine gewisse Anzahl Kämpfe\nabsolviert hast. Je seltener das Ei, desto länger dauert es.
|
||||
$Geschlüpfte Pokémon werden nicht deinem Team hinzugefügt,\nsondern deinen verfügbaren Startern.
|
||||
$In der Regel haben sie bessere DVs als in der Wildnis\ngefangene Pokémon.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const voucher: SimpleTranslationEntries = {
|
||||
"vouchers": "Vouchers",
|
||||
"eggVoucher": "Egg Voucher",
|
||||
"eggVoucherPlus": "Egg Voucher Plus",
|
||||
"eggVoucherPremium": "Egg Voucher Premium",
|
||||
"eggVoucherGold": "Egg Voucher Gold",
|
||||
"locked": "Locked",
|
||||
"defeatTrainer": "Defeat {{trainerName}}"
|
||||
'vouchers': 'Vouchers',
|
||||
'eggVoucher': 'Egg Voucher',
|
||||
'eggVoucherPlus': 'Egg Voucher Plus',
|
||||
'eggVoucherPremium': 'Egg Voucher Premium',
|
||||
'eggVoucherGold': 'Egg Voucher Gold',
|
||||
'locked': 'Locked',
|
||||
'defeatTrainer': 'Defeat {{trainerName}}'
|
||||
} as const;
|
|
@ -1,44 +1,44 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
/**
|
||||
* The weather namespace holds text displayed when weather is active during a battle
|
||||
*/
|
||||
export const weather: SimpleTranslationEntries = {
|
||||
"sunnyStartMessage": "Die Sonnenlicht wird stärker!",
|
||||
"sunnyLapseMessage": "Die Sonnenlicht ist stark.",
|
||||
"sunnyClearMessage": "Die Sonnenlicht verliert wieder an Intensität.",
|
||||
'sunnyStartMessage': 'Die Sonnenlicht wird stärker!',
|
||||
'sunnyLapseMessage': 'Die Sonnenlicht ist stark.',
|
||||
'sunnyClearMessage': 'Die Sonnenlicht verliert wieder an Intensität.',
|
||||
|
||||
"rainStartMessage": "Es fängt an zu regnen!",
|
||||
"rainLapseMessage": "Es regnet weiter.",
|
||||
"rainClearMessage": "Der Regen lässt nach.",
|
||||
'rainStartMessage': 'Es fängt an zu regnen!',
|
||||
'rainLapseMessage': 'Es regnet weiter.',
|
||||
'rainClearMessage': 'Der Regen lässt nach.',
|
||||
|
||||
"sandstormStartMessage": "Ein Sandsturm kommt auf!",
|
||||
"sandstormLapseMessage": "Der Sandsturm tobt.",
|
||||
"sandstormClearMessage": "Der Sandsturm legt sich.",
|
||||
"sandstormDamageMessage": " Der Sandsturm fügt {{pokemonPrefix}}{{pokemonName}} Schaden zu!",
|
||||
'sandstormStartMessage': 'Ein Sandsturm kommt auf!',
|
||||
'sandstormLapseMessage': 'Der Sandsturm tobt.',
|
||||
'sandstormClearMessage': 'Der Sandsturm legt sich.',
|
||||
'sandstormDamageMessage': ' Der Sandsturm fügt {{pokemonPrefix}}{{pokemonName}} Schaden zu!',
|
||||
|
||||
"hailStartMessage": "Es fängt an zu hageln!",
|
||||
"hailLapseMessage": "Der Hagelsturm tobt.",
|
||||
"hailClearMessage": "Der Hagelsturm legt sich.",
|
||||
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} wird von Hagelkörnern getroffen!",
|
||||
'hailStartMessage': 'Es fängt an zu hageln!',
|
||||
'hailLapseMessage': 'Der Hagelsturm tobt.',
|
||||
'hailClearMessage': 'Der Hagelsturm legt sich.',
|
||||
'hailDamageMessage': '{{pokemonPrefix}}{{pokemonName}} wird von Hagelkörnern getroffen!',
|
||||
|
||||
"snowStartMessage": "Es fängt an zu schneien!",
|
||||
"snowLapseMessage": "Der Schneesturm tobt.",
|
||||
"snowClearMessage": "Der Schneesturm legt sich.",
|
||||
'snowStartMessage': 'Es fängt an zu schneien!',
|
||||
'snowLapseMessage': 'Der Schneesturm tobt.',
|
||||
'snowClearMessage': 'Der Schneesturm legt sich.',
|
||||
|
||||
"fogStartMessage": "Am Boden breitet sich dichter Nebel aus!",
|
||||
"fogLapseMessage": "Der Nebel bleibt dicht.",
|
||||
"fogClearMessage": "Der Nebel lichtet sich.",
|
||||
'fogStartMessage': 'Am Boden breitet sich dichter Nebel aus!',
|
||||
'fogLapseMessage': 'Der Nebel bleibt dicht.',
|
||||
'fogClearMessage': 'Der Nebel lichtet sich.',
|
||||
|
||||
"heavyRainStartMessage": "Es fängt an, in Strömen zu regnen!",
|
||||
"heavyRainLapseMessage": "Der strömende Regen hält an.",
|
||||
"heavyRainClearMessage": "Der strömende Regen lässt nach.",
|
||||
'heavyRainStartMessage': 'Es fängt an, in Strömen zu regnen!',
|
||||
'heavyRainLapseMessage': 'Der strömende Regen hält an.',
|
||||
'heavyRainClearMessage': 'Der strömende Regen lässt nach.',
|
||||
|
||||
"harshSunStartMessage": "Das Sonnenlicht wird sehr viel stärker!",
|
||||
"harshSunLapseMessage": "Das Sonnenlicht ist sehr stark.",
|
||||
"harshSunClearMessage": "Das Sonnenlicht verliert an Intensität.",
|
||||
'harshSunStartMessage': 'Das Sonnenlicht wird sehr viel stärker!',
|
||||
'harshSunLapseMessage': 'Das Sonnenlicht ist sehr stark.',
|
||||
'harshSunClearMessage': 'Das Sonnenlicht verliert an Intensität.',
|
||||
|
||||
"strongWindsStartMessage": "Alle Flug-Pokémon werden von rätselhaften Luftströmungen geschützt!",
|
||||
"strongWindsLapseMessage": "Die rätselhafte Luftströmung hält an.",
|
||||
"strongWindsClearMessage": "Die rätselhafte Luftströmung hat sich wieder geleget.",
|
||||
}
|
||||
'strongWindsStartMessage': 'Alle Flug-Pokémon werden von rätselhaften Luftströmungen geschützt!',
|
||||
'strongWindsLapseMessage': 'Die rätselhafte Luftströmung hält an.',
|
||||
'strongWindsClearMessage': 'Die rätselhafte Luftströmung hat sich wieder geleget.',
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!`,
|
||||
'badDreams': `{{pokemonName}} is tormented!`,
|
||||
'blockRecoilDamage' : '{{pokemonName}}\'s {{abilityName}}\nprotected it from recoil!',
|
||||
'badDreams': '{{pokemonName}} is tormented!',
|
||||
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const battleMessageUiHandler: SimpleTranslationEntries = {
|
||||
"ivBest": "Best",
|
||||
"ivFantastic": "Fantastic",
|
||||
"ivVeryGood": "Very Good",
|
||||
"ivPrettyGood": "Pretty Good",
|
||||
"ivDecent": "Decent",
|
||||
"ivNoGood": "No Good",
|
||||
'ivBest': 'Best',
|
||||
'ivFantastic': 'Fantastic',
|
||||
'ivVeryGood': 'Very Good',
|
||||
'ivPrettyGood': 'Pretty Good',
|
||||
'ivDecent': 'Decent',
|
||||
'ivNoGood': 'No Good',
|
||||
} as const;
|
|
@ -1,56 +1,56 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const battle: SimpleTranslationEntries = {
|
||||
"bossAppeared": "{{bossName}} appeared.",
|
||||
"trainerAppeared": "{{trainerName}}\nwould like to battle!",
|
||||
"trainerAppearedDouble": "{{trainerName}}\nwould like to battle!",
|
||||
"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}}!`,
|
||||
"pokemonCaught": "{{pokemonName}} was caught!",
|
||||
"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!",
|
||||
"attackHitsCount": `Hit {{count}} time(s)!`,
|
||||
"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!",
|
||||
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
||||
"eggHatching": "Oh?",
|
||||
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
|
||||
'bossAppeared': '{{bossName}} appeared.',
|
||||
'trainerAppeared': '{{trainerName}}\nwould like to battle!',
|
||||
'trainerAppearedDouble': '{{trainerName}}\nwould like to battle!',
|
||||
'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}}!',
|
||||
'pokemonCaught': '{{pokemonName}} was caught!',
|
||||
'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!',
|
||||
'attackHitsCount': 'Hit {{count}} time(s)!',
|
||||
'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!',
|
||||
'skipItemQuestion': 'Are you sure you want to skip taking an item?',
|
||||
'eggHatching': 'Oh?',
|
||||
'ivScannerUseQuestion': 'Use IV Scanner on {{pokemonName}}?'
|
||||
} as const;
|
|
@ -1,48 +1,48 @@
|
|||
import { BerryTranslationEntries } from "#app/plugins/i18n";
|
||||
import { BerryTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const berry: BerryTranslationEntries = {
|
||||
"SITRUS": {
|
||||
name: "Sitrus Berry",
|
||||
effect: "Restores 25% HP if HP is below 50%",
|
||||
'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",
|
||||
'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",
|
||||
'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%",
|
||||
'LIECHI': {
|
||||
name: 'Liechi Berry',
|
||||
effect: 'Raises Attack if HP is below 25%',
|
||||
},
|
||||
"GANLON": {
|
||||
name: "Ganlon Berry",
|
||||
effect: "Raises Defense 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%",
|
||||
'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%",
|
||||
'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%",
|
||||
'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%",
|
||||
'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%",
|
||||
'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",
|
||||
'LEPPA': {
|
||||
name: 'Leppa Berry',
|
||||
effect: 'Restores 10 PP to a move if its PP reaches 0',
|
||||
},
|
||||
} as const;
|
|
@ -1,9 +1,9 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const commandUiHandler: SimpleTranslationEntries = {
|
||||
"fight": "Fight",
|
||||
"ball": "Ball",
|
||||
"pokemon": "Pokémon",
|
||||
"run": "Run",
|
||||
"actionMessage": "What will\n{{pokemonName}} do?",
|
||||
'fight': 'Fight',
|
||||
'ball': 'Ball',
|
||||
'pokemon': 'Pokémon',
|
||||
'run': 'Run',
|
||||
'actionMessage': 'What will\n{{pokemonName}} do?',
|
||||
} as const;
|
|
@ -1,26 +1,26 @@
|
|||
import { ability } from "./ability";
|
||||
import { abilityTriggers } from "./ability-trigger";
|
||||
import { battle } from "./battle";
|
||||
import { commandUiHandler } from "./command-ui-handler";
|
||||
import { egg } from "./egg";
|
||||
import { fightUiHandler } from "./fight-ui-handler";
|
||||
import { growth } from "./growth";
|
||||
import { menu } from "./menu";
|
||||
import { menuUiHandler } from "./menu-ui-handler";
|
||||
import { modifierType } from "./modifier-type";
|
||||
import { move } from "./move";
|
||||
import { nature } from "./nature";
|
||||
import { pokeball } from "./pokeball";
|
||||
import { pokemon } from "./pokemon";
|
||||
import { pokemonInfo } from "./pokemon-info";
|
||||
import { splashMessages } from "./splash-messages";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { voucher } from "./voucher";
|
||||
import { ability } from './ability';
|
||||
import { abilityTriggers } from './ability-trigger';
|
||||
import { battle } from './battle';
|
||||
import { commandUiHandler } from './command-ui-handler';
|
||||
import { egg } from './egg';
|
||||
import { fightUiHandler } from './fight-ui-handler';
|
||||
import { growth } from './growth';
|
||||
import { menu } from './menu';
|
||||
import { menuUiHandler } from './menu-ui-handler';
|
||||
import { modifierType } from './modifier-type';
|
||||
import { move } from './move';
|
||||
import { nature } from './nature';
|
||||
import { pokeball } from './pokeball';
|
||||
import { pokemon } from './pokemon';
|
||||
import { pokemonInfo } from './pokemon-info';
|
||||
import { splashMessages } from './splash-messages';
|
||||
import { starterSelectUiHandler } from './starter-select-ui-handler';
|
||||
import { titles, trainerClasses, trainerNames } from './trainers';
|
||||
import { tutorial } from './tutorial';
|
||||
import { weather } from './weather';
|
||||
import { battleMessageUiHandler } from './battle-message-ui-handler';
|
||||
import { berry } from './berry';
|
||||
import { voucher } from './voucher';
|
||||
|
||||
export const enConfig = {
|
||||
ability: ability,
|
||||
|
@ -48,4 +48,4 @@ export const enConfig = {
|
|||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
voucher: voucher,
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const egg: SimpleTranslationEntries = {
|
||||
"egg": "Egg",
|
||||
"greatTier": "Rare",
|
||||
"ultraTier": "Epic",
|
||||
"masterTier": "Legendary",
|
||||
"defaultTier": "Common",
|
||||
"hatchWavesMessageSoon": "Sounds can be heard coming from inside! It will hatch soon!",
|
||||
"hatchWavesMessageClose": "It appears to move occasionally. It may be close to hatching.",
|
||||
"hatchWavesMessageNotClose": "What will hatch from this? It doesn't seem close to hatching.",
|
||||
"hatchWavesMessageLongTime": "It looks like this Egg will take a long time to hatch.",
|
||||
"gachaTypeLegendary": "Legendary Rate Up",
|
||||
"gachaTypeMove": "Rare Egg Move Rate Up",
|
||||
"gachaTypeShiny": "Shiny Rate Up",
|
||||
"selectMachine": "Select a machine.",
|
||||
"notEnoughVouchers": "You don't have enough vouchers!",
|
||||
"tooManyEggs": "You have too many eggs!",
|
||||
"pull": "Pull",
|
||||
"pulls": "Pulls"
|
||||
'egg': 'Egg',
|
||||
'greatTier': 'Rare',
|
||||
'ultraTier': 'Epic',
|
||||
'masterTier': 'Legendary',
|
||||
'defaultTier': 'Common',
|
||||
'hatchWavesMessageSoon': 'Sounds can be heard coming from inside! It will hatch soon!',
|
||||
'hatchWavesMessageClose': 'It appears to move occasionally. It may be close to hatching.',
|
||||
'hatchWavesMessageNotClose': 'What will hatch from this? It doesn\'t seem close to hatching.',
|
||||
'hatchWavesMessageLongTime': 'It looks like this Egg will take a long time to hatch.',
|
||||
'gachaTypeLegendary': 'Legendary Rate Up',
|
||||
'gachaTypeMove': 'Rare Egg Move Rate Up',
|
||||
'gachaTypeShiny': 'Shiny Rate Up',
|
||||
'selectMachine': 'Select a machine.',
|
||||
'notEnoughVouchers': 'You don\'t have enough vouchers!',
|
||||
'tooManyEggs': 'You have too many eggs!',
|
||||
'pull': 'Pull',
|
||||
'pulls': 'Pulls'
|
||||
} as const;
|
|
@ -1,7 +1,7 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const fightUiHandler: SimpleTranslationEntries = {
|
||||
"pp": "PP",
|
||||
"power": "Power",
|
||||
"accuracy": "Accuracy",
|
||||
'pp': 'PP',
|
||||
'power': 'Power',
|
||||
'accuracy': 'Accuracy',
|
||||
} as const;
|
|
@ -1,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const growth: SimpleTranslationEntries = {
|
||||
"Erratic": "Erratic",
|
||||
"Fast": "Fast",
|
||||
"Medium_Fast": "Medium Fast",
|
||||
"Medium_Slow": "Medium Slow",
|
||||
"Slow": "Slow",
|
||||
"Fluctuating": "Fluctuating"
|
||||
'Erratic': 'Erratic',
|
||||
'Fast': 'Fast',
|
||||
'Medium_Fast': 'Medium Fast',
|
||||
'Medium_Slow': 'Medium Slow',
|
||||
'Slow': 'Slow',
|
||||
'Fluctuating': 'Fluctuating'
|
||||
} as const;
|
|
@ -1,23 +1,23 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"GAME_SETTINGS": 'Game Settings',
|
||||
"ACHIEVEMENTS": "Achievements",
|
||||
"STATS": "Stats",
|
||||
"VOUCHERS": "Vouchers",
|
||||
"EGG_LIST": "Egg List",
|
||||
"EGG_GACHA": "Egg Gacha",
|
||||
"MANAGE_DATA": "Manage Data",
|
||||
"COMMUNITY": "Community",
|
||||
"SAVE_AND_QUIT": "Save and Quit",
|
||||
"LOG_OUT": "Log Out",
|
||||
"slot": "Slot {{slotNumber}}",
|
||||
"importSession": "Import Session",
|
||||
"importSlotSelect": "Select a slot to import to.",
|
||||
"exportSession": "Export Session",
|
||||
"exportSlotSelect": "Select a slot to export from.",
|
||||
"importData": "Import Data",
|
||||
"exportData": "Export Data",
|
||||
"cancel": "Cancel",
|
||||
"losingProgressionWarning": "You will lose any progress since the beginning of the battle. Proceed?"
|
||||
'GAME_SETTINGS': 'Game Settings',
|
||||
'ACHIEVEMENTS': 'Achievements',
|
||||
'STATS': 'Stats',
|
||||
'VOUCHERS': 'Vouchers',
|
||||
'EGG_LIST': 'Egg List',
|
||||
'EGG_GACHA': 'Egg Gacha',
|
||||
'MANAGE_DATA': 'Manage Data',
|
||||
'COMMUNITY': 'Community',
|
||||
'SAVE_AND_QUIT': 'Save and Quit',
|
||||
'LOG_OUT': 'Log Out',
|
||||
'slot': 'Slot {{slotNumber}}',
|
||||
'importSession': 'Import Session',
|
||||
'importSlotSelect': 'Select a slot to import to.',
|
||||
'exportSession': 'Export Session',
|
||||
'exportSlotSelect': 'Select a slot to export from.',
|
||||
'importData': 'Import Data',
|
||||
'exportData': 'Export Data',
|
||||
'cancel': 'Cancel',
|
||||
'losingProgressionWarning': 'You will lose any progress since the beginning of the battle. Proceed?'
|
||||
} as const;
|
|
@ -1,4 +1,4 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
/**
|
||||
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||
|
@ -6,46 +6,46 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||
* account interactions, descriptive text, etc.
|
||||
*/
|
||||
export const menu: SimpleTranslationEntries = {
|
||||
"cancel": "Cancel",
|
||||
"continue": "Continue",
|
||||
"dailyRun": "Daily Run (Beta)",
|
||||
"loadGame": "Load Game",
|
||||
"newGame": "New Game",
|
||||
"selectGameMode": "Select a game mode.",
|
||||
"logInOrCreateAccount": "Log in or create an account to start. No email required!",
|
||||
"username": "Username",
|
||||
"password": "Password",
|
||||
"login": "Login",
|
||||
"register": "Register",
|
||||
"emptyUsername": "Username must not be empty",
|
||||
"invalidLoginUsername": "The provided username is invalid",
|
||||
"invalidRegisterUsername": "Username must only contain letters, numbers, or underscores",
|
||||
"invalidLoginPassword": "The provided password is invalid",
|
||||
"invalidRegisterPassword": "Password must be 6 characters or longer",
|
||||
"usernameAlreadyUsed": "The provided username is already in use",
|
||||
"accountNonExistent": "The provided user does not exist",
|
||||
"unmatchingPassword": "The provided password does not match",
|
||||
"passwordNotMatchingConfirmPassword": "Password must match confirm password",
|
||||
"confirmPassword": "Confirm Password",
|
||||
"registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.",
|
||||
"backToLogin": "Back to Login",
|
||||
"failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.",
|
||||
"sessionSuccess": "Session loaded successfully.",
|
||||
"failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.",
|
||||
"boyOrGirl": "Are you a boy or a girl?",
|
||||
"boy": "Boy",
|
||||
"girl": "Girl",
|
||||
"evolving": "What?\n{{pokemonName}} is evolving!",
|
||||
"stoppedEvolving": "{{pokemonName}} stopped evolving.",
|
||||
"pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.",
|
||||
"evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.",
|
||||
"evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"weeklyRankings": "Weekly Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
"loading": "Loading…",
|
||||
"playersOnline": "Players Online",
|
||||
"empty":"Empty",
|
||||
"yes":"Yes",
|
||||
"no":"No",
|
||||
'cancel': 'Cancel',
|
||||
'continue': 'Continue',
|
||||
'dailyRun': 'Daily Run (Beta)',
|
||||
'loadGame': 'Load Game',
|
||||
'newGame': 'New Game',
|
||||
'selectGameMode': 'Select a game mode.',
|
||||
'logInOrCreateAccount': 'Log in or create an account to start. No email required!',
|
||||
'username': 'Username',
|
||||
'password': 'Password',
|
||||
'login': 'Login',
|
||||
'register': 'Register',
|
||||
'emptyUsername': 'Username must not be empty',
|
||||
'invalidLoginUsername': 'The provided username is invalid',
|
||||
'invalidRegisterUsername': 'Username must only contain letters, numbers, or underscores',
|
||||
'invalidLoginPassword': 'The provided password is invalid',
|
||||
'invalidRegisterPassword': 'Password must be 6 characters or longer',
|
||||
'usernameAlreadyUsed': 'The provided username is already in use',
|
||||
'accountNonExistent': 'The provided user does not exist',
|
||||
'unmatchingPassword': 'The provided password does not match',
|
||||
'passwordNotMatchingConfirmPassword': 'Password must match confirm password',
|
||||
'confirmPassword': 'Confirm Password',
|
||||
'registrationAgeWarning': 'By registering, you confirm you are of 13 years of age or older.',
|
||||
'backToLogin': 'Back to Login',
|
||||
'failedToLoadSaveData': 'Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.',
|
||||
'sessionSuccess': 'Session loaded successfully.',
|
||||
'failedToLoadSession': 'Your session data could not be loaded.\nIt may be corrupted.',
|
||||
'boyOrGirl': 'Are you a boy or a girl?',
|
||||
'boy': 'Boy',
|
||||
'girl': 'Girl',
|
||||
'evolving': 'What?\n{{pokemonName}} is evolving!',
|
||||
'stoppedEvolving': '{{pokemonName}} stopped evolving.',
|
||||
'pauseEvolutionsQuestion': 'Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.',
|
||||
'evolutionsPaused': 'Evolutions have been paused for {{pokemonName}}.',
|
||||
'evolutionDone': 'Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!',
|
||||
'dailyRankings': 'Daily Rankings',
|
||||
'weeklyRankings': 'Weekly Rankings',
|
||||
'noRankings': 'No Rankings',
|
||||
'loading': 'Loading…',
|
||||
'playersOnline': 'Players Online',
|
||||
'empty':'Empty',
|
||||
'yes':'Yes',
|
||||
'no':'No',
|
||||
} as const;
|
|
@ -1,387 +1,387 @@
|
|||
import { ModifierTypeTranslationEntries } from "#app/plugins/i18n";
|
||||
import { ModifierTypeTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const modifierType: ModifierTypeTranslationEntries = {
|
||||
ModifierType: {
|
||||
"AddPokeballModifierType": {
|
||||
name: "{{modifierCount}}x {{pokeballName}}",
|
||||
description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}",
|
||||
'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}}",
|
||||
'AddVoucherModifierType': {
|
||||
name: '{{modifierCount}}x {{voucherTypeName}}',
|
||||
description: 'Receive {{voucherTypeName}} x{{modifierCount}}',
|
||||
},
|
||||
"PokemonHeldItemModifierType": {
|
||||
'PokemonHeldItemModifierType': {
|
||||
extra: {
|
||||
"inoperable": "{{pokemonName}} can't take\nthis item!",
|
||||
"tooMany": "{{pokemonName}} has too many\nof this item!",
|
||||
'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",
|
||||
'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",
|
||||
'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",
|
||||
'PokemonReviveModifierType': {
|
||||
description: 'Revives one Pokémon and restores {{restorePercent}}% HP',
|
||||
},
|
||||
"PokemonStatusHealModifierType": {
|
||||
description: "Heals any status ailment for one Pokémon",
|
||||
'PokemonStatusHealModifierType': {
|
||||
description: 'Heals any status ailment for one Pokémon',
|
||||
},
|
||||
"PokemonPpRestoreModifierType": {
|
||||
description: "Restores {{restorePoints}} PP for one Pokémon move",
|
||||
'PokemonPpRestoreModifierType': {
|
||||
description: 'Restores {{restorePoints}} PP for one Pokémon move',
|
||||
extra: {
|
||||
"fully": "Restores all PP for one Pokémon move",
|
||||
'fully': 'Restores all PP for one Pokémon move',
|
||||
}
|
||||
},
|
||||
"PokemonAllMovePpRestoreModifierType": {
|
||||
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
|
||||
'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",
|
||||
'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)",
|
||||
'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.",
|
||||
'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",
|
||||
'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",
|
||||
'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%",
|
||||
'AttackTypeBoosterModifierType': {
|
||||
description: 'Increases the power of a Pokémon\'s {{moveType}}-type moves by 20%',
|
||||
},
|
||||
"PokemonLevelIncrementModifierType": {
|
||||
description: "Increases a Pokémon's level by 1",
|
||||
'PokemonLevelIncrementModifierType': {
|
||||
description: 'Increases a Pokémon\'s level by 1',
|
||||
},
|
||||
"AllPokemonLevelIncrementModifierType": {
|
||||
description: "Increases all party members' level by 1",
|
||||
'AllPokemonLevelIncrementModifierType': {
|
||||
description: 'Increases all party members\' level by 1',
|
||||
},
|
||||
"PokemonBaseStatBoosterModifierType": {
|
||||
description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.",
|
||||
'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",
|
||||
'AllPokemonFullHpRestoreModifierType': {
|
||||
description: 'Restores 100% HP for all Pokémon',
|
||||
},
|
||||
"AllPokemonFullReviveModifierType": {
|
||||
description: "Revives all fainted Pokémon, fully restoring HP",
|
||||
'AllPokemonFullReviveModifierType': {
|
||||
description: 'Revives all fainted Pokémon, fully restoring HP',
|
||||
},
|
||||
"MoneyRewardModifierType": {
|
||||
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
|
||||
'MoneyRewardModifierType': {
|
||||
description: 'Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})',
|
||||
extra: {
|
||||
"small": "small",
|
||||
"moderate": "moderate",
|
||||
"large": "large",
|
||||
'small': 'small',
|
||||
'moderate': 'moderate',
|
||||
'large': 'large',
|
||||
},
|
||||
},
|
||||
"ExpBoosterModifierType": {
|
||||
description: "Increases gain of EXP. Points by {{boostPercent}}%",
|
||||
'ExpBoosterModifierType': {
|
||||
description: 'Increases gain of EXP. Points by {{boostPercent}}%',
|
||||
},
|
||||
"PokemonExpBoosterModifierType": {
|
||||
description: "Increases the holder's 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%",
|
||||
'PokemonFriendshipBoosterModifierType': {
|
||||
description: 'Increases friendship gain per victory by 50%',
|
||||
},
|
||||
"PokemonMoveAccuracyBoosterModifierType": {
|
||||
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
|
||||
'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",
|
||||
'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",
|
||||
'TmModifierType': {
|
||||
name: 'TM{{moveId}} - {{moveName}}',
|
||||
description: 'Teach {{moveName}} to a Pokémon',
|
||||
},
|
||||
"EvolutionItemModifierType": {
|
||||
description: "Causes certain Pokémon to evolve",
|
||||
'EvolutionItemModifierType': {
|
||||
description: 'Causes certain Pokémon to evolve',
|
||||
},
|
||||
"FormChangeItemModifierType": {
|
||||
description: "Causes certain Pokémon to change form",
|
||||
'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)",
|
||||
'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",
|
||||
'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",
|
||||
'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",
|
||||
'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",
|
||||
'EnemyAttackStatusEffectChanceModifierType': {
|
||||
description: 'Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves',
|
||||
},
|
||||
"EnemyEndureChanceModifierType": {
|
||||
description: "Adds a {{chancePercent}}% chance of enduring a hit",
|
||||
'EnemyEndureChanceModifierType': {
|
||||
description: 'Adds a {{chancePercent}}% chance of enduring a hit',
|
||||
},
|
||||
|
||||
"RARE_CANDY": { name: "Rare Candy" },
|
||||
"RARER_CANDY": { name: "Rarer Candy" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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" },
|
||||
'REVIVE': { name: 'Revive' },
|
||||
'MAX_REVIVE': { name: 'Max Revive' },
|
||||
|
||||
"FULL_HEAL": { name: "Full Heal" },
|
||||
'FULL_HEAL': { name: 'Full Heal' },
|
||||
|
||||
"SACRED_ASH": { name: "Sacred Ash" },
|
||||
'SACRED_ASH': { name: 'Sacred Ash' },
|
||||
|
||||
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
|
||||
'REVIVER_SEED': { name: 'Reviver Seed', description: 'Revives the holder for 1/2 HP upon fainting' },
|
||||
|
||||
"ETHER": { name: "Ether" },
|
||||
"MAX_ETHER": { name: "Max Ether" },
|
||||
'ETHER': { name: 'Ether' },
|
||||
'MAX_ETHER': { name: 'Max Ether' },
|
||||
|
||||
"ELIXIR": { name: "Elixir" },
|
||||
"MAX_ELIXIR": { name: "Max Elixir" },
|
||||
'ELIXIR': { name: 'Elixir' },
|
||||
'MAX_ELIXIR': { name: 'Max Elixir' },
|
||||
|
||||
"PP_UP": { name: "PP Up" },
|
||||
"PP_MAX": { name: "PP Max" },
|
||||
'PP_UP': { name: 'PP Up' },
|
||||
'PP_MAX': { name: 'PP Max' },
|
||||
|
||||
"LURE": { name: "Lure" },
|
||||
"SUPER_LURE": { name: "Super Lure" },
|
||||
"MAX_LURE": { name: "Max Lure" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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" },
|
||||
'LUCKY_EGG': { name: 'Lucky Egg' },
|
||||
'GOLDEN_EGG': { name: 'Golden Egg' },
|
||||
|
||||
"SOOTHE_BELL": { name: "Soothe Bell" },
|
||||
'SOOTHE_BELL': { name: 'Soothe Bell' },
|
||||
|
||||
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
|
||||
'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" },
|
||||
'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 damage inflicted as money" },
|
||||
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
|
||||
'AMULET_COIN': { name: 'Amulet Coin', description: 'Increases money rewards by 20%' },
|
||||
'GOLDEN_PUNCH': { name: 'Golden Punch', description: 'Grants 50% of 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" },
|
||||
'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" },
|
||||
'GRIP_CLAW': { name: 'Grip Claw' },
|
||||
'WIDE_LENS': { name: 'Wide Lens' },
|
||||
|
||||
"MULTI_LENS": { name: "Multi 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" },
|
||||
'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 25% chance that a used berry will not be consumed" },
|
||||
'BERRY_POUCH': { name: 'Berry Pouch', description: 'Adds a 25% 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" },
|
||||
'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)" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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' },
|
||||
|
||||
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
|
||||
'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" },
|
||||
'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" },
|
||||
'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" },
|
||||
'DNA_SPLICERS': { name: 'DNA Splicers' },
|
||||
|
||||
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
|
||||
'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" },
|
||||
'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_SLEEP_CHANCE": { name: "Sleep Token" },
|
||||
"ENEMY_ATTACK_FREEZE_CHANCE": { name: "Freeze Token" },
|
||||
"ENEMY_ATTACK_BURN_CHANCE": { name: "Burn Token" },
|
||||
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 10% 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" },
|
||||
'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_SLEEP_CHANCE': { name: 'Sleep Token' },
|
||||
'ENEMY_ATTACK_FREEZE_CHANCE': { name: 'Freeze Token' },
|
||||
'ENEMY_ATTACK_BURN_CHANCE': { name: 'Burn Token' },
|
||||
'ENEMY_STATUS_EFFECT_HEAL_CHANCE': { name: 'Full Heal Token', description: 'Adds a 10% 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' },
|
||||
},
|
||||
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",
|
||||
'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',
|
||||
},
|
||||
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",
|
||||
'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",
|
||||
'hp_up': 'HP Up',
|
||||
'protein': 'Protein',
|
||||
'iron': 'Iron',
|
||||
'calcium': 'Calcium',
|
||||
'zinc': 'Zinc',
|
||||
'carbos': 'Carbos',
|
||||
},
|
||||
EvolutionItem: {
|
||||
"NONE": "None",
|
||||
'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",
|
||||
'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",
|
||||
'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",
|
||||
'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",
|
||||
'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_ORB": "Lustrous Orb",
|
||||
"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",
|
||||
'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_ORB': 'Lustrous Orb',
|
||||
'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',
|
||||
},
|
||||
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -1,29 +1,29 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
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"
|
||||
'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,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const pokeball: SimpleTranslationEntries = {
|
||||
"pokeBall": "Poké Ball",
|
||||
"greatBall": "Great Ball",
|
||||
"ultraBall": "Ultra Ball",
|
||||
"rogueBall": "Rogue Ball",
|
||||
"masterBall": "Master Ball",
|
||||
"luxuryBall": "Luxury Ball",
|
||||
'pokeBall': 'Poké Ball',
|
||||
'greatBall': 'Great Ball',
|
||||
'ultraBall': 'Ultra Ball',
|
||||
'rogueBall': 'Rogue Ball',
|
||||
'masterBall': 'Master Ball',
|
||||
'luxuryBall': 'Luxury Ball',
|
||||
} as const;
|
|
@ -1,41 +1,41 @@
|
|||
import { PokemonInfoTranslationEntries } from "#app/plugins/i18n";
|
||||
import { PokemonInfoTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const pokemonInfo: PokemonInfoTranslationEntries = {
|
||||
Stat: {
|
||||
"HP": "Max. HP",
|
||||
"HPshortened": "MaxHP",
|
||||
"ATK": "Attack",
|
||||
"ATKshortened": "Atk",
|
||||
"DEF": "Defense",
|
||||
"DEFshortened": "Def",
|
||||
"SPATK": "Sp. Atk",
|
||||
"SPATKshortened": "SpAtk",
|
||||
"SPDEF": "Sp. Def",
|
||||
"SPDEFshortened": "SpDef",
|
||||
"SPD": "Speed",
|
||||
"SPDshortened": "Spd"
|
||||
'HP': 'Max. HP',
|
||||
'HPshortened': 'MaxHP',
|
||||
'ATK': 'Attack',
|
||||
'ATKshortened': 'Atk',
|
||||
'DEF': 'Defense',
|
||||
'DEFshortened': 'Def',
|
||||
'SPATK': 'Sp. Atk',
|
||||
'SPATKshortened': 'SpAtk',
|
||||
'SPDEF': 'Sp. Def',
|
||||
'SPDEFshortened': 'SpDef',
|
||||
'SPD': 'Speed',
|
||||
'SPDshortened': 'Spd'
|
||||
},
|
||||
|
||||
Type: {
|
||||
"UNKNOWN": "Unknown",
|
||||
"NORMAL": "Normal",
|
||||
"FIGHTING": "Fighting",
|
||||
"FLYING": "Flying",
|
||||
"POISON": "Poison",
|
||||
"GROUND": "Ground",
|
||||
"ROCK": "Rock",
|
||||
"BUG": "Bug",
|
||||
"GHOST": "Ghost",
|
||||
"STEEL": "Steel",
|
||||
"FIRE": "Fire",
|
||||
"WATER": "Water",
|
||||
"GRASS": "Grass",
|
||||
"ELECTRIC": "Electric",
|
||||
"PSYCHIC": "Psychic",
|
||||
"ICE": "Ice",
|
||||
"DRAGON": "Dragon",
|
||||
"DARK": "Dark",
|
||||
"FAIRY": "Fairy",
|
||||
"STELLAR": "Stellar",
|
||||
'UNKNOWN': 'Unknown',
|
||||
'NORMAL': 'Normal',
|
||||
'FIGHTING': 'Fighting',
|
||||
'FLYING': 'Flying',
|
||||
'POISON': 'Poison',
|
||||
'GROUND': 'Ground',
|
||||
'ROCK': 'Rock',
|
||||
'BUG': 'Bug',
|
||||
'GHOST': 'Ghost',
|
||||
'STEEL': 'Steel',
|
||||
'FIRE': 'Fire',
|
||||
'WATER': 'Water',
|
||||
'GRASS': 'Grass',
|
||||
'ELECTRIC': 'Electric',
|
||||
'PSYCHIC': 'Psychic',
|
||||
'ICE': 'Ice',
|
||||
'DRAGON': 'Dragon',
|
||||
'DARK': 'Dark',
|
||||
'FAIRY': 'Fairy',
|
||||
'STELLAR': 'Stellar',
|
||||
},
|
||||
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -1,37 +1,37 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const splashMessages: SimpleTranslationEntries = {
|
||||
"battlesWon": "Battles Won!",
|
||||
"joinTheDiscord": "Join the Discord!",
|
||||
"infiniteLevels": "Infinite Levels!",
|
||||
"everythingStacks": "Everything Stacks!",
|
||||
"optionalSaveScumming": "Optional Save Scumming!",
|
||||
"biomes": "35 Biomes!",
|
||||
"openSource": "Open Source!",
|
||||
"playWithSpeed": "Play with 5x Speed!",
|
||||
"liveBugTesting": "Live Bug Testing!",
|
||||
"heavyInfluence": "Heavy RoR2 Influence!",
|
||||
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||
"nowWithMoreSalt": "Now with 33% More Salt!",
|
||||
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
||||
"brokenEggMoves": "Broken Egg Moves!",
|
||||
"magnificent": "Magnificent!",
|
||||
"mubstitute": "Mubstitute!",
|
||||
"thatsCrazy": "That\'s Crazy!",
|
||||
"oranceJuice": "Orance Juice!",
|
||||
"questionableBalancing": "Questionable Balancing!",
|
||||
"coolShaders": "Cool Shaders!",
|
||||
"aiFree": "AI-Free!",
|
||||
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
||||
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
||||
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
||||
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
||||
"achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!",
|
||||
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
||||
"dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!",
|
||||
"alsoTryPokengine": "Also Try Pokéngine!",
|
||||
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
||||
"alsoTryRadicalRed": "Also Try Radical Red!",
|
||||
"eeveeExpo": "Eevee Expo!",
|
||||
"ynoproject": "YNOproject!",
|
||||
'battlesWon': 'Battles Won!',
|
||||
'joinTheDiscord': 'Join the Discord!',
|
||||
'infiniteLevels': 'Infinite Levels!',
|
||||
'everythingStacks': 'Everything Stacks!',
|
||||
'optionalSaveScumming': 'Optional Save Scumming!',
|
||||
'biomes': '35 Biomes!',
|
||||
'openSource': 'Open Source!',
|
||||
'playWithSpeed': 'Play with 5x Speed!',
|
||||
'liveBugTesting': 'Live Bug Testing!',
|
||||
'heavyInfluence': 'Heavy RoR2 Influence!',
|
||||
'pokemonRiskAndPokemonRain': 'Pokémon Risk and Pokémon Rain!',
|
||||
'nowWithMoreSalt': 'Now with 33% More Salt!',
|
||||
'infiniteFusionAtHome': 'Infinite Fusion at Home!',
|
||||
'brokenEggMoves': 'Broken Egg Moves!',
|
||||
'magnificent': 'Magnificent!',
|
||||
'mubstitute': 'Mubstitute!',
|
||||
'thatsCrazy': 'That\'s Crazy!',
|
||||
'oranceJuice': 'Orance Juice!',
|
||||
'questionableBalancing': 'Questionable Balancing!',
|
||||
'coolShaders': 'Cool Shaders!',
|
||||
'aiFree': 'AI-Free!',
|
||||
'suddenDifficultySpikes': 'Sudden Difficulty Spikes!',
|
||||
'basedOnAnUnfinishedFlashGame': 'Based on an Unfinished Flash Game!',
|
||||
'moreAddictiveThanIntended': 'More Addictive than Intended!',
|
||||
'mostlyConsistentSeeds': 'Mostly Consistent Seeds!',
|
||||
'achievementPointsDontDoAnything': 'Achievement Points Don\'t Do Anything!',
|
||||
'youDoNotStartAtLevel': 'You Do Not Start at Level 2000!',
|
||||
'dontTalkAboutTheManaphyEggIncident': 'Don\'t Talk About the Manaphy Egg Incident!',
|
||||
'alsoTryPokengine': 'Also Try Pokéngine!',
|
||||
'alsoTryEmeraldRogue': 'Also Try Emerald Rogue!',
|
||||
'alsoTryRadicalRed': 'Also Try Radical Red!',
|
||||
'eeveeExpo': 'Eevee Expo!',
|
||||
'ynoproject': 'YNOproject!',
|
||||
} as const;
|
|
@ -1,4 +1,4 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
/**
|
||||
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||
|
@ -6,39 +6,39 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||
* account interactions, descriptive text, etc.
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam":'Begin with these Pokémon?',
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
"gen4": "IV",
|
||||
"gen5": "V",
|
||||
"gen6": "VI",
|
||||
"gen7": "VII",
|
||||
"gen8": "VIII",
|
||||
"gen9": "IX",
|
||||
"growthRate": "Growth Rate:",
|
||||
"ability": "Ability:",
|
||||
"passive": "Passive:",
|
||||
"nature": "Nature:",
|
||||
"eggMoves": 'Egg Moves',
|
||||
"start": "Start",
|
||||
"addToParty": "Add to Party",
|
||||
"toggleIVs": 'Toggle IVs',
|
||||
"manageMoves": 'Manage Moves',
|
||||
"useCandies": 'Use Candies',
|
||||
"selectMoveSwapOut": "Select a move to swap out.",
|
||||
"selectMoveSwapWith": "Select a move to swap with",
|
||||
"unlockPassive": "Unlock Passive",
|
||||
"reduceCost": "Reduce Cost",
|
||||
"cycleShiny": "R: Cycle Shiny",
|
||||
"cycleForm": 'F: Cycle Form',
|
||||
"cycleGender": 'G: Cycle Gender',
|
||||
"cycleAbility": 'E: Cycle Ability',
|
||||
"cycleNature": 'N: Cycle Nature',
|
||||
"cycleVariant": 'V: Cycle Variant',
|
||||
"enablePassive": "Enable Passive",
|
||||
"disablePassive": "Disable Passive",
|
||||
"locked": "Locked",
|
||||
"disabled": "Disabled",
|
||||
"uncaught": "Uncaught"
|
||||
}
|
||||
'confirmStartTeam':'Begin with these Pokémon?',
|
||||
'gen1': 'I',
|
||||
'gen2': 'II',
|
||||
'gen3': 'III',
|
||||
'gen4': 'IV',
|
||||
'gen5': 'V',
|
||||
'gen6': 'VI',
|
||||
'gen7': 'VII',
|
||||
'gen8': 'VIII',
|
||||
'gen9': 'IX',
|
||||
'growthRate': 'Growth Rate:',
|
||||
'ability': 'Ability:',
|
||||
'passive': 'Passive:',
|
||||
'nature': 'Nature:',
|
||||
'eggMoves': 'Egg Moves',
|
||||
'start': 'Start',
|
||||
'addToParty': 'Add to Party',
|
||||
'toggleIVs': 'Toggle IVs',
|
||||
'manageMoves': 'Manage Moves',
|
||||
'useCandies': 'Use Candies',
|
||||
'selectMoveSwapOut': 'Select a move to swap out.',
|
||||
'selectMoveSwapWith': 'Select a move to swap with',
|
||||
'unlockPassive': 'Unlock Passive',
|
||||
'reduceCost': 'Reduce Cost',
|
||||
'cycleShiny': 'R: Cycle Shiny',
|
||||
'cycleForm': 'F: Cycle Form',
|
||||
'cycleGender': 'G: Cycle Gender',
|
||||
'cycleAbility': 'E: Cycle Ability',
|
||||
'cycleNature': 'N: Cycle Nature',
|
||||
'cycleVariant': 'V: Cycle Variant',
|
||||
'enablePassive': 'Enable Passive',
|
||||
'disablePassive': 'Disable Passive',
|
||||
'locked': 'Locked',
|
||||
'disabled': 'Disabled',
|
||||
'uncaught': 'Uncaught'
|
||||
};
|
||||
|
|
|
@ -1,244 +1,244 @@
|
|||
import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
import {SimpleTranslationEntries} from '#app/plugins/i18n';
|
||||
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Elite Four",
|
||||
"gym_leader": "Gym Leader",
|
||||
"gym_leader_female": "Gym Leader",
|
||||
"champion": "Champion",
|
||||
"rival": "Rival",
|
||||
"professor": "Professor",
|
||||
"frontier_brain": "Frontier Brain",
|
||||
'elite_four': 'Elite Four',
|
||||
'gym_leader': 'Gym Leader',
|
||||
'gym_leader_female': 'Gym Leader',
|
||||
'champion': 'Champion',
|
||||
'rival': 'Rival',
|
||||
'professor': 'Professor',
|
||||
'frontier_brain': 'Frontier Brain',
|
||||
// Maybe if we add the evil teams we can add "Team Rocket" and "Team Aqua" etc. here as well as "Team Rocket Boss" and "Team Aqua Admin" etc.
|
||||
} as const;
|
||||
|
||||
// Titles of trainers like "Youngster" or "Lass"
|
||||
export const trainerClasses: SimpleTranslationEntries = {
|
||||
"ace_trainer": "Ace Trainer",
|
||||
"ace_trainer_female": "Ace Trainer",
|
||||
"ace_duo": "Ace Duo",
|
||||
"artist": "Artist",
|
||||
"artist_female": "Artist",
|
||||
"backers": "Backers",
|
||||
"backpacker": "Backpacker",
|
||||
"backpacker_female": "Backpacker",
|
||||
"backpackers": "Backpackers",
|
||||
"baker": "Baker",
|
||||
"battle_girl": "Battle Girl",
|
||||
"beauty": "Beauty",
|
||||
"beginners": "Beginners",
|
||||
"biker": "Biker",
|
||||
"black_belt": "Black Belt",
|
||||
"breeder": "Breeder",
|
||||
"breeder_female": "Breeder",
|
||||
"breeders": "Breeders",
|
||||
"clerk": "Clerk",
|
||||
"clerk_female": "Clerk",
|
||||
"colleagues": "Colleagues",
|
||||
"crush_kin": "Crush Kin",
|
||||
"cyclist": "Cyclist",
|
||||
"cyclist_female": "Cyclist",
|
||||
"cyclists": "Cyclists",
|
||||
"dancer": "Dancer",
|
||||
"dancer_female": "Dancer",
|
||||
"depot_agent": "Depot Agent",
|
||||
"doctor": "Doctor",
|
||||
"doctor_female": "Doctor",
|
||||
"fisherman": "Fisherman",
|
||||
"fisherman_female": "Fisherman",
|
||||
"gentleman": "Gentleman",
|
||||
"guitarist": "Guitarist",
|
||||
"guitarist_female": "Guitarist",
|
||||
"harlequin": "Harlequin",
|
||||
"hiker": "Hiker",
|
||||
"hooligans": "Hooligans",
|
||||
"hoopster": "Hoopster",
|
||||
"infielder": "Infielder",
|
||||
"janitor": "Janitor",
|
||||
"lady": "Lady",
|
||||
"lass": "Lass",
|
||||
"linebacker": "Linebacker",
|
||||
"maid": "Maid",
|
||||
"madame": "Madame",
|
||||
"medical_team": "Medical Team",
|
||||
"musician": "Musician",
|
||||
"hex_maniac": "Hex Maniac",
|
||||
"nurse": "Nurse",
|
||||
"nursery_aide": "Nursery Aide",
|
||||
"officer": "Officer",
|
||||
"parasol_lady": "Parasol Lady",
|
||||
"pilot": "Pilot",
|
||||
"pokéfan": "Poké Fan",
|
||||
"pokéfan_female": "Poké Fan",
|
||||
"pokéfan_family": "Poké Fan Family",
|
||||
"preschooler": "Preschooler",
|
||||
"preschooler_female": "Preschooler",
|
||||
"preschoolers": "Preschoolers",
|
||||
"psychic": "Psychic",
|
||||
"psychic_female": "Psychic",
|
||||
"psychics": "Psychics",
|
||||
"pokémon_ranger": "Pokémon Ranger",
|
||||
"pokémon_ranger_female": "Pokémon Ranger",
|
||||
"pokémon_rangers": "Pokémon Ranger",
|
||||
"ranger": "Ranger",
|
||||
"restaurant_staff": "Restaurant Staff",
|
||||
"rich": "Rich",
|
||||
"rich_female": "Rich",
|
||||
"rich_boy": "Rich Boy",
|
||||
"rich_couple": "Rich Couple",
|
||||
"rich_kid": "Rich Kid",
|
||||
"rich_kid_female": "Rich Kid",
|
||||
"rich_kids": "Rich Kids",
|
||||
"roughneck": "Roughneck",
|
||||
"scientist": "Scientist",
|
||||
"scientist_female": "Scientist",
|
||||
"scientists": "Scientists",
|
||||
"smasher": "Smasher",
|
||||
"snow_worker": "Snow Worker",
|
||||
"snow_worker_female": "Snow Worker",
|
||||
"striker": "Striker",
|
||||
"school_kid": "School Kid",
|
||||
"school_kid_female": "School Kid",
|
||||
"school_kids": "School Kids",
|
||||
"swimmer": "Swimmer",
|
||||
"swimmer_female": "Swimmer",
|
||||
"swimmers": "Swimmers",
|
||||
"twins": "Twins",
|
||||
"veteran": "Veteran",
|
||||
"veteran_female": "Veteran",
|
||||
"veteran_duo": "Veteran Duo",
|
||||
"waiter": "Waiter",
|
||||
"waitress": "Waitress",
|
||||
"worker": "Worker",
|
||||
"worker_female": "Worker",
|
||||
"workers": "Workers",
|
||||
"youngster": "Youngster"
|
||||
'ace_trainer': 'Ace Trainer',
|
||||
'ace_trainer_female': 'Ace Trainer',
|
||||
'ace_duo': 'Ace Duo',
|
||||
'artist': 'Artist',
|
||||
'artist_female': 'Artist',
|
||||
'backers': 'Backers',
|
||||
'backpacker': 'Backpacker',
|
||||
'backpacker_female': 'Backpacker',
|
||||
'backpackers': 'Backpackers',
|
||||
'baker': 'Baker',
|
||||
'battle_girl': 'Battle Girl',
|
||||
'beauty': 'Beauty',
|
||||
'beginners': 'Beginners',
|
||||
'biker': 'Biker',
|
||||
'black_belt': 'Black Belt',
|
||||
'breeder': 'Breeder',
|
||||
'breeder_female': 'Breeder',
|
||||
'breeders': 'Breeders',
|
||||
'clerk': 'Clerk',
|
||||
'clerk_female': 'Clerk',
|
||||
'colleagues': 'Colleagues',
|
||||
'crush_kin': 'Crush Kin',
|
||||
'cyclist': 'Cyclist',
|
||||
'cyclist_female': 'Cyclist',
|
||||
'cyclists': 'Cyclists',
|
||||
'dancer': 'Dancer',
|
||||
'dancer_female': 'Dancer',
|
||||
'depot_agent': 'Depot Agent',
|
||||
'doctor': 'Doctor',
|
||||
'doctor_female': 'Doctor',
|
||||
'fisherman': 'Fisherman',
|
||||
'fisherman_female': 'Fisherman',
|
||||
'gentleman': 'Gentleman',
|
||||
'guitarist': 'Guitarist',
|
||||
'guitarist_female': 'Guitarist',
|
||||
'harlequin': 'Harlequin',
|
||||
'hiker': 'Hiker',
|
||||
'hooligans': 'Hooligans',
|
||||
'hoopster': 'Hoopster',
|
||||
'infielder': 'Infielder',
|
||||
'janitor': 'Janitor',
|
||||
'lady': 'Lady',
|
||||
'lass': 'Lass',
|
||||
'linebacker': 'Linebacker',
|
||||
'maid': 'Maid',
|
||||
'madame': 'Madame',
|
||||
'medical_team': 'Medical Team',
|
||||
'musician': 'Musician',
|
||||
'hex_maniac': 'Hex Maniac',
|
||||
'nurse': 'Nurse',
|
||||
'nursery_aide': 'Nursery Aide',
|
||||
'officer': 'Officer',
|
||||
'parasol_lady': 'Parasol Lady',
|
||||
'pilot': 'Pilot',
|
||||
'pokéfan': 'Poké Fan',
|
||||
'pokéfan_female': 'Poké Fan',
|
||||
'pokéfan_family': 'Poké Fan Family',
|
||||
'preschooler': 'Preschooler',
|
||||
'preschooler_female': 'Preschooler',
|
||||
'preschoolers': 'Preschoolers',
|
||||
'psychic': 'Psychic',
|
||||
'psychic_female': 'Psychic',
|
||||
'psychics': 'Psychics',
|
||||
'pokémon_ranger': 'Pokémon Ranger',
|
||||
'pokémon_ranger_female': 'Pokémon Ranger',
|
||||
'pokémon_rangers': 'Pokémon Ranger',
|
||||
'ranger': 'Ranger',
|
||||
'restaurant_staff': 'Restaurant Staff',
|
||||
'rich': 'Rich',
|
||||
'rich_female': 'Rich',
|
||||
'rich_boy': 'Rich Boy',
|
||||
'rich_couple': 'Rich Couple',
|
||||
'rich_kid': 'Rich Kid',
|
||||
'rich_kid_female': 'Rich Kid',
|
||||
'rich_kids': 'Rich Kids',
|
||||
'roughneck': 'Roughneck',
|
||||
'scientist': 'Scientist',
|
||||
'scientist_female': 'Scientist',
|
||||
'scientists': 'Scientists',
|
||||
'smasher': 'Smasher',
|
||||
'snow_worker': 'Snow Worker',
|
||||
'snow_worker_female': 'Snow Worker',
|
||||
'striker': 'Striker',
|
||||
'school_kid': 'School Kid',
|
||||
'school_kid_female': 'School Kid',
|
||||
'school_kids': 'School Kids',
|
||||
'swimmer': 'Swimmer',
|
||||
'swimmer_female': 'Swimmer',
|
||||
'swimmers': 'Swimmers',
|
||||
'twins': 'Twins',
|
||||
'veteran': 'Veteran',
|
||||
'veteran_female': 'Veteran',
|
||||
'veteran_duo': 'Veteran Duo',
|
||||
'waiter': 'Waiter',
|
||||
'waitress': 'Waitress',
|
||||
'worker': 'Worker',
|
||||
'worker_female': 'Worker',
|
||||
'workers': 'Workers',
|
||||
'youngster': 'Youngster'
|
||||
} as const;
|
||||
|
||||
// Names of special trainers like gym leaders, elite four, and the champion
|
||||
export const trainerNames: SimpleTranslationEntries = {
|
||||
"brock": "Brock",
|
||||
"misty": "Misty",
|
||||
"lt_surge": "Lt Surge",
|
||||
"erika": "Erika",
|
||||
"janine": "Janine",
|
||||
"sabrina": "Sabrina",
|
||||
"blaine": "Blaine",
|
||||
"giovanni": "Giovanni",
|
||||
"falkner": "Falkner",
|
||||
"bugsy": "Bugsy",
|
||||
"whitney": "Whitney",
|
||||
"morty": "Morty",
|
||||
"chuck": "Chuck",
|
||||
"jasmine": "Jasmine",
|
||||
"pryce": "Pryce",
|
||||
"clair": "Clair",
|
||||
"roxanne": "Roxanne",
|
||||
"brawly": "Brawly",
|
||||
"wattson": "Wattson",
|
||||
"flannery": "Flannery",
|
||||
"norman": "Norman",
|
||||
"winona": "Winona",
|
||||
"tate": "Tate",
|
||||
"liza": "Liza",
|
||||
"juan": "Juan",
|
||||
"roark": "Roark",
|
||||
"gardenia": "Gardenia",
|
||||
"maylene": "Maylene",
|
||||
"crasher_wake": "Crasher Wake",
|
||||
"fantina": "Fantina",
|
||||
"byron": "Byron",
|
||||
"candice": "Candice",
|
||||
"volkner": "Volkner",
|
||||
"cilan": "Cilan",
|
||||
"chili": "Chili",
|
||||
"cress": "Cress",
|
||||
"cheren": "Cheren",
|
||||
"lenora": "Lenora",
|
||||
"roxie": "Roxie",
|
||||
"burgh": "Burgh",
|
||||
"elesa": "Elesa",
|
||||
"clay": "Clay",
|
||||
"skyla": "Skyla",
|
||||
"brycen": "Brycen",
|
||||
"drayden": "Drayden",
|
||||
"marlon": "Marlon",
|
||||
"viola": "Viola",
|
||||
"grant": "Grant",
|
||||
"korrina": "Korrina",
|
||||
"ramos": "Ramos",
|
||||
"clemont": "Clemont",
|
||||
"valerie": "Valerie",
|
||||
"olympia": "Olympia",
|
||||
"wulfric": "Wulfric",
|
||||
"milo": "Milo",
|
||||
"nessa": "Nessa",
|
||||
"kabu": "Kabu",
|
||||
"bea": "Bea",
|
||||
"allister": "Allister",
|
||||
"opal": "Opal",
|
||||
"bede": "Bede",
|
||||
"gordie": "Gordie",
|
||||
"melony": "Melony",
|
||||
"piers": "Piers",
|
||||
"marnie": "Marnie",
|
||||
"raihan": "Raihan",
|
||||
"katy": "Katy",
|
||||
"brassius": "Brassius",
|
||||
"iono": "Iono",
|
||||
"kofu": "Kofu",
|
||||
"larry": "Larry",
|
||||
"ryme": "Ryme",
|
||||
"tulip": "Tulip",
|
||||
"grusha": "Grusha",
|
||||
"lorelei": "Lorelei",
|
||||
"bruno": "Bruno",
|
||||
"agatha": "Agatha",
|
||||
"lance": "Lance",
|
||||
"will": "Will",
|
||||
"koga": "Koga",
|
||||
"karen": "Karen",
|
||||
"sidney": "Sidney",
|
||||
"phoebe": "Phoebe",
|
||||
"glacia": "Glacia",
|
||||
"drake": "Drake",
|
||||
"aaron": "Aaron",
|
||||
"bertha": "Bertha",
|
||||
"flint": "Flint",
|
||||
"lucian": "Lucian",
|
||||
"shauntal": "Shauntal",
|
||||
"marshal": "Marshal",
|
||||
"grimsley": "Grimsley",
|
||||
"caitlin": "Caitlin",
|
||||
"malva": "Malva",
|
||||
"siebold": "Siebold",
|
||||
"wikstrom": "Wikstrom",
|
||||
"drasna": "Drasna",
|
||||
"hala": "Hala",
|
||||
"molayne": "Molayne",
|
||||
"olivia": "Olivia",
|
||||
"acerola": "Acerola",
|
||||
"kahili": "Kahili",
|
||||
"rika": "Rika",
|
||||
"poppy": "Poppy",
|
||||
"hassel": "Hassel",
|
||||
"crispin": "Crispin",
|
||||
"amarys": "Amarys",
|
||||
"lacey": "Lacey",
|
||||
"drayton": "Drayton",
|
||||
"blue": "Blue",
|
||||
"red": "Red",
|
||||
"steven": "Steven",
|
||||
"wallace": "Wallace",
|
||||
"cynthia": "Cynthia",
|
||||
"alder": "Alder",
|
||||
"iris": "Iris",
|
||||
"diantha": "Diantha",
|
||||
"hau": "Hau",
|
||||
"geeta": "Geeta",
|
||||
"nemona": "Nemona",
|
||||
"kieran": "Kieran",
|
||||
"leon": "Leon",
|
||||
"rival": "Finn",
|
||||
"rival_female": "Ivy",
|
||||
'brock': 'Brock',
|
||||
'misty': 'Misty',
|
||||
'lt_surge': 'Lt Surge',
|
||||
'erika': 'Erika',
|
||||
'janine': 'Janine',
|
||||
'sabrina': 'Sabrina',
|
||||
'blaine': 'Blaine',
|
||||
'giovanni': 'Giovanni',
|
||||
'falkner': 'Falkner',
|
||||
'bugsy': 'Bugsy',
|
||||
'whitney': 'Whitney',
|
||||
'morty': 'Morty',
|
||||
'chuck': 'Chuck',
|
||||
'jasmine': 'Jasmine',
|
||||
'pryce': 'Pryce',
|
||||
'clair': 'Clair',
|
||||
'roxanne': 'Roxanne',
|
||||
'brawly': 'Brawly',
|
||||
'wattson': 'Wattson',
|
||||
'flannery': 'Flannery',
|
||||
'norman': 'Norman',
|
||||
'winona': 'Winona',
|
||||
'tate': 'Tate',
|
||||
'liza': 'Liza',
|
||||
'juan': 'Juan',
|
||||
'roark': 'Roark',
|
||||
'gardenia': 'Gardenia',
|
||||
'maylene': 'Maylene',
|
||||
'crasher_wake': 'Crasher Wake',
|
||||
'fantina': 'Fantina',
|
||||
'byron': 'Byron',
|
||||
'candice': 'Candice',
|
||||
'volkner': 'Volkner',
|
||||
'cilan': 'Cilan',
|
||||
'chili': 'Chili',
|
||||
'cress': 'Cress',
|
||||
'cheren': 'Cheren',
|
||||
'lenora': 'Lenora',
|
||||
'roxie': 'Roxie',
|
||||
'burgh': 'Burgh',
|
||||
'elesa': 'Elesa',
|
||||
'clay': 'Clay',
|
||||
'skyla': 'Skyla',
|
||||
'brycen': 'Brycen',
|
||||
'drayden': 'Drayden',
|
||||
'marlon': 'Marlon',
|
||||
'viola': 'Viola',
|
||||
'grant': 'Grant',
|
||||
'korrina': 'Korrina',
|
||||
'ramos': 'Ramos',
|
||||
'clemont': 'Clemont',
|
||||
'valerie': 'Valerie',
|
||||
'olympia': 'Olympia',
|
||||
'wulfric': 'Wulfric',
|
||||
'milo': 'Milo',
|
||||
'nessa': 'Nessa',
|
||||
'kabu': 'Kabu',
|
||||
'bea': 'Bea',
|
||||
'allister': 'Allister',
|
||||
'opal': 'Opal',
|
||||
'bede': 'Bede',
|
||||
'gordie': 'Gordie',
|
||||
'melony': 'Melony',
|
||||
'piers': 'Piers',
|
||||
'marnie': 'Marnie',
|
||||
'raihan': 'Raihan',
|
||||
'katy': 'Katy',
|
||||
'brassius': 'Brassius',
|
||||
'iono': 'Iono',
|
||||
'kofu': 'Kofu',
|
||||
'larry': 'Larry',
|
||||
'ryme': 'Ryme',
|
||||
'tulip': 'Tulip',
|
||||
'grusha': 'Grusha',
|
||||
'lorelei': 'Lorelei',
|
||||
'bruno': 'Bruno',
|
||||
'agatha': 'Agatha',
|
||||
'lance': 'Lance',
|
||||
'will': 'Will',
|
||||
'koga': 'Koga',
|
||||
'karen': 'Karen',
|
||||
'sidney': 'Sidney',
|
||||
'phoebe': 'Phoebe',
|
||||
'glacia': 'Glacia',
|
||||
'drake': 'Drake',
|
||||
'aaron': 'Aaron',
|
||||
'bertha': 'Bertha',
|
||||
'flint': 'Flint',
|
||||
'lucian': 'Lucian',
|
||||
'shauntal': 'Shauntal',
|
||||
'marshal': 'Marshal',
|
||||
'grimsley': 'Grimsley',
|
||||
'caitlin': 'Caitlin',
|
||||
'malva': 'Malva',
|
||||
'siebold': 'Siebold',
|
||||
'wikstrom': 'Wikstrom',
|
||||
'drasna': 'Drasna',
|
||||
'hala': 'Hala',
|
||||
'molayne': 'Molayne',
|
||||
'olivia': 'Olivia',
|
||||
'acerola': 'Acerola',
|
||||
'kahili': 'Kahili',
|
||||
'rika': 'Rika',
|
||||
'poppy': 'Poppy',
|
||||
'hassel': 'Hassel',
|
||||
'crispin': 'Crispin',
|
||||
'amarys': 'Amarys',
|
||||
'lacey': 'Lacey',
|
||||
'drayton': 'Drayton',
|
||||
'blue': 'Blue',
|
||||
'red': 'Red',
|
||||
'steven': 'Steven',
|
||||
'wallace': 'Wallace',
|
||||
'cynthia': 'Cynthia',
|
||||
'alder': 'Alder',
|
||||
'iris': 'Iris',
|
||||
'diantha': 'Diantha',
|
||||
'hau': 'Hau',
|
||||
'geeta': 'Geeta',
|
||||
'nemona': 'Nemona',
|
||||
'kieran': 'Kieran',
|
||||
'leon': 'Leon',
|
||||
'rival': 'Finn',
|
||||
'rival_female': 'Ivy',
|
||||
} as const;
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const tutorial: SimpleTranslationEntries = {
|
||||
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
|
||||
'intro': `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
|
||||
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
|
||||
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
|
||||
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
|
||||
|
||||
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
|
||||
'accessMenu': 'To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.',
|
||||
|
||||
"menu": `From this menu you can access the settings.
|
||||
'menu': `From this menu you can access the settings.
|
||||
$From the settings you can change game speed, window style, and other options.
|
||||
$There are also various other features here, so be sure to check them all!`,
|
||||
|
||||
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
|
||||
'starterSelect': `From this screen, you can select your starters.\nThese are your initial party members.
|
||||
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
|
||||
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
|
||||
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
|
||||
|
||||
"pokerus": `A daily random 3 selectable starters have a purple border.
|
||||
'pokerus': `A daily random 3 selectable starters have a purple border.
|
||||
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
|
||||
|
||||
"statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled.
|
||||
'statChange': `Stat changes persist across battles as long as your Pokémon aren't recalled.
|
||||
$Your Pokémon are recalled before a trainer battle and before entering a new biome.
|
||||
$You can also view the stat changes for the Pokémon on the field by holding C or Shift.`,
|
||||
|
||||
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
|
||||
'selectItem': `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
|
||||
$These range from consumables, to Pokémon held items, to passive permanent items.
|
||||
$Most non-consumable item effects will stack in various ways.
|
||||
$Some items will only show up if they can be used, such as evolution items.
|
||||
|
@ -33,7 +33,7 @@ export const tutorial: SimpleTranslationEntries = {
|
|||
$You may purchase consumable items with money, and a larger variety will be available the further you get.
|
||||
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
|
||||
|
||||
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
|
||||
'eggGacha': `From this screen, you can redeem your vouchers for\nPokémon eggs.
|
||||
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
|
||||
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
|
||||
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const voucher: SimpleTranslationEntries = {
|
||||
"vouchers": "Vouchers",
|
||||
"eggVoucher": "Egg Voucher",
|
||||
"eggVoucherPlus": "Egg Voucher Plus",
|
||||
"eggVoucherPremium": "Egg Voucher Premium",
|
||||
"eggVoucherGold": "Egg Voucher Gold",
|
||||
"locked": "Locked",
|
||||
"defeatTrainer": "Defeat {{trainerName}}"
|
||||
'vouchers': 'Vouchers',
|
||||
'eggVoucher': 'Egg Voucher',
|
||||
'eggVoucherPlus': 'Egg Voucher Plus',
|
||||
'eggVoucherPremium': 'Egg Voucher Premium',
|
||||
'eggVoucherGold': 'Egg Voucher Gold',
|
||||
'locked': 'Locked',
|
||||
'defeatTrainer': 'Defeat {{trainerName}}'
|
||||
} as const;
|
|
@ -1,44 +1,44 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
/**
|
||||
* The weather namespace holds text displayed when weather is active during a battle
|
||||
*/
|
||||
export const weather: SimpleTranslationEntries = {
|
||||
"sunnyStartMessage": "The sunlight got bright!",
|
||||
"sunnyLapseMessage": "The sunlight is strong.",
|
||||
"sunnyClearMessage": "The sunlight faded.",
|
||||
'sunnyStartMessage': 'The sunlight got bright!',
|
||||
'sunnyLapseMessage': 'The sunlight is strong.',
|
||||
'sunnyClearMessage': 'The sunlight faded.',
|
||||
|
||||
"rainStartMessage": "A downpour started!",
|
||||
"rainLapseMessage": "The downpour continues.",
|
||||
"rainClearMessage": "The rain stopped.",
|
||||
'rainStartMessage': 'A downpour started!',
|
||||
'rainLapseMessage': 'The downpour continues.',
|
||||
'rainClearMessage': 'The rain stopped.',
|
||||
|
||||
"sandstormStartMessage": "A sandstorm brewed!",
|
||||
"sandstormLapseMessage": "The sandstorm rages.",
|
||||
"sandstormClearMessage": "The sandstorm subsided.",
|
||||
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
|
||||
'sandstormStartMessage': 'A sandstorm brewed!',
|
||||
'sandstormLapseMessage': 'The sandstorm rages.',
|
||||
'sandstormClearMessage': 'The sandstorm subsided.',
|
||||
'sandstormDamageMessage': '{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!',
|
||||
|
||||
"hailStartMessage": "It started to hail!",
|
||||
"hailLapseMessage": "Hail continues to fall.",
|
||||
"hailClearMessage": "The hail stopped.",
|
||||
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
|
||||
'hailStartMessage': 'It started to hail!',
|
||||
'hailLapseMessage': 'Hail continues to fall.',
|
||||
'hailClearMessage': 'The hail stopped.',
|
||||
'hailDamageMessage': '{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!',
|
||||
|
||||
"snowStartMessage": "It started to snow!",
|
||||
"snowLapseMessage": "The snow is falling down.",
|
||||
"snowClearMessage": "The snow stopped.",
|
||||
'snowStartMessage': 'It started to snow!',
|
||||
'snowLapseMessage': 'The snow is falling down.',
|
||||
'snowClearMessage': 'The snow stopped.',
|
||||
|
||||
"fogStartMessage": "A thick fog emerged!",
|
||||
"fogLapseMessage": "The fog continues.",
|
||||
"fogClearMessage": "The fog disappeared.",
|
||||
'fogStartMessage': 'A thick fog emerged!',
|
||||
'fogLapseMessage': 'The fog continues.',
|
||||
'fogClearMessage': 'The fog disappeared.',
|
||||
|
||||
"heavyRainStartMessage": "A heavy downpour started!",
|
||||
"heavyRainLapseMessage": "The heavy downpour continues.",
|
||||
"heavyRainClearMessage": "The heavy rain stopped.",
|
||||
'heavyRainStartMessage': 'A heavy downpour started!',
|
||||
'heavyRainLapseMessage': 'The heavy downpour continues.',
|
||||
'heavyRainClearMessage': 'The heavy rain stopped.',
|
||||
|
||||
"harshSunStartMessage": "The sunlight got hot!",
|
||||
"harshSunLapseMessage": "The sun is scorching hot.",
|
||||
"harshSunClearMessage": "The harsh sunlight faded.",
|
||||
'harshSunStartMessage': 'The sunlight got hot!',
|
||||
'harshSunLapseMessage': 'The sun is scorching hot.',
|
||||
'harshSunClearMessage': 'The harsh sunlight faded.',
|
||||
|
||||
"strongWindsStartMessage": "A heavy wind began!",
|
||||
"strongWindsLapseMessage": "The wind blows intensely.",
|
||||
"strongWindsClearMessage": "The heavy wind stopped."
|
||||
}
|
||||
'strongWindsStartMessage': 'A heavy wind began!',
|
||||
'strongWindsLapseMessage': 'The wind blows intensely.',
|
||||
'strongWindsClearMessage': 'The heavy wind stopped.'
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!`,
|
||||
'badDreams': `{{pokemonName}} Está atormentado!`
|
||||
'blockRecoilDamage' : '{{pokemonName}}\'s {{abilityName}}\nprotected it from recoil!',
|
||||
'badDreams': '{{pokemonName}} Está atormentado!'
|
||||
} as const;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,10 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const battleMessageUiHandler: SimpleTranslationEntries = {
|
||||
"ivBest": "Best",
|
||||
"ivFantastic": "Fantastic",
|
||||
"ivVeryGood": "Very Good",
|
||||
"ivPrettyGood": "Pretty Good",
|
||||
"ivDecent": "Decent",
|
||||
"ivNoGood": "No Good",
|
||||
'ivBest': 'Best',
|
||||
'ivFantastic': 'Fantastic',
|
||||
'ivVeryGood': 'Very Good',
|
||||
'ivPrettyGood': 'Pretty Good',
|
||||
'ivDecent': 'Decent',
|
||||
'ivNoGood': 'No Good',
|
||||
} as const;
|
|
@ -1,56 +1,56 @@
|
|||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
import { SimpleTranslationEntries } from '#app/plugins/i18n';
|
||||
|
||||
export const battle: SimpleTranslationEntries = {
|
||||
"bossAppeared": "¡{{bossName}} te corta el paso!",
|
||||
"trainerAppeared": "¡{{trainerName}}\nte desafía!",
|
||||
"trainerAppearedDouble": "{{trainerName}}\nwould like to battle!",
|
||||
"singleWildAppeared": "¡Un {{pokemonName}} salvaje te corta el paso!",
|
||||
"multiWildAppeared": "¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!",
|
||||
"playerComeBack": "¡{{pokemonName}}, ven aquí!",
|
||||
"trainerComeBack": "¡{{trainerName}} retira a {{pokemonName}} del combate!",
|
||||
"playerGo": "¡Adelante, {{pokemonName}}!",
|
||||
"trainerGo": "¡{{trainerName}} saca a {{pokemonName}}!",
|
||||
"switchQuestion": "¿Quieres cambiar a\n{{pokemonName}}?",
|
||||
"trainerDefeated": "¡Has derrotado a\n{{trainerName}}!",
|
||||
"pokemonCaught": "¡{{pokemonName}} atrapado!",
|
||||
"pokemon": "Pokémon",
|
||||
"sendOutPokemon": "¡Adelante, {{pokemonName}}!",
|
||||
"hitResultCriticalHit": "!Un golpe crítico!",
|
||||
"hitResultSuperEffective": "!Es supereficaz!",
|
||||
"hitResultNotVeryEffective": "No es muy eficaz…",
|
||||
"hitResultNoEffect": "No afecta a {{pokemonName}}!",
|
||||
"hitResultOneHitKO": "!KO en 1 golpe!",
|
||||
"attackFailed": "¡Pero ha fallado!",
|
||||
"attackHitsCount": `N.º de golpes: {{count}}.`,
|
||||
"expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
|
||||
"levelUp": "¡{{pokemonName}} ha subido al \nNv. {{level}}!",
|
||||
"learnMove": "¡{{pokemonName}} ha aprendido {{moveName}}!",
|
||||
"learnMovePrompt": "{{pokemonName}} quiere aprender\n{{moveName}}.",
|
||||
"learnMoveLimitReached": "Pero, {{pokemonName}} ya conoce\ncuatro movimientos.",
|
||||
"learnMoveReplaceQuestion": "¿Quieres sustituir uno de sus movimientos por {{moveName}}?",
|
||||
"learnMoveStopTeaching": "¿Prefieres que no aprenda\n{{moveName}}?",
|
||||
"learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
|
||||
"learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
|
||||
"countdownPoof": "@d{32}1, @d{15}2, @d{15}y@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}¡Puf!",
|
||||
"learnMoveAnd": "Y…",
|
||||
"levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
|
||||
"moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",
|
||||
"moveNoPP": "There's no PP left for\nthis move!",
|
||||
"moveDisabled": "!No puede usar {{moveName}} porque ha sido anulado!",
|
||||
"noPokeballForce": "Una fuerza misteriosa\nte impide usar Poké Balls.",
|
||||
"noPokeballTrainer": "¡No puedes atrapar a los\nPokémon de los demás!",
|
||||
"noPokeballMulti": "¡No se pueden lanzar Poké Balls\ncuando hay más de un Pokémon!",
|
||||
"noPokeballStrong": "¡Este Pokémon es demasiado fuerte para ser capturado!\nNecesitas bajarle los PS primero!",
|
||||
"noEscapeForce": "Una fuerza misteriosa\nte impide huir.",
|
||||
"noEscapeTrainer": "¡No puedes huir de los\ncombates contra Entrenadores!",
|
||||
"noEscapePokemon": "¡El movimiento {{moveName}} de {{pokemonName}} impide la huida!",
|
||||
"runAwaySuccess": "¡Escapas sin problemas!",
|
||||
"runAwayCannotEscape": "¡No has podido escapar!",
|
||||
"escapeVerbSwitch": "cambiar",
|
||||
"escapeVerbFlee": "huir",
|
||||
"notDisabled": "¡El movimiento {{moveName}} de {{pokemonName}}\nya no está anulado!",
|
||||
"skipItemQuestion": "¿Estás seguro de que no quieres coger un objeto?",
|
||||
"eggHatching": "¿Y esto?",
|
||||
"ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?"
|
||||
'bossAppeared': '¡{{bossName}} te corta el paso!',
|
||||
'trainerAppeared': '¡{{trainerName}}\nte desafía!',
|
||||
'trainerAppearedDouble': '{{trainerName}}\nwould like to battle!',
|
||||
'singleWildAppeared': '¡Un {{pokemonName}} salvaje te corta el paso!',
|
||||
'multiWildAppeared': '¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!',
|
||||
'playerComeBack': '¡{{pokemonName}}, ven aquí!',
|
||||
'trainerComeBack': '¡{{trainerName}} retira a {{pokemonName}} del combate!',
|
||||
'playerGo': '¡Adelante, {{pokemonName}}!',
|
||||
'trainerGo': '¡{{trainerName}} saca a {{pokemonName}}!',
|
||||
'switchQuestion': '¿Quieres cambiar a\n{{pokemonName}}?',
|
||||
'trainerDefeated': '¡Has derrotado a\n{{trainerName}}!',
|
||||
'pokemonCaught': '¡{{pokemonName}} atrapado!',
|
||||
'pokemon': 'Pokémon',
|
||||
'sendOutPokemon': '¡Adelante, {{pokemonName}}!',
|
||||
'hitResultCriticalHit': '!Un golpe crítico!',
|
||||
'hitResultSuperEffective': '!Es supereficaz!',
|
||||
'hitResultNotVeryEffective': 'No es muy eficaz…',
|
||||
'hitResultNoEffect': 'No afecta a {{pokemonName}}!',
|
||||
'hitResultOneHitKO': '!KO en 1 golpe!',
|
||||
'attackFailed': '¡Pero ha fallado!',
|
||||
'attackHitsCount': 'N.º de golpes: {{count}}.',
|
||||
'expGain': '{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.',
|
||||
'levelUp': '¡{{pokemonName}} ha subido al \nNv. {{level}}!',
|
||||
'learnMove': '¡{{pokemonName}} ha aprendido {{moveName}}!',
|
||||
'learnMovePrompt': '{{pokemonName}} quiere aprender\n{{moveName}}.',
|
||||
'learnMoveLimitReached': 'Pero, {{pokemonName}} ya conoce\ncuatro movimientos.',
|
||||
'learnMoveReplaceQuestion': '¿Quieres sustituir uno de sus movimientos por {{moveName}}?',
|
||||
'learnMoveStopTeaching': '¿Prefieres que no aprenda\n{{moveName}}?',
|
||||
'learnMoveNotLearned': '{{pokemonName}} no ha aprendido {{moveName}}.',
|
||||
'learnMoveForgetQuestion': '¿Qué movimiento quieres que olvide?',
|
||||
'learnMoveForgetSuccess': '{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.',
|
||||
'countdownPoof': '@d{32}1, @d{15}2, @d{15}y@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}¡Puf!',
|
||||
'learnMoveAnd': 'Y…',
|
||||
'levelCapUp': '¡Se ha incrementado el\nnivel máximo a {{levelCap}}!',
|
||||
'moveNotImplemented': '{{moveName}} aún no está implementado y no se puede seleccionar.',
|
||||
'moveNoPP': 'There\'s no PP left for\nthis move!',
|
||||
'moveDisabled': '!No puede usar {{moveName}} porque ha sido anulado!',
|
||||
'noPokeballForce': 'Una fuerza misteriosa\nte impide usar Poké Balls.',
|
||||
'noPokeballTrainer': '¡No puedes atrapar a los\nPokémon de los demás!',
|
||||
'noPokeballMulti': '¡No se pueden lanzar Poké Balls\ncuando hay más de un Pokémon!',
|
||||
'noPokeballStrong': '¡Este Pokémon es demasiado fuerte para ser capturado!\nNecesitas bajarle los PS primero!',
|
||||
'noEscapeForce': 'Una fuerza misteriosa\nte impide huir.',
|
||||
'noEscapeTrainer': '¡No puedes huir de los\ncombates contra Entrenadores!',
|
||||
'noEscapePokemon': '¡El movimiento {{moveName}} de {{pokemonName}} impide la huida!',
|
||||
'runAwaySuccess': '¡Escapas sin problemas!',
|
||||
'runAwayCannotEscape': '¡No has podido escapar!',
|
||||
'escapeVerbSwitch': 'cambiar',
|
||||
'escapeVerbFlee': 'huir',
|
||||
'notDisabled': '¡El movimiento {{moveName}} de {{pokemonName}}\nya no está anulado!',
|
||||
'skipItemQuestion': '¿Estás seguro de que no quieres coger un objeto?',
|
||||
'eggHatching': '¿Y esto?',
|
||||
'ivScannerUseQuestion': '¿Quieres usar el Escáner de IVs en {{pokemonName}}?'
|
||||
} as const;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue