Compare commits

..

No commits in common. "5fe69fff9ce1b6ec3c790a79ec7f66c21c4ac69d" and "3781f581cc1044bec7470cc1c27b43ba271b895b" have entirely different histories.

65 changed files with 911 additions and 6018 deletions

View File

@ -1647,7 +1647,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.GRASS]: {
[BiomePoolTier.COMMON]: [ TrainerType.BREEDER, TrainerType.SCHOOL_KID ],
[BiomePoolTier.COMMON]: [ TrainerType.BREEDER, TrainerType.STUDENT ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER ],
[BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ],
[BiomePoolTier.SUPER_RARE]: [],
@ -7270,7 +7270,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
]
],
[ TrainerType.STRIKER, [] ],
[ TrainerType.SCHOOL_KID, [
[ TrainerType.STUDENT, [
[ Biome.GRASS, BiomePoolTier.COMMON ]
]
],

View File

@ -288,7 +288,7 @@ export const trainerTypeDialogue = {
]
}
],
[TrainerType.SCHOOL_KID]: [
[TrainerType.STUDENT]: [
{
encounter: [
`…Heehee. I'm confident in my calculations and analysis.`,

View File

@ -4,7 +4,6 @@ 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;
@ -57,34 +56,34 @@ export function getEggDescriptor(egg: Egg): string {
return 'Manaphy';
switch (egg.tier) {
case EggTier.GREAT:
return i18next.t('egg:greatTier');
return 'Rare';
case EggTier.ULTRA:
return i18next.t('egg:ultraTier');
return 'Epic';
case EggTier.MASTER:
return i18next.t('egg:masterTier');
return 'Legendary';
default:
return i18next.t('egg:defaultTier');
return 'Common';
}
}
export function getEggHatchWavesMessage(hatchWaves: integer): string {
if (hatchWaves <= 5)
return i18next.t('egg:hatchWavesMessageSoon');
return 'Sounds can be heard coming from inside! It will hatch soon!';
if (hatchWaves <= 15)
return i18next.t('egg:hatchWavesMessageClose');
return 'It appears to move occasionally. It may be close to hatching.';
if (hatchWaves <= 50)
return i18next.t('egg:hatchWavesMessageNotClose');
return i18next.t('egg:hatchWavesMessageLongTime');
return 'What will hatch from this? It doesn\'t seem close to hatching.';
return 'It looks like this Egg will take a long time to hatch.';
}
export function getEggGachaTypeDescriptor(scene: BattleScene, egg: Egg): string {
switch (egg.gachaType) {
case GachaType.LEGENDARY:
return `${i18next.t('egg:gachaTypeLegendary')} (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
return `Legendary Rate Up (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
case GachaType.MOVE:
return i18next.t('egg:gachaTypeMove');
return 'Rare Egg Move Rate Up';
case GachaType.SHINY:
return i18next.t('egg:gachaTypeShiny');
return 'Shiny Rate Up';
}
}

View File

@ -43,7 +43,7 @@ export enum TrainerType {
SMASHER,
SNOW_WORKER,
STRIKER,
SCHOOL_KID,
STUDENT,
SWIMMER,
TWINS,
VETERAN,

View File

@ -5650,7 +5650,7 @@ export function initMoves() {
.attr(StatusEffectAttr, StatusEffect.SLEEP)
.target(MoveTarget.ALL_NEAR_ENEMIES),
new AttackMove(Moves.SEED_FLARE, Type.GRASS, MoveCategory.SPECIAL, 120, 85, 5, 40, 0, 4)
.attr(StatChangeAttr, BattleStat.SPDEF, -2),
.attr(StatChangeAttr, BattleStat.SPDEF, -1),
new AttackMove(Moves.OMINOUS_WIND, Type.GHOST, MoveCategory.SPECIAL, 60, 100, 5, 10, 0, 4)
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true)
.windMove(),

View File

@ -705,9 +705,7 @@ export const pokemonFormChanges: PokemonFormChanges = {
new SpeciesFormChange(Species.OGERPON, 'cornerstone-mask-tera', 'cornerstone-mask', new SpeciesFormChangeManualTrigger(), true) //When no longer holding a Rock Tera Shard
],
[Species.TERAPAGOS]: [
new SpeciesFormChange(Species.TERAPAGOS, '', 'terastal', new SpeciesFormChangeManualTrigger(), true),
new SpeciesFormChange(Species.TERAPAGOS, 'terastal', 'stellar', new SpeciesFormChangeManualTrigger(), true), //When holding a Stellar Tera Shard
new SpeciesFormChange(Species.TERAPAGOS, 'stellar', 'terastal', new SpeciesFormChangeManualTrigger(), true) //When no longer holding a Stellar Tera Shard
new SpeciesFormChange(Species.TERAPAGOS, '', 'terastal', new SpeciesFormChangeManualTrigger(), true)
],
[Species.GALAR_DARMANITAN]: [
new SpeciesFormChange(Species.GALAR_DARMANITAN, '', 'zen', new SpeciesFormChangeManualTrigger(), true),

View File

@ -1,45 +1,37 @@
import i18next from "../plugins/i18n";
export const battleCountSplashMessage = '{COUNT} Battles Won!';
export function getBattleCountSplashMessage(): string {
return `{COUNT} ${i18next.t('splashMessages:battlesWon')}`;
}
export function getSplashMessages(): string[] {
const splashMessages = Array(10).fill(getBattleCountSplashMessage());
splashMessages.push(...[
i18next.t('splashMessages:joinTheDiscord'),
i18next.t('splashMessages:infiniteLevel'),
i18next.t('splashMessages:everythingStacks'),
i18next.t('splashMessages:optionalSaveScumming'),
i18next.t('splashMessages:biomes'),
i18next.t('splashMessages:openSource'),
i18next.t('splashMessages:playWith5xSpeed'),
i18next.t('splashMessages:liveBugTesting'),
i18next.t('splashMessages:heavyRoR2Influence'),
i18next.t('splashMessages:pokemonRiskAndPokemonRain'),
i18next.t('splashMessages:nowWithMoreSalt'),
i18next.t('splashMessages:infiniteFusionAtHome'),
i18next.t('splashMessages:brokenEggMoves'),
i18next.t('splashMessages:magnificent'),
i18next.t('splashMessages:mubstitute'),
i18next.t('splashMessages:thatsCrazy'),
i18next.t('splashMessages:oranceJuice'),
i18next.t('splashMessages:questionableBalancing'),
i18next.t('splashMessages:coolShaders'),
i18next.t('splashMessages:aiFree'),
i18next.t('splashMessages:suddenDifficultySpikes'),
i18next.t('splashMessages:basedOnAnUnfinishedFlashGame'),
i18next.t('splashMessages:moreAddictiveThanIntended'),
i18next.t('splashMessages:mostlyConsistentSeeds'),
i18next.t('splashMessages:achievementPointsDontDoAnything'),
i18next.t('splashMessages:youDoNotStartAtLevel'),
i18next.t('splashMessages:dontTalkAboutTheManaphyEggIncident'),
i18next.t('splashMessages:alsoTryPokengine'),
i18next.t('splashMessages:alsoTryEmeraldRogue'),
i18next.t('splashMessages:alsoTryRadicalRed'),
i18next.t('splashMessages:eeveeExpo'),
i18next.t('splashMessages:ynoproject'),
]);
return splashMessages
}
export const splashMessages = Array(10).fill(battleCountSplashMessage);
splashMessages.push(...[
'Join the Discord!',
'Infinite Levels!',
'Everything Stacks!',
'Optional Save Scumming!',
'35 Biomes!',
'Open Source!',
'Play with 5x Speed!',
'Live Bug Testing!',
'Heavy RoR2 Influence!',
'Pokémon Risk and Pokémon Rain!',
'Now with 33% More Salt!',
'Infinite Fusion at Home!',
'Broken Egg Moves!',
'Magnificent!',
'Mubstitute!',
'That\'s Crazy!',
'Orance Juice!',
'Questionable Balancing!',
'Cool Shaders!',
'AI-Free!',
'Sudden Difficulty Spikes!',
'Based on an Unfinished Flash Game!',
'More Addictive than Intended!',
'Mostly Consistent Seeds!',
'Achievement Points Don\'t Do Anything!',
'You Do Not Start at Level 2000!',
'Don\'t Talk About the Manaphy Egg Incident!',
'Also Try Pokéngine!',
'Also Try Emerald Rogue!',
'Also Try Radical Red!',
'Eevee Expo!',
'YNOproject!'
]);

View File

@ -1,21 +1,19 @@
import BattleScene, {startingWave} from "../battle-scene";
import {ModifierTypeFunc, modifierTypes} from "../modifier/modifier-type";
import {EnemyPokemon} from "../field/pokemon";
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 { 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";
export enum TrainerPoolTier {
COMMON,
@ -213,7 +211,7 @@ export class TrainerConfig {
this.name = Utils.toReadableString(TrainerType[this.getDerivedType()]);
this.battleBgm = 'battle_trainer';
this.victoryBgm = 'victory_trainer';
this.partyTemplates = [trainerPartyTemplates.TWO_AVG];
this.partyTemplates = [ trainerPartyTemplates.TWO_AVG ];
this.speciesFilter = species => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden();
}
@ -229,36 +227,12 @@ export class TrainerConfig {
}
setName(name: string): TrainerConfig {
if (name === 'Finn' || name === 'Ivy') {
// Give the rival a localized name
// First check if i18n is initialized
if (!getIsInitialized()) {
initI18n();
}
if (name === 'Finn') {
this.name = i18next.t('trainerNames:rival');
}
if (name === 'Ivy') {
this.name = i18next.t('trainerNames:rival_female');
}
}
this.name = name;
return this;
}
setTitle(title: string): TrainerConfig {
// First check if i18n is initialized
if (!getIsInitialized()) {
initI18n();
}
// Make the title lowercase and replace spaces with underscores
title = title.toLowerCase().replace(/\s/g, '_');
this.title = i18next.t(`titles:${title}`);
this.title = title;
return this;
}
@ -360,7 +334,7 @@ export class TrainerConfig {
}
setSpeciesPools(speciesPools: TrainerTierPools | Species[]): TrainerConfig {
this.speciesPools = (Array.isArray(speciesPools) ? {[TrainerPoolTier.COMMON]: speciesPools} : speciesPools) as unknown as TrainerTierPools;
this.speciesPools = (Array.isArray(speciesPools) ? { [TrainerPoolTier.COMMON]: speciesPools } : speciesPools) as unknown as TrainerTierPools;
return this;
}
@ -391,25 +365,17 @@ export class TrainerConfig {
}
initForGymLeader(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig {
this.setPartyTemplateFunc(getGymLeaderPartyTemplate);
signatureSpecies.forEach((speciesPool, s) => {
if (!Array.isArray(speciesPool))
speciesPool = [speciesPool];
speciesPool = [ speciesPool ];
this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool));
});
if (specialtyTypes.length) {
this.setSpeciesFilter(p => specialtyTypes.find(t => p.isOfType(t)) !== undefined);
this.setSpecialtyTypes(...specialtyTypes);
}
// Handle name by checking this.name - making it lowercase and replacing spaces with underscores and then calling i18next.t with the name
const nameForCall = this.name.toLowerCase().replace(/\s/g, '_');
this.name = i18next.t(`trainerNames:${nameForCall}`);
this.setTitle("gym_leader");
this.setTitle('Gym Leader');
this.setMoneyMultiplier(2.5);
this.setBoss();
this.setStaticParty();
@ -423,12 +389,10 @@ export class TrainerConfig {
}
initForEliteFour(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig {
this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR);
signatureSpecies.forEach((speciesPool, s) => {
if (!Array.isArray(speciesPool))
speciesPool = [speciesPool];
speciesPool = [ speciesPool ];
this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool));
});
if (specialtyTypes.length) {
@ -436,11 +400,7 @@ export class TrainerConfig {
this.setSpecialtyTypes(...specialtyTypes);
} else
this.setSpeciesFilter(p => p.baseTotal >= 450);
// Handle name by checking this.name - making it lowercase and replacing spaces with underscores and then calling i18next.t with the name
const nameForCall = this.name.toLowerCase().replace(/\s/g, '_');
this.name = i18next.t(`trainerNames:${nameForCall}`);
this.setTitle("elite_four");
this.setTitle('Elite Four');
this.setMoneyMultiplier(3.25);
this.setBoss();
this.setStaticParty();
@ -451,18 +411,14 @@ export class TrainerConfig {
}
initForChampion(signatureSpecies: (Species | Species[])[]): TrainerConfig {
this.setPartyTemplates(trainerPartyTemplates.CHAMPION);
signatureSpecies.forEach((speciesPool, s) => {
if (!Array.isArray(speciesPool))
speciesPool = [speciesPool];
speciesPool = [ speciesPool ];
this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool));
});
this.setSpeciesFilter(p => p.baseTotal >= 470);
// Handle name by checking this.name - making it lowercase and replacing spaces with underscores and then calling i18next.t with the name
const nameForCall = this.name.toLowerCase().replace(/\s/g, '_');
this.name = i18next.t(`trainerNames:${nameForCall}`);
this.setTitle("champion");
this.setTitle('Champion');
this.setMoneyMultiplier(10);
this.setBoss();
this.setStaticParty();
@ -483,21 +439,7 @@ export class TrainerConfig {
if (variant === TrainerVariant.FEMALE || (variant === TrainerVariant.DOUBLE && trainerSlot === TrainerSlot.TRAINER_PARTNER))
return this.nameFemale;
} else
// Check if !variant is true, if so return the name, else return the name with _female appended
if (variant) {
if (!getIsInitialized()) {
initI18n();
}
// Check if the female version exists in the i18n file
if (i18next.exists(`trainerClasses:${this.name.toLowerCase().replace}`)) {
// If it does, return
return ret + "_female";
} else {
// If it doesn't, we do not do anything and go to the normal return
// This is to prevent the game from displaying an error if a female version of the trainer does not exist in the localization
}
}
ret += !variant ? '♂' : '♀';
}
return ret;
@ -514,11 +456,10 @@ export class TrainerConfig {
scene.load.once(Phaser.Loader.Events.COMPLETE, () => {
const originalWarn = console.warn;
// Ignore warnings for missing frames, because there will be a lot
console.warn = () => {
};
const frameNames = scene.anims.generateFrameNames(trainerKey, {zeroPad: 4,suffix: ".png",start: 1,end: 128});
console.warn = () => {};
const frameNames = scene.anims.generateFrameNames(trainerKey, { zeroPad: 4, suffix: ".png", start: 1, end: 128 });
const partnerFrameNames = isDouble
? scene.anims.generateFrameNames(partnerTrainerKey, {zeroPad: 4,suffix: ".png",start: 1,end: 128})
? scene.anims.generateFrameNames(partnerTrainerKey, { zeroPad: 4, suffix: ".png", start: 1, end: 128 })
: null;
console.warn = originalWarn;
scene.anims.create({
@ -581,7 +522,7 @@ function getRandomTeraModifiers(party: EnemyPokemon[], count: integer, types?: T
for (let t = 0; t < Math.min(count, party.length); t++) {
const randomIndex = Utils.randSeedItem(partyMemberIndexes);
partyMemberIndexes.splice(partyMemberIndexes.indexOf(randomIndex), 1);
ret.push(modifierTypes.TERA_SHARD().generateType(null, [Utils.randSeedItem(types ? types : party[randomIndex].getTypes())]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(party[randomIndex]) as PersistentModifier);
ret.push(modifierTypes.TERA_SHARD().generateType(null, [ Utils.randSeedItem(types ? types : party[randomIndex].getTypes()) ]).withIdFromFunc(modifierTypes.TERA_SHARD).newModifier(party[randomIndex]) as PersistentModifier);
}
return ret;
}
@ -721,7 +662,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.SMASHER]: new TrainerConfig(++t).setMoneyMultiplier(1.2).setEncounterBgm(TrainerType.CYCLIST),
[TrainerType.SNOW_WORKER]: new TrainerConfig(++t).setName('Worker').setHasGenders().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(undefined, 'lass').setHasDouble('Students')
[TrainerType.STUDENT]: new TrainerConfig(++t).setMoneyMultiplier(0.75).setEncounterBgm(TrainerType.YOUNGSTER).setHasGenders(undefined, 'lass').setHasDouble('Students')
.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 ],
@ -939,6 +880,6 @@ export const trainerConfigs: TrainerConfigs = {
}),
};
(function () {
(function() {
initTrainerTypeDialogue();
})();

View File

@ -61,7 +61,7 @@ const trainerNameConfigs: TrainerNameConfigs = {
[TrainerType.SMASHER]: new TrainerNameConfig(TrainerType.SMASHER),
[TrainerType.SNOW_WORKER]: new TrainerNameConfig(TrainerType.SNOW_WORKER, 'Worker'),
[TrainerType.STRIKER]: new TrainerNameConfig(TrainerType.STRIKER),
[TrainerType.SCHOOL_KID]: new TrainerNameConfig(TrainerType.SCHOOL_KID, 'School_Kid'),
[TrainerType.STUDENT]: new TrainerNameConfig(TrainerType.STUDENT, 'School_Kid'),
[TrainerType.SWIMMER]: new TrainerNameConfig(TrainerType.SWIMMER),
[TrainerType.TWINS]: new TrainerNameConfig(TrainerType.TWINS),
[TrainerType.VETERAN]: new TrainerNameConfig(TrainerType.VETERAN),
@ -111,7 +111,7 @@ export const trainerNamePools = {
[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.STUDENT]: [["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"]],

View File

@ -10,8 +10,6 @@ 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,
@ -99,16 +97,9 @@ export default class Trainer extends Phaser.GameObjects.Container {
getName(trainerSlot: TrainerSlot = TrainerSlot.NONE, includeTitle: boolean = false): string {
let name = this.config.getTitle(trainerSlot, this.variant);
let title = includeTitle && this.config.title ? this.config.title : null;
if (this.name) {
if (includeTitle)
// Check if i18n is initialized
if (!getIsInitialized()) {
initI18n()
}
title = i18next.t(`trainerClasses:${name.toLowerCase().replace(/\s/g, '_')}`);
title = name;
if (!trainerSlot) {
name = this.name;
if (this.partnerName)
@ -116,7 +107,6 @@ export default class Trainer extends Phaser.GameObjects.Container {
} else
name = trainerSlot === TrainerSlot.TRAINER ? this.name : this.partnerName || this.name;
}
return title ? `${title} ${name}` : name;
}

View File

@ -2,12 +2,10 @@ 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";
@ -15,8 +13,6 @@ import { pokemon } from "./pokemon";
import { pokemonStat } from "./pokemon-stat";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { tutorial } from "./tutorial";
import { titles,trainerClasses,trainerNames } from "./trainers";
import { splashMessages } from "./splash-messages"
export const deConfig = {
@ -24,7 +20,6 @@ export const deConfig = {
abilityTriggers: abilityTriggers,
battle: battle,
commandUiHandler: commandUiHandler,
egg: egg,
fightUiHandler: fightUiHandler,
menuUiHandler: menuUiHandler,
menu: menu,
@ -33,12 +28,7 @@ export const deConfig = {
pokemonStat: pokemonStat,
pokemon: pokemon,
starterSelectUiHandler: starterSelectUiHandler,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
splashMessages: splashMessages,
nature: nature,
growth: growth,
modifierType: modifierType,
growth: growth
}

View File

@ -1,21 +0,0 @@
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"
} as const;

View File

@ -9,8 +9,8 @@ export const menuUiHandler: SimpleTranslationEntries = {
"EGG_GACHA": "Eier-Gacha",
"MANAGE_DATA": "Daten verwalten",
"COMMUNITY": "Community",
"SAVE_AND_QUIT": "Speichern und Beenden",
"LOG_OUT": "Abmelden",
"SAVE_AND_QUIT": "Save and Quit",
"LOG_OUT": "Ausloggen",
"slot": "Slot {{slotNumber}}",
"importSession": "Sitzung importieren",
"importSlotSelect": "Wähle einen Slot zum Importieren.",

View File

@ -1,410 +0,0 @@
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}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Erhalte {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"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",
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",
}
},
"PokemonReviveModifierType": {
description: "Belebt ein kampunfähiges Pokémon wieder und stellt {{restorePercent}}% KP wieder her",
},
"PokemonStatusHealModifierType": {
description: "Behebt alle Statusprobleme eines Pokémon",
},
"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",
}
},
"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",
}
},
"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.",
},
"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",
},
"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",
},
"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.",
},
"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",
},
"MoneyRewardModifierType": {
description:"Gewährt einen {{moneyMultiplier}} Geldbetrag von (₽{{moneyAmount}})",
extra: {
"small": "kleinen",
"moderate": "moderaten",
"large": "großen",
},
},
"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}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "Erhöht den Freundschaftszuwachs pro Sieg um 50%.",
},
"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",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Bringt einem Pokémon {{moveName}} bei",
},
"EvolutionItemModifierType": {
description: "Erlaubt es bestimmten Pokémon sich zu entwickeln",
},
"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)",
},
"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."
},
"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",
},
"EnemyEndureChanceModifierType": {
description: "Gibt den Träger eine {{chancePercent}}%ige Chance, einen Angriff zu überleben",
},
"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" },
"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" },
"REVIVE": { name: "Beleber" },
"MAX_REVIVE": { name: "Top-Beleber" },
"FULL_HEAL": { name: "Hyperheiler" },
"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" },
"ETHER": { name: "Äther" },
"MAX_ETHER": { name: "Top-Äther" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Top-Elixir" },
"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" },
"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." },
"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" },
"LUCKY_EGG": { name: "Glücks-Ei" },
"GOLDEN_EGG": { name: "Goldenes Ei" },
"SOOTHE_BELL": { name: "Sanftglocke" },
"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" },
"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" },
"GRIP_CLAW": { name: "Griffklaue" },
"WIDE_LENS": { name: "Großlinse" },
"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" },
"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" },
"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" },
"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." },
"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)" },
"DNA_SPLICERS": { name: "DNS-Keil" },
"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" },
"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",
},
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",
},
BaseStatBoosterItem: {
"hp_up": "KP-Plus",
"protein": "Protein",
"iron": "Eisen",
"calcium": "Kalzium",
"zinc": "Zink",
"carbos": "Carbon",
},
EvolutionItem: {
"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",
"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",
"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",
},
TeraType: {
"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;

View File

@ -1,37 +0,0 @@
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!",
} as const;

View File

@ -17,7 +17,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
"gen8": "VIII",
"gen9": "IX",
"growthRate": "Wachstum:",
"ability": "Fähgkeit:",
"ability": "Fhgkeit:",
"passive": "Passiv:",
"nature": "Wesen:",
"eggMoves": "Ei-Attacken",
@ -40,5 +40,5 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
"disablePassive": "Passiv-Skill deaktivieren",
"locked": "Gesperrt",
"disabled": "Deaktiviert",
"uncaught": "Ungefangen"
"uncaught": "Uncaught"
}

View File

@ -1,221 +0,0 @@
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",
// 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",
"artist": "Künstler",
"artist_female": "Künstlerin",
"backers": "Anhänger",
"backpacker": "Backpacker",
"backpacker_female": "Backpackerin",
"baker": "Bäckerin",
"battle_girl": "Kämpferin",
"beauty": "Schönheit",
"biker": "Rowdy",
"black_belt": "Schwarzgurt",
"breeder": "Pokémon Züchter",
"breeder_female": "Pokémon Züchterin",
"clerk": "Angestellter",
"clerk_female": "Angestellte",
"cyclist": "Biker",
"cyclist_female": "Bikerin",
"dancer": "Tänzer",
"dancer_female": "Tänzerin",
"depot_agent": "Bahnangestellter",
"doctor": "Arzt",
"doctor_female": "Ärztin",
"fishermen": "Angler",
"fishermen_female": "Angler", // Seems to be the same in german but exists in other languages like italian
"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",
"musican": "Musiker",
"hex_maniac": "Hexe",
"nurse": "Pflegerin",
"nursery_aide": "Erzieherin",
"officer": "Polizist",
"parasol_lady": "Schirmdame",
"pilot": "Pilot",
"pokefan": "Pokéfan",
"preschooler": "Vorschüler",
"preschooler_female": "Vorschülerin",
"psychic": "Seher",
"psychic_female": "Seherin",
"ranger": "Ranger",
"rich": "Gentleman", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Schnösel",
"roughneck": "Raufbold",
"scientist": "Forscher",
"scientist_female": "Forscherin",
"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
"swimmer": "Schwimmer",
"swimmer_female": "Schwimmerin",
"twins": "Zwillinge",
"veteran": "Veteran",
"veteran_female": "Veteran", // same in german, different in other languages
"waiter": "Servierer",
"waitress": "Serviererin",
"worker": "Arbeiter",
"worker_female": "Arbeiterin",
"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",
"larry_elite": "Aoki", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Sinius",
"crispin": "Matt",
"amarys": "Erin",
"lacey": "Tara",
"drayton": "Levy",
"blue": "Blau",
"red": "Rot",
"lance_champion": "Siegfried", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"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;

View File

@ -4,41 +4,41 @@ 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 Sonne hellt auf!",
"sunnyLapseMessage": "Die Sonne blendet.",
"sunnyClearMessage": "Die Sonne schwächt ab.",
"sunnyStartMessage": "The sunlight got bright!",
"sunnyLapseMessage": "The sunlight is strong.",
"sunnyClearMessage": "The sunlight faded.",
"rainStartMessage": "Es fängt an zu regnen!",
"rainLapseMessage": "Es regnet weiterhin.",
"rainClearMessage": "Es hört auf zu regnen.",
"rainStartMessage": "A downpour started!",
"rainLapseMessage": "The downpour continues.",
"rainClearMessage": "The rain stopped.",
"sandstormStartMessage": "Ein Sandsturm braut sich zusammen!",
"sandstormLapseMessage": "Der Sandsturm tobt.",
"sandstormClearMessage": "Der Sandsturm lässt nach.",
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nSandsturm beeinträchtigt!",
"sandstormStartMessage": "A sandstorm brewed!",
"sandstormLapseMessage": "The sandstorm rages.",
"sandstormClearMessage": "The sandstorm subsided.",
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
"hailStartMessage": "Es fängt an zu hageln!",
"hailLapseMessage": "Es hagelt weiterhin.",
"hailClearMessage": "Es hört auf zu hageln.",
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nHagel beeinträchtigt!",
"hailStartMessage": "It started to hail!",
"hailLapseMessage": "Hail continues to fall.",
"hailClearMessage": "The hail stopped.",
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
"snowStartMessage": "Es fängt an zu schneien!",
"snowLapseMessage": "Es schneit weiterhin.",
"snowClearMessage": "Es hört auf zu schneien.",
"snowStartMessage": "It started to snow!",
"snowLapseMessage": "The snow is falling down.",
"snowClearMessage": "The snow stopped.",
"fogStartMessage": "Es fängt an zu nebeln!",
"fogLapseMessage": "Es nebelt weiterhin.",
"fogClearMessage": "Es hört auf zu nebeln.",
"fogStartMessage": "A thick fog emerged!",
"fogLapseMessage": "The fog continues.",
"fogClearMessage": "The fog disappeared.",
"heavyRainStartMessage": "Ein Starkregen beginnt!",
"heavyRainLapseMessage": "Der Starkregen hält an.",
"heavyRainClearMessage": "Der Starkregen lässt nach.",
"heavyRainStartMessage": "A heavy downpour started!",
"heavyRainLapseMessage": "The heavy downpour continues.",
"heavyRainClearMessage": "The heavy rain stopped.",
"harshSunStartMessage": "Das Sonnenlicht wird wärmer!",
"harshSunLapseMessage": "Das Sonnenlicht brennt.",
"harshSunClearMessage": "Das Sonnenlicht schwächt ab.",
"harshSunStartMessage": "The sunlight got hot!",
"harshSunLapseMessage": "The sun is scorching hot.",
"harshSunClearMessage": "The harsh sunlight faded.",
"strongWindsStartMessage": "Ein starker Wind zieht auf!",
"strongWindsLapseMessage": "Der starke Wind tobt.",
"strongWindsClearMessage": "Der starke Wind legt sich."
"strongWindsStartMessage": "A heavy wind began!",
"strongWindsLapseMessage": "The wind blows intensely.",
"strongWindsClearMessage": "The heavy wind stopped."
}

View File

@ -2,12 +2,10 @@ 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";
@ -15,8 +13,6 @@ import { pokemon } from "./pokemon";
import { pokemonStat } from "./pokemon-stat";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { tutorial } from "./tutorial";
import { titles,trainerClasses,trainerNames } from "./trainers";
import { splashMessages } from "./splash-messages"
import { weather } from "./weather";
@ -25,7 +21,6 @@ export const enConfig = {
abilityTriggers: abilityTriggers,
battle: battle,
commandUiHandler: commandUiHandler,
egg: egg,
fightUiHandler: fightUiHandler,
menuUiHandler: menuUiHandler,
menu: menu,
@ -34,13 +29,8 @@ export const enConfig = {
pokemonStat: pokemonStat,
pokemon: pokemon,
starterSelectUiHandler: starterSelectUiHandler,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
splashMessages: splashMessages,
nature: nature,
growth: growth,
weather: weather,
modifierType: modifierType,
weather: weather
}

View File

@ -1,21 +0,0 @@
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"
} as const;

View File

@ -1,409 +0,0 @@
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}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Receive {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} can't take\nthis item!",
"tooMany": "{{pokemonName}} has too many\nof this item!",
}
},
"PokemonHpRestoreModifierType": {
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher",
extra: {
"fully": "Fully restores HP for one Pokémon",
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment",
}
},
"PokemonReviveModifierType": {
description: "Revives one Pokémon and restores {{restorePercent}}% HP",
},
"PokemonStatusHealModifierType": {
description: "Heals any status ailment for one Pokémon",
},
"PokemonPpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for one Pokémon move",
extra: {
"fully": "Restores all PP for one Pokémon move",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
extra: {
"fully": "Restores all PP for all of one Pokémon's moves",
}
},
"PokemonPpUpModifierType": {
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}} Mint",
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles",
},
"TempBattleStatBoosterModifierType": {
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles",
},
"AttackTypeBoosterModifierType": {
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%",
},
"PokemonLevelIncrementModifierType": {
description: "Increases a Pokémon's level by 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.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "Restores 100% HP for all Pokémon",
},
"AllPokemonFullReviveModifierType": {
description: "Revives all fainted Pokémon, fully restoring HP",
},
"MoneyRewardModifierType": {
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
extra: {
"small": "small",
"moderate": "moderate",
"large": "large",
},
},
"ExpBoosterModifierType": {
description: "Increases gain of EXP. Points by {{boostPercent}}%",
},
"PokemonExpBoosterModifierType": {
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "Increases friendship gain per victory by 50%",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
},
"PokemonMultiHitModifierType": {
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon",
},
"EvolutionItemModifierType": {
description: "Causes certain Pokémon to evolve",
},
"FormChangeItemModifierType": {
description: "Causes certain Pokémon to change form",
},
"FusePokemonModifierType": {
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)",
},
"TerastallizeModifierType": {
name: "{{teraType}} Tera Shard",
description: "{{teraType}} Terastallizes the holder for up to 10 battles",
},
"ContactHeldItemTransferChanceModifierType": {
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen",
},
"TurnHeldItemTransferModifierType": {
description: "Every turn, the holder acquires one held item from the foe",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves",
},
"EnemyEndureChanceModifierType": {
description: "Adds a {{chancePercent}}% chance of enduring a hit",
},
"RARE_CANDY": { name: "Rare Candy" },
"RARER_CANDY": { name: "Rarer Candy" },
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" },
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" },
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" },
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" },
"POTION": { name: "Potion" },
"SUPER_POTION": { name: "Super Potion" },
"HYPER_POTION": { name: "Hyper Potion" },
"MAX_POTION": { name: "Max Potion" },
"FULL_RESTORE": { name: "Full Restore" },
"REVIVE": { name: "Revive" },
"MAX_REVIVE": { name: "Max Revive" },
"FULL_HEAL": { name: "Full Heal" },
"SACRED_ASH": { name: "Sacred Ash" },
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
"ETHER": { name: "Ether" },
"MAX_ETHER": { name: "Max Ether" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Max Elixir" },
"PP_UP": { name: "PP Up" },
"PP_MAX": { name: "PP Max" },
"LURE": { name: "Lure" },
"SUPER_LURE": { name: "Super Lure" },
"MAX_LURE": { name: "Max Lure" },
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" },
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" },
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" },
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" },
"EXP_CHARM": { name: "EXP. Charm" },
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
"LUCKY_EGG": { name: "Lucky Egg" },
"GOLDEN_EGG": { name: "Golden Egg" },
"SOOTHE_BELL": { name: "Soothe Bell" },
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
"NUGGET": { name: "Nugget" },
"BIG_NUGGET": { name: "Big Nugget" },
"RELIC_GOLD": { name: "Relic Gold" },
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" },
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" },
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" },
"GRIP_CLAW": { name: "Grip Claw" },
"WIDE_LENS": { name: "Wide Lens" },
"MULTI_LENS": { name: "Multi Lens" },
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" },
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" },
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 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" },
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" },
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" },
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" },
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" },
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" },
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" },
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" },
"DNA_SPLICERS": { name: "DNA Splicers" },
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" },
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" },
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" },
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" },
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
"ENEMY_ATTACK_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",
},
AttackTypeBoosterItem: {
"silk_scarf": "Silk Scarf",
"black_belt": "Black Belt",
"sharp_beak": "Sharp Beak",
"poison_barb": "Poison Barb",
"soft_sand": "Soft Sand",
"hard_stone": "Hard Stone",
"silver_powder": "Silver Powder",
"spell_tag": "Spell Tag",
"metal_coat": "Metal Coat",
"charcoal": "Charcoal",
"mystic_water": "Mystic Water",
"miracle_seed": "Miracle Seed",
"magnet": "Magnet",
"twisted_spoon": "Twisted Spoon",
"never_melt_ice": "Never-Melt Ice",
"dragon_fang": "Dragon Fang",
"black_glasses": "Black Glasses",
"fairy_feather": "Fairy Feather",
},
BaseStatBoosterItem: {
"hp_up": "HP Up",
"protein": "Protein",
"iron": "Iron",
"calcium": "Calcium",
"zinc": "Zinc",
"carbos": "Carbos",
},
EvolutionItem: {
"NONE": "None",
"LINKING_CORD": "Linking Cord",
"SUN_STONE": "Sun Stone",
"MOON_STONE": "Moon Stone",
"LEAF_STONE": "Leaf Stone",
"FIRE_STONE": "Fire Stone",
"WATER_STONE": "Water Stone",
"THUNDER_STONE": "Thunder Stone",
"ICE_STONE": "Ice Stone",
"DUSK_STONE": "Dusk Stone",
"DAWN_STONE": "Dawn Stone",
"SHINY_STONE": "Shiny Stone",
"CRACKED_POT": "Cracked Pot",
"SWEET_APPLE": "Sweet Apple",
"TART_APPLE": "Tart Apple",
"STRAWBERRY_SWEET": "Strawberry Sweet",
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
"CHIPPED_POT": "Chipped Pot",
"BLACK_AUGURITE": "Black Augurite",
"GALARICA_CUFF": "Galarica Cuff",
"GALARICA_WREATH": "Galarica Wreath",
"PEAT_BLOCK": "Peat Block",
"AUSPICIOUS_ARMOR": "Auspicious Armor",
"MALICIOUS_ARMOR": "Malicious Armor",
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
"METAL_ALLOY": "Metal Alloy",
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
"SCROLL_OF_WATERS": "Scroll Of Waters",
"SYRUPY_APPLE": "Syrupy Apple",
},
FormChangeItem: {
"NONE": "None",
"ABOMASITE": "Abomasite",
"ABSOLITE": "Absolite",
"AERODACTYLITE": "Aerodactylite",
"AGGRONITE": "Aggronite",
"ALAKAZITE": "Alakazite",
"ALTARIANITE": "Altarianite",
"AMPHAROSITE": "Ampharosite",
"AUDINITE": "Audinite",
"BANETTITE": "Banettite",
"BEEDRILLITE": "Beedrillite",
"BLASTOISINITE": "Blastoisinite",
"BLAZIKENITE": "Blazikenite",
"CAMERUPTITE": "Cameruptite",
"CHARIZARDITE_X": "Charizardite X",
"CHARIZARDITE_Y": "Charizardite Y",
"DIANCITE": "Diancite",
"GALLADITE": "Galladite",
"GARCHOMPITE": "Garchompite",
"GARDEVOIRITE": "Gardevoirite",
"GENGARITE": "Gengarite",
"GLALITITE": "Glalitite",
"GYARADOSITE": "Gyaradosite",
"HERACRONITE": "Heracronite",
"HOUNDOOMINITE": "Houndoominite",
"KANGASKHANITE": "Kangaskhanite",
"LATIASITE": "Latiasite",
"LATIOSITE": "Latiosite",
"LOPUNNITE": "Lopunnite",
"LUCARIONITE": "Lucarionite",
"MANECTITE": "Manectite",
"MAWILITE": "Mawilite",
"MEDICHAMITE": "Medichamite",
"METAGROSSITE": "Metagrossite",
"MEWTWONITE_X": "Mewtwonite X",
"MEWTWONITE_Y": "Mewtwonite Y",
"PIDGEOTITE": "Pidgeotite",
"PINSIRITE": "Pinsirite",
"RAYQUAZITE": "Rayquazite",
"SABLENITE": "Sablenite",
"SALAMENCITE": "Salamencite",
"SCEPTILITE": "Sceptilite",
"SCIZORITE": "Scizorite",
"SHARPEDONITE": "Sharpedonite",
"SLOWBRONITE": "Slowbronite",
"STEELIXITE": "Steelixite",
"SWAMPERTITE": "Swampertite",
"TYRANITARITE": "Tyranitarite",
"VENUSAURITE": "Venusaurite",
"BLUE_ORB": "Blue Orb",
"RED_ORB": "Red Orb",
"SHARP_METEORITE": "Sharp Meteorite",
"HARD_METEORITE": "Hard Meteorite",
"SMOOTH_METEORITE": "Smooth Meteorite",
"ADAMANT_CRYSTAL": "Adamant Crystal",
"LUSTROUS_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",
},
TeraType: {
"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;

View File

@ -1,37 +0,0 @@
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!",
} as const;

View File

@ -1,219 +0,0 @@
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",
// 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",
"artist": "Artist",
"artist_female": "Artist",
"backers": "Backers",
"backpacker": "Backpacker",
"backpacker_female": "Backpacker",
"baker": "Baker",
"battle_girl": "Battle Girl",
"beauty": "Beauty",
"biker": "Biker",
"black_belt": "Black Belt",
"breeder": "Breeder",
"breeder_female": "Breeder",
"clerk": "Clerk",
"clerk_female": "Clerk",
"cyclist": "Cyclist",
"cyclist_female": "Cyclist",
"dancer": "Dancer",
"dancer_female": "Dancer",
"depot_agent": "Depot Agent",
"doctor": "Doctor",
"doctor_female": "Doctor",
"fishermen": "Fishermen",
"fishermen_female": "Fishermen",
"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",
"musican": "Musician",
"hex_maniac": "Hex Maniac",
"nurse": "Nurse",
"nursery_aide": "Nursery Aide",
"officer": "Officer",
"parasol_lady": "Parasol Lady",
"pilot": "Pilot",
"pokefan": "Poké Fan",
"preschooler": "Preschooler",
"preschooler_female": "Preschooler",
"psychic": "Psychic",
"psychic_female": "Psychic",
"ranger": "Ranger",
"rich": "Gentleman", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Rich Boy",
"roughneck": "Roughneck",
"scientist": "Scientist",
"scientist_female": "Scientist",
"smasher": "Smasher",
"snow_worker": "Snow Worker",
"snow_worker_female": "Snow Worker",
"striker": "Striker",
"school_kid": "School Kid",
"school_kid_female": "School Kid",
"swimmer": "Swimmer",
"swimmer_female": "Swimmer",
"twins": "Twins",
"veteran": "Veteran",
"veteran_female": "Veteran",
"waiter": "Waiter",
"waitress": "Waitress",
"worker": "Worker",
"worker_female": "Worker",
"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",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel",
"crispin": "Crispin",
"amarys": "Amarys",
"lacey": "Lacey",
"drayton": "Drayton",
"blue": "Blue",
"red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"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;

View File

@ -14,11 +14,11 @@ export const battle: SimpleTranslationEntries = {
"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!",
"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": "¡Pero ha fallado!",
"attackHitsCount": `N.º de golpes: {{count}}.`,
"expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",

View File

@ -2,12 +2,10 @@ 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";
@ -15,8 +13,6 @@ import { pokemon } from "./pokemon";
import { pokemonStat } from "./pokemon-stat";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { tutorial } from "./tutorial";
import { titles,trainerClasses,trainerNames } from "./trainers";
import { splashMessages } from "./splash-messages"
import { weather } from "./weather";
@ -25,7 +21,6 @@ export const esConfig = {
abilityTriggers: abilityTriggers,
battle: battle,
commandUiHandler: commandUiHandler,
egg: egg,
fightUiHandler: fightUiHandler,
menuUiHandler: menuUiHandler,
menu: menu,
@ -34,13 +29,8 @@ export const esConfig = {
pokemonStat: pokemonStat,
pokemon: pokemon,
starterSelectUiHandler: starterSelectUiHandler,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
splashMessages: splashMessages,
nature: nature,
growth: growth,
weather: weather,
modifierType: modifierType,
weather: weather
}

View File

@ -1,21 +0,0 @@
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"
} as const;

View File

@ -3,5 +3,5 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const fightUiHandler: SimpleTranslationEntries = {
"pp": "PP",
"power": "Potencia",
"accuracy": "Precisión",
"accuracy": "Accuracy",
} as const;

View File

@ -1,409 +0,0 @@
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}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Receive {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} can't take\nthis item!",
"tooMany": "{{pokemonName}} has too many\nof this item!",
}
},
"PokemonHpRestoreModifierType": {
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher",
extra: {
"fully": "Fully restores HP for one Pokémon",
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment",
}
},
"PokemonReviveModifierType": {
description: "Revives one Pokémon and restores {{restorePercent}}% HP",
},
"PokemonStatusHealModifierType": {
description: "Heals any status ailment for one Pokémon",
},
"PokemonPpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for one Pokémon move",
extra: {
"fully": "Restores all PP for one Pokémon move",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
extra: {
"fully": "Restores all PP for all of one Pokémon's moves",
}
},
"PokemonPpUpModifierType": {
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}} Mint",
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles",
},
"TempBattleStatBoosterModifierType": {
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles",
},
"AttackTypeBoosterModifierType": {
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%",
},
"PokemonLevelIncrementModifierType": {
description: "Increases a Pokémon's level by 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.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "Restores 100% HP for all Pokémon",
},
"AllPokemonFullReviveModifierType": {
description: "Revives all fainted Pokémon, fully restoring HP",
},
"MoneyRewardModifierType": {
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
extra: {
"small": "small",
"moderate": "moderate",
"large": "large",
},
},
"ExpBoosterModifierType": {
description: "Increases gain of EXP. Points by {{boostPercent}}%",
},
"PokemonExpBoosterModifierType": {
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "Increases friendship gain per victory by 50%",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
},
"PokemonMultiHitModifierType": {
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon",
},
"EvolutionItemModifierType": {
description: "Causes certain Pokémon to evolve",
},
"FormChangeItemModifierType": {
description: "Causes certain Pokémon to change form",
},
"FusePokemonModifierType": {
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)",
},
"TerastallizeModifierType": {
name: "{{teraType}} Tera Shard",
description: "{{teraType}} Terastallizes the holder for up to 10 battles",
},
"ContactHeldItemTransferChanceModifierType": {
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen",
},
"TurnHeldItemTransferModifierType": {
description: "Every turn, the holder acquires one held item from the foe",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves",
},
"EnemyEndureChanceModifierType": {
description: "Adds a {{chancePercent}}% chance of enduring a hit",
},
"RARE_CANDY": { name: "Rare Candy" },
"RARER_CANDY": { name: "Rarer Candy" },
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" },
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" },
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" },
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" },
"POTION": { name: "Potion" },
"SUPER_POTION": { name: "Super Potion" },
"HYPER_POTION": { name: "Hyper Potion" },
"MAX_POTION": { name: "Max Potion" },
"FULL_RESTORE": { name: "Full Restore" },
"REVIVE": { name: "Revive" },
"MAX_REVIVE": { name: "Max Revive" },
"FULL_HEAL": { name: "Full Heal" },
"SACRED_ASH": { name: "Sacred Ash" },
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
"ETHER": { name: "Ether" },
"MAX_ETHER": { name: "Max Ether" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Max Elixir" },
"PP_UP": { name: "PP Up" },
"PP_MAX": { name: "PP Max" },
"LURE": { name: "Lure" },
"SUPER_LURE": { name: "Super Lure" },
"MAX_LURE": { name: "Max Lure" },
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" },
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" },
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" },
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" },
"EXP_CHARM": { name: "EXP. Charm" },
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
"LUCKY_EGG": { name: "Lucky Egg" },
"GOLDEN_EGG": { name: "Golden Egg" },
"SOOTHE_BELL": { name: "Soothe Bell" },
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
"NUGGET": { name: "Nugget" },
"BIG_NUGGET": { name: "Big Nugget" },
"RELIC_GOLD": { name: "Relic Gold" },
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" },
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" },
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" },
"GRIP_CLAW": { name: "Grip Claw" },
"WIDE_LENS": { name: "Wide Lens" },
"MULTI_LENS": { name: "Multi Lens" },
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" },
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" },
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 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" },
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" },
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" },
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" },
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" },
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" },
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" },
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" },
"DNA_SPLICERS": { name: "DNA Splicers" },
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" },
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" },
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" },
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" },
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
"ENEMY_ATTACK_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",
},
AttackTypeBoosterItem: {
"silk_scarf": "Silk Scarf",
"black_belt": "Black Belt",
"sharp_beak": "Sharp Beak",
"poison_barb": "Poison Barb",
"soft_sand": "Soft Sand",
"hard_stone": "Hard Stone",
"silver_powder": "Silver Powder",
"spell_tag": "Spell Tag",
"metal_coat": "Metal Coat",
"charcoal": "Charcoal",
"mystic_water": "Mystic Water",
"miracle_seed": "Miracle Seed",
"magnet": "Magnet",
"twisted_spoon": "Twisted Spoon",
"never_melt_ice": "Never-Melt Ice",
"dragon_fang": "Dragon Fang",
"black_glasses": "Black Glasses",
"fairy_feather": "Fairy Feather",
},
BaseStatBoosterItem: {
"hp_up": "HP Up",
"protein": "Protein",
"iron": "Iron",
"calcium": "Calcium",
"zinc": "Zinc",
"carbos": "Carbos",
},
EvolutionItem: {
"NONE": "None",
"LINKING_CORD": "Linking Cord",
"SUN_STONE": "Sun Stone",
"MOON_STONE": "Moon Stone",
"LEAF_STONE": "Leaf Stone",
"FIRE_STONE": "Fire Stone",
"WATER_STONE": "Water Stone",
"THUNDER_STONE": "Thunder Stone",
"ICE_STONE": "Ice Stone",
"DUSK_STONE": "Dusk Stone",
"DAWN_STONE": "Dawn Stone",
"SHINY_STONE": "Shiny Stone",
"CRACKED_POT": "Cracked Pot",
"SWEET_APPLE": "Sweet Apple",
"TART_APPLE": "Tart Apple",
"STRAWBERRY_SWEET": "Strawberry Sweet",
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
"CHIPPED_POT": "Chipped Pot",
"BLACK_AUGURITE": "Black Augurite",
"GALARICA_CUFF": "Galarica Cuff",
"GALARICA_WREATH": "Galarica Wreath",
"PEAT_BLOCK": "Peat Block",
"AUSPICIOUS_ARMOR": "Auspicious Armor",
"MALICIOUS_ARMOR": "Malicious Armor",
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
"METAL_ALLOY": "Metal Alloy",
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
"SCROLL_OF_WATERS": "Scroll Of Waters",
"SYRUPY_APPLE": "Syrupy Apple",
},
FormChangeItem: {
"NONE": "None",
"ABOMASITE": "Abomasite",
"ABSOLITE": "Absolite",
"AERODACTYLITE": "Aerodactylite",
"AGGRONITE": "Aggronite",
"ALAKAZITE": "Alakazite",
"ALTARIANITE": "Altarianite",
"AMPHAROSITE": "Ampharosite",
"AUDINITE": "Audinite",
"BANETTITE": "Banettite",
"BEEDRILLITE": "Beedrillite",
"BLASTOISINITE": "Blastoisinite",
"BLAZIKENITE": "Blazikenite",
"CAMERUPTITE": "Cameruptite",
"CHARIZARDITE_X": "Charizardite X",
"CHARIZARDITE_Y": "Charizardite Y",
"DIANCITE": "Diancite",
"GALLADITE": "Galladite",
"GARCHOMPITE": "Garchompite",
"GARDEVOIRITE": "Gardevoirite",
"GENGARITE": "Gengarite",
"GLALITITE": "Glalitite",
"GYARADOSITE": "Gyaradosite",
"HERACRONITE": "Heracronite",
"HOUNDOOMINITE": "Houndoominite",
"KANGASKHANITE": "Kangaskhanite",
"LATIASITE": "Latiasite",
"LATIOSITE": "Latiosite",
"LOPUNNITE": "Lopunnite",
"LUCARIONITE": "Lucarionite",
"MANECTITE": "Manectite",
"MAWILITE": "Mawilite",
"MEDICHAMITE": "Medichamite",
"METAGROSSITE": "Metagrossite",
"MEWTWONITE_X": "Mewtwonite X",
"MEWTWONITE_Y": "Mewtwonite Y",
"PIDGEOTITE": "Pidgeotite",
"PINSIRITE": "Pinsirite",
"RAYQUAZITE": "Rayquazite",
"SABLENITE": "Sablenite",
"SALAMENCITE": "Salamencite",
"SCEPTILITE": "Sceptilite",
"SCIZORITE": "Scizorite",
"SHARPEDONITE": "Sharpedonite",
"SLOWBRONITE": "Slowbronite",
"STEELIXITE": "Steelixite",
"SWAMPERTITE": "Swampertite",
"TYRANITARITE": "Tyranitarite",
"VENUSAURITE": "Venusaurite",
"BLUE_ORB": "Blue Orb",
"RED_ORB": "Red Orb",
"SHARP_METEORITE": "Sharp Meteorite",
"HARD_METEORITE": "Hard Meteorite",
"SMOOTH_METEORITE": "Smooth Meteorite",
"ADAMANT_CRYSTAL": "Adamant Crystal",
"LUSTROUS_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",
},
TeraType: {
"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;

View File

@ -1,37 +0,0 @@
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!",
} as const;

View File

@ -1,219 +0,0 @@
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",
// 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",
"artist": "Artist",
"artist_female": "Artist",
"backers": "Backers",
"backpacker": "Backpacker",
"backpacker_female": "Backpacker",
"baker": "Baker",
"battle_girl": "Battle Girl",
"beauty": "Beauty",
"biker": "Biker",
"black_belt": "Black Belt",
"breeder": "Breeder",
"breeder_female": "Breeder",
"clerk": "Clerk",
"clerk_female": "Clerk",
"cyclist": "Cyclist",
"cyclist_female": "Cyclist",
"dancer": "Dancer",
"dancer_female": "Dancer",
"depot_agent": "Depot Agent",
"doctor": "Doctor",
"doctor_female": "Doctor",
"fishermen": "Fishermen",
"fishermen_female": "Fishermen",
"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",
"musican": "Musician",
"hex_maniac": "Hex Maniac",
"nurse": "Nurse",
"nursery_aide": "Nursery Aide",
"officer": "Officer",
"parasol_lady": "Parasol Lady",
"pilot": "Pilot",
"pokefan": "Poké Fan",
"preschooler": "Preschooler",
"preschooler_female": "Preschooler",
"psychic": "Psychic",
"psychic_female": "Psychic",
"ranger": "Ranger",
"rich": "Gentleman", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Rich Boy",
"roughneck": "Roughneck",
"scientist": "Scientist",
"scientist_female": "Scientist",
"smasher": "Smasher",
"snow_worker": "Snow Worker",
"snow_worker_female": "Snow Worker",
"striker": "Striker",
"school_kid": "School Kid",
"school_kid_female": "School Kid",
"swimmer": "Swimmer",
"swimmer_female": "Swimmer",
"twins": "Twins",
"veteran": "Veteran",
"veteran_female": "Veteran",
"waiter": "Waiter",
"waitress": "Waitress",
"worker": "Worker",
"worker_female": "Worker",
"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",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel",
"crispin": "Crispin",
"amarys": "Amarys",
"lacey": "Lacey",
"drayton": "Drayton",
"blue": "Blue",
"red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"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;

View File

@ -2,12 +2,10 @@ 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";
@ -15,18 +13,14 @@ import { pokemon } from "./pokemon";
import { pokemonStat } from "./pokemon-stat";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { tutorial } from "./tutorial";
import { titles,trainerClasses,trainerNames } from "./trainers";
import { splashMessages } from "./splash-messages"
import { weather } from "./weather";
export const frConfig = {
ability: ability,
abilityTriggers: abilityTriggers,
battle: battle,
commandUiHandler: commandUiHandler,
egg: egg,
fightUiHandler: fightUiHandler,
menuUiHandler: menuUiHandler,
menu: menu,
@ -35,14 +29,8 @@ export const frConfig = {
pokemonStat: pokemonStat,
pokemon: pokemon,
starterSelectUiHandler: starterSelectUiHandler,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
splashMessages: splashMessages,
nature: nature,
growth: growth,
weather: weather,
modifierType: modifierType,
weather: weather
}

View File

@ -1,21 +0,0 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const egg: SimpleTranslationEntries = {
"egg": "Œuf",
"greatTier": "Rare",
"ultraTier": "Épique",
"masterTier": "Légendaire",
"defaultTier": "Commun",
"hatchWavesMessageSoon": "Il fait du bruit. Il va éclore !",
"hatchWavesMessageClose": "Il bouge de temps en temps. Il devrait bientôt éclore.",
"hatchWavesMessageNotClose": "Quest-ce qui va en sortir ? Ça va mettre du temps.",
"hatchWavesMessageLongTime": "Cet Œuf va sûrement mettre du temps à éclore.",
"gachaTypeLegendary": "Taux de Légendaires élevé",
"gachaTypeMove": "Taux de Capacité Œuf Rare élevé",
"gachaTypeShiny": "Taux de Chromatiques élevé",
"selectMachine": "Sélectionnez une machine.",
"notEnoughVouchers": "Vous navez pas assez de coupons !",
"tooManyEggs": "Vous avez trop dŒufs !",
"pull": "Tirage",
"pulls": "Tirages"
} as const;

View File

@ -1,409 +0,0 @@
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}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Receive {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} can't take\nthis item!",
"tooMany": "{{pokemonName}} has too many\nof this item!",
}
},
"PokemonHpRestoreModifierType": {
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher",
extra: {
"fully": "Fully restores HP for one Pokémon",
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment",
}
},
"PokemonReviveModifierType": {
description: "Revives one Pokémon and restores {{restorePercent}}% HP",
},
"PokemonStatusHealModifierType": {
description: "Heals any status ailment for one Pokémon",
},
"PokemonPpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for one Pokémon move",
extra: {
"fully": "Restores all PP for one Pokémon move",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
extra: {
"fully": "Restores all PP for all of one Pokémon's moves",
}
},
"PokemonPpUpModifierType": {
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}} Mint",
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles",
},
"TempBattleStatBoosterModifierType": {
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles",
},
"AttackTypeBoosterModifierType": {
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%",
},
"PokemonLevelIncrementModifierType": {
description: "Increases a Pokémon's level by 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.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "Restores 100% HP for all Pokémon",
},
"AllPokemonFullReviveModifierType": {
description: "Revives all fainted Pokémon, fully restoring HP",
},
"MoneyRewardModifierType": {
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
extra: {
"small": "small",
"moderate": "moderate",
"large": "large",
},
},
"ExpBoosterModifierType": {
description: "Increases gain of EXP. Points by {{boostPercent}}%",
},
"PokemonExpBoosterModifierType": {
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "Increases friendship gain per victory by 50%",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
},
"PokemonMultiHitModifierType": {
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon",
},
"EvolutionItemModifierType": {
description: "Causes certain Pokémon to evolve",
},
"FormChangeItemModifierType": {
description: "Causes certain Pokémon to change form",
},
"FusePokemonModifierType": {
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)",
},
"TerastallizeModifierType": {
name: "{{teraType}} Tera Shard",
description: "{{teraType}} Terastallizes the holder for up to 10 battles",
},
"ContactHeldItemTransferChanceModifierType": {
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen",
},
"TurnHeldItemTransferModifierType": {
description: "Every turn, the holder acquires one held item from the foe",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves",
},
"EnemyEndureChanceModifierType": {
description: "Adds a {{chancePercent}}% chance of enduring a hit",
},
"RARE_CANDY": { name: "Rare Candy" },
"RARER_CANDY": { name: "Rarer Candy" },
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" },
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" },
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" },
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" },
"POTION": { name: "Potion" },
"SUPER_POTION": { name: "Super Potion" },
"HYPER_POTION": { name: "Hyper Potion" },
"MAX_POTION": { name: "Max Potion" },
"FULL_RESTORE": { name: "Full Restore" },
"REVIVE": { name: "Revive" },
"MAX_REVIVE": { name: "Max Revive" },
"FULL_HEAL": { name: "Full Heal" },
"SACRED_ASH": { name: "Sacred Ash" },
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
"ETHER": { name: "Ether" },
"MAX_ETHER": { name: "Max Ether" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Max Elixir" },
"PP_UP": { name: "PP Up" },
"PP_MAX": { name: "PP Max" },
"LURE": { name: "Lure" },
"SUPER_LURE": { name: "Super Lure" },
"MAX_LURE": { name: "Max Lure" },
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" },
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" },
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" },
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" },
"EXP_CHARM": { name: "EXP. Charm" },
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
"LUCKY_EGG": { name: "Lucky Egg" },
"GOLDEN_EGG": { name: "Golden Egg" },
"SOOTHE_BELL": { name: "Soothe Bell" },
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
"NUGGET": { name: "Nugget" },
"BIG_NUGGET": { name: "Big Nugget" },
"RELIC_GOLD": { name: "Relic Gold" },
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" },
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" },
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" },
"GRIP_CLAW": { name: "Grip Claw" },
"WIDE_LENS": { name: "Wide Lens" },
"MULTI_LENS": { name: "Multi Lens" },
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" },
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" },
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 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" },
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" },
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" },
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" },
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" },
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" },
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" },
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" },
"DNA_SPLICERS": { name: "DNA Splicers" },
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" },
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" },
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" },
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" },
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
"ENEMY_ATTACK_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",
},
AttackTypeBoosterItem: {
"silk_scarf": "Silk Scarf",
"black_belt": "Black Belt",
"sharp_beak": "Sharp Beak",
"poison_barb": "Poison Barb",
"soft_sand": "Soft Sand",
"hard_stone": "Hard Stone",
"silver_powder": "Silver Powder",
"spell_tag": "Spell Tag",
"metal_coat": "Metal Coat",
"charcoal": "Charcoal",
"mystic_water": "Mystic Water",
"miracle_seed": "Miracle Seed",
"magnet": "Magnet",
"twisted_spoon": "Twisted Spoon",
"never_melt_ice": "Never-Melt Ice",
"dragon_fang": "Dragon Fang",
"black_glasses": "Black Glasses",
"fairy_feather": "Fairy Feather",
},
BaseStatBoosterItem: {
"hp_up": "HP Up",
"protein": "Protein",
"iron": "Iron",
"calcium": "Calcium",
"zinc": "Zinc",
"carbos": "Carbos",
},
EvolutionItem: {
"NONE": "None",
"LINKING_CORD": "Linking Cord",
"SUN_STONE": "Sun Stone",
"MOON_STONE": "Moon Stone",
"LEAF_STONE": "Leaf Stone",
"FIRE_STONE": "Fire Stone",
"WATER_STONE": "Water Stone",
"THUNDER_STONE": "Thunder Stone",
"ICE_STONE": "Ice Stone",
"DUSK_STONE": "Dusk Stone",
"DAWN_STONE": "Dawn Stone",
"SHINY_STONE": "Shiny Stone",
"CRACKED_POT": "Cracked Pot",
"SWEET_APPLE": "Sweet Apple",
"TART_APPLE": "Tart Apple",
"STRAWBERRY_SWEET": "Strawberry Sweet",
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
"CHIPPED_POT": "Chipped Pot",
"BLACK_AUGURITE": "Black Augurite",
"GALARICA_CUFF": "Galarica Cuff",
"GALARICA_WREATH": "Galarica Wreath",
"PEAT_BLOCK": "Peat Block",
"AUSPICIOUS_ARMOR": "Auspicious Armor",
"MALICIOUS_ARMOR": "Malicious Armor",
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
"METAL_ALLOY": "Metal Alloy",
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
"SCROLL_OF_WATERS": "Scroll Of Waters",
"SYRUPY_APPLE": "Syrupy Apple",
},
FormChangeItem: {
"NONE": "None",
"ABOMASITE": "Abomasite",
"ABSOLITE": "Absolite",
"AERODACTYLITE": "Aerodactylite",
"AGGRONITE": "Aggronite",
"ALAKAZITE": "Alakazite",
"ALTARIANITE": "Altarianite",
"AMPHAROSITE": "Ampharosite",
"AUDINITE": "Audinite",
"BANETTITE": "Banettite",
"BEEDRILLITE": "Beedrillite",
"BLASTOISINITE": "Blastoisinite",
"BLAZIKENITE": "Blazikenite",
"CAMERUPTITE": "Cameruptite",
"CHARIZARDITE_X": "Charizardite X",
"CHARIZARDITE_Y": "Charizardite Y",
"DIANCITE": "Diancite",
"GALLADITE": "Galladite",
"GARCHOMPITE": "Garchompite",
"GARDEVOIRITE": "Gardevoirite",
"GENGARITE": "Gengarite",
"GLALITITE": "Glalitite",
"GYARADOSITE": "Gyaradosite",
"HERACRONITE": "Heracronite",
"HOUNDOOMINITE": "Houndoominite",
"KANGASKHANITE": "Kangaskhanite",
"LATIASITE": "Latiasite",
"LATIOSITE": "Latiosite",
"LOPUNNITE": "Lopunnite",
"LUCARIONITE": "Lucarionite",
"MANECTITE": "Manectite",
"MAWILITE": "Mawilite",
"MEDICHAMITE": "Medichamite",
"METAGROSSITE": "Metagrossite",
"MEWTWONITE_X": "Mewtwonite X",
"MEWTWONITE_Y": "Mewtwonite Y",
"PIDGEOTITE": "Pidgeotite",
"PINSIRITE": "Pinsirite",
"RAYQUAZITE": "Rayquazite",
"SABLENITE": "Sablenite",
"SALAMENCITE": "Salamencite",
"SCEPTILITE": "Sceptilite",
"SCIZORITE": "Scizorite",
"SHARPEDONITE": "Sharpedonite",
"SLOWBRONITE": "Slowbronite",
"STEELIXITE": "Steelixite",
"SWAMPERTITE": "Swampertite",
"TYRANITARITE": "Tyranitarite",
"VENUSAURITE": "Venusaurite",
"BLUE_ORB": "Blue Orb",
"RED_ORB": "Red Orb",
"SHARP_METEORITE": "Sharp Meteorite",
"HARD_METEORITE": "Hard Meteorite",
"SMOOTH_METEORITE": "Smooth Meteorite",
"ADAMANT_CRYSTAL": "Adamant Crystal",
"LUSTROUS_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",
},
TeraType: {
"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;

View File

@ -7,9 +7,9 @@ export const pokemonStat: SimpleTranslationEntries = {
"ATKshortened": "Atq",
"DEF": "Défense",
"DEFshortened": "Déf",
"SPATK": "Atq. Spé.",
"SPATK": "Atq. Spé",
"SPATKshortened": "AtqSp",
"SPDEF": "Déf. Spé.",
"SPDEF": "Déf. Spé",
"SPDEFshortened": "DéfSp",
"SPD": "Vitesse",
"SPDshortened": "Vit"

View File

@ -1,37 +0,0 @@
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!",
} as const;

View File

@ -1,219 +0,0 @@
import {SimpleTranslationEntries} from "#app/plugins/i18n";
// Titles of special trainers like gym leaders, elite four, and the champion
export const titles: SimpleTranslationEntries = {
"elite_four": "Conseil 4",
"gym_leader": "Champion dArène",
"gym_leader_female": "Championne dArène",
"champion": "Maitre·esse", //Written in gender-inclusive language in wait of a potential split of the entry
"rival": "Rival·e", //Written in gender-inclusive language in wait of a potential split of the entry
"professor": "Professeur·e", //Written in gender-inclusive language in wait of a potential split of the entry
"frontier_brain": "Meneur·euse de Zone", //Written in gender-inclusive language in wait of a potential split of the entry
// 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": "Topdresseur",
"ace_trainer_female": "Topdresseuse",
"artist": "Artiste",
"artist_female": "Artiste",
"backers": "Pompom Girls",
"backpacker": "Randonneur",
"backpacker_female": "Randonneuse",
"baker": "Boulangère",
"battle_girl": "Combattante",
"beauty": "Canon",
"biker": "Motard",
"black_belt": "Karatéka",
"breeder": "Éleveur",
"breeder_female": "Éleveuse",
"clerk": "Employé",
"clerk_female": "Employée",
"cyclist": "Cycliste",
"cyclist_female": "Cycliste",
"dancer": "Danseur",
"dancer_female": "Danseuse",
"depot_agent": "Cheminot",
"doctor": "Docteur",
"doctor_female": "Docteure",
"fishermen": "Pêcheur",
"fishermen_female": "Pêcheuse",
"guitarist": "Guitariste",
"guitarist_female": "Guitariste",
"harlequin": "Clown",
"hiker": "Montagnard",
"hooligans": "Loubards",
"hoopster": "Basketteur",
"infielder": "Baseballeur",
"janitor": "Nettoyeur",
"lady": "Mademoiselle",
"lass": "Fillette",
"linebacker": "Quaterback",
"maid": "Gouvernante",
"madame": "Mondaine",
"musican": "Musicien",
"hex_maniac": "Hex Maniac",
"nurse": " Infirmière",
"nursery_aide": "Institutrice",
"officer": "Policier",
"parasol_lady": "Sœur Parasol",
"pilot": "Pilote",
"pokefan": "Pokéfan",
"preschooler": "Petit",
"preschooler_female": "Petite",
"psychic": "Kinésiste",
"psychic_female": "Kinésiste",
"ranger": "Ranger",
"rich": "Gentleman", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Richard",
"roughneck": "Loubard",
"scientist": "Scientifique",
"scientist_female": "Scientifique",
"smasher": "Tenniswoman",
"snow_worker": "Ouvrier Alpin",
"snow_worker_female": "Ouvrière Alpine",
"striker": "Footballeur",
"school_kid": "Élève",
"school_kid_female": "Élève",
"swimmer": "Nageur",
"swimmer_female": "Nageuse",
"twins": "Jumelles",
"veteran": "Vénérable",
"veteran_female": "Vénérable",
"waiter": "Serveur",
"waitress": "Serveuse",
"worker": "Ouvrier",
"worker_female": "Ouvrière",
"youngster": "Gamin"
} as const;
// Names of special trainers like gym leaders, elite four, and the champion
export const trainerNames: SimpleTranslationEntries = {
"brock": "Pierre",
"misty": "Ondine",
"lt_surge": "Major Bob",
"erika": "Erika",
"janine": "Jeannine",
"sabrina": "Morgane",
"blaine": "Auguste",
"giovanni": "Giovanni",
"falkner": "Albert",
"bugsy": "Hector",
"whitney": "Blanche",
"morty": "Mortimer",
"chuck": "Chuck",
"jasmine": "Jasmine",
"pryce": "Frédo",
"clair": "Sandra",
"roxanne": "Roxanne",
"brawly": "Bastien",
"wattson": "Voltère",
"flannery": "Adriane",
"norman": "Norman",
"winona": "Alizée",
"tate": "Lévy",
"liza": "Tatia",
"juan": "Juan",
"roark": "Pierrick",
"gardenia": "Flo",
"maylene": "Mélina",
"crasher_wake": "Lovis",
"fantina": "Kiméra",
"byron": "Charles",
"candice": "Gladys",
"volkner": "Tanguy",
"cilan": "Rachid",
"chili": "Armando",
"cress": "Noa",
"cheren": "Tcheren",
"lenora": "Aloé",
"roxie": "Strykna",
"burgh": "Artie",
"elesa": "Inezia",
"clay": "Bardane",
"skyla": "Carolina",
"brycen": "Zhu",
"drayden": "Watson",
"marlon": "Amana",
"viola": "Violette",
"grant": "Lino",
"korrina": "Cornélia",
"ramos": "Amaro",
"clemont": "Lem",
"valerie": "Valériane",
"olympia": "Astera",
"wulfric": "Urup",
"milo": "Percy",
"nessa": "Donna",
"kabu": "Kabu",
"bea": "Faïza",
"allister": "Alistair",
"opal": "Sally",
"bede": "Travis",
"gordie": "Chaz",
"melony": "Lona",
"piers": "Peterson",
"marnie": "Rosemary",
"raihan": "Roy",
"katy": "Éra",
"brassius": "Colza",
"iono": "Mashynn",
"kofu": "Kombu",
"larry": "Okuba",
"ryme": "Laïm",
"tulip": "Tully",
"grusha": "Grusha",
"lorelei": "Olga",
"bruno": "Aldo",
"agatha": "Agatha",
"lance": "Peter",
"will": "Clément",
"koga": "Koga",
"karen": "Marion",
"sidney": "Damien",
"phoebe": "Spectra",
"glacia": "Glacia",
"drake": "Aragon",
"aaron": "Aaron",
"bertha": "Terry",
"flint": "Adrien",
"lucian": "Lucio",
"shauntal": "Anis",
"marshal": "Kunz",
"grimsley": "Pieris",
"caitlin": "Percila",
"malva": "Malva",
"siebold": "Narcisse",
"wikstrom": "Tileo",
"drasna": "Dracéna",
"hala": "Pectorius",
"molayne": "Molène",
"olivia": "Alyxia",
"acerola": "Margie",
"kahili": "Kahili",
"rika": "Cayenn",
"poppy": "Popi",
"larry_elite": "Okuba", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassa",
"crispin": "Rubépin",
"amarys": "Nérine",
"lacey": "Taro",
"drayton": "Irido",
"blue": "Blue",
"red": "Red",
"lance_champion": "Peter", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Pierre Rochard",
"wallace": "Marc",
"cynthia": "Cynthia",
"alder": "Goyah",
"iris": "Iris",
"diantha": "Dianthéa",
"hau": "Tili",
"geeta": "Alisma",
"nemona": "Menzi",
"kieran": "Kass",
"leon": "Tarak",
"rival": "Gwenaël", //Male breton name, a celtic language spoken in Brittany (France) and related to the word for "white" (gwenn). Finn meaning is also "white" in irish/goidelic which are also celtic languages.
"rival_female": "Papina", //Litteral translation of ivy, also used as Female name in a North-American indigenous language
} as const;

View File

@ -2,12 +2,10 @@ 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";
@ -15,8 +13,6 @@ import { pokemon } from "./pokemon";
import { pokemonStat } from "./pokemon-stat";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { tutorial } from "./tutorial";
import { titles,trainerClasses,trainerNames } from "./trainers";
import { splashMessages } from "./splash-messages"
import { weather } from "./weather";
@ -25,7 +21,6 @@ export const itConfig = {
abilityTriggers: abilityTriggers,
battle: battle,
commandUiHandler: commandUiHandler,
egg: egg,
fightUiHandler: fightUiHandler,
menuUiHandler: menuUiHandler,
menu: menu,
@ -34,13 +29,8 @@ export const itConfig = {
pokemonStat: pokemonStat,
pokemon: pokemon,
starterSelectUiHandler: starterSelectUiHandler,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
splashMessages: splashMessages,
nature: nature,
growth: growth,
weather: weather,
modifierType: modifierType,
weather: weather
}

View File

@ -1,21 +0,0 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const egg: SimpleTranslationEntries = {
"egg": "Uovo",
"defaultTier": "Comune",
"greatTier": "Raro",
"ultraTier": "Epico",
"masterTier": "Leggendario",
"hatchWavesMessageSoon": "Si sentono dei suoni provenienti dall'interno! Si schiuderà presto!",
"hatchWavesMessageClose": "Sembra muoversi di tanto in tanto. Potrebbe essere prossimo alla schiusa.",
"hatchWavesMessageNotClose": "Cosa uscirà da qui? Non sembra si schiuderà presto.",
"hatchWavesMessageLongTime": "Sembra che questo uovo impiegherà molto tempo per schiudersi.",
"gachaTypeLegendary": "Tasso dei Leggendari Aumentato",
"gachaTypeMove": "Tasso delle Mosse Rare delle Uova Aumentato",
"gachaTypeShiny": "Tasso degli Shiny Aumentato",
"selectMachine": "Seleziona un distributore.",
"notEnoughVouchers": "Non hai abbastanza Biglietti!",
"tooManyEggs": "Hai troppe Uova!",
"pull": "Tiro",
"pulls": "Tiri"
} as const;

View File

@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
"EGG_GACHA": "Gacha Uova",
"MANAGE_DATA": "Gestisci Dati",
"COMMUNITY": "Community",
"SAVE_AND_QUIT": "Salva ed Esci",
"SAVE_AND_QUIT": "Save and Quit",
"LOG_OUT": "Disconnettiti",
"slot": "Slot {{slotNumber}}",
"importSession": "Importa Sessione",

View File

@ -40,11 +40,11 @@ export const menu: SimpleTranslationEntries = {
"noRankings": "Nessuna Classifica",
"loading": "Caricamento…",
"playersOnline": "Giocatori Online",
"evolving": "Cosa?\n{{pokemonName}} si evolvendo!",
"stoppedEvolving": "{{pokemonName}} ha smesso di evolversi.",
"pauseEvolutionsQuestion": "Vuoi sospendere le evoluzioni per {{pokemonName}}?\nLe evoluzioni possono essere riattivate dalla schermata del party.",
"evolutionsPaused": "Le evoluzioni sono state sospese per {{pokemonName}}.",
"evolutionDone": "Congratulazioni!\n{{pokemonName}} si è evoluto in {{evolvedPokemonName}}!",
"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}}!",
"empty":"Vuoto",
"yes":"Si",
"no":"No",

View File

@ -1,409 +0,0 @@
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}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Receive {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} can't take\nthis item!",
"tooMany": "{{pokemonName}} has too many\nof this item!",
}
},
"PokemonHpRestoreModifierType": {
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher",
extra: {
"fully": "Fully restores HP for one Pokémon",
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment",
}
},
"PokemonReviveModifierType": {
description: "Revives one Pokémon and restores {{restorePercent}}% HP",
},
"PokemonStatusHealModifierType": {
description: "Heals any status ailment for one Pokémon",
},
"PokemonPpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for one Pokémon move",
extra: {
"fully": "Restores all PP for one Pokémon move",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
extra: {
"fully": "Restores all PP for all of one Pokémon's moves",
}
},
"PokemonPpUpModifierType": {
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}} Mint",
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles",
},
"TempBattleStatBoosterModifierType": {
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles",
},
"AttackTypeBoosterModifierType": {
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%",
},
"PokemonLevelIncrementModifierType": {
description: "Increases a Pokémon's level by 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.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "Restores 100% HP for all Pokémon",
},
"AllPokemonFullReviveModifierType": {
description: "Revives all fainted Pokémon, fully restoring HP",
},
"MoneyRewardModifierType": {
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
extra: {
"small": "small",
"moderate": "moderate",
"large": "large",
},
},
"ExpBoosterModifierType": {
description: "Increases gain of EXP. Points by {{boostPercent}}%",
},
"PokemonExpBoosterModifierType": {
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "Increases friendship gain per victory by 50%",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
},
"PokemonMultiHitModifierType": {
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon",
},
"EvolutionItemModifierType": {
description: "Causes certain Pokémon to evolve",
},
"FormChangeItemModifierType": {
description: "Causes certain Pokémon to change form",
},
"FusePokemonModifierType": {
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)",
},
"TerastallizeModifierType": {
name: "{{teraType}} Tera Shard",
description: "{{teraType}} Terastallizes the holder for up to 10 battles",
},
"ContactHeldItemTransferChanceModifierType": {
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen",
},
"TurnHeldItemTransferModifierType": {
description: "Every turn, the holder acquires one held item from the foe",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves",
},
"EnemyEndureChanceModifierType": {
description: "Adds a {{chancePercent}}% chance of enduring a hit",
},
"RARE_CANDY": { name: "Rare Candy" },
"RARER_CANDY": { name: "Rarer Candy" },
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" },
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" },
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" },
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" },
"POTION": { name: "Potion" },
"SUPER_POTION": { name: "Super Potion" },
"HYPER_POTION": { name: "Hyper Potion" },
"MAX_POTION": { name: "Max Potion" },
"FULL_RESTORE": { name: "Full Restore" },
"REVIVE": { name: "Revive" },
"MAX_REVIVE": { name: "Max Revive" },
"FULL_HEAL": { name: "Full Heal" },
"SACRED_ASH": { name: "Sacred Ash" },
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
"ETHER": { name: "Ether" },
"MAX_ETHER": { name: "Max Ether" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Max Elixir" },
"PP_UP": { name: "PP Up" },
"PP_MAX": { name: "PP Max" },
"LURE": { name: "Lure" },
"SUPER_LURE": { name: "Super Lure" },
"MAX_LURE": { name: "Max Lure" },
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" },
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" },
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" },
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" },
"EXP_CHARM": { name: "EXP. Charm" },
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
"LUCKY_EGG": { name: "Lucky Egg" },
"GOLDEN_EGG": { name: "Golden Egg" },
"SOOTHE_BELL": { name: "Soothe Bell" },
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
"NUGGET": { name: "Nugget" },
"BIG_NUGGET": { name: "Big Nugget" },
"RELIC_GOLD": { name: "Relic Gold" },
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" },
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" },
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" },
"GRIP_CLAW": { name: "Grip Claw" },
"WIDE_LENS": { name: "Wide Lens" },
"MULTI_LENS": { name: "Multi Lens" },
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" },
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" },
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 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" },
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" },
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" },
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" },
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" },
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" },
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" },
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" },
"DNA_SPLICERS": { name: "DNA Splicers" },
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" },
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" },
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" },
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" },
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
"ENEMY_ATTACK_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",
},
AttackTypeBoosterItem: {
"silk_scarf": "Silk Scarf",
"black_belt": "Black Belt",
"sharp_beak": "Sharp Beak",
"poison_barb": "Poison Barb",
"soft_sand": "Soft Sand",
"hard_stone": "Hard Stone",
"silver_powder": "Silver Powder",
"spell_tag": "Spell Tag",
"metal_coat": "Metal Coat",
"charcoal": "Charcoal",
"mystic_water": "Mystic Water",
"miracle_seed": "Miracle Seed",
"magnet": "Magnet",
"twisted_spoon": "Twisted Spoon",
"never_melt_ice": "Never-Melt Ice",
"dragon_fang": "Dragon Fang",
"black_glasses": "Black Glasses",
"fairy_feather": "Fairy Feather",
},
BaseStatBoosterItem: {
"hp_up": "HP Up",
"protein": "Protein",
"iron": "Iron",
"calcium": "Calcium",
"zinc": "Zinc",
"carbos": "Carbos",
},
EvolutionItem: {
"NONE": "None",
"LINKING_CORD": "Linking Cord",
"SUN_STONE": "Sun Stone",
"MOON_STONE": "Moon Stone",
"LEAF_STONE": "Leaf Stone",
"FIRE_STONE": "Fire Stone",
"WATER_STONE": "Water Stone",
"THUNDER_STONE": "Thunder Stone",
"ICE_STONE": "Ice Stone",
"DUSK_STONE": "Dusk Stone",
"DAWN_STONE": "Dawn Stone",
"SHINY_STONE": "Shiny Stone",
"CRACKED_POT": "Cracked Pot",
"SWEET_APPLE": "Sweet Apple",
"TART_APPLE": "Tart Apple",
"STRAWBERRY_SWEET": "Strawberry Sweet",
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
"CHIPPED_POT": "Chipped Pot",
"BLACK_AUGURITE": "Black Augurite",
"GALARICA_CUFF": "Galarica Cuff",
"GALARICA_WREATH": "Galarica Wreath",
"PEAT_BLOCK": "Peat Block",
"AUSPICIOUS_ARMOR": "Auspicious Armor",
"MALICIOUS_ARMOR": "Malicious Armor",
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
"METAL_ALLOY": "Metal Alloy",
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
"SCROLL_OF_WATERS": "Scroll Of Waters",
"SYRUPY_APPLE": "Syrupy Apple",
},
FormChangeItem: {
"NONE": "None",
"ABOMASITE": "Abomasite",
"ABSOLITE": "Absolite",
"AERODACTYLITE": "Aerodactylite",
"AGGRONITE": "Aggronite",
"ALAKAZITE": "Alakazite",
"ALTARIANITE": "Altarianite",
"AMPHAROSITE": "Ampharosite",
"AUDINITE": "Audinite",
"BANETTITE": "Banettite",
"BEEDRILLITE": "Beedrillite",
"BLASTOISINITE": "Blastoisinite",
"BLAZIKENITE": "Blazikenite",
"CAMERUPTITE": "Cameruptite",
"CHARIZARDITE_X": "Charizardite X",
"CHARIZARDITE_Y": "Charizardite Y",
"DIANCITE": "Diancite",
"GALLADITE": "Galladite",
"GARCHOMPITE": "Garchompite",
"GARDEVOIRITE": "Gardevoirite",
"GENGARITE": "Gengarite",
"GLALITITE": "Glalitite",
"GYARADOSITE": "Gyaradosite",
"HERACRONITE": "Heracronite",
"HOUNDOOMINITE": "Houndoominite",
"KANGASKHANITE": "Kangaskhanite",
"LATIASITE": "Latiasite",
"LATIOSITE": "Latiosite",
"LOPUNNITE": "Lopunnite",
"LUCARIONITE": "Lucarionite",
"MANECTITE": "Manectite",
"MAWILITE": "Mawilite",
"MEDICHAMITE": "Medichamite",
"METAGROSSITE": "Metagrossite",
"MEWTWONITE_X": "Mewtwonite X",
"MEWTWONITE_Y": "Mewtwonite Y",
"PIDGEOTITE": "Pidgeotite",
"PINSIRITE": "Pinsirite",
"RAYQUAZITE": "Rayquazite",
"SABLENITE": "Sablenite",
"SALAMENCITE": "Salamencite",
"SCEPTILITE": "Sceptilite",
"SCIZORITE": "Scizorite",
"SHARPEDONITE": "Sharpedonite",
"SLOWBRONITE": "Slowbronite",
"STEELIXITE": "Steelixite",
"SWAMPERTITE": "Swampertite",
"TYRANITARITE": "Tyranitarite",
"VENUSAURITE": "Venusaurite",
"BLUE_ORB": "Blue Orb",
"RED_ORB": "Red Orb",
"SHARP_METEORITE": "Sharp Meteorite",
"HARD_METEORITE": "Hard Meteorite",
"SMOOTH_METEORITE": "Smooth Meteorite",
"ADAMANT_CRYSTAL": "Adamant Crystal",
"LUSTROUS_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",
},
TeraType: {
"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;

View File

@ -1,37 +0,0 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const splashMessages: SimpleTranslationEntries = {
"battlesWon": "Battaglie Vinte!",
"joinTheDiscord": "Entra nel Discord!",
"infiniteLevels": "Livelli Infiniti!",
"everythingStacks": "Tutto si impila!",
"optionalSaveScumming": "Salvataggio Facoltativo!",
"biomes": "35 Biomi!",
"openSource": "Open Source!",
"playWithSpeed": "Gioca con il 5x di Velocità!",
"liveBugTesting": "Test dei Bug in Tempo Reale!",
"heavyInfluence": "Influenzato da RoR2!",
"pokemonRiskAndPokemonRain": "Pokémon Risk e Pokémon Rain!",
"nowWithMoreSalt": "Adesso con il 33% di sale in più!",
"infiniteFusionAtHome": "Fusioni Infinite a Casa!",
"brokenEggMoves": "Mosse delle Uova Rotte!",
"magnificent": "Magnifico!",
"mubstitute": "Mubstitute!",
"thatsCrazy": "È Pazzesco!",
"oranceJuice": "Succo d\'Arancia!",
"questionableBalancing": "Bilanciamento Discutibile!",
"coolShaders": "Shader fantastici!",
"aiFree": "Senza Intelligenza Artificiale!",
"suddenDifficultySpikes": "Picchi di Difficoltà Improvvisi!",
"basedOnAnUnfinishedFlashGame": "Basato su un Gioco Flash Incompiuto!",
"moreAddictiveThanIntended": "Crea Dipendeza più del Dovuto!",
"mostlyConsistentSeeds": "Seeds Consistenti!",
"achievementPointsDontDoAnything": "I Punti Obiettivo non Fanno Nulla!",
"youDoNotStartAtLevel": "Non Cominci dal Livello 2000!",
"dontTalkAboutTheManaphyEggIncident": "Non Parlare dell'Incidente dell'Uovo di Manaphy!",
"alsoTryPokengine": "Prova anche Pokéngine!",
"alsoTryEmeraldRogue": "Prova anche Emerald Rogue!",
"alsoTryRadicalRed": "Prova anche Radical Red!",
"eeveeExpo": "Eevee Expo!",
"ynoproject": "YNOproject!",
} as const;

View File

@ -1,219 +0,0 @@
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",
// 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",
"artist": "Artist",
"artist_female": "Artist",
"backers": "Backers",
"backpacker": "Backpacker",
"backpacker_female": "Backpacker",
"baker": "Baker",
"battle_girl": "Battle Girl",
"beauty": "Beauty",
"biker": "Biker",
"black_belt": "Black Belt",
"breeder": "Breeder",
"breeder_female": "Breeder",
"clerk": "Clerk",
"clerk_female": "Clerk",
"cyclist": "Cyclist",
"cyclist_female": "Cyclist",
"dancer": "Dancer",
"dancer_female": "Dancer",
"depot_agent": "Depot Agent",
"doctor": "Doctor",
"doctor_female": "Doctor",
"fishermen": "Fishermen",
"fishermen_female": "Fishermen",
"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",
"musican": "Musician",
"hex_maniac": "Hex Maniac",
"nurse": "Nurse",
"nursery_aide": "Nursery Aide",
"officer": "Officer",
"parasol_lady": "Parasol Lady",
"pilot": "Pilot",
"pokefan": "Poké Fan",
"preschooler": "Preschooler",
"preschooler_female": "Preschooler",
"psychic": "Psychic",
"psychic_female": "Psychic",
"ranger": "Ranger",
"rich": "Gentleman", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Rich Boy",
"roughneck": "Roughneck",
"scientist": "Scientist",
"scientist_female": "Scientist",
"smasher": "Smasher",
"snow_worker": "Snow Worker",
"snow_worker_female": "Snow Worker",
"striker": "Striker",
"school_kid": "School Kid",
"school_kid_female": "School Kid",
"swimmer": "Swimmer",
"swimmer_female": "Swimmer",
"twins": "Twins",
"veteran": "Veteran",
"veteran_female": "Veteran",
"waiter": "Waiter",
"waitress": "Waitress",
"worker": "Worker",
"worker_female": "Worker",
"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",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel",
"crispin": "Crispin",
"amarys": "Amarys",
"lacey": "Lacey",
"drayton": "Drayton",
"blue": "Blue",
"red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"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;

View File

@ -4,41 +4,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
* The weather namespace holds text displayed when weather is active during a battle
*/
export const weather: SimpleTranslationEntries = {
"sunnyStartMessage": "La luce solare è intensa!",
"sunnyLapseMessage": "La luce solare è forte.",
"sunnyClearMessage": "La luce solare si sta attenuando.",
"sunnyStartMessage": "The sunlight got bright!",
"sunnyLapseMessage": "The sunlight is strong.",
"sunnyClearMessage": "The sunlight faded.",
"rainStartMessage": "Ha iniziato a piovere!",
"rainLapseMessage": "La pioggia continua.",
"rainClearMessage": "Ha smesso di piovere.",
"rainStartMessage": "A downpour started!",
"rainLapseMessage": "The downpour continues.",
"rainClearMessage": "The rain stopped.",
"sandstormStartMessage": "Si è scatenata una tempesta di sabbia!",
"sandstormLapseMessage": "La tempesta di sabbia infuria.",
"sandstormClearMessage": "La tempesta di sabbia si è placata.",
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} è stato colpito\ndalla tempesta di sabbia!",
"sandstormStartMessage": "A sandstorm brewed!",
"sandstormLapseMessage": "The sandstorm rages.",
"sandstormClearMessage": "The sandstorm subsided.",
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
"hailStartMessage": "Ha iniziato a grandinare!",
"hailLapseMessage": "La grandine continua a cadere.",
"hailClearMessage": "Ha smesso di grandinare.",
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} è stato colpito\ndalla grandine!",
"hailStartMessage": "It started to hail!",
"hailLapseMessage": "Hail continues to fall.",
"hailClearMessage": "The hail stopped.",
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
"snowStartMessage": "Ha iniziato a nevicare!",
"snowLapseMessage": "La neve sta continuando a cadere.",
"snowClearMessage": "Ha smesso di nevicare!.",
"snowStartMessage": "It started to snow!",
"snowLapseMessage": "The snow is falling down.",
"snowClearMessage": "The snow stopped.",
"fogStartMessage": "È emersa una fitta nebbia!",
"fogLapseMessage": "La nebbia continua.",
"fogClearMessage": "La nebbia è scomparsa.",
"fogStartMessage": "A thick fog emerged!",
"fogLapseMessage": "The fog continues.",
"fogClearMessage": "The fog disappeared.",
"heavyRainStartMessage": "Ha iniziato a piovere forte!",
"heavyRainLapseMessage": "La pioggia battente continua.",
"heavyRainClearMessage": "La pioggia battente è cessata.",
"heavyRainStartMessage": "A heavy downpour started!",
"heavyRainLapseMessage": "The heavy downpour continues.",
"heavyRainClearMessage": "The heavy rain stopped.",
"harshSunStartMessage": "La luce solare è molto intensa!",
"harshSunLapseMessage": "La luce solare è estremamente calda.",
"harshSunClearMessage": "La luce solare si sta attenuando.",
"harshSunStartMessage": "The sunlight got hot!",
"harshSunLapseMessage": "The sun is scorching hot.",
"harshSunClearMessage": "The harsh sunlight faded.",
"strongWindsStartMessage": "È apparsa una corrente d'aria misteriosa!",
"strongWindsLapseMessage": "La corrente d'aria soffia intensamente.",
"strongWindsClearMessage": "La corrente d'aria è cessata."
"strongWindsStartMessage": "A heavy wind began!",
"strongWindsLapseMessage": "The wind blows intensely.",
"strongWindsClearMessage": "The heavy wind stopped."
}

View File

@ -5,7 +5,6 @@ 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";
@ -31,6 +30,5 @@ export const ptBrConfig = {
tutorial: tutorial,
nature: nature,
growth: growth,
weather: weather,
modifierType: modifierType,
weather: weather
}

View File

@ -1,409 +0,0 @@
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}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Receive {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} can't take\nthis item!",
"tooMany": "{{pokemonName}} has too many\nof this item!",
}
},
"PokemonHpRestoreModifierType": {
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher",
extra: {
"fully": "Fully restores HP for one Pokémon",
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment",
}
},
"PokemonReviveModifierType": {
description: "Revives one Pokémon and restores {{restorePercent}}% HP",
},
"PokemonStatusHealModifierType": {
description: "Heals any status ailment for one Pokémon",
},
"PokemonPpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for one Pokémon move",
extra: {
"fully": "Restores all PP for one Pokémon move",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
extra: {
"fully": "Restores all PP for all of one Pokémon's moves",
}
},
"PokemonPpUpModifierType": {
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}} Mint",
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles",
},
"TempBattleStatBoosterModifierType": {
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles",
},
"AttackTypeBoosterModifierType": {
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%",
},
"PokemonLevelIncrementModifierType": {
description: "Increases a Pokémon's level by 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.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "Restores 100% HP for all Pokémon",
},
"AllPokemonFullReviveModifierType": {
description: "Revives all fainted Pokémon, fully restoring HP",
},
"MoneyRewardModifierType": {
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
extra: {
"small": "small",
"moderate": "moderate",
"large": "large",
},
},
"ExpBoosterModifierType": {
description: "Increases gain of EXP. Points by {{boostPercent}}%",
},
"PokemonExpBoosterModifierType": {
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "Increases friendship gain per victory by 50%",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
},
"PokemonMultiHitModifierType": {
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon",
},
"EvolutionItemModifierType": {
description: "Causes certain Pokémon to evolve",
},
"FormChangeItemModifierType": {
description: "Causes certain Pokémon to change form",
},
"FusePokemonModifierType": {
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)",
},
"TerastallizeModifierType": {
name: "{{teraType}} Tera Shard",
description: "{{teraType}} Terastallizes the holder for up to 10 battles",
},
"ContactHeldItemTransferChanceModifierType": {
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen",
},
"TurnHeldItemTransferModifierType": {
description: "Every turn, the holder acquires one held item from the foe",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves",
},
"EnemyEndureChanceModifierType": {
description: "Adds a {{chancePercent}}% chance of enduring a hit",
},
"RARE_CANDY": { name: "Rare Candy" },
"RARER_CANDY": { name: "Rarer Candy" },
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" },
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" },
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" },
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" },
"POTION": { name: "Potion" },
"SUPER_POTION": { name: "Super Potion" },
"HYPER_POTION": { name: "Hyper Potion" },
"MAX_POTION": { name: "Max Potion" },
"FULL_RESTORE": { name: "Full Restore" },
"REVIVE": { name: "Revive" },
"MAX_REVIVE": { name: "Max Revive" },
"FULL_HEAL": { name: "Full Heal" },
"SACRED_ASH": { name: "Sacred Ash" },
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
"ETHER": { name: "Ether" },
"MAX_ETHER": { name: "Max Ether" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Max Elixir" },
"PP_UP": { name: "PP Up" },
"PP_MAX": { name: "PP Max" },
"LURE": { name: "Lure" },
"SUPER_LURE": { name: "Super Lure" },
"MAX_LURE": { name: "Max Lure" },
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" },
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" },
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" },
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" },
"EXP_CHARM": { name: "EXP. Charm" },
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
"LUCKY_EGG": { name: "Lucky Egg" },
"GOLDEN_EGG": { name: "Golden Egg" },
"SOOTHE_BELL": { name: "Soothe Bell" },
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
"NUGGET": { name: "Nugget" },
"BIG_NUGGET": { name: "Big Nugget" },
"RELIC_GOLD": { name: "Relic Gold" },
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" },
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" },
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" },
"GRIP_CLAW": { name: "Grip Claw" },
"WIDE_LENS": { name: "Wide Lens" },
"MULTI_LENS": { name: "Multi Lens" },
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" },
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" },
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 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" },
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" },
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" },
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" },
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" },
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" },
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" },
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" },
"DNA_SPLICERS": { name: "DNA Splicers" },
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" },
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" },
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" },
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" },
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
"ENEMY_ATTACK_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",
},
AttackTypeBoosterItem: {
"silk_scarf": "Silk Scarf",
"black_belt": "Black Belt",
"sharp_beak": "Sharp Beak",
"poison_barb": "Poison Barb",
"soft_sand": "Soft Sand",
"hard_stone": "Hard Stone",
"silver_powder": "Silver Powder",
"spell_tag": "Spell Tag",
"metal_coat": "Metal Coat",
"charcoal": "Charcoal",
"mystic_water": "Mystic Water",
"miracle_seed": "Miracle Seed",
"magnet": "Magnet",
"twisted_spoon": "Twisted Spoon",
"never_melt_ice": "Never-Melt Ice",
"dragon_fang": "Dragon Fang",
"black_glasses": "Black Glasses",
"fairy_feather": "Fairy Feather",
},
BaseStatBoosterItem: {
"hp_up": "HP Up",
"protein": "Protein",
"iron": "Iron",
"calcium": "Calcium",
"zinc": "Zinc",
"carbos": "Carbos",
},
EvolutionItem: {
"NONE": "None",
"LINKING_CORD": "Linking Cord",
"SUN_STONE": "Sun Stone",
"MOON_STONE": "Moon Stone",
"LEAF_STONE": "Leaf Stone",
"FIRE_STONE": "Fire Stone",
"WATER_STONE": "Water Stone",
"THUNDER_STONE": "Thunder Stone",
"ICE_STONE": "Ice Stone",
"DUSK_STONE": "Dusk Stone",
"DAWN_STONE": "Dawn Stone",
"SHINY_STONE": "Shiny Stone",
"CRACKED_POT": "Cracked Pot",
"SWEET_APPLE": "Sweet Apple",
"TART_APPLE": "Tart Apple",
"STRAWBERRY_SWEET": "Strawberry Sweet",
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
"CHIPPED_POT": "Chipped Pot",
"BLACK_AUGURITE": "Black Augurite",
"GALARICA_CUFF": "Galarica Cuff",
"GALARICA_WREATH": "Galarica Wreath",
"PEAT_BLOCK": "Peat Block",
"AUSPICIOUS_ARMOR": "Auspicious Armor",
"MALICIOUS_ARMOR": "Malicious Armor",
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
"METAL_ALLOY": "Metal Alloy",
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
"SCROLL_OF_WATERS": "Scroll Of Waters",
"SYRUPY_APPLE": "Syrupy Apple",
},
FormChangeItem: {
"NONE": "None",
"ABOMASITE": "Abomasite",
"ABSOLITE": "Absolite",
"AERODACTYLITE": "Aerodactylite",
"AGGRONITE": "Aggronite",
"ALAKAZITE": "Alakazite",
"ALTARIANITE": "Altarianite",
"AMPHAROSITE": "Ampharosite",
"AUDINITE": "Audinite",
"BANETTITE": "Banettite",
"BEEDRILLITE": "Beedrillite",
"BLASTOISINITE": "Blastoisinite",
"BLAZIKENITE": "Blazikenite",
"CAMERUPTITE": "Cameruptite",
"CHARIZARDITE_X": "Charizardite X",
"CHARIZARDITE_Y": "Charizardite Y",
"DIANCITE": "Diancite",
"GALLADITE": "Galladite",
"GARCHOMPITE": "Garchompite",
"GARDEVOIRITE": "Gardevoirite",
"GENGARITE": "Gengarite",
"GLALITITE": "Glalitite",
"GYARADOSITE": "Gyaradosite",
"HERACRONITE": "Heracronite",
"HOUNDOOMINITE": "Houndoominite",
"KANGASKHANITE": "Kangaskhanite",
"LATIASITE": "Latiasite",
"LATIOSITE": "Latiosite",
"LOPUNNITE": "Lopunnite",
"LUCARIONITE": "Lucarionite",
"MANECTITE": "Manectite",
"MAWILITE": "Mawilite",
"MEDICHAMITE": "Medichamite",
"METAGROSSITE": "Metagrossite",
"MEWTWONITE_X": "Mewtwonite X",
"MEWTWONITE_Y": "Mewtwonite Y",
"PIDGEOTITE": "Pidgeotite",
"PINSIRITE": "Pinsirite",
"RAYQUAZITE": "Rayquazite",
"SABLENITE": "Sablenite",
"SALAMENCITE": "Salamencite",
"SCEPTILITE": "Sceptilite",
"SCIZORITE": "Scizorite",
"SHARPEDONITE": "Sharpedonite",
"SLOWBRONITE": "Slowbronite",
"STEELIXITE": "Steelixite",
"SWAMPERTITE": "Swampertite",
"TYRANITARITE": "Tyranitarite",
"VENUSAURITE": "Venusaurite",
"BLUE_ORB": "Blue Orb",
"RED_ORB": "Red Orb",
"SHARP_METEORITE": "Sharp Meteorite",
"HARD_METEORITE": "Hard Meteorite",
"SMOOTH_METEORITE": "Smooth Meteorite",
"ADAMANT_CRYSTAL": "Adamant Crystal",
"LUSTROUS_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",
},
TeraType: {
"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;

View File

@ -1,219 +0,0 @@
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 dos Quatro",
"gym_leader": "Líder de Ginásio",
"gym_leader_female": "Líder de Ginásio",
"champion": "Campeão",
"rival": "Rival",
"professor": "Professor",
"frontier_brain": "Cérebro da Fronteira",
// 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": "Trinador Ás",
"ace_trainer_female": "Trinadora Ás",
"artist": "Artista",
"artist_female": "Artista",
"backers": "Torcedores",
"backpacker": "Mochileiro",
"backpacker_female": "Mochileira",
"baker": "Padeira",
"battle_girl": "Lutadora",
"beauty": "Modelo",
"biker": "Motoqueiro",
"black_belt": "Faixa Preta",
"breeder": "Criador",
"breeder_female": "Criadora",
"clerk": "Funcionário",
"clerk_female": "Funcionária",
"cyclist": "Ciclista",
"cyclist_female": "Ciclista",
"dancer": "Dançarino",
"dancer_female": "Dançarina",
"depot_agent": "Ferroviário",
"doctor": "Doutor",
"doctor_female": "Doutora",
"fishermen": "Pescador",
"fishermen_female": "Pescadora",
"guitarist": "Guitarrista",
"guitarist_female": "Guitarrista",
"harlequin": "Arlequim",
"hiker": "Montanhista",
"hooligans": "Bandoleiro",
"hoopster": "Jogador de basquete",
"infielder": "Jogador de baseball",
"janitor": "Faxineiro",
"lady": "Dama",
"lass": "Senhorita",
"linebacker": "Zagueiro",
"maid": "Doméstica",
"madame": "Madame",
"musican": "Músico",
"hex_maniac": "Ocultista",
"nurse": "Enfermeira",
"nursery_aide": "Professora do Berçário",
"officer": "Policial",
"parasol_lady": "Moça de Sombrinha",
"pilot": "Piloto",
"pokefan": "Pokefã",
"preschooler": "Menino do Prezinho",
"preschooler_female": "Menina do Prezinho",
"psychic": "Médium",
"psychic_female": "Médium",
"ranger": "Guarda",
"rich": "Cavalheira", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Riquinho",
"roughneck": "Arruaceiro",
"scientist": "Cientista",
"scientist_female": "Cientista",
"smasher": "Tenista",
"snow_worker": "Operário da Neve",
"snow_worker_female": "Operária da Neve",
"striker": "Atacante",
"school_kid": "Estudante",
"school_kid_female": "Estudante",
"swimmer": "Nadador",
"swimmer_female": "Nadadora",
"twins": "Gêmeos",
"veteran": "Veterano",
"veteran_female": "Veterana",
"waiter": "Garçom",
"waitress": "Garçonete",
"worker": "Operário",
"worker_female": "Operária",
"youngster": "Jovem",
} as const;
// Names of special trainers like gym leaders, elite four, and the champion
export const trainerNames: SimpleTranslationEntries = {
"brock": "Brock",
"misty": "Misty",
"lt_surge": "Ten. 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": "Demolidor 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",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel",
"crispin": "Crispin",
"amarys": "Amarys",
"lacey": "Lacey",
"drayton": "Drayton",
"blue": "Blue",
"red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"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;

View File

@ -1,5 +1,5 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const abilityTriggers: SimpleTranslationEntries = {
'blockRecoilDamage' : `{{pokemonName}} 的 {{abilityName}}\n抵消了反作用力`,
'blockRecoilDamage' : `{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!`,
} as const;

View File

@ -32,7 +32,7 @@ export const battle: SimpleTranslationEntries = {
"learnMoveForgetQuestion": "要忘记哪个技能?",
"learnMoveForgetSuccess": "{{pokemonName}} 忘记了\n如何使用 {{moveName}}。",
"countdownPoof": "@d{32}1, @d{15}2, @d{15}和@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}噗!",
"learnMoveAnd": "然后...",
"learnMoveAnd": "和…",
"levelCapUp": "等级上限提升到 {{levelCap}}",
"moveNotImplemented": "{{moveName}} 尚未实装,无法选择。",
"moveNoPP": "这个技能的 PP 用完了",

View File

@ -11,11 +11,8 @@ import { pokemon } from "./pokemon";
import { pokemonStat } from "./pokemon-stat";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { tutorial } from "./tutorial";
import { titles,trainerClasses,trainerNames } from "./trainers";
import { nature } from "./nature";
import { weather } from "./weather";
import { modifierType } from "./modifier-type";
import { growth } from "./growth";
export const zhCnConfig = {
@ -31,13 +28,8 @@ export const zhCnConfig = {
pokemonStat: pokemonStat,
pokemon: pokemon,
starterSelectUiHandler: starterSelectUiHandler,
nature: nature,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
nature: nature,
growth: growth,
weather: weather,
modifierType: modifierType,
weather: weather
}

View File

@ -2,6 +2,6 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const fightUiHandler: SimpleTranslationEntries = {
"pp": "PP",
"power": "威力",
"accuracy": "命中率",
"power": "Power",
"accuracy": "Accuracy",
} as const;

View File

@ -1,10 +0,0 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const growth: SimpleTranslationEntries = {
"Erratic": "最快",
"Fast": "快",
"Medium_Fast": "较快",
"Medium_Slow": "较慢",
"Slow": "慢",
"Fluctuating": "最慢"
} as const;

View File

@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
"EGG_GACHA": "扭蛋机",
"MANAGE_DATA": "管理数据",
"COMMUNITY": "社区",
"SAVE_AND_QUIT": "保存并退出",
"SAVE_AND_QUIT": "Save and Quit",
"LOG_OUT": "登出",
"slot": "存档位 {{slotNumber}}",
"importSession": "导入存档",

View File

@ -35,15 +35,15 @@ export const menu: SimpleTranslationEntries = {
"boyOrGirl": "你是男孩还是女孩?",
"boy": "男孩",
"girl": "女孩",
"evolving": "咦?\n{{pokemonName}} 开始进化了!",
"stoppedEvolving": "{{pokemonName}} 停止了进化.",
"pauseEvolutionsQuestion": "你确定要停止 {{pokemonName}} 的进化吗?\n你可以在队伍界面中重新进化.",
"evolutionsPaused": "{{pokemonName}} 的进化停止了.",
"evolutionDone": "恭喜!\n你的 {{pokemonName}} 进化成了 {{evolvedPokemonName}}!",
"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": "每日排名",
"weeklyRankings": "每周排名",
"noRankings": "无排名",
"loading": "加载中...",
"loading": "加载中…",
"playersOnline": "在线玩家",
"empty": "空",
"yes": "是",

View File

@ -1,409 +0,0 @@
import { ModifierTypeTranslationEntries } from "#app/plugins/i18n";
export const modifierType: ModifierTypeTranslationEntries = {
ModifierType: {
"AddPokeballModifierType": {
name: "{{modifierCount}}x {{pokeballName}}",
description: "获得 {{pokeballName}} x{{modifierCount}} (已有:{{pokeballAmount}}) \n捕捉倍率{{catchRate}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "获得 {{voucherTypeName}} x{{modifierCount}}",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} 无法携带\n这个物品",
"tooMany": "{{pokemonName}} 已有太多\n这个物品",
}
},
"PokemonHpRestoreModifierType": {
description: "为一只宝可梦回复 {{restorePoints}} HP 或 {{restorePercent}}% HP取最大值",
extra: {
"fully": "为一只宝可梦回复全部HP",
"fullyWithStatus": "为一只宝可梦回复全部HP并消除所有负面状态",
}
},
"PokemonReviveModifierType": {
description: "复活一只宝可梦并回复 {{restorePercent}}% HP",
},
"PokemonStatusHealModifierType": {
description: "为一只宝可梦消除所有负面状态",
},
"PokemonPpRestoreModifierType": {
description: "为一只宝可梦的一个招式回复 {{restorePoints}} PP",
extra: {
"fully": "完全回复一只宝可梦一个招式的PP",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "为一只宝可梦的所有招式回复 {{restorePoints}} PP",
extra: {
"fully": "为一只宝可梦的所有招式回复所有PP",
}
},
"PokemonPpUpModifierType": {
description: "为一只宝可梦的一个招式永久增加{{upPoints}}点PP每5点当前最大PP (最多3点)",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}}薄荷",
description: "将一只宝可梦的性格改为{{natureName}}并为该宝可梦永久解锁该性格.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "接下来的{{battleCount}}场战斗是双打的概率翻倍",
},
"TempBattleStatBoosterModifierType": {
description: "为所有成员宝可梦提升一级{{tempBattleStatName}}持续5场战斗",
},
"AttackTypeBoosterModifierType": {
description: "一只宝可梦的{{moveType}}系招式威力提升20%",
},
"PokemonLevelIncrementModifierType": {
description: "一只宝可梦等级提升1级",
},
"AllPokemonLevelIncrementModifierType": {
description: "所有成员宝可梦等级提升1级",
},
"PokemonBaseStatBoosterModifierType": {
description: "增加持有者的{{statName}}10%. 个体值越高堆叠上限越高.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "所有宝可梦完全回复HP",
},
"AllPokemonFullReviveModifierType": {
description: "复活所有濒死宝可梦完全回复HP",
},
"MoneyRewardModifierType": {
description: "获得{{moneyMultiplier}}金钱 (₽{{moneyAmount}})",
extra: {
"small": "少量",
"moderate": "中等",
"large": "大量",
},
},
"ExpBoosterModifierType": {
description: "EXP.获取量增加{{boostPercent}}%",
},
"PokemonExpBoosterModifierType": {
description: "持有者EXP.获取量增加{{boostPercent}}%",
},
"PokemonFriendshipBoosterModifierType": {
description: "每场战斗获得的好感度提升50%",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "招式命中率增加{{accuracyAmount}} (最大100)",
},
"PokemonMultiHitModifierType": {
description: "攻击造成一次额外伤害每次堆叠额外伤害分别衰减60/75/82.5%",
},
"TmModifierType": {
name: "招式学习器 {{moveId}} - {{moveName}}",
description: "教会一只宝可梦{{moveName}}",
},
"EvolutionItemModifierType": {
description: "使某些宝可梦进化",
},
"FormChangeItemModifierType": {
description: "使某些宝可梦更改形态",
},
"FusePokemonModifierType": {
description: "融合两只宝可梦 (改变特性, 平分基础点数和属性, 共享招式池)",
},
"TerastallizeModifierType": {
name: "{{teraType}}太晶碎块",
description: "持有者获得{{teraType}}太晶化10场战斗",
},
"ContactHeldItemTransferChanceModifierType": {
description: "攻击时{{chancePercent}}%概率偷取对手物品",
},
"TurnHeldItemTransferModifierType": {
description: "持有者每回合从对手那里获得一个持有的物品",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "攻击时{{chancePercent}}%概率造成{{statusEffect}}",
},
"EnemyEndureChanceModifierType": {
description: "增加{{chancePercent}}%遭受攻击的概率",
},
"RARE_CANDY": { name: "神奇糖果" },
"RARER_CANDY": { name: "超神奇糖果" },
"MEGA_BRACELET": { name: "超级手镯", description: "能让携带着超级石战斗的宝可梦进行超级进化" },
"DYNAMAX_BAND": { name: "极巨腕带", description: "能让携带着极巨菇菇战斗的宝可梦进行极巨化" },
"TERA_ORB": { name: "太晶珠", description: "能让携带着太晶碎块战斗的宝可梦进行太晶化" },
"MAP": { name: "地图", description: "允许你在切换宝可梦群落时选择目的地"},
"POTION": { name: "伤药" },
"SUPER_POTION": { name: "好伤药" },
"HYPER_POTION": { name: "厉害伤药" },
"MAX_POTION": { name: "全满药" },
"FULL_RESTORE": { name: "全复药" },
"REVIVE": { name: "活力碎片" },
"MAX_REVIVE": { name: "活力块" },
"FULL_HEAL": { name: "万灵药" },
"SACRED_ASH": { name: "圣灰" },
"REVIVER_SEED": { name: "复活种子", description: "恢复1只濒死宝可梦的HP至1/2" },
"ETHER": { name: "PP单项小补剂" },
"MAX_ETHER": { name: "PP单项全补剂" },
"ELIXIR": { name: "PP多项小补剂" },
"MAX_ELIXIR": { name: "PP多项全补剂" },
"PP_UP": { name: "PP提升剂" },
"PP_MAX": { name: "PP极限提升剂" },
"LURE": { name: "引虫香水" },
"SUPER_LURE": { name: "白银香水" },
"MAX_LURE": { name: "黄金香水" },
"MEMORY_MUSHROOM": { name: "回忆蘑菇", description: "回忆一个宝可梦已经遗忘的招式" },
"EXP_SHARE": { name: "学习装置", description: "未参加对战的宝可梦获得20%的经验值" },
"EXP_BALANCE": { name: "均衡型学习装置", description: "增加战斗中获得的EXP.分配给低级成员宝可梦的权重" },
"OVAL_CHARM": { name: "圆形护符", description: "当多只宝可梦参与战斗, 分别获得总EXP.10%的额外EXP." },
"EXP_CHARM": { name: "经验护符" },
"SUPER_EXP_CHARM": { name: "超级经验护符" },
"GOLDEN_EXP_CHARM": { name: "黄金经验护符" },
"LUCKY_EGG": { name: "幸运蛋" },
"GOLDEN_EGG": { name: "金蛋" },
"SOOTHE_BELL": { name: "安抚之铃" },
"SOUL_DEW": { name: "心之水滴", description: "增加宝可梦性格影响10% (加算)" },
"NUGGET": { name: "金珠" },
"BIG_NUGGET": { name: "巨大金珠" },
"RELIC_GOLD": { name: "古代金币" },
"AMULET_COIN": { name: "护符金币", description: "金钱奖励增加20%" },
"GOLDEN_PUNCH": { name: "黄金拳头", description: "将50%造成的伤害转换为金钱" },
"COIN_CASE": { name: "代币盒", description: "每十场战斗, 获得自己金钱10%的利息" },
"LOCK_CAPSULE": { name: "上锁的容器", description: "允许在刷新物品时锁定物品稀有度" },
"GRIP_CLAW": { name: "紧缠钩爪" },
"WIDE_LENS": { name: "广角镜" },
"MULTI_LENS": { name: "多重镜" },
"HEALING_CHARM": { name: "治愈护符", description: "HP回复量增加10% (含复活)" },
"CANDY_JAR": { name: "糖果罐", description: "神奇糖果提供的升级提升1级" },
"BERRY_POUCH": { name: "树果袋", description: "使用树果时有25%的几率不会消耗树果" },
"FOCUS_BAND": { name: "气势头带", description: "携带该道具的宝可梦有10%几率在受到攻击而将陷入濒死状态时保留1点HP不陷入濒死状态。" },
"QUICK_CLAW": { name: "先制之爪", description: "有10%的几率无视速度优先使出招式 (先制技能优先)" },
"KINGS_ROCK": { name: "王者之证", description: "携带该道具的宝可梦使用任意原本不会造成畏缩状态的攻击招式并造成伤害时有10%几率使目标陷入畏缩状态。" },
"LEFTOVERS": { name: "吃剩的东西", description: "携带该道具的宝可梦在每个回合结束时恢复最大HP的1/16" },
"SHELL_BELL": { name: "贝壳之铃", description: "携带该道具的宝可梦在攻击对方成功造成伤害时携带者的HP会恢复其所造成伤害的1/8" },
"BATON": { name: "接力棒", description: "允许在切换宝可梦时保留能力变化, 对陷阱同样生效" },
"SHINY_CHARM": { name: "闪耀护符", description: "显著增加野生宝可梦的闪光概率" },
"ABILITY_CHARM": { name: "特性护符", description: "显著增加野生宝可梦有隐藏特性的概率" },
"IV_SCANNER": { name: "个体值探测器", description: "允许扫描野生宝可梦的个体值。 每个次显示2个个体值. 最好的个体值优先显示" },
"DNA_SPLICERS": { name: "基因之楔" },
"MINI_BLACK_HOLE": { name: "迷你黑洞" },
"GOLDEN_POKEBALL": { name: "黄金精灵球", description: "在每场战斗结束后增加一个额外物品选项" },
"ENEMY_DAMAGE_BOOSTER": { name: "伤害硬币", description: "增加5%造成伤害" },
"ENEMY_DAMAGE_REDUCTION": { name: "防御硬币", description: "减少2.5%承受伤害" },
"ENEMY_HEAL": { name: "回复硬币", description: "每回合回复2%最大HP" },
"ENEMY_ATTACK_POISON_CHANCE": { name: "剧毒硬币" },
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "麻痹硬币" },
"ENEMY_ATTACK_SLEEP_CHANCE": { name: "睡眠硬币" },
"ENEMY_ATTACK_FREEZE_CHANCE": { name: "冰冻硬币" },
"ENEMY_ATTACK_BURN_CHANCE": { name: "灼烧硬币" },
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "万灵药硬币", description: "增加10%每回合治愈异常状态的概率" },
"ENEMY_ENDURE_CHANCE": { name: "忍受硬币" },
"ENEMY_FUSED_CHANCE": { name: "融合硬币", description: "增加1%野生融合宝可梦出现概率" },
},
TempBattleStatBoosterItem: {
"x_attack": "力量强化",
"x_defense": "防御强化",
"x_sp_atk": "特攻强化",
"x_sp_def": "特防强化",
"x_speed": "速度强化",
"x_accuracy": "命中强化",
"dire_hit": "要害攻击",
},
AttackTypeBoosterItem: {
"silk_scarf": "丝绸围巾",
"black_belt": "黑带",
"sharp_beak": "锐利鸟嘴",
"poison_barb": "毒针",
"soft_sand": "柔软沙子",
"hard_stone": "硬石头",
"silver_powder": "银粉",
"spell_tag": "诅咒之符",
"metal_coat": "金属膜",
"charcoal": "木炭",
"mystic_water": "神秘水滴",
"miracle_seed": "奇迹种子",
"magnet": "磁铁",
"twisted_spoon": "弯曲的汤匙",
"never_melt_ice": "不融冰",
"dragon_fang": "龙之牙",
"black_glasses": "黑色眼镜",
"fairy_feather": "妖精之羽",
},
BaseStatBoosterItem: {
"hp_up": "HP增强剂",
"protein": "攻击增强剂",
"iron": "防御增强剂",
"calcium": "特攻增强剂",
"zinc": "特防增强剂",
"carbos": "速度增强剂",
},
EvolutionItem: {
"NONE": "None",
"LINKING_CORD": "联系绳",
"SUN_STONE": "日之石",
"MOON_STONE": "月之石",
"LEAF_STONE": "叶之石",
"FIRE_STONE": "火之石",
"WATER_STONE": "水之石",
"THUNDER_STONE": "雷之石",
"ICE_STONE": "冰之石",
"DUSK_STONE": "暗之石",
"DAWN_STONE": "觉醒之石",
"SHINY_STONE": "光之石",
"CRACKED_POT": "破裂的茶壶",
"SWEET_APPLE": "甜甜苹果",
"TART_APPLE": "酸酸苹果",
"STRAWBERRY_SWEET": "草莓糖饰",
"UNREMARKABLE_TEACUP": "凡作茶碗",
"CHIPPED_POT": "缺损的茶壶",
"BLACK_AUGURITE": "黑奇石",
"GALARICA_CUFF": "伽勒豆蔻手环",
"GALARICA_WREATH": "伽勒豆蔻花圈",
"PEAT_BLOCK": "泥炭块",
"AUSPICIOUS_ARMOR": "庆祝之铠",
"MALICIOUS_ARMOR": "咒术之铠",
"MASTERPIECE_TEACUP": "杰作茶碗",
"METAL_ALLOY": "复合金属",
"SCROLL_OF_DARKNESS": "恶之挂轴",
"SCROLL_OF_WATERS": "水之挂轴",
"SYRUPY_APPLE": "蜜汁苹果",
},
FormChangeItem: {
"NONE": "None",
"ABOMASITE": "暴雪王进化石",
"ABSOLITE": "阿勃梭鲁进化石",
"AERODACTYLITE": "化石翼龙进化石",
"AGGRONITE": "波士可多拉进化石",
"ALAKAZITE": "胡地进化石",
"ALTARIANITE": "七夕青鸟进化石",
"AMPHAROSITE": "电龙进化石",
"AUDINITE": "差不多娃娃进化石",
"BANETTITE": "诅咒娃娃进化石",
"BEEDRILLITE": "大针蜂进化石",
"BLASTOISINITE": "水箭龟进化石",
"BLAZIKENITE": "火焰鸡进化石",
"CAMERUPTITE": "喷火驼进化石",
"CHARIZARDITE_X": "喷火龙进化石X",
"CHARIZARDITE_Y": "喷火龙进化石Y",
"DIANCITE": "蒂安希进化石",
"GALLADITE": "艾路雷朵进化石",
"GARCHOMPITE": "烈咬陆鲨进化石",
"GARDEVOIRITE": "沙奈朵进化石",
"GENGARITE": "耿鬼进化石",
"GLALITITE": "冰鬼护进化石",
"GYARADOSITE": "暴鲤龙进化石",
"HERACRONITE": "赫拉克罗斯进化石",
"HOUNDOOMINITE": "黑鲁加进化石",
"KANGASKHANITE": "袋兽进化石",
"LATIASITE": "拉帝亚斯进化石",
"LATIOSITE": "拉帝欧斯进化石",
"LOPUNNITE": "长耳兔进化石",
"LUCARIONITE": "路卡利欧进化石",
"MANECTITE": "雷电兽进化石",
"MAWILITE": "大嘴娃进化石",
"MEDICHAMITE": "恰雷姆进化石",
"METAGROSSITE": "巨金怪进化石",
"MEWTWONITE_X": "超梦进化石X",
"MEWTWONITE_Y": "超梦进化石Y",
"PIDGEOTITE": "大比鸟进化石",
"PINSIRITE": "凯罗斯进化石",
"RAYQUAZITE": "烈空坐进化石",
"SABLENITE": "勾魂眼进化石",
"SALAMENCITE": "暴飞龙进化石",
"SCEPTILITE": "蜥蜴王进化石",
"SCIZORITE": "巨钳螳螂进化石",
"SHARPEDONITE": "巨牙鲨进化石",
"SLOWBRONITE": "呆壳兽进化石",
"STEELIXITE": "大钢蛇进化石",
"SWAMPERTITE": "巨沼怪进化石",
"TYRANITARITE": "班基拉斯进化石",
"VENUSAURITE": "妙蛙花进化石",
"BLUE_ORB": "靛蓝色宝珠",
"RED_ORB": "朱红色宝珠",
"SHARP_METEORITE": "锐利陨石",
"HARD_METEORITE": "坚硬陨石",
"SMOOTH_METEORITE": "光滑陨石",
"ADAMANT_CRYSTAL": "大金刚宝玉",
"LUSTROUS_ORB": "白玉宝珠",
"GRISEOUS_CORE": "大白金宝玉",
"REVEAL_GLASS": "现形镜",
"GRACIDEA": "葛拉西蒂亚花",
"MAX_MUSHROOMS": "极巨菇菇",
"DARK_STONE": "黑暗石",
"LIGHT_STONE": "光明石",
"PRISON_BOTTLE": "惩戒之壶",
"N_LUNARIZER": "奈克洛露奈合体器",
"N_SOLARIZER": "奈克洛索尔合体器",
"RUSTED_SWORD": "腐朽的剑",
"RUSTED_SHIELD": "腐朽的盾",
"ICY_REINS_OF_UNITY": "牵绊缰绳(冰)",
"SHADOW_REINS_OF_UNITY": "牵绊缰绳(幽灵)",
"WELLSPRING_MASK": "水井面具",
"HEARTHFLAME_MASK": "火灶面具",
"CORNERSTONE_MASK": "础石面具",
"SHOCK_DRIVE": "闪电卡带",
"BURN_DRIVE": "火焰卡带",
"CHILL_DRIVE": "冰冻卡带",
"DOUSE_DRIVE": "水流卡带",
},
TeraType: {
"UNKNOWN": "Unknown",
"NORMAL": "一般",
"FIGHTING": "格斗",
"FLYING": "飞行",
"POISON": "毒",
"GROUND": "地面",
"ROCK": "岩石",
"BUG": "虫",
"GHOST": "幽灵",
"STEEL": "钢",
"FIRE": "火",
"WATER": "水",
"GRASS": "草",
"ELECTRIC": "电",
"PSYCHIC": "超能力",
"ICE": "冰",
"DRAGON": "龙",
"DARK": "恶",
"FAIRY": "妖精",
"STELLAR": "星晶",
},
} as const;

View File

@ -1,29 +1,29 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const nature: SimpleTranslationEntries = {
"Hardy": "勤奋",
"Lonely": "怕寂寞",
"Brave": "勇敢",
"Adamant": "固执",
"Naughty": "顽皮",
"Bold": "大胆",
"Docile": "坦率",
"Relaxed": "悠闲",
"Impish": "淘气",
"Lax": "乐天",
"Timid": "胆小",
"Hasty": "急躁",
"Serious": "认真",
"Jolly": "爽朗",
"Naive": "天真",
"Modest": "内敛",
"Mild": "慢吞吞",
"Quiet": "冷静",
"Bashful": "害羞",
"Rash": "马虎",
"Calm": "温和",
"Gentle": "温顺",
"Sassy": "自大",
"Careful": "慎重",
"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;

View File

@ -38,7 +38,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
"cycleVariant": 'V: 切换变种',
"enablePassive": "启用被动",
"disablePassive": "禁用被动",
"locked": "未解锁",
"disabled": "已禁用",
"uncaught": "未捕获"
"locked": "Locked",
"disabled": "Disabled",
"uncaught": "Uncaught"
}

View File

@ -1,218 +0,0 @@
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",
// 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",
"artist": "Artist",
"artist_female": "Artist",
"backers": "Backers",
"backpacker": "Backpacker",
"backpacker_female": "Backpacker",
"baker": "Baker",
"battle_girl": "Battle Girl",
"beauty": "Beauty",
"biker": "Biker",
"black_belt": "Black Belt",
"breeder": "Breeder",
"breeder_female": "Breeder",
"clerk": "Clerk",
"clerk_female": "Clerk",
"cyclist": "Cyclist",
"cyclist_female": "Cyclist",
"dancer": "Dancer",
"dancer_female": "Dancer",
"depot_agent": "Depot Agent",
"doctor": "Doctor",
"doctor_female": "Doctor",
"fishermen": "Fishermen",
"fishermen_female": "Fishermen",
"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",
"musican": "Musician",
"hex_maniac": "Hex Maniac",
"nurse": "Nurse",
"nursery_aide": "Nursery Aide",
"officer": "Officer",
"parasol_lady": "Parasol Lady",
"pilot": "Pilot",
"pokefan": "Poké Fan",
"preschooler": "Preschooler",
"preschooler_female": "Preschooler",
"psychic": "Psychic",
"psychic_female": "Psychic",
"ranger": "Ranger",
"rich": "Gentleman", // Gentleman is the english name but the trainerType is rich
"rich_kid": "Rich Boy",
"roughneck": "Roughneck",
"scientist": "Scientist",
"scientist_female": "Scientist",
"smasher": "Smasher",
"snow_worker": "Snow Worker",
"snow_worker_female": "Snow Worker",
"striker": "Striker",
"school_kid": "School Kid",
"school_kid_female": "School Kid",
"swimmer": "Swimmer",
"swimmer_female": "Swimmer",
"twins": "Twins",
"veteran": "Veteran",
"veteran_female": "Veteran",
"waiter": "Waiter",
"waitress": "Waitress",
"worker": "Worker",
"worker_female": "Worker",
"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",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel",
"crispin": "Crispin",
"amarys": "Amarys",
"lacey": "Lacey",
"drayton": "Drayton",
"blue": "Blue",
"red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Steven",
"wallace": "Wallace",
"cynthia": "Cynthia",
"alder": "Alder",
"iris": "Iris",
"diantha": "Diantha",
"hau": "Hau",
"geeta": "Geeta",
"nemona": "Nemona",
"kieran": "Kieran",
"leon": "Leon",
"rival": "Rival",
} as const;

View File

@ -4,41 +4,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
* The weather namespace holds text displayed when weather is active during a battle
*/
export const weather: SimpleTranslationEntries = {
"sunnyStartMessage": "日照变强了!",
"sunnyLapseMessage": "日照很强。",
"sunnyClearMessage": "日照复原了。",
"sunnyStartMessage": "The sunlight got bright!",
"sunnyLapseMessage": "The sunlight is strong.",
"sunnyClearMessage": "The sunlight faded.",
"rainStartMessage": "下大雨了!",
"rainLapseMessage": "雨继续下。",
"rainClearMessage": "雨停了。",
"rainStartMessage": "A downpour started!",
"rainLapseMessage": "The downpour continues.",
"rainClearMessage": "The rain stopped.",
"sandstormStartMessage": "开始刮沙尘暴了!",
"sandstormLapseMessage": "沙尘暴肆虐。",
"sandstormClearMessage": "沙尘暴停止了。",
"sandstormDamageMessage": "沙尘暴袭击了{{pokemonPrefix}}{{pokemonName}}!",
"sandstormStartMessage": "A sandstorm brewed!",
"sandstormLapseMessage": "The sandstorm rages.",
"sandstormClearMessage": "The sandstorm subsided.",
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
"hailStartMessage": "开始下冰雹了!",
"hailLapseMessage": "冰雹继续肆虐。",
"hailClearMessage": "冰雹不再下了。",
"hailDamageMessage": "冰雹袭击了{{pokemonPrefix}}{{pokemonName}}!",
"hailStartMessage": "It started to hail!",
"hailLapseMessage": "Hail continues to fall.",
"hailClearMessage": "The hail stopped.",
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
"snowStartMessage": "开始下雪了!",
"snowLapseMessage": "雪继续下。",
"snowClearMessage": "雪停了。",
"snowStartMessage": "It started to snow!",
"snowLapseMessage": "The snow is falling down.",
"snowClearMessage": "The snow stopped.",
"fogStartMessage": "起雾了!",
"fogLapseMessage": "雾很浓。",
"fogClearMessage": "雾散了。",
"fogStartMessage": "A thick fog emerged!",
"fogLapseMessage": "The fog continues.",
"fogClearMessage": "The fog disappeared.",
"heavyRainStartMessage": "开始下起了暴雨!",
"heavyRainLapseMessage": "暴雨势头不减。",
"heavyRainClearMessage": "暴雨停了。",
"heavyRainStartMessage": "A heavy downpour started!",
"heavyRainLapseMessage": "The heavy downpour continues.",
"heavyRainClearMessage": "The heavy rain stopped.",
"harshSunStartMessage": "日照变得非常强了!",
"harshSunLapseMessage": "强日照势头不减。",
"harshSunClearMessage": "日照复原了。",
"harshSunStartMessage": "The sunlight got hot!",
"harshSunLapseMessage": "The sun is scorching hot.",
"harshSunClearMessage": "The harsh sunlight faded.",
"strongWindsStartMessage": "吹起了神秘的乱流!",
"strongWindsLapseMessage": "神秘的乱流势头不减。",
"strongWindsClearMessage": "神秘的乱流停止了。"
"strongWindsStartMessage": "A heavy wind began!",
"strongWindsLapseMessage": "The wind blows intensely.",
"strongWindsClearMessage": "The heavy wind stopped."
}

File diff suppressed because it is too large Load Diff

View File

@ -2270,8 +2270,12 @@ export class MovePhase extends BattlePhase {
}
const targets = this.scene.getField(true).filter(p => {
if (this.targets.indexOf(p.getBattlerIndex()) > -1)
if (this.targets.indexOf(p.getBattlerIndex()) > -1) {
const hiddenTag = p.getTag(HiddenTag);
if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length && !p.hasAbilityWithAttr(AlwaysHitAbAttr) && !this.pokemon.hasAbilityWithAttr(AlwaysHitAbAttr))
return false;
return true;
}
return false;
});
@ -2312,17 +2316,10 @@ export class MovePhase extends BattlePhase {
if (this.move.moveId)
this.showMoveText();
// This should only happen when there are no valid targets left on the field
if ((moveQueue.length && moveQueue[0].move === Moves.NONE) || !targets.length) {
this.showFailedText();
this.cancel();
// Record a failed move so Abilities like Truant don't trigger next turn and soft-lock
this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL });
this.pokemon.lapseTags(BattlerTagLapseType.MOVE_EFFECT); // Remove any tags from moves like Fly/Dive/etc.
if ((moveQueue.length && moveQueue[0].move === Moves.NONE) || (!targets.length && !this.move.getMove().getAttrs(SacrificialAttr).length)) {
moveQueue.shift();
this.cancel();
this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL });
return this.end();
}
@ -2593,14 +2590,13 @@ export class MoveEffectPhase extends PokemonPhase {
if (user.hasAbilityWithAttr(AlwaysHitAbAttr) || target.hasAbilityWithAttr(AlwaysHitAbAttr))
return true;
// If the user should ignore accuracy on a target, check who the user targeted last turn and see if they match
if (user.getTag(BattlerTagType.IGNORE_ACCURACY) && (user.getLastXMoves().slice(1).find(() => true)?.targets || []).indexOf(target.getBattlerIndex()) !== -1)
return true;
const hiddenTag = target.getTag(HiddenTag);
if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length)
return false;
if (user.getTag(BattlerTagType.IGNORE_ACCURACY) && (user.getLastXMoves().find(() => true)?.targets || []).indexOf(target.getBattlerIndex()) > -1)
return true;
const moveAccuracy = new Utils.NumberHolder(this.move.getMove().accuracy);
applyMoveAttrs(VariableAccuracyAttr, user, target, this.move.getMove(), moveAccuracy);

View File

@ -8,6 +8,7 @@ import { frConfig } from '#app/locales/fr/config.js';
import { itConfig } from '#app/locales/it/config.js';
import { ptBrConfig } from '#app/locales/pt_BR/config.js';
import { zhCnConfig } from '#app/locales/zh_CN/config.js';
export interface SimpleTranslationEntries {
[key: string]: string
}
@ -30,39 +31,16 @@ export interface AbilityTranslationEntries {
[key: string]: AbilityTranslationEntry
}
export interface ModifierTypeTranslationEntry {
name?: string,
description?: string,
extra?: SimpleTranslationEntries
}
export interface ModifierTypeTranslationEntries {
ModifierType: { [key: string]: ModifierTypeTranslationEntry },
AttackTypeBoosterItem: SimpleTranslationEntries,
TempBattleStatBoosterItem: SimpleTranslationEntries,
BaseStatBoosterItem: SimpleTranslationEntries,
EvolutionItem: SimpleTranslationEntries,
FormChangeItem: SimpleTranslationEntries,
TeraType: SimpleTranslationEntries,
}
export interface Localizable {
localize(): void;
}
export function initI18n(): void {
// Prevent reinitialization
if (isInitialized) {
return;
}
isInitialized = true;
let lang = '';
if (localStorage.getItem('prLang'))
lang = localStorage.getItem('prLang');
/**
* i18next is a localization library for maintaining and using translation resources.
*
@ -128,25 +106,13 @@ declare module 'i18next' {
pokemonStat: SimpleTranslationEntries;
commandUiHandler: SimpleTranslationEntries;
fightUiHandler: SimpleTranslationEntries;
titles: SimpleTranslationEntries;
trainerClasses: SimpleTranslationEntries;
trainerNames: SimpleTranslationEntries;
tutorial: SimpleTranslationEntries;
starterSelectUiHandler: SimpleTranslationEntries;
splashMessages: SimpleTranslationEntries;
nature: SimpleTranslationEntries;
growth: SimpleTranslationEntries;
egg: SimpleTranslationEntries;
weather: SimpleTranslationEntries;
modifierType: ModifierTypeTranslationEntries;
};
}
}
export default i18next;
export function getIsInitialized(): boolean {
return isInitialized;
}
let isInitialized = false;

View File

@ -10,7 +10,8 @@ import { addWindow } from "./ui-theme";
import { Tutorial, handleTutorial } from "../tutorial";
import { EggTier } from "../data/enums/egg-type";
import {Button} from "../enums/buttons";
import i18next from '../plugins/i18n';
const defaultText = 'Select a machine.';
export default class EggGachaUiHandler extends MessageUiHandler {
private eggGachaContainer: Phaser.GameObjects.Container;
@ -32,7 +33,6 @@ export default class EggGachaUiHandler extends MessageUiHandler {
private cursorObj: Phaser.GameObjects.Image;
private transitioning: boolean;
private transitionCancelled: boolean;
private defaultText: string;
constructor(scene: BattleScene) {
super(scene, Mode.EGG_GACHA);
@ -43,7 +43,6 @@ export default class EggGachaUiHandler extends MessageUiHandler {
this.gachaInfoContainers = [];
this.voucherCountLabels = [];
this.defaultText = i18next.t('egg:selectMachine');
}
setup() {
@ -152,27 +151,8 @@ export default class EggGachaUiHandler extends MessageUiHandler {
this.eggGachaOptionSelectBg.setOrigin(1, 1);
this.eggGachaOptionsContainer.add(this.eggGachaOptionSelectBg);
const pullOptions = [
{ multiplier: 'x1', description: `1 ${i18next.t('egg:pull')}` },
{ multiplier: 'x10', description: `10 ${i18next.t('egg:pulls')}` },
{ multiplier: 'x1', description: `5 ${i18next.t('egg:pulls')}` },
{ multiplier: 'x1', description: `10 ${i18next.t('egg:pulls')}` },
{ multiplier: 'x1', description: `25 ${i18next.t('egg:pulls')}` }
];
const pullOptionsText = pullOptions.map(option => ` ${option.multiplier.padEnd(4)} ${option.description}`).join('\n');
const optionText = addTextObject(
this.scene,
0,
0,
`${pullOptionsText}\n${i18next.t('menu:cancel')}`,
TextStyle.WINDOW,
);
optionText.setLineSpacing(28);
optionText.setFontSize('80px');
const optionText = addTextObject(this.scene, 0, 0, ' x1 1 Pull\n x10 10 Pulls\n x1 5 Pulls\n x1 10 Pulls\n x1 25 Pulls\nCancel', TextStyle.WINDOW);
optionText.setLineSpacing(12);
this.eggGachaOptionsContainer.add(optionText);
optionText.setPositionRelative(this.eggGachaOptionSelectBg, 16, 9);
@ -243,7 +223,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
show(args: any[]): boolean {
super.show(args);
this.getUi().showText(this.defaultText, 0);
this.getUi().showText(defaultText, 0);
this.setGachaCursor(1);
@ -494,7 +474,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
showText(text: string, delay?: number, callback?: Function, callbackDelay?: number, prompt?: boolean, promptDelay?: number): void {
if (!text)
text = this.defaultText;
text = defaultText;
if (text?.indexOf('\n') === -1) {
this.eggGachaMessageBox.setSize(320, 32);
@ -510,7 +490,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
}
showError(text: string): void {
this.showText(text, null, () => this.showText(this.defaultText), Utils.fixedInt(1500));
this.showText(text, null, () => this.showText(defaultText), Utils.fixedInt(1500));
}
setTransitioning(transitioning: boolean): void {
@ -546,27 +526,27 @@ export default class EggGachaUiHandler extends MessageUiHandler {
case 0:
if (!this.scene.gameData.voucherCounts[VoucherType.REGULAR]) {
error = true;
this.showError(i18next.t('egg:notEnoughVouchers'));
this.showError('You don\'t have enough vouchers!');
} else if (this.scene.gameData.eggs.length < 99) {
this.consumeVouchers(VoucherType.REGULAR, 1);
this.pull();
success = true;
} else {
error = true;
this.showError(i18next.t('egg:tooManyEggs'));
this.showError('You have too many eggs!');
}
break;
case 2:
if (!this.scene.gameData.voucherCounts[VoucherType.PLUS]) {
error = true;
this.showError(i18next.t('egg:notEnoughVouchers'));
this.showError('You don\'t have enough vouchers!');
} else if (this.scene.gameData.eggs.length < 95) {
this.consumeVouchers(VoucherType.PLUS, 1);
this.pull(5);
success = true;
} else {
error = true;
this.showError(i18next.t('egg:tooManyEggs'));
this.showError('You have too many eggs!');
}
break;
case 1:
@ -574,7 +554,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
if ((this.cursor === 1 && this.scene.gameData.voucherCounts[VoucherType.REGULAR] < 10)
|| (this.cursor === 3 && !this.scene.gameData.voucherCounts[VoucherType.PREMIUM])) {
error = true;
this.showError(i18next.t('egg:notEnoughVouchers'));
this.showError('You don\'t have enough vouchers!');
} else if (this.scene.gameData.eggs.length < 90) {
if (this.cursor === 3)
this.consumeVouchers(VoucherType.PREMIUM, 1);
@ -584,20 +564,20 @@ export default class EggGachaUiHandler extends MessageUiHandler {
success = true;
} else {
error = true;
this.showError(i18next.t('egg:tooManyEggs'));
this.showError('You have too many eggs!');
}
break;
case 4:
if (!this.scene.gameData.voucherCounts[VoucherType.GOLDEN]) {
error = true;
this.showError(i18next.t('egg:notEnoughVouchers'));
this.showError('You don\'t have enough vouchers!');
} else if (this.scene.gameData.eggs.length < 75) {
this.consumeVouchers(VoucherType.GOLDEN, 1);
this.pull(25);
success = true;
} else {
error = true;
this.showError(i18next.t('egg:tooManyEggs'));
this.showError('You have too many eggs!');
}
break;
case 5:

View File

@ -7,7 +7,6 @@ import { EGG_SEED, Egg, GachaType, getEggGachaTypeDescriptor, getEggHatchWavesMe
import * as Utils from "../utils";
import { addWindow } from "./ui-theme";
import {Button} from "../enums/buttons";
import i18next from '../plugins/i18n';
export default class EggListUiHandler extends MessageUiHandler {
private eggListContainer: Phaser.GameObjects.Container;
@ -166,7 +165,7 @@ export default class EggListUiHandler extends MessageUiHandler {
setEggDetails(egg: Egg): void {
this.eggSprite.setFrame(`egg_${egg.getKey()}`);
this.eggNameText.setText(`${i18next.t('egg:egg')} (${getEggDescriptor(egg)})`);
this.eggNameText.setText(`Egg (${getEggDescriptor(egg)})`);
this.eggDateText.setText(
new Date(egg.timestamp).toLocaleString(undefined, {
weekday: 'short',

View File

@ -4,7 +4,7 @@ import OptionSelectUiHandler from "./option-select-ui-handler";
import { Mode } from "./ui";
import * as Utils from "../utils";
import { TextStyle, addTextObject } from "./text";
import { getBattleCountSplashMessage, getSplashMessages } from "../data/splash-messages";
import { battleCountSplashMessage, splashMessages } from "../data/splash-messages";
import i18next from "i18next";
export default class TitleUiHandler extends OptionSelectUiHandler {
@ -63,8 +63,8 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
.then(request => request.json())
.then(stats => {
this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
if (this.splashMessage === getBattleCountSplashMessage())
this.splashMessageText.setText(getBattleCountSplashMessage().replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
if (this.splashMessage === battleCountSplashMessage)
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
})
.catch(err => {
console.error("Failed to fetch title stats:\n", err);
@ -75,7 +75,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
const ret = super.show(args);
if (ret) {
this.splashMessage = Utils.randItem(getSplashMessages());
this.splashMessage = Utils.randItem(splashMessages);
this.splashMessageText.setText(this.splashMessage.replace('{COUNT}', '?'));
const ui = this.getUi();