mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-15 12:52:20 +02:00
Merge branch 'main' into splash-messages-literals
This commit is contained in:
commit
f55d91ca7c
@ -44,7 +44,8 @@ Check out our [Trello Board](https://trello.com/b/z10B703R/pokerogue-board) to s
|
||||
- Arata Iiyoshi
|
||||
- Atsuhiro Ishizuna
|
||||
- Pokémon Black/White 2
|
||||
- Firel (Additional biome themes)
|
||||
- Firel (Custom Metropolis and Laboratory biome music)
|
||||
- Lmz (Custom Jungle biome music)
|
||||
- edifette (Title screen music)
|
||||
|
||||
### 🎵 Sound Effects
|
||||
|
@ -2,6 +2,7 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>PokéRogue</title>
|
||||
<meta name="description" content="A Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, and reaching Pokémon stats you never thought possible." />
|
||||
<meta name="theme-color" content="#da3838" />
|
||||
@ -12,7 +13,6 @@
|
||||
<link rel="apple-touch-icon" href="./logo512.png" />
|
||||
<link rel="shortcut icon" type="image/png" href="./logo512.png" />
|
||||
<link rel="canonical" href="https://pokerogue.net" />
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
||||
<style type="text/css">
|
||||
@font-face {
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
BIN
public/images/items/quick_claw.png
Normal file
BIN
public/images/items/quick_claw.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 217 B |
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 60 KiB |
@ -7,18 +7,29 @@ export interface UserInfo {
|
||||
}
|
||||
|
||||
export let loggedInUser: UserInfo = null;
|
||||
export const clientSessionId = Utils.randomString(32);
|
||||
|
||||
export function updateUserInfo(): Promise<[boolean, integer]> {
|
||||
return new Promise<[boolean, integer]>(resolve => {
|
||||
if (bypassLogin) {
|
||||
loggedInUser = { username: 'Guest', lastSessionSlot: -1 };
|
||||
let lastSessionSlot = -1;
|
||||
for (let s = 0; s < 2; s++) {
|
||||
if (localStorage.getItem(`sessionData${s ? s : ''}`)) {
|
||||
for (let s = 0; s < 5; s++) {
|
||||
if (localStorage.getItem(`sessionData${s ? s : ''}_${loggedInUser.username}`)) {
|
||||
lastSessionSlot = s;
|
||||
break;
|
||||
}
|
||||
}
|
||||
loggedInUser = { username: 'Guest', lastSessionSlot: lastSessionSlot };
|
||||
loggedInUser.lastSessionSlot = lastSessionSlot;
|
||||
// Migrate old data from before the username was appended
|
||||
[ 'data', 'sessionData', 'sessionData1', 'sessionData2', 'sessionData3', 'sessionData4' ].map(d => {
|
||||
if (localStorage.hasOwnProperty(d)) {
|
||||
if (localStorage.hasOwnProperty(`${d}_${loggedInUser.username}`))
|
||||
localStorage.setItem(`${d}_${loggedInUser.username}_bak`, localStorage.getItem(`${d}_${loggedInUser.username}`));
|
||||
localStorage.setItem(`${d}_${loggedInUser.username}`, localStorage.getItem(d));
|
||||
localStorage.removeItem(d);
|
||||
}
|
||||
});
|
||||
return resolve([ true, 200 ]);
|
||||
}
|
||||
Utils.apiFetch('account/info', true).then(response => {
|
||||
|
@ -88,6 +88,7 @@ export default class BattleScene extends SceneBase {
|
||||
public uiInputs: UiInputs;
|
||||
|
||||
public sessionPlayTime: integer = null;
|
||||
public lastSavePlayTime: integer = null;
|
||||
public masterVolume: number = 0.5;
|
||||
public bgmVolume: number = 1;
|
||||
public seVolume: number = 1;
|
||||
@ -452,6 +453,8 @@ export default class BattleScene extends SceneBase {
|
||||
initSession(): void {
|
||||
if (this.sessionPlayTime === null)
|
||||
this.sessionPlayTime = 0;
|
||||
if (this.lastSavePlayTime === null)
|
||||
this.lastSavePlayTime = 0;
|
||||
|
||||
if (this.playTimeTimer)
|
||||
this.playTimeTimer.destroy();
|
||||
@ -464,6 +467,8 @@ export default class BattleScene extends SceneBase {
|
||||
this.gameData.gameStats.playTime++;
|
||||
if (this.sessionPlayTime !== null)
|
||||
this.sessionPlayTime++;
|
||||
if (this.lastSavePlayTime !== null)
|
||||
this.lastSavePlayTime++;
|
||||
}
|
||||
});
|
||||
|
||||
@ -1007,6 +1012,7 @@ export default class BattleScene extends SceneBase {
|
||||
case Species.FLORGES:
|
||||
case Species.FURFROU:
|
||||
case Species.ORICORIO:
|
||||
case Species.MAGEARNA:
|
||||
case Species.SQUAWKABILLY:
|
||||
case Species.TATSUGIRI:
|
||||
case Species.PALDEA_TAUROS:
|
||||
|
@ -3,7 +3,7 @@ import { Type } from "./type";
|
||||
import * as Utils from "../utils";
|
||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||
import { PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases";
|
||||
import { getPokemonMessage } from "../messages";
|
||||
import { getPokemonMessage, getPokemonPrefix } from "../messages";
|
||||
import { Weather, WeatherType } from "./weather";
|
||||
import { BattlerTag } from "./battler-tags";
|
||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||
@ -144,7 +144,7 @@ export class BlockRecoilDamageAttr extends AbAttr {
|
||||
}
|
||||
|
||||
getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]) {
|
||||
return getPokemonMessage(pokemon, `'s ${abilityName}\nprotected it from recoil!`);
|
||||
return i18next.t('abilityTriggers:blockRecoilDamage', {pokemonName: `${getPokemonPrefix(pokemon)}${pokemon.name}`, abilityName: abilityName});
|
||||
}
|
||||
}
|
||||
|
||||
@ -715,7 +715,7 @@ export class PostDefendContactApplyStatusEffectAbAttr extends PostDefendAbAttr {
|
||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||
if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !attacker.status && (this.chance === -1 || pokemon.randSeedInt(100) < this.chance)) {
|
||||
const effect = this.effects.length === 1 ? this.effects[0] : this.effects[pokemon.randSeedInt(this.effects.length)];
|
||||
return attacker.trySetStatus(effect, true);
|
||||
return attacker.trySetStatus(effect, true, pokemon);
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -991,6 +991,42 @@ export class MoveTypeChangeAttr extends PreAttackAbAttr {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Class for abilities that boost the damage of moves
|
||||
* For abilities that boost the base power of moves, see VariableMovePowerAbAttr
|
||||
* @param damageMultiplier the amount to multiply the damage by
|
||||
* @param condition the condition for this ability to be applied
|
||||
*/
|
||||
export class DamageBoostAbAttr extends PreAttackAbAttr {
|
||||
private damageMultiplier: number;
|
||||
private condition: PokemonAttackCondition;
|
||||
|
||||
constructor(damageMultiplier: number, condition: PokemonAttackCondition){
|
||||
super(true);
|
||||
this.damageMultiplier = damageMultiplier;
|
||||
this.condition = condition;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param pokemon the attacker pokemon
|
||||
* @param passive N/A
|
||||
* @param defender the target pokemon
|
||||
* @param move the move used by the attacker pokemon
|
||||
* @param args Utils.NumberHolder as damage
|
||||
* @returns true if the function succeeds
|
||||
*/
|
||||
applyPreAttack(pokemon: Pokemon, passive: boolean, defender: Pokemon, move: PokemonMove, args: any[]): boolean {
|
||||
if (this.condition(pokemon, defender, move.getMove())) {
|
||||
const power = args[0] as Utils.NumberHolder;
|
||||
power.value = Math.floor(power.value * this.damageMultiplier);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export class MovePowerBoostAbAttr extends VariableMovePowerAbAttr {
|
||||
private condition: PokemonAttackCondition;
|
||||
private powerMultiplier: number;
|
||||
@ -1141,7 +1177,7 @@ export class PostAttackApplyStatusEffectAbAttr extends PostAttackAbAttr {
|
||||
applyPostAttack(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||
if (pokemon != attacker && (!this.contactRequired || move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon)) && pokemon.randSeedInt(100) < this.chance && !pokemon.status) {
|
||||
const effect = this.effects.length === 1 ? this.effects[0] : this.effects[pokemon.randSeedInt(this.effects.length)];
|
||||
return attacker.trySetStatus(effect, true);
|
||||
return attacker.trySetStatus(effect, true, pokemon);
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -1371,6 +1407,23 @@ export class PostSummonMessageAbAttr extends PostSummonAbAttr {
|
||||
}
|
||||
}
|
||||
|
||||
export class PostSummonUnnamedMessageAbAttr extends PostSummonAbAttr {
|
||||
//Attr doesn't force pokemon name on the message
|
||||
private message: string;
|
||||
|
||||
constructor(message: string) {
|
||||
super(true);
|
||||
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||
pokemon.scene.queueMessage(this.message);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class PostSummonAddBattlerTagAbAttr extends PostSummonAbAttr {
|
||||
private tagType: BattlerTagType;
|
||||
private turnCount: integer;
|
||||
@ -2595,8 +2648,8 @@ export class NoFusionAbilityAbAttr extends AbAttr {
|
||||
}
|
||||
|
||||
export class IgnoreTypeImmunityAbAttr extends AbAttr {
|
||||
defenderType: Type;
|
||||
allowedMoveTypes: Type[];
|
||||
private defenderType: Type;
|
||||
private allowedMoveTypes: Type[];
|
||||
|
||||
constructor(defenderType: Type, allowedMoveTypes: Type[]) {
|
||||
super(true);
|
||||
@ -2613,6 +2666,30 @@ export class IgnoreTypeImmunityAbAttr extends AbAttr {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ignores the type immunity to Status Effects of the defender if the defender is of a certain type
|
||||
*/
|
||||
export class IgnoreTypeStatusEffectImmunityAbAttr extends AbAttr {
|
||||
private statusEffect: StatusEffect[];
|
||||
private defenderType: Type[];
|
||||
|
||||
constructor(statusEffect: StatusEffect[], defenderType: Type[]) {
|
||||
super(true);
|
||||
|
||||
this.statusEffect = statusEffect;
|
||||
this.defenderType = defenderType;
|
||||
}
|
||||
|
||||
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||
if (this.statusEffect.includes(args[0] as StatusEffect) && this.defenderType.includes(args[1] as Type)) {
|
||||
cancelled.value = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function applyAbAttrsInternal<TAttr extends AbAttr>(attrType: { new(...args: any[]): TAttr },
|
||||
pokemon: Pokemon, applyFunc: AbAttrApplyFunc<TAttr>, args: any[], isAsync: boolean = false, showAbilityInstant: boolean = false, quiet: boolean = false, passive: boolean = false): Promise<void> {
|
||||
return new Promise(resolve => {
|
||||
@ -3025,7 +3102,8 @@ export function initAbilities() {
|
||||
.attr(BlockCritAbAttr)
|
||||
.ignorable(),
|
||||
new Ability(Abilities.AIR_LOCK, 3)
|
||||
.attr(SuppressWeatherEffectAbAttr, true),
|
||||
.attr(SuppressWeatherEffectAbAttr, true)
|
||||
.attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."),
|
||||
new Ability(Abilities.TANGLED_FEET, 4)
|
||||
.conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), BattleStatMultiplierAbAttr, BattleStat.EVA, 2)
|
||||
.ignorable(),
|
||||
@ -3121,7 +3199,7 @@ export function initAbilities() {
|
||||
.attr(IgnoreOpponentStatChangesAbAttr)
|
||||
.ignorable(),
|
||||
new Ability(Abilities.TINTED_LENS, 4)
|
||||
.attr(MovePowerBoostAbAttr, (user, target, move) => target.getAttackTypeEffectiveness(move.type, user) <= 0.5, 2),
|
||||
.attr(DamageBoostAbAttr, 2, (user, target, move) => target.getAttackTypeEffectiveness(move.type, user) <= 0.5),
|
||||
new Ability(Abilities.FILTER, 4)
|
||||
.attr(ReceivedMoveDamageMultiplierAbAttr,(target, user, move) => target.getAttackTypeEffectiveness(move.type, user) >= 2, 0.75)
|
||||
.ignorable(),
|
||||
@ -3378,7 +3456,7 @@ export function initAbilities() {
|
||||
.attr(MovePowerBoostAbAttr, (user, target, move) => user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.POKEMON, 2),
|
||||
new Ability(Abilities.WATER_BUBBLE, 7)
|
||||
.attr(ReceivedTypeDamageMultiplierAbAttr, Type.FIRE, 0.5)
|
||||
.attr(MoveTypePowerBoostAbAttr, Type.WATER, 1)
|
||||
.attr(MoveTypePowerBoostAbAttr, Type.WATER, 2)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.BURN)
|
||||
.ignorable(),
|
||||
new Ability(Abilities.STEELWORKER, 7)
|
||||
@ -3427,16 +3505,17 @@ export function initAbilities() {
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr),
|
||||
new Ability(Abilities.POWER_CONSTRUCT, 7) // TODO: 10% Power Construct Zygarde isn't accounted for yet. If changed, update Zygarde's getSpeciesFormIndex entry accordingly
|
||||
.attr(PostBattleInitFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
|
||||
.attr(PostSummonFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
|
||||
.attr(PostTurnFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
|
||||
.attr(PostBattleInitFormChangeAbAttr, p => p.getHpRatio() <= 0.5 || p.getFormKey() === 'complete' ? 4 : 2)
|
||||
.attr(PostSummonFormChangeAbAttr, p => p.getHpRatio() <= 0.5 || p.getFormKey() === 'complete' ? 4 : 2)
|
||||
.attr(PostTurnFormChangeAbAttr, p => p.getHpRatio() <= 0.5 || p.getFormKey() === 'complete' ? 4 : 2)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.partial(),
|
||||
new Ability(Abilities.CORROSION, 7)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.CORROSION, 7) // TODO: Test Corrosion against Magic Bounce once it is implemented
|
||||
.attr(IgnoreTypeStatusEffectImmunityAbAttr, [StatusEffect.POISON, StatusEffect.TOXIC], [Type.STEEL, Type.POISON])
|
||||
.partial(),
|
||||
new Ability(Abilities.COMATOSE, 7)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
|
@ -316,7 +316,7 @@ class ToxicSpikesTag extends ArenaTrapTag {
|
||||
}
|
||||
} else if (!pokemon.status) {
|
||||
const toxic = this.layers > 1;
|
||||
if (pokemon.trySetStatus(!toxic ? StatusEffect.POISON : StatusEffect.TOXIC, true, null, `the ${this.getMoveName()}`))
|
||||
if (pokemon.trySetStatus(!toxic ? StatusEffect.POISON : StatusEffect.TOXIC, true, null, 0, `the ${this.getMoveName()}`))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -544,6 +544,33 @@ export class AquaRingTag extends BattlerTag {
|
||||
}
|
||||
}
|
||||
|
||||
/** Tag used to allow moves that interact with {@link Moves.MINIMIZE} to function */
|
||||
export class MinimizeTag extends BattlerTag {
|
||||
constructor() {
|
||||
super(BattlerTagType.MINIMIZED, BattlerTagLapseType.TURN_END, 1, Moves.MINIMIZE, undefined);
|
||||
}
|
||||
|
||||
canAdd(pokemon: Pokemon): boolean {
|
||||
return !pokemon.isMax();
|
||||
}
|
||||
|
||||
onAdd(pokemon: Pokemon): void {
|
||||
super.onAdd(pokemon);
|
||||
}
|
||||
|
||||
lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean {
|
||||
//If a pokemon dynamaxes they lose minimized status
|
||||
if(pokemon.isMax()){
|
||||
return false
|
||||
}
|
||||
return lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType);
|
||||
}
|
||||
|
||||
onRemove(pokemon: Pokemon): void {
|
||||
super.onRemove(pokemon);
|
||||
}
|
||||
}
|
||||
|
||||
export class DrowsyTag extends BattlerTag {
|
||||
constructor() {
|
||||
super(BattlerTagType.DROWSY, BattlerTagLapseType.TURN_END, 2, Moves.YAWN);
|
||||
@ -819,7 +846,7 @@ export class ContactPoisonProtectedTag extends ProtectedTag {
|
||||
const effectPhase = pokemon.scene.getCurrentPhase();
|
||||
if (effectPhase instanceof MoveEffectPhase && effectPhase.move.getMove().hasFlag(MoveFlags.MAKES_CONTACT)) {
|
||||
const attacker = effectPhase.getPokemon();
|
||||
attacker.trySetStatus(StatusEffect.POISON, true);
|
||||
attacker.trySetStatus(StatusEffect.POISON, true, pokemon);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1358,6 +1385,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
|
||||
return new TypeBoostTag(tagType, sourceMove, Type.ELECTRIC, 2, true);
|
||||
case BattlerTagType.MAGNET_RISEN:
|
||||
return new MagnetRisenTag(tagType, sourceMove);
|
||||
case BattlerTagType.MINIMIZED:
|
||||
return new MinimizeTag();
|
||||
case BattlerTagType.NONE:
|
||||
default:
|
||||
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
|
||||
|
@ -48,7 +48,7 @@ export const biomeLinks: BiomeLinks = {
|
||||
[Biome.SEABED]: [ Biome.CAVE, [ Biome.VOLCANO, 4 ] ],
|
||||
[Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.WASTELAND, 3 ] ],
|
||||
[Biome.BADLANDS]: [ Biome.DESERT, Biome.MOUNTAIN ],
|
||||
[Biome.CAVE]: [ Biome.BADLANDS, Biome.BEACH ],
|
||||
[Biome.CAVE]: [ Biome.BADLANDS, Biome.LAKE ],
|
||||
[Biome.DESERT]: Biome.RUINS,
|
||||
[Biome.ICE_CAVE]: Biome.SNOWY_FOREST,
|
||||
[Biome.MEADOW]: [ Biome.PLAINS, [ Biome.FAIRY_CAVE, 2 ] ],
|
||||
@ -7871,4 +7871,4 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(pokemonBiomes, null, ' '));*/
|
||||
}
|
||||
}
|
||||
|
@ -13,14 +13,15 @@ export interface DailyRunConfig {
|
||||
}
|
||||
|
||||
export function fetchDailyRunSeed(): Promise<string> {
|
||||
return new Promise<string>(resolve => {
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
Utils.apiFetch('daily/seed').then(response => {
|
||||
if (!response.ok) {
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
return response.text();
|
||||
}).then(seed => resolve(seed));
|
||||
}).then(seed => resolve(seed))
|
||||
.catch(err => reject(err));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ 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;
|
||||
|
||||
@ -56,34 +57,34 @@ export function getEggDescriptor(egg: Egg): string {
|
||||
return 'Manaphy';
|
||||
switch (egg.tier) {
|
||||
case EggTier.GREAT:
|
||||
return 'Rare';
|
||||
return i18next.t('egg:greatTier');
|
||||
case EggTier.ULTRA:
|
||||
return 'Epic';
|
||||
return i18next.t('egg:ultraTier');
|
||||
case EggTier.MASTER:
|
||||
return 'Legendary';
|
||||
return i18next.t('egg:masterTier');
|
||||
default:
|
||||
return 'Common';
|
||||
return i18next.t('egg:defaultTier');
|
||||
}
|
||||
}
|
||||
|
||||
export function getEggHatchWavesMessage(hatchWaves: integer): string {
|
||||
if (hatchWaves <= 5)
|
||||
return 'Sounds can be heard coming from inside! It will hatch soon!';
|
||||
return i18next.t('egg:hatchWavesMessageSoon');
|
||||
if (hatchWaves <= 15)
|
||||
return 'It appears to move occasionally. It may be close to hatching.';
|
||||
return i18next.t('egg:hatchWavesMessageClose');
|
||||
if (hatchWaves <= 50)
|
||||
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.';
|
||||
return i18next.t('egg:hatchWavesMessageNotClose');
|
||||
return i18next.t('egg:hatchWavesMessageLongTime');
|
||||
}
|
||||
|
||||
export function getEggGachaTypeDescriptor(scene: BattleScene, egg: Egg): string {
|
||||
switch (egg.gachaType) {
|
||||
case GachaType.LEGENDARY:
|
||||
return `Legendary Rate Up (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
|
||||
return `${i18next.t('egg:gachaTypeLegendary')} (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
|
||||
case GachaType.MOVE:
|
||||
return 'Rare Egg Move Rate Up';
|
||||
return i18next.t('egg:gachaTypeMove');
|
||||
case GachaType.SHINY:
|
||||
return 'Shiny Rate Up';
|
||||
return i18next.t('egg:gachaTypeShiny');
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,9 +96,16 @@ export function getLegendaryGachaSpeciesForTimestamp(scene: BattleScene, timesta
|
||||
|
||||
let ret: Species;
|
||||
|
||||
// 86400000 is the number of miliseconds in one day
|
||||
const timeDate = new Date(timestamp);
|
||||
const dayDate = new Date(Date.UTC(timeDate.getUTCFullYear(), timeDate.getUTCMonth(), timeDate.getUTCDate()));
|
||||
const dayTimestamp = timeDate.getTime(); // Timestamp of current week
|
||||
const offset = Math.floor(Math.floor(dayTimestamp / 86400000) / legendarySpecies.length); // Cycle number
|
||||
const index = Math.floor(dayTimestamp / 86400000) % legendarySpecies.length // Index within cycle
|
||||
|
||||
scene.executeWithSeedOffset(() => {
|
||||
ret = Utils.randSeedItem(legendarySpecies);
|
||||
}, Utils.getSunday(new Date(timestamp)).getTime(), EGG_SEED.toString());
|
||||
ret = Phaser.Math.RND.shuffle(legendarySpecies)[index];
|
||||
}, offset, EGG_SEED.toString());
|
||||
|
||||
return ret;
|
||||
}
|
@ -55,5 +55,6 @@ export enum BattlerTagType {
|
||||
CURSED = "CURSED",
|
||||
CHARGED = "CHARGED",
|
||||
GROUNDED = "GROUNDED",
|
||||
MAGNET_RISEN = "MAGNET_RISEN"
|
||||
MAGNET_RISEN = "MAGNET_RISEN",
|
||||
MINIMIZED = "MINIMIZED"
|
||||
}
|
||||
|
274
src/data/move.ts
274
src/data/move.ts
@ -434,29 +434,66 @@ export class SelfStatusMove extends Move {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Base class defining all {@link Move} Attributes
|
||||
* @abstract
|
||||
*/
|
||||
export abstract class MoveAttr {
|
||||
/** Should this {@link Move} target the user? */
|
||||
public selfTarget: boolean;
|
||||
|
||||
constructor(selfTarget: boolean = false) {
|
||||
this.selfTarget = selfTarget;
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies move attributes
|
||||
* @see {@link applyMoveAttrsInternal}
|
||||
* @virtual
|
||||
* @param user The {@link Pokemon} using the move
|
||||
* @param target The target {@link Pokemon} of the move
|
||||
* @param move The {@link Move} being used
|
||||
* @param args Set of unique arguments needed by this attribute
|
||||
* @returns true if the application succeeds
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean | Promise<boolean> {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @virtual
|
||||
* @returns the {@link MoveCondition} or {@link MoveConditionFunc} for this {@link Move}
|
||||
*/
|
||||
getCondition(): MoveCondition | MoveConditionFunc {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @virtual
|
||||
* @param user The {@link Pokemon} using the move
|
||||
* @param target The target {@link Pokemon} of the move
|
||||
* @param move The {@link Move} being used
|
||||
* @param cancelled A {@link Utils.BooleanHolder} which stores if the move should fail
|
||||
* @returns the string representing failure of this {@link Move}
|
||||
*/
|
||||
getFailedText(user: Pokemon, target: Pokemon, move: Move, cancelled: Utils.BooleanHolder): string | null {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used by the Enemy AI to rank an attack based on a given user
|
||||
* @see {@link EnemyPokemon.getNextMove}
|
||||
* @virtual
|
||||
*/
|
||||
getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used by the Enemy AI to rank an attack based on a given target
|
||||
* @see {@link EnemyPokemon.getNextMove}
|
||||
* @virtual
|
||||
*/
|
||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
return 0;
|
||||
}
|
||||
@ -470,6 +507,9 @@ export enum MoveEffectTrigger {
|
||||
POST_TARGET,
|
||||
}
|
||||
|
||||
/** Base class defining all Move Effect Attributes
|
||||
* @extends MoveAttr
|
||||
*/
|
||||
export class MoveEffectAttr extends MoveAttr {
|
||||
public trigger: MoveEffectTrigger;
|
||||
public firstHitOnly: boolean;
|
||||
@ -480,11 +520,21 @@ export class MoveEffectAttr extends MoveAttr {
|
||||
this.firstHitOnly = firstHitOnly;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the {@link Move}'s effects are valid to {@link apply}
|
||||
* @virtual
|
||||
* @param user The {@link Pokemon} using the move
|
||||
* @param target The target {@link Pokemon} of the move
|
||||
* @param move The {@link Move} being used
|
||||
* @param args Set of unique arguments needed by this attribute
|
||||
* @returns true if the application succeeds
|
||||
*/
|
||||
canApply(user: Pokemon, target: Pokemon, move: Move, args: any[]) {
|
||||
return !!(this.selfTarget ? user.hp && !user.getTag(BattlerTagType.FRENZY) : target.hp)
|
||||
&& (this.selfTarget || !target.getTag(BattlerTagType.PROTECTED) || move.hasFlag(MoveFlags.IGNORE_PROTECT));
|
||||
}
|
||||
|
||||
/** Applies move effects so long as they are able based on {@link canApply} */
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean | Promise<boolean> {
|
||||
return this.canApply(user, target, move, args);
|
||||
}
|
||||
@ -738,17 +788,65 @@ export class RecoilAttr extends MoveEffectAttr {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Attribute used for moves which self KO the user regardless if the move hits a target
|
||||
* @extends MoveEffectAttr
|
||||
* @see {@link apply}
|
||||
**/
|
||||
export class SacrificialAttr extends MoveEffectAttr {
|
||||
constructor() {
|
||||
super(true, MoveEffectTrigger.PRE_APPLY);
|
||||
super(true, MoveEffectTrigger.POST_TARGET);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deals damage to the user equal to their current hp
|
||||
* @param user Pokemon that used the move
|
||||
* @param target The target of the move
|
||||
* @param move Move with this attribute
|
||||
* @param args N/A
|
||||
* @returns true if the function succeeds
|
||||
**/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
user.damageAndUpdate(user.hp, HitResult.OTHER, false, true, true);
|
||||
user.turnData.damageTaken += user.hp;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||
if (user.isBoss())
|
||||
return -20;
|
||||
return Math.ceil(((1 - user.getHpRatio()) * 10 - 10) * (target.getAttackTypeEffectiveness(move.type, user) - 0.5));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attribute used for moves which self KO the user but only if the move hits a target
|
||||
* @extends MoveEffectAttr
|
||||
* @see {@link apply}
|
||||
**/
|
||||
export class SacrificialAttrOnHit extends MoveEffectAttr {
|
||||
constructor() {
|
||||
super(true, MoveEffectTrigger.POST_TARGET);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deals damage to the user equal to their current hp if the move lands
|
||||
* @param user Pokemon that used the move
|
||||
* @param target The target of the move
|
||||
* @param move Move with this attribute
|
||||
* @param args N/A
|
||||
* @returns true if the function succeeds
|
||||
**/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
|
||||
// If the move fails to hit a target, then the user does not faint and the function returns false
|
||||
if (!super.apply(user, target, move, args))
|
||||
return false;
|
||||
|
||||
user.damageAndUpdate(user.hp, HitResult.OTHER, false, true, true);
|
||||
user.turnData.damageTaken += user.hp;
|
||||
user.turnData.damageTaken += user.hp;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -806,8 +904,15 @@ export enum MultiHitType {
|
||||
_1_TO_10,
|
||||
}
|
||||
|
||||
/**
|
||||
* Heals the user or target by {@link healRatio} depending on the value of {@link selfTarget}
|
||||
* @extends MoveEffectAttr
|
||||
* @see {@link apply}
|
||||
*/
|
||||
export class HealAttr extends MoveEffectAttr {
|
||||
/** The percentage of {@link Stat.HP} to heal */
|
||||
private healRatio: number;
|
||||
/** Should an animation be shown? */
|
||||
private showAnim: boolean;
|
||||
|
||||
constructor(healRatio?: number, showAnim?: boolean, selfTarget?: boolean) {
|
||||
@ -822,6 +927,10 @@ export class HealAttr extends MoveEffectAttr {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new {@link PokemonHealPhase}.
|
||||
* This heals the target and shows the appropriate message.
|
||||
*/
|
||||
addHealPhase(target: Pokemon, healRatio: number) {
|
||||
target.scene.unshiftPhase(new PokemonHealPhase(target.scene, target.getBattlerIndex(),
|
||||
Math.max(Math.floor(target.getMaxHp() * healRatio), 1), getPokemonMessage(target, ' \nhad its HP restored.'), true, !this.showAnim));
|
||||
@ -903,7 +1012,7 @@ export class IgnoreWeatherTypeDebuffAttr extends MoveAttr {
|
||||
* @param user Pokemon that used the move
|
||||
* @param target N/A
|
||||
* @param move Move with this attribute
|
||||
* @param args Utils.NumberHolder for arenaAttackTypeMultiplier
|
||||
* @param args [0] Utils.NumberHolder for arenaAttackTypeMultiplier
|
||||
* @returns true if the function succeeds
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
@ -963,27 +1072,19 @@ export class SandHealAttr extends WeatherHealAttr {
|
||||
}
|
||||
|
||||
/**
|
||||
* Heals the target by either {@link normalHealRatio} or {@link boostedHealRatio}
|
||||
* Heals the target or the user by either {@link normalHealRatio} or {@link boostedHealRatio}
|
||||
* depending on the evaluation of {@link condition}
|
||||
* @extends HealAttr
|
||||
* @see {@link apply}
|
||||
* @param user The Pokemon using this move
|
||||
* @param target The target Pokemon of this move
|
||||
* @param move This move
|
||||
* @param args N/A
|
||||
* @returns if the move was successful
|
||||
*/
|
||||
export class BoostHealAttr extends HealAttr {
|
||||
/** Healing received when {@link condition} is false */
|
||||
private normalHealRatio?: number;
|
||||
/** Healing received when {@link condition} is true */
|
||||
private boostedHealRatio?: number;
|
||||
/** The lambda expression to check against when boosting the healing value */
|
||||
private condition?: MoveConditionFunc;
|
||||
|
||||
/**
|
||||
* @param normalHealRatio Healing received when {@link condition} is false
|
||||
* @param boostedHealRatio Healing received when {@link condition} is true
|
||||
* @param showAnim Should a healing animation be showed?
|
||||
* @param selfTarget Should the move target the user?
|
||||
* @param condition The condition to check against when boosting the healing value
|
||||
*/
|
||||
constructor(normalHealRatio?: number, boostedHealRatio?: number, showAnim?: boolean, selfTarget?: boolean, condition?: MoveConditionFunc) {
|
||||
super(normalHealRatio, showAnim, selfTarget);
|
||||
this.normalHealRatio = normalHealRatio;
|
||||
@ -991,6 +1092,13 @@ export class BoostHealAttr extends HealAttr {
|
||||
this.condition = condition;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param user The Pokemon using this move
|
||||
* @param target The target Pokemon of this move
|
||||
* @param move This move
|
||||
* @param args N/A
|
||||
* @returns true if the move was successful
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
const healRatio = this.condition(user, target, move) ? this.boostedHealRatio : this.normalHealRatio;
|
||||
this.addHealPhase(target, healRatio);
|
||||
@ -1156,13 +1264,13 @@ export class StatusEffectAttr extends MoveEffectAttr {
|
||||
return false;
|
||||
}
|
||||
if (!pokemon.status || (pokemon.status.effect === this.effect && move.chance < 0))
|
||||
return pokemon.trySetStatus(this.effect, true, this.cureTurn);
|
||||
return pokemon.trySetStatus(this.effect, true, user, this.cureTurn);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): number {
|
||||
return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(this.effect, true) ? Math.floor(move.chance * -0.1) : 0;
|
||||
return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(this.effect, true, false, user) ? Math.floor(move.chance * -0.1) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1181,7 +1289,7 @@ export class MultiStatusEffectAttr extends StatusEffectAttr {
|
||||
}
|
||||
|
||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): number {
|
||||
return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(this.effect, true) ? Math.floor(move.chance * -0.1) : 0;
|
||||
return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(this.effect, true, false, user) ? Math.floor(move.chance * -0.1) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1197,7 +1305,7 @@ export class PsychoShiftEffectAttr extends MoveEffectAttr {
|
||||
return false;
|
||||
}
|
||||
if (!target.status || (target.status.effect === statusToApply && move.chance < 0)) {
|
||||
var statusAfflictResult = target.trySetStatus(statusToApply, true);
|
||||
var statusAfflictResult = target.trySetStatus(statusToApply, true, user);
|
||||
if (statusAfflictResult) {
|
||||
user.scene.queueMessage(getPokemonMessage(user, getStatusEffectHealText(user.status.effect)));
|
||||
user.resetStatus();
|
||||
@ -1210,7 +1318,7 @@ export class PsychoShiftEffectAttr extends MoveEffectAttr {
|
||||
}
|
||||
|
||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): number {
|
||||
return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(user.status?.effect, true) ? Math.floor(move.chance * -0.1) : 0;
|
||||
return !(this.selfTarget ? user : target).status && (this.selfTarget ? user : target).canSetStatus(user.status?.effect, true, false, user) ? Math.floor(move.chance * -0.1) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1353,6 +1461,25 @@ export class BypassSleepAttr extends MoveAttr {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attribute used for moves that bypass the burn damage reduction of physical moves, currently only facade
|
||||
* Called during damage calculation
|
||||
* @param user N/A
|
||||
* @param target N/A
|
||||
* @param move Move with this attribute
|
||||
* @param args Utils.BooleanHolder for burnDamageReductionCancelled
|
||||
* @returns true if the function succeeds
|
||||
*/
|
||||
export class BypassBurnDamageReductionAttr extends MoveAttr {
|
||||
|
||||
/** Prevents the move's damage from being reduced by burn */
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
(args[0] as Utils.BooleanHolder).value = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class WeatherChangeAttr extends MoveEffectAttr {
|
||||
private weatherType: WeatherType;
|
||||
|
||||
@ -2353,6 +2480,30 @@ export class ThunderAccuracyAttr extends VariableAccuracyAttr {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attribute used for moves which never miss
|
||||
* against Pokemon with the {@link BattlerTagType.MINIMIZED}
|
||||
* @see {@link apply}
|
||||
* @param user N/A
|
||||
* @param target Target of the move
|
||||
* @param move N/A
|
||||
* @param args [0] Accuracy of the move to be modified
|
||||
* @returns true if the function succeeds
|
||||
*/
|
||||
export class MinimizeAccuracyAttr extends VariableAccuracyAttr{
|
||||
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (target.getTag(BattlerTagType.MINIMIZED)){
|
||||
const accuracy = args[0] as Utils.NumberHolder
|
||||
accuracy.value = -1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export class ToxicAccuracyAttr extends VariableAccuracyAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (user.isOfType(Type.POISON)) {
|
||||
@ -2657,6 +2808,24 @@ export class WaterSuperEffectTypeMultiplierAttr extends VariableMoveTypeMultipli
|
||||
}
|
||||
}
|
||||
|
||||
export class IceNoEffectTypeAttr extends VariableMoveTypeMultiplierAttr {
|
||||
/**
|
||||
* Checks to see if the Target is Ice-Type or not. If so, the move will have no effect.
|
||||
* @param {Pokemon} user N/A
|
||||
* @param {Pokemon} target Pokemon that is being checked whether Ice-Type or not.
|
||||
* @param {Move} move N/A
|
||||
* @param {any[]} args Sets to false if the target is Ice-Type, so it should do no damage/no effect.
|
||||
* @returns {boolean} Returns true if move is successful, false if Ice-Type.
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (target.isOfType(Type.ICE)) {
|
||||
(args[0] as Utils.BooleanHolder).value = false;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class FlyingTypeMultiplierAttr extends VariableMoveTypeMultiplierAttr {
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
const multiplier = args[0] as Utils.NumberHolder;
|
||||
@ -2676,6 +2845,29 @@ export class OneHitKOAccuracyAttr extends VariableAccuracyAttr {
|
||||
}
|
||||
}
|
||||
|
||||
export class SheerColdAccuracyAttr extends OneHitKOAccuracyAttr {
|
||||
/**
|
||||
* Changes the normal One Hit KO Accuracy Attr to implement the Gen VII changes,
|
||||
* where if the user is Ice-Type, it has more accuracy.
|
||||
* @param {Pokemon} user Pokemon that is using the move; checks the Pokemon's level.
|
||||
* @param {Pokemon} target Pokemon that is receiving the move; checks the Pokemon's level.
|
||||
* @param {Move} move N/A
|
||||
* @param {any[]} args Uses the accuracy argument, allowing to change it from either 0 if it doesn't pass
|
||||
* the first if/else, or 30/20 depending on the type of the user Pokemon.
|
||||
* @returns Returns true if move is successful, false if misses.
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
const accuracy = args[0] as Utils.NumberHolder;
|
||||
if (user.level < target.level) {
|
||||
accuracy.value = 0;
|
||||
} else {
|
||||
const baseAccuracy = user.isOfType(Type.ICE) ? 30 : 20;
|
||||
accuracy.value = Math.min(Math.max(baseAccuracy + 100 * (1 - target.level / user.level), 0), 100);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class MissEffectAttr extends MoveAttr {
|
||||
private missEffectFunc: UserMoveConditionFunc;
|
||||
|
||||
@ -3067,8 +3259,11 @@ export class FaintCountdownAttr extends AddBattlerTagAttr {
|
||||
}
|
||||
}
|
||||
|
||||
/** Attribute used when a move hits a {@link BattlerTagType} for double damage */
|
||||
export class HitsTagAttr extends MoveAttr {
|
||||
/** The {@link BattlerTagType} this move hits */
|
||||
public tagType: BattlerTagType;
|
||||
/** Should this move deal double damage against {@link HitsTagAttr.tagType}? */
|
||||
public doubleDamage: boolean;
|
||||
|
||||
constructor(tagType: BattlerTagType, doubleDamage?: boolean) {
|
||||
@ -4235,6 +4430,8 @@ export function initMoves() {
|
||||
new AttackMove(Moves.SLAM, Type.NORMAL, MoveCategory.PHYSICAL, 80, 75, 20, -1, 0, 1),
|
||||
new AttackMove(Moves.VINE_WHIP, Type.GRASS, MoveCategory.PHYSICAL, 45, 100, 25, -1, 0, 1),
|
||||
new AttackMove(Moves.STOMP, Type.NORMAL, MoveCategory.PHYSICAL, 65, 100, 20, 30, 0, 1)
|
||||
.attr(MinimizeAccuracyAttr)
|
||||
.attr(HitsTagAttr, BattlerTagType.MINIMIZED, true)
|
||||
.attr(FlinchAttr),
|
||||
new AttackMove(Moves.DOUBLE_KICK, Type.FIGHTING, MoveCategory.PHYSICAL, 30, 100, 30, -1, 0, 1)
|
||||
.attr(MultiHitAttr, MultiHitType._2),
|
||||
@ -4258,6 +4455,8 @@ export function initMoves() {
|
||||
.attr(OneHitKOAccuracyAttr),
|
||||
new AttackMove(Moves.TACKLE, Type.NORMAL, MoveCategory.PHYSICAL, 40, 100, 35, -1, 0, 1),
|
||||
new AttackMove(Moves.BODY_SLAM, Type.NORMAL, MoveCategory.PHYSICAL, 85, 100, 15, 30, 0, 1)
|
||||
.attr(MinimizeAccuracyAttr)
|
||||
.attr(HitsTagAttr, BattlerTagType.MINIMIZED, true)
|
||||
.attr(StatusEffectAttr, StatusEffect.PARALYSIS),
|
||||
new AttackMove(Moves.WRAP, Type.NORMAL, MoveCategory.PHYSICAL, 15, 90, 20, 100, 0, 1)
|
||||
.attr(TrapAttr, BattlerTagType.WRAP),
|
||||
@ -4455,6 +4654,7 @@ export function initMoves() {
|
||||
new SelfStatusMove(Moves.HARDEN, Type.NORMAL, -1, 30, -1, 0, 1)
|
||||
.attr(StatChangeAttr, BattleStat.DEF, 1, true),
|
||||
new SelfStatusMove(Moves.MINIMIZE, Type.NORMAL, -1, 10, -1, 0, 1)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.MINIMIZED, true, false)
|
||||
.attr(StatChangeAttr, BattleStat.EVA, 2, true),
|
||||
new StatusMove(Moves.SMOKESCREEN, Type.NORMAL, 100, 20, -1, 0, 1)
|
||||
.attr(StatChangeAttr, BattleStat.ACC, -1),
|
||||
@ -4900,11 +5100,12 @@ export function initMoves() {
|
||||
new StatusMove(Moves.WILL_O_WISP, Type.FIRE, 85, 15, -1, 0, 3)
|
||||
.attr(StatusEffectAttr, StatusEffect.BURN),
|
||||
new StatusMove(Moves.MEMENTO, Type.DARK, 100, 10, -1, 0, 3)
|
||||
.attr(SacrificialAttr)
|
||||
.attr(SacrificialAttrOnHit)
|
||||
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], -2),
|
||||
new AttackMove(Moves.FACADE, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 20, -1, 0, 3)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => user.status
|
||||
&& (user.status.effect === StatusEffect.BURN || user.status.effect === StatusEffect.POISON || user.status.effect === StatusEffect.TOXIC || user.status.effect === StatusEffect.PARALYSIS) ? 2 : 1),
|
||||
&& (user.status.effect === StatusEffect.BURN || user.status.effect === StatusEffect.POISON || user.status.effect === StatusEffect.TOXIC || user.status.effect === StatusEffect.PARALYSIS) ? 2 : 1)
|
||||
.attr(BypassBurnDamageReductionAttr),
|
||||
new AttackMove(Moves.FOCUS_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 150, 100, 20, -1, -3, 3)
|
||||
.punchingMove()
|
||||
.ignoresVirtual()
|
||||
@ -5075,9 +5276,10 @@ export function initMoves() {
|
||||
new AttackMove(Moves.SAND_TOMB, Type.GROUND, MoveCategory.PHYSICAL, 35, 85, 15, 100, 0, 3)
|
||||
.attr(TrapAttr, BattlerTagType.SAND_TOMB)
|
||||
.makesContact(false),
|
||||
new AttackMove(Moves.SHEER_COLD, Type.ICE, MoveCategory.SPECIAL, 200, 30, 5, -1, 0, 3)
|
||||
new AttackMove(Moves.SHEER_COLD, Type.ICE, MoveCategory.SPECIAL, 200, 20, 5, -1, 0, 3)
|
||||
.attr(IceNoEffectTypeAttr)
|
||||
.attr(OneHitKOAttr)
|
||||
.attr(OneHitKOAccuracyAttr),
|
||||
.attr(SheerColdAccuracyAttr),
|
||||
new AttackMove(Moves.MUDDY_WATER, Type.WATER, MoveCategory.SPECIAL, 90, 85, 10, 30, 0, 3)
|
||||
.attr(StatChangeAttr, BattleStat.ACC, -1)
|
||||
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
||||
@ -5206,7 +5408,7 @@ export function initMoves() {
|
||||
|| user.status?.effect === StatusEffect.TOXIC
|
||||
|| user.status?.effect === StatusEffect.PARALYSIS
|
||||
|| user.status?.effect === StatusEffect.SLEEP)
|
||||
&& target.canSetStatus(user.status?.effect)
|
||||
&& target.canSetStatus(user.status?.effect, false, false, user)
|
||||
),
|
||||
new AttackMove(Moves.TRUMP_CARD, Type.NORMAL, MoveCategory.SPECIAL, -1, -1, 5, -1, 0, 4)
|
||||
.makesContact()
|
||||
@ -5292,6 +5494,8 @@ export function initMoves() {
|
||||
new AttackMove(Moves.DRAGON_PULSE, Type.DRAGON, MoveCategory.SPECIAL, 85, 100, 10, -1, 0, 4)
|
||||
.pulseMove(),
|
||||
new AttackMove(Moves.DRAGON_RUSH, Type.DRAGON, MoveCategory.PHYSICAL, 100, 75, 10, 20, 0, 4)
|
||||
.attr(MinimizeAccuracyAttr)
|
||||
.attr(HitsTagAttr, BattlerTagType.MINIMIZED, true)
|
||||
.attr(FlinchAttr),
|
||||
new AttackMove(Moves.POWER_GEM, Type.ROCK, MoveCategory.SPECIAL, 80, 100, 20, -1, 0, 4),
|
||||
new AttackMove(Moves.DRAIN_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 75, 100, 10, -1, 0, 4)
|
||||
@ -5434,7 +5638,7 @@ export function initMoves() {
|
||||
new AttackMove(Moves.SPACIAL_REND, Type.DRAGON, MoveCategory.SPECIAL, 100, 95, 5, -1, 0, 4)
|
||||
.attr(HighCritAttr),
|
||||
new SelfStatusMove(Moves.LUNAR_DANCE, Type.PSYCHIC, -1, 10, -1, 0, 4)
|
||||
.attr(SacrificialAttr)
|
||||
.attr(SacrificialAttrOnHit)
|
||||
.danceMove()
|
||||
.triageMove()
|
||||
.unimplemented(),
|
||||
@ -5446,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, -1),
|
||||
.attr(StatChangeAttr, BattleStat.SPDEF, -2),
|
||||
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(),
|
||||
@ -5501,7 +5705,9 @@ export function initMoves() {
|
||||
.attr(StatChangeAttr, [ BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true)
|
||||
.danceMove(),
|
||||
new AttackMove(Moves.HEAVY_SLAM, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 5)
|
||||
.attr(MinimizeAccuracyAttr)
|
||||
.attr(CompareWeightPowerAttr)
|
||||
.attr(HitsTagAttr, BattlerTagType.MINIMIZED, true)
|
||||
.condition(failOnMaxCondition),
|
||||
new AttackMove(Moves.SYNCHRONOISE, Type.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 5)
|
||||
.target(MoveTarget.ALL_NEAR_OTHERS)
|
||||
@ -5583,7 +5789,7 @@ export function initMoves() {
|
||||
.partial(),
|
||||
new AttackMove(Moves.FINAL_GAMBIT, Type.FIGHTING, MoveCategory.SPECIAL, -1, 100, 5, -1, 0, 5)
|
||||
.attr(UserHpDamageAttr)
|
||||
.attr(SacrificialAttr),
|
||||
.attr(SacrificialAttrOnHit),
|
||||
new StatusMove(Moves.BESTOW, Type.NORMAL, -1, 15, -1, 0, 5)
|
||||
.ignoresProtect()
|
||||
.unimplemented(),
|
||||
@ -5632,7 +5838,9 @@ export function initMoves() {
|
||||
.attr(StatChangeAttr, BattleStat.DEF, -1)
|
||||
.slicingMove(),
|
||||
new AttackMove(Moves.HEAT_CRASH, Type.FIRE, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 5)
|
||||
.attr(MinimizeAccuracyAttr)
|
||||
.attr(CompareWeightPowerAttr)
|
||||
.attr(HitsTagAttr, BattlerTagType.MINIMIZED, true)
|
||||
.condition(failOnMaxCondition),
|
||||
new AttackMove(Moves.LEAF_TORNADO, Type.GRASS, MoveCategory.SPECIAL, 65, 90, 10, 50, 0, 5)
|
||||
.attr(StatChangeAttr, BattleStat.ACC, -1),
|
||||
@ -5703,7 +5911,9 @@ export function initMoves() {
|
||||
.makesContact(false)
|
||||
.partial(),
|
||||
new AttackMove(Moves.FLYING_PRESS, Type.FIGHTING, MoveCategory.PHYSICAL, 100, 95, 10, -1, 0, 6)
|
||||
.attr(MinimizeAccuracyAttr)
|
||||
.attr(FlyingTypeMultiplierAttr)
|
||||
.attr(HitsTagAttr, BattlerTagType.MINIMIZED, true)
|
||||
.condition(failOnGravityCondition),
|
||||
new StatusMove(Moves.MAT_BLOCK, Type.FIGHTING, -1, 10, -1, 0, 6)
|
||||
.unimplemented(),
|
||||
@ -6201,7 +6411,7 @@ export function initMoves() {
|
||||
.ignoresVirtual(),
|
||||
/* End Unused */
|
||||
new AttackMove(Moves.ZIPPY_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 80, 100, 10, 100, 2, 7)
|
||||
.attr(CritOnlyAttr),
|
||||
.attr(StatChangeAttr, BattleStat.EVA, 1, true),
|
||||
new AttackMove(Moves.SPLISHY_SPLASH, Type.WATER, MoveCategory.SPECIAL, 90, 100, 15, 30, 0, 7)
|
||||
.attr(StatusEffectAttr, StatusEffect.PARALYSIS)
|
||||
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
||||
@ -6226,7 +6436,7 @@ export function initMoves() {
|
||||
new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7)
|
||||
.attr(ResetStatsAttr),
|
||||
new AttackMove(Moves.SPARKLY_SWIRL, Type.FAIRY, MoveCategory.SPECIAL, 120, 85, 5, -1, 0, 7)
|
||||
.partial(),
|
||||
.attr(PartyStatusCureAttr, null, Abilities.NONE),
|
||||
new AttackMove(Moves.VEEVEE_VOLLEY, Type.NORMAL, MoveCategory.PHYSICAL, -1, -1, 20, -1, 0, 7)
|
||||
.attr(FriendshipPowerAttr),
|
||||
new AttackMove(Moves.DOUBLE_IRON_BASH, Type.STEEL, MoveCategory.PHYSICAL, 60, 100, 5, 30, 0, 7)
|
||||
@ -6821,7 +7031,7 @@ export function initMoves() {
|
||||
const turnMove = user.getLastXMoves(1);
|
||||
return !turnMove.length || turnMove[0].move !== move.id || turnMove[0].result !== MoveResult.SUCCESS;
|
||||
}), // TODO Add Instruct/Encore interaction
|
||||
new AttackMove(Moves.COMEUPPANCE, Type.DARK, MoveCategory.PHYSICAL, 1, 100, 10, -1, 0, 9)
|
||||
new AttackMove(Moves.COMEUPPANCE, Type.DARK, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 9)
|
||||
.attr(CounterDamageAttr, (move: Move) => (move.category === MoveCategory.PHYSICAL || move.category === MoveCategory.SPECIAL), 1.5)
|
||||
.target(MoveTarget.ATTACKER),
|
||||
new AttackMove(Moves.AQUA_CUTTER, Type.WATER, MoveCategory.PHYSICAL, 70, 100, 20, -1, 0, 9)
|
||||
|
@ -1385,10 +1385,10 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
||||
new SpeciesEvolution(Species.HELIOLISK, 1, EvolutionItem.SUN_STONE, null, SpeciesWildEvolutionDelay.LONG)
|
||||
],
|
||||
[Species.CHARJABUG]: [
|
||||
new SpeciesEvolution(Species.VIKAVOLT, 1, EvolutionItem.THUNDER_STONE, null)
|
||||
new SpeciesEvolution(Species.VIKAVOLT, 1, EvolutionItem.THUNDER_STONE, null, SpeciesWildEvolutionDelay.LONG)
|
||||
],
|
||||
[Species.CRABRAWLER]: [
|
||||
new SpeciesEvolution(Species.CRABOMINABLE, 1, EvolutionItem.ICE_STONE, null)
|
||||
new SpeciesEvolution(Species.CRABOMINABLE, 1, EvolutionItem.ICE_STONE, null, SpeciesWildEvolutionDelay.LONG)
|
||||
],
|
||||
[Species.ROCKRUFF]: [
|
||||
new SpeciesFormEvolution(Species.LYCANROC, '', 'midday', 25, null, new SpeciesEvolutionCondition(p => (p.scene.arena.getTimeOfDay() === TimeOfDay.DAWN || p.scene.arena.getTimeOfDay() === TimeOfDay.DAY) && (p.formIndex === 0)), null),
|
||||
|
@ -705,7 +705,9 @@ 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', 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
|
||||
],
|
||||
[Species.GALAR_DARMANITAN]: [
|
||||
new SpeciesFormChange(Species.GALAR_DARMANITAN, '', 'zen', new SpeciesFormChangeManualTrigger(), true),
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2759,7 +2759,7 @@ export const speciesStarters = {
|
||||
[Species.GROUDON]: 8,
|
||||
[Species.RAYQUAZA]: 8,
|
||||
[Species.JIRACHI]: 7,
|
||||
[Species.DEOXYS]: 8,
|
||||
[Species.DEOXYS]: 7,
|
||||
|
||||
[Species.TURTWIG]: 3,
|
||||
[Species.CHIMCHAR]: 3,
|
||||
@ -2813,7 +2813,7 @@ export const speciesStarters = {
|
||||
[Species.DARKRAI]: 7,
|
||||
[Species.SHAYMIN]: 7,
|
||||
[Species.ARCEUS]: 9,
|
||||
[Species.VICTINI]: 8,
|
||||
[Species.VICTINI]: 7,
|
||||
|
||||
[Species.SNIVY]: 3,
|
||||
[Species.TEPIG]: 3,
|
||||
@ -2895,7 +2895,7 @@ export const speciesStarters = {
|
||||
[Species.KYUREM]: 8,
|
||||
[Species.KELDEO]: 7,
|
||||
[Species.MELOETTA]: 7,
|
||||
[Species.GENESECT]: 8,
|
||||
[Species.GENESECT]: 7,
|
||||
|
||||
[Species.CHESPIN]: 3,
|
||||
[Species.FENNEKIN]: 3,
|
||||
|
@ -855,14 +855,20 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
}),
|
||||
[TrainerType.RIVAL_6]: new TrainerConfig(++t).setName('Finn').setHasGenders('Ivy').setHasCharSprite().setTitle('Rival').setBoss().setStaticParty().setMoneyMultiplier(3).setEncounterBgm('final').setBattleBgm('battle_rival_3').setPartyTemplates(trainerPartyTemplates.RIVAL_6)
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL ], TrainerSlot.TRAINER, true,
|
||||
p => p.setBoss(true, 3))
|
||||
)
|
||||
p => {
|
||||
p.setBoss(true, 3);
|
||||
p.generateAndPopulateMoveset();
|
||||
}))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL ], TrainerSlot.TRAINER, true,
|
||||
p => p.setBoss(true, 2)))
|
||||
p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
}))
|
||||
.setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450))
|
||||
.setSpeciesFilter(species => species.baseTotal >= 540)
|
||||
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.RAYQUAZA ], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss();
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.MASTER_BALL;
|
||||
p.shiny = true;
|
||||
p.variant = 1;
|
||||
|
@ -7,6 +7,7 @@ import * as Utils from "../utils";
|
||||
import BattleScene from "../battle-scene";
|
||||
import { SuppressWeatherEffectAbAttr } from "./ability";
|
||||
import { TerrainType } from "./terrain";
|
||||
import i18next from "i18next";
|
||||
|
||||
export enum WeatherType {
|
||||
NONE,
|
||||
@ -121,23 +122,23 @@ export class Weather {
|
||||
export function getWeatherStartMessage(weatherType: WeatherType): string {
|
||||
switch (weatherType) {
|
||||
case WeatherType.SUNNY:
|
||||
return 'The sunlight got bright!';
|
||||
return i18next.t('weather:sunnyStartMessage');
|
||||
case WeatherType.RAIN:
|
||||
return 'A downpour started!';
|
||||
return i18next.t('weather:rainStartMessage');
|
||||
case WeatherType.SANDSTORM:
|
||||
return 'A sandstorm brewed!';
|
||||
return i18next.t('weather:sandstormStartMessage');
|
||||
case WeatherType.HAIL:
|
||||
return 'It started to hail!';
|
||||
return i18next.t('weather:hailStartMessage');
|
||||
case WeatherType.SNOW:
|
||||
return 'It started to snow!';
|
||||
return i18next.t('weather:snowStartMessage');
|
||||
case WeatherType.FOG:
|
||||
return 'A thick fog emerged!'
|
||||
return i18next.t('weather:fogStartMessage');
|
||||
case WeatherType.HEAVY_RAIN:
|
||||
return 'A heavy downpour started!'
|
||||
return i18next.t('weather:heavyRainStartMessage');
|
||||
case WeatherType.HARSH_SUN:
|
||||
return 'The sunlight got hot!'
|
||||
return i18next.t('weather:harshSunStartMessage');
|
||||
case WeatherType.STRONG_WINDS:
|
||||
return 'A heavy wind began!';
|
||||
return i18next.t('weather:strongWindsStartMessage');
|
||||
}
|
||||
|
||||
return null;
|
||||
@ -146,23 +147,23 @@ export function getWeatherStartMessage(weatherType: WeatherType): string {
|
||||
export function getWeatherLapseMessage(weatherType: WeatherType): string {
|
||||
switch (weatherType) {
|
||||
case WeatherType.SUNNY:
|
||||
return 'The sunlight is strong.';
|
||||
return i18next.t('weather:sunnyLapseMessage');
|
||||
case WeatherType.RAIN:
|
||||
return 'The downpour continues.';
|
||||
return i18next.t('weather:rainLapseMessage');
|
||||
case WeatherType.SANDSTORM:
|
||||
return 'The sandstorm rages.';
|
||||
return i18next.t('weather:sandstormLapseMessage');
|
||||
case WeatherType.HAIL:
|
||||
return 'Hail continues to fall.';
|
||||
return i18next.t('weather:hailLapseMessage');
|
||||
case WeatherType.SNOW:
|
||||
return 'The snow is falling down.';
|
||||
return i18next.t('weather:snowLapseMessage');
|
||||
case WeatherType.FOG:
|
||||
return 'The fog continues.';
|
||||
return i18next.t('weather:fogLapseMessage');
|
||||
case WeatherType.HEAVY_RAIN:
|
||||
return 'The heavy downpour continues.'
|
||||
return i18next.t('weather:heavyRainLapseMessage');
|
||||
case WeatherType.HARSH_SUN:
|
||||
return 'The sun is scorching hot.'
|
||||
return i18next.t('weather:harshSunLapseMessage');
|
||||
case WeatherType.STRONG_WINDS:
|
||||
return 'The wind blows intensely.';
|
||||
return i18next.t('weather:strongWindsLapseMessage');
|
||||
}
|
||||
|
||||
return null;
|
||||
@ -182,23 +183,23 @@ export function getWeatherDamageMessage(weatherType: WeatherType, pokemon: Pokem
|
||||
export function getWeatherClearMessage(weatherType: WeatherType): string {
|
||||
switch (weatherType) {
|
||||
case WeatherType.SUNNY:
|
||||
return 'The sunlight faded.';
|
||||
return i18next.t('weather:sunnyClearMessage');
|
||||
case WeatherType.RAIN:
|
||||
return 'The rain stopped.';
|
||||
return i18next.t('weather:rainClearMessage');
|
||||
case WeatherType.SANDSTORM:
|
||||
return 'The sandstorm subsided.';
|
||||
return i18next.t('weather:sandstormClearMessage');
|
||||
case WeatherType.HAIL:
|
||||
return 'The hail stopped.';
|
||||
return i18next.t('weather:hailClearMessage');
|
||||
case WeatherType.SNOW:
|
||||
return 'The snow stopped.';
|
||||
return i18next.t('weather:snowClearMessage');
|
||||
case WeatherType.FOG:
|
||||
return 'The fog disappeared.'
|
||||
return i18next.t('weather:fogClearMessage');
|
||||
case WeatherType.HEAVY_RAIN:
|
||||
return 'The heavy rain stopped.'
|
||||
return i18next.t('weather:heavyRainClearMessage');
|
||||
case WeatherType.HARSH_SUN:
|
||||
return 'The harsh sunlight faded.'
|
||||
return i18next.t('weather:harshSunClearMessage');
|
||||
case WeatherType.STRONG_WINDS:
|
||||
return 'The heavy wind stopped.';
|
||||
return i18next.t('weather:strongWindsClearMessage');
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -9,6 +9,7 @@ import { LearnMovePhase } from "./phases";
|
||||
import { cos, sin } from "./field/anims";
|
||||
import { PlayerPokemon } from "./field/pokemon";
|
||||
import { getTypeRgb } from "./data/type";
|
||||
import i18next from "i18next";
|
||||
|
||||
export class EvolutionPhase extends Phase {
|
||||
protected pokemon: PlayerPokemon;
|
||||
@ -115,7 +116,7 @@ export class EvolutionPhase extends Phase {
|
||||
const evolutionHandler = this.scene.ui.getHandler() as EvolutionSceneHandler;
|
||||
const preName = this.pokemon.name;
|
||||
|
||||
this.scene.ui.showText(`What?\n${preName} is evolving!`, null, () => {
|
||||
this.scene.ui.showText(i18next.t('menu:evolving', { pokemonName: preName }), null, () => {
|
||||
this.pokemon.cry();
|
||||
|
||||
this.pokemon.getPossibleEvolution(this.evolution).then(evolvedPokemon => {
|
||||
@ -187,8 +188,8 @@ export class EvolutionPhase extends Phase {
|
||||
|
||||
this.scene.unshiftPhase(new EndEvolutionPhase(this.scene));
|
||||
|
||||
this.scene.ui.showText(`${preName} stopped evolving.`, null, () => {
|
||||
this.scene.ui.showText(`Would you like to pause evolutions for ${preName}?\nEvolutions can be re-enabled from the party screen.`, null, () => {
|
||||
this.scene.ui.showText(i18next.t('menu:stoppedEvolving', { pokemonName: preName }), null, () => {
|
||||
this.scene.ui.showText(i18next.t('menu:pauseEvolutionsQuestion', { pokemonName: preName }), null, () => {
|
||||
const end = () => {
|
||||
this.scene.ui.showText(null, 0);
|
||||
this.scene.playBgm();
|
||||
@ -198,7 +199,7 @@ export class EvolutionPhase extends Phase {
|
||||
this.scene.ui.setOverlayMode(Mode.CONFIRM, () => {
|
||||
this.scene.ui.revertMode();
|
||||
this.pokemon.pauseEvolutions = true;
|
||||
this.scene.ui.showText(`Evolutions have been paused for ${preName}.`, null, end, 3000);
|
||||
this.scene.ui.showText(i18next.t('menu:evolutionsPaused', { pokemonName: preName }), null, end, 3000);
|
||||
}, () => {
|
||||
this.scene.ui.revertMode();
|
||||
this.scene.time.delayedCall(3000, end);
|
||||
@ -249,7 +250,7 @@ export class EvolutionPhase extends Phase {
|
||||
this.scene.playSoundWithoutBgm('evolution_fanfare');
|
||||
|
||||
evolvedPokemon.destroy();
|
||||
this.scene.ui.showText(`Congratulations!\nYour ${preName} evolved into ${this.pokemon.name}!`, null, () => this.end(), null, true, Utils.fixedInt(4000));
|
||||
this.scene.ui.showText(i18next.t('menu:evolutionDone', { pokemonName: preName, evolvedPokemonName: this.pokemon.name }), null, () => this.end(), null, true, Utils.fixedInt(4000));
|
||||
this.scene.time.delayedCall(Utils.fixedInt(4250), () => this.scene.playBgm());
|
||||
});
|
||||
});
|
||||
|
@ -206,6 +206,7 @@ export class Arena {
|
||||
case Biome.TALL_GRASS:
|
||||
return Type.GRASS;
|
||||
case Biome.FOREST:
|
||||
case Biome.JUNGLE:
|
||||
return Type.BUG;
|
||||
case Biome.SLUM:
|
||||
case Biome.SWAMP:
|
||||
@ -237,8 +238,10 @@ export class Arena {
|
||||
case Biome.TEMPLE:
|
||||
return Type.GHOST;
|
||||
case Biome.DOJO:
|
||||
case Biome.CONSTRUCTION_SITE:
|
||||
return Type.FIGHTING;
|
||||
case Biome.FACTORY:
|
||||
case Biome.LABORATORY:
|
||||
return Type.STEEL;
|
||||
case Biome.RUINS:
|
||||
case Biome.SPACE:
|
||||
@ -248,6 +251,8 @@ export class Arena {
|
||||
return Type.DRAGON;
|
||||
case Biome.ABYSS:
|
||||
return Type.DARK;
|
||||
default:
|
||||
return Type.UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
@ -617,7 +622,7 @@ export class Arena {
|
||||
case Biome.CONSTRUCTION_SITE:
|
||||
return 1.222;
|
||||
case Biome.JUNGLE:
|
||||
return 2.477;
|
||||
return 0.000;
|
||||
case Biome.FAIRY_CAVE:
|
||||
return 4.542;
|
||||
case Biome.TEMPLE:
|
||||
|
@ -13,7 +13,7 @@ export default class DamageNumberHandler {
|
||||
add(target: Pokemon, amount: integer, result: DamageResult | HitResult.HEAL = HitResult.EFFECTIVE, critical: boolean = false): void {
|
||||
const scene = target.scene;
|
||||
|
||||
if (!scene.damageNumbersMode)
|
||||
if (!scene?.damageNumbersMode)
|
||||
return;
|
||||
|
||||
const battlerIndex = target.getBattlerIndex();
|
||||
|
@ -4,7 +4,7 @@ import { Variant, VariantSet, variantColorCache } from '#app/data/variant';
|
||||
import { variantData } from '#app/data/variant';
|
||||
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
|
||||
import { Moves } from "../data/enums/moves";
|
||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr } from "../data/move";
|
||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr } from "../data/move";
|
||||
import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species';
|
||||
import * as Utils from '../utils';
|
||||
import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from '../data/type';
|
||||
@ -27,7 +27,7 @@ import { TempBattleStat } from '../data/temp-battle-stat';
|
||||
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/arena-tag';
|
||||
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
||||
import { Biome } from "../data/enums/biome";
|
||||
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr } from '../data/ability';
|
||||
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr } from '../data/ability';
|
||||
import { Abilities } from "#app/data/enums/abilities";
|
||||
import PokemonData from '../system/pokemon-data';
|
||||
import Battle, { BattlerIndex } from '../battle';
|
||||
@ -1225,24 +1225,24 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.level >= 25) { // No egg moves below level 25
|
||||
if (this.level >= 60) { // No egg moves below level 60
|
||||
for (let i = 0; i < 3; i++) {
|
||||
const moveId = speciesEggMoves[this.species.getRootSpeciesId()][i];
|
||||
if (!movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)'))
|
||||
movePool.push([moveId, Math.min(this.level * 0.5, 40)]);
|
||||
movePool.push([moveId, 40]);
|
||||
}
|
||||
const moveId = speciesEggMoves[this.species.getRootSpeciesId()][3];
|
||||
if (this.level >= 60 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)')) // No rare egg moves before level 60
|
||||
movePool.push([moveId, Math.min(this.level * 0.2, 20)]);
|
||||
if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)') && !this.isBoss()) // No rare egg moves before e4
|
||||
movePool.push([moveId, 30]);
|
||||
if (this.fusionSpecies) {
|
||||
for (let i = 0; i < 3; i++) {
|
||||
const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][i];
|
||||
if (!movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)'))
|
||||
movePool.push([moveId, Math.min(this.level * 0.5, 30)]);
|
||||
movePool.push([moveId, 40]);
|
||||
}
|
||||
const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][3];
|
||||
if (this.level >= 60 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)')) // No rare egg moves before level 60
|
||||
movePool.push([moveId, Math.min(this.level * 0.2, 20)]);
|
||||
if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)') && !this.isBoss()) // No rare egg moves before e4
|
||||
movePool.push([moveId, 30]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1540,11 +1540,22 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
if (!isTypeImmune) {
|
||||
damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier.value * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier.value);
|
||||
if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) {
|
||||
const burnDamageReductionCancelled = new Utils.BooleanHolder(false);
|
||||
applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled);
|
||||
if (!burnDamageReductionCancelled.value)
|
||||
damage.value = Math.floor(damage.value / 2);
|
||||
if(!move.getAttrs(BypassBurnDamageReductionAttr).length) {
|
||||
const burnDamageReductionCancelled = new Utils.BooleanHolder(false);
|
||||
applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled);
|
||||
if (!burnDamageReductionCancelled.value)
|
||||
damage.value = Math.floor(damage.value / 2);
|
||||
}
|
||||
}
|
||||
|
||||
applyPreAttackAbAttrs(DamageBoostAbAttr, source, this, battlerMove, damage);
|
||||
|
||||
/**
|
||||
* For each {@link HitsTagAttr} the move has, doubles the damage of the move if:
|
||||
* The target has a {@link BattlerTagType} that this move interacts with
|
||||
* AND
|
||||
* The move doubles damage when used against that tag
|
||||
* */
|
||||
move.getAttrs(HitsTagAttr).map(hta => hta as HitsTagAttr).filter(hta => hta.doubleDamage).forEach(hta => {
|
||||
if (this.getTag(hta.tagType))
|
||||
damage.value *= 2;
|
||||
@ -1564,7 +1575,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
|
||||
if (!result) {
|
||||
if (!typeMultiplier.value)
|
||||
result = HitResult.NO_EFFECT;
|
||||
result = move.id == Moves.SHEER_COLD ? HitResult.IMMUNE : HitResult.NO_EFFECT;
|
||||
else {
|
||||
const oneHitKo = new Utils.BooleanHolder(false);
|
||||
applyMoveAttrs(OneHitKOAttr, source, this, move, oneHitKo);
|
||||
@ -1632,6 +1643,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
case HitResult.NO_EFFECT:
|
||||
this.scene.queueMessage(i18next.t('battle:hitResultNoEffect', { pokemonName: this.name }));
|
||||
break;
|
||||
case HitResult.IMMUNE:
|
||||
this.scene.queueMessage(`${this.name} is unaffected!`);
|
||||
break;
|
||||
case HitResult.ONE_HIT_KO:
|
||||
this.scene.queueMessage(i18next.t('battle:hitResultOneHitKO'));
|
||||
break;
|
||||
@ -2025,7 +2039,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
return this.gender !== Gender.GENDERLESS && pokemon.gender === (this.gender === Gender.MALE ? Gender.FEMALE : Gender.MALE);
|
||||
}
|
||||
|
||||
canSetStatus(effect: StatusEffect, quiet: boolean = false, overrideStatus: boolean = false): boolean {
|
||||
canSetStatus(effect: StatusEffect, quiet: boolean = false, overrideStatus: boolean = false, sourcePokemon: Pokemon = null): boolean {
|
||||
if (effect !== StatusEffect.FAINT) {
|
||||
if (overrideStatus ? this.status?.effect === effect : this.status)
|
||||
return false;
|
||||
@ -2033,11 +2047,32 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
return false;
|
||||
}
|
||||
|
||||
const types = this.getTypes(true, true);
|
||||
|
||||
switch (effect) {
|
||||
case StatusEffect.POISON:
|
||||
case StatusEffect.TOXIC:
|
||||
if (this.isOfType(Type.POISON) || this.isOfType(Type.STEEL))
|
||||
return false;
|
||||
// Check if the Pokemon is immune to Poison/Toxic or if the source pokemon is canceling the immunity
|
||||
let poisonImmunity = types.map(defType => {
|
||||
// Check if the Pokemon is not immune to Poison/Toxic
|
||||
if (defType !== Type.POISON && defType !== Type.STEEL)
|
||||
return false;
|
||||
|
||||
// Check if the source Pokemon has an ability that cancels the Poison/Toxic immunity
|
||||
const cancelImmunity = new Utils.BooleanHolder(false);
|
||||
if (sourcePokemon) {
|
||||
applyAbAttrs(IgnoreTypeStatusEffectImmunityAbAttr, sourcePokemon, cancelImmunity, effect, defType);
|
||||
if (cancelImmunity.value)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
})
|
||||
|
||||
if (this.isOfType(Type.POISON) || this.isOfType(Type.STEEL)) {
|
||||
if (poisonImmunity.includes(true))
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case StatusEffect.PARALYSIS:
|
||||
if (this.isOfType(Type.ELECTRIC))
|
||||
@ -2066,12 +2101,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
return true;
|
||||
}
|
||||
|
||||
trySetStatus(effect: StatusEffect, asPhase: boolean = false, cureTurn: integer = 0, sourceText: string = null): boolean {
|
||||
if (!this.canSetStatus(effect, asPhase))
|
||||
trySetStatus(effect: StatusEffect, asPhase: boolean = false, sourcePokemon: Pokemon = null, cureTurn: integer = 0, sourceText: string = null): boolean {
|
||||
if (!this.canSetStatus(effect, asPhase, false, sourcePokemon))
|
||||
return false;
|
||||
|
||||
if (asPhase) {
|
||||
this.scene.unshiftPhase(new ObtainStatusEffectPhase(this.scene, this.getBattlerIndex(), effect, cureTurn, sourceText));
|
||||
this.scene.unshiftPhase(new ObtainStatusEffectPhase(this.scene, this.getBattlerIndex(), effect, cureTurn, sourceText, sourcePokemon));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -3340,7 +3375,8 @@ export enum HitResult {
|
||||
HEAL,
|
||||
FAIL,
|
||||
MISS,
|
||||
OTHER
|
||||
OTHER,
|
||||
IMMUNE
|
||||
}
|
||||
|
||||
export type DamageResult = HitResult.EFFECTIVE | HitResult.SUPER_EFFECTIVE | HitResult.NOT_VERY_EFFECTIVE | HitResult.ONE_HIT_KO | HitResult.OTHER;
|
||||
|
5
src/locales/de/ability-trigger.ts
Normal file
5
src/locales/de/ability-trigger.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{pokemonName}} wurde durch {{abilityName}}\nvor Rückstoß geschützt!`,
|
||||
} as const;
|
@ -9,11 +9,11 @@ export const battle: SimpleTranslationEntries = {
|
||||
"trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
|
||||
"playerGo": "Los! {{pokemonName}}!",
|
||||
"trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
|
||||
"switchQuestion": "Willst du\n{{pokemonName}} auswechseln?",
|
||||
"switchQuestion": "Möchtest du\n{{pokemonName}} auswechseln?",
|
||||
"trainerDefeated": `{{trainerName}}\nwurde besiegt!`,
|
||||
"pokemonCaught": "{{pokemonName}} wurde gefangen!",
|
||||
"pokemon": "Pokémon",
|
||||
"sendOutPokemon": "Los! {{pokemonName}}!",
|
||||
"sendOutPokemon": "Los, {{pokemonName}}!",
|
||||
"hitResultCriticalHit": "Ein Volltreffer!",
|
||||
"hitResultSuperEffective": "Das ist sehr effektiv!",
|
||||
"hitResultNotVeryEffective": "Das ist nicht sehr effektiv…",
|
||||
@ -26,28 +26,30 @@ export const battle: SimpleTranslationEntries = {
|
||||
"learnMove": "{{pokemonName}} erlernt\n{{moveName}}!",
|
||||
"learnMovePrompt": "{{pokemonName}} versucht, {{moveName}} zu erlernen.",
|
||||
"learnMoveLimitReached": "Aber {{pokemonName}} kann nur\nmaximal vier Attacken erlernen.",
|
||||
"learnMoveReplaceQuestion": "Soll eine andere Attacke durch\n{{moveName}} ersetzt werden?",
|
||||
"learnMoveReplaceQuestion": "Soll eine bekannte Attacke durch\n{{moveName}} ersetzt werden?",
|
||||
"learnMoveStopTeaching": "{{moveName}} nicht\nerlernen?",
|
||||
"learnMoveNotLearned": "{{pokemonName}} hat\n{{moveName}} nicht erlernt.",
|
||||
"learnMoveForgetQuestion": "Welche Attacke soll vergessen werden?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} hat\n{{moveName}} vergessen.",
|
||||
"countdownPoof": "@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}schwupp!",
|
||||
"learnMoveAnd": "Und…",
|
||||
"levelCapUp": "Das Levellimit\nhat sich zu {{levelCap}} erhöht!",
|
||||
"moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
|
||||
"moveNoPP": "Du hast keine AP für\ndiese Attacke mehr übrig!",
|
||||
"moveNoPP": "Es sind keine AP für\ndiese Attacke mehr übrig!",
|
||||
"moveDisabled": "{{moveName}} ist deaktiviert!",
|
||||
"noPokeballForce": "Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.",
|
||||
"noPokeballTrainer": "Du kannst das Pokémon\neines anderen Trainers nicht fangen!",
|
||||
"noPokeballMulti": "Du kannst erst einen Pokéball werden,\nwenn nur noch ein Pokémon übrig ist!",
|
||||
"noPokeballMulti": "Du kannst erst einen Pokéball werfen,\nwenn nur noch ein Pokémon übrig ist!",
|
||||
"noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!",
|
||||
"noEscapeForce": "Eine unsichtbare Kraft\nverhindert die Flucht.",
|
||||
"noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!",
|
||||
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!",
|
||||
"runAwaySuccess": "Du bist entkommen!",
|
||||
"runAwayCannotEscape": 'Du kannst nicht fliehen!',
|
||||
"runAwayCannotEscape": 'Flucht gescheitert!',
|
||||
"escapeVerbSwitch": "auswechseln",
|
||||
"escapeVerbFlee": "flucht",
|
||||
"skipItemQuestion": "Bist du sicher, dass du kein Item nehmen willst?",
|
||||
"notDisabled": "{{pokemonName}}'s {{moveName}} ist\nnicht mehr deaktiviert!",
|
||||
"eggHatching": "Oh?",
|
||||
"ivScannerUseQuestion": "IV-Scanner auf {{pokemonName}} benutzen?"
|
||||
} as const;
|
||||
} as const;
|
||||
|
@ -1,10 +1,13 @@
|
||||
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";
|
||||
@ -17,8 +20,10 @@ import { splashMessages } from "./splash-messages"
|
||||
|
||||
export const deConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
battle: battle,
|
||||
commandUiHandler: commandUiHandler,
|
||||
egg: egg,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
menu: menu,
|
||||
@ -30,5 +35,6 @@ export const deConfig = {
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth
|
||||
growth: growth,
|
||||
modifierType: modifierType,
|
||||
}
|
21
src/locales/de/egg.ts
Normal file
21
src/locales/de/egg.ts
Normal file
@ -0,0 +1,21 @@
|
||||
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;
|
@ -1,7 +1,7 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const fightUiHandler: SimpleTranslationEntries = {
|
||||
"pp": "PP",
|
||||
"power": "Power",
|
||||
"accuracy": "Accuracy",
|
||||
"pp": "AP",
|
||||
"power": "Stärke",
|
||||
"accuracy": "Genauigkeit",
|
||||
} as const;
|
@ -1,10 +1,10 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const growth: SimpleTranslationEntries = {
|
||||
"Erratic": "Erratic",
|
||||
"Fast": "Fast",
|
||||
"Medium_Fast": "Medium Fast",
|
||||
"Medium_Slow": "Medium Slow",
|
||||
"Slow": "Slow",
|
||||
"Fluctuating": "Fluctuating"
|
||||
"Erratic": "Unregelmäßig",
|
||||
"Fast": "Schnell",
|
||||
"Medium_Fast": "Schneller",
|
||||
"Medium_Slow": "Langsamer",
|
||||
"Slow": "Langsam",
|
||||
"Fluctuating": "Schwankend"
|
||||
} as const;
|
@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"EGG_GACHA": "Eier-Gacha",
|
||||
"MANAGE_DATA": "Daten verwalten",
|
||||
"COMMUNITY": "Community",
|
||||
"RETURN_TO_TITLE": "Zurück zum Titelbildschirm",
|
||||
"SAVE_AND_QUIT": "Save and Quit",
|
||||
"LOG_OUT": "Ausloggen",
|
||||
"slot": "Slot {{slotNumber}}",
|
||||
"importSession": "Sitzung importieren",
|
||||
|
@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = {
|
||||
"boyOrGirl": "Bist du ein Junge oder ein Mädchen?",
|
||||
"boy": "Junge",
|
||||
"girl": "Mädchen",
|
||||
"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": "Tägliche Rangliste",
|
||||
"weeklyRankings": "Wöchentliche Rangliste",
|
||||
"noRankings": "Keine Rangliste",
|
||||
|
410
src/locales/de/modifier-type.ts
Normal file
410
src/locales/de/modifier-type.ts
Normal file
@ -0,0 +1,410 @@
|
||||
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;
|
@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = {
|
||||
},
|
||||
"zippyZap": {
|
||||
name: "Britzelturbo",
|
||||
effect: "Ein stürmischer Blitz-Angriff mit hoher Erstschlag- und Volltrefferquote."
|
||||
effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness."
|
||||
},
|
||||
"splishySplash": {
|
||||
name: "Plätschersurfer",
|
||||
|
@ -7,8 +7,17 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam": "Mit diesen Pokémon losziehen?",
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
"gen4": "IV",
|
||||
"gen5": "V",
|
||||
"gen6": "VI",
|
||||
"gen7": "VII",
|
||||
"gen8": "VIII",
|
||||
"gen9": "IX",
|
||||
"growthRate": "Wachstum:",
|
||||
"ability": "Fhgkeit:",
|
||||
"ability": "Fähgkeit:",
|
||||
"passive": "Passiv:",
|
||||
"nature": "Wesen:",
|
||||
"eggMoves": "Ei-Attacken",
|
||||
@ -28,5 +37,8 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"cycleNature": "N: Wesen Ändern",
|
||||
"cycleVariant": "V: Seltenheit ändern",
|
||||
"enablePassive": "Passiv-Skill aktivieren",
|
||||
"disablePassive": "Passiv-Skill deaktivieren"
|
||||
}
|
||||
"disablePassive": "Passiv-Skill deaktivieren",
|
||||
"locked": "Gesperrt",
|
||||
"disabled": "Deaktiviert",
|
||||
"uncaught": "Ungefangen"
|
||||
}
|
||||
|
44
src/locales/de/weather.ts
Normal file
44
src/locales/de/weather.ts
Normal file
@ -0,0 +1,44 @@
|
||||
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.",
|
||||
|
||||
"rainStartMessage": "Es fängt an zu regnen!",
|
||||
"rainLapseMessage": "Es regnet weiterhin.",
|
||||
"rainClearMessage": "Es hört auf zu regnen.",
|
||||
|
||||
"sandstormStartMessage": "Ein Sandsturm braut sich zusammen!",
|
||||
"sandstormLapseMessage": "Der Sandsturm tobt.",
|
||||
"sandstormClearMessage": "Der Sandsturm lässt nach.",
|
||||
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nSandsturm beeinträchtigt!",
|
||||
|
||||
"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!",
|
||||
|
||||
"snowStartMessage": "Es fängt an zu schneien!",
|
||||
"snowLapseMessage": "Es schneit weiterhin.",
|
||||
"snowClearMessage": "Es hört auf zu schneien.",
|
||||
|
||||
"fogStartMessage": "Es fängt an zu nebeln!",
|
||||
"fogLapseMessage": "Es nebelt weiterhin.",
|
||||
"fogClearMessage": "Es hört auf zu nebeln.",
|
||||
|
||||
"heavyRainStartMessage": "Ein Starkregen beginnt!",
|
||||
"heavyRainLapseMessage": "Der Starkregen hält an.",
|
||||
"heavyRainClearMessage": "Der Starkregen lässt nach.",
|
||||
|
||||
"harshSunStartMessage": "Das Sonnenlicht wird wärmer!",
|
||||
"harshSunLapseMessage": "Das Sonnenlicht brennt.",
|
||||
"harshSunClearMessage": "Das Sonnenlicht schwächt ab.",
|
||||
|
||||
"strongWindsStartMessage": "Ein starker Wind zieht auf!",
|
||||
"strongWindsLapseMessage": "Der starke Wind tobt.",
|
||||
"strongWindsClearMessage": "Der starke Wind legt sich."
|
||||
}
|
5
src/locales/en/ability-trigger.ts
Normal file
5
src/locales/en/ability-trigger.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!`,
|
||||
} as const;
|
@ -475,7 +475,7 @@ export const ability: AbilityTranslationEntries = {
|
||||
},
|
||||
frisk: {
|
||||
name: "Frisk",
|
||||
description: "When it enters a battle, the Pokémon can check an opposing Pokémon's held item.",
|
||||
description: "When it enters a battle, the Pokémon can check an opposing Pokémon's Ability.",
|
||||
},
|
||||
reckless: {
|
||||
name: "Reckless",
|
||||
|
@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = {
|
||||
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
|
||||
"learnMoveForgetQuestion": "Which move should be forgotten?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
|
||||
"countdownPoof": "@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!",
|
||||
"learnMoveAnd": "And…",
|
||||
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
|
||||
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
|
||||
"moveNoPP": "There's no PP left for\nthis move!",
|
||||
|
@ -1,10 +1,13 @@
|
||||
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";
|
||||
@ -13,12 +16,15 @@ import { pokemonStat } from "./pokemon-stat";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { splashMessages } from "./splash-messages"
|
||||
import { weather } from "./weather";
|
||||
|
||||
|
||||
export const enConfig = {
|
||||
export const enConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
battle: battle,
|
||||
commandUiHandler: commandUiHandler,
|
||||
egg: egg,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
menu: menu,
|
||||
@ -30,5 +36,7 @@ export const enConfig = {
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
}
|
21
src/locales/en/egg.ts
Normal file
21
src/locales/en/egg.ts
Normal file
@ -0,0 +1,21 @@
|
||||
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;
|
@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"EGG_GACHA": "Egg Gacha",
|
||||
"MANAGE_DATA": "Manage Data",
|
||||
"COMMUNITY": "Community",
|
||||
"RETURN_TO_TITLE": "Return To Title",
|
||||
"SAVE_AND_QUIT": "Save and Quit",
|
||||
"LOG_OUT": "Log Out",
|
||||
"slot": "Slot {{slotNumber}}",
|
||||
"importSession": "Import Session",
|
||||
|
@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = {
|
||||
"boyOrGirl": "Are you a boy or a girl?",
|
||||
"boy": "Boy",
|
||||
"girl": "Girl",
|
||||
"evolving": "What?\n{{pokemonName}} is evolving!",
|
||||
"stoppedEvolving": "{{pokemonName}} stopped evolving.",
|
||||
"pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.",
|
||||
"evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.",
|
||||
"evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"weeklyRankings": "Weekly Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
|
409
src/locales/en/modifier-type.ts
Normal file
409
src/locales/en/modifier-type.ts
Normal file
@ -0,0 +1,409 @@
|
||||
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;
|
@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = {
|
||||
},
|
||||
"zippyZap": {
|
||||
name: "Zippy Zap",
|
||||
effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and results in a critical hit."
|
||||
effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness."
|
||||
},
|
||||
"splishySplash": {
|
||||
name: "Splishy Splash",
|
||||
|
@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam":'Begin with these Pokémon?',
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
"gen4": "IV",
|
||||
"gen5": "V",
|
||||
"gen6": "VI",
|
||||
"gen7": "VII",
|
||||
"gen8": "VIII",
|
||||
"gen9": "IX",
|
||||
"growthRate": "Growth Rate:",
|
||||
"ability": "Ability:",
|
||||
"passive": "Passive:",
|
||||
@ -28,5 +37,8 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"cycleNature": 'N: Cycle Nature',
|
||||
"cycleVariant": 'V: Cycle Variant',
|
||||
"enablePassive": "Enable Passive",
|
||||
"disablePassive": "Disable Passive"
|
||||
}
|
||||
"disablePassive": "Disable Passive",
|
||||
"locked": "Locked",
|
||||
"disabled": "Disabled",
|
||||
"uncaught": "Uncaught"
|
||||
}
|
||||
|
44
src/locales/en/weather.ts
Normal file
44
src/locales/en/weather.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
/**
|
||||
* The weather namespace holds text displayed when weather is active during a battle
|
||||
*/
|
||||
export const weather: SimpleTranslationEntries = {
|
||||
"sunnyStartMessage": "The sunlight got bright!",
|
||||
"sunnyLapseMessage": "The sunlight is strong.",
|
||||
"sunnyClearMessage": "The sunlight faded.",
|
||||
|
||||
"rainStartMessage": "A downpour started!",
|
||||
"rainLapseMessage": "The downpour continues.",
|
||||
"rainClearMessage": "The rain stopped.",
|
||||
|
||||
"sandstormStartMessage": "A sandstorm brewed!",
|
||||
"sandstormLapseMessage": "The sandstorm rages.",
|
||||
"sandstormClearMessage": "The sandstorm subsided.",
|
||||
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
|
||||
|
||||
"hailStartMessage": "It started to hail!",
|
||||
"hailLapseMessage": "Hail continues to fall.",
|
||||
"hailClearMessage": "The hail stopped.",
|
||||
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
|
||||
|
||||
"snowStartMessage": "It started to snow!",
|
||||
"snowLapseMessage": "The snow is falling down.",
|
||||
"snowClearMessage": "The snow stopped.",
|
||||
|
||||
"fogStartMessage": "A thick fog emerged!",
|
||||
"fogLapseMessage": "The fog continues.",
|
||||
"fogClearMessage": "The fog disappeared.",
|
||||
|
||||
"heavyRainStartMessage": "A heavy downpour started!",
|
||||
"heavyRainLapseMessage": "The heavy downpour continues.",
|
||||
"heavyRainClearMessage": "The heavy rain stopped.",
|
||||
|
||||
"harshSunStartMessage": "The sunlight got hot!",
|
||||
"harshSunLapseMessage": "The sun is scorching hot.",
|
||||
"harshSunClearMessage": "The harsh sunlight faded.",
|
||||
|
||||
"strongWindsStartMessage": "A heavy wind began!",
|
||||
"strongWindsLapseMessage": "The wind blows intensely.",
|
||||
"strongWindsClearMessage": "The heavy wind stopped."
|
||||
}
|
5
src/locales/es/ability-trigger.ts
Normal file
5
src/locales/es/ability-trigger.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!`,
|
||||
} as const;
|
@ -475,7 +475,7 @@ export const ability: AbilityTranslationEntries = {
|
||||
},
|
||||
"frisk": {
|
||||
name: "Cacheo",
|
||||
description: "Puede ver el objeto que lleva el rival al entrar en combate."
|
||||
description: "Cuando entra en combate, el Pokémon puede comprobar la habilidad de un Pokémon rival."
|
||||
},
|
||||
"reckless": {
|
||||
name: "Audaz",
|
||||
|
@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = {
|
||||
"learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
|
||||
"learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
|
||||
"countdownPoof": "@d{32}1, @d{15}2, @d{15}y@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}¡Puf!",
|
||||
"learnMoveAnd": "Y…",
|
||||
"levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
|
||||
"moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",
|
||||
"moveNoPP": "There's no PP left for\nthis move!",
|
||||
|
@ -1,10 +1,13 @@
|
||||
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";
|
||||
@ -13,12 +16,15 @@ import { pokemonStat } from "./pokemon-stat";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { splashMessages } from "./splash-messages"
|
||||
import { weather } from "./weather";
|
||||
|
||||
|
||||
export const esConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
battle: battle,
|
||||
commandUiHandler: commandUiHandler,
|
||||
egg: egg,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
menu: menu,
|
||||
@ -30,5 +36,7 @@ export const esConfig = {
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
}
|
21
src/locales/es/egg.ts
Normal file
21
src/locales/es/egg.ts
Normal file
@ -0,0 +1,21 @@
|
||||
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;
|
@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"EGG_GACHA": "Gacha de Huevos",
|
||||
"MANAGE_DATA": "Gestionar Datos",
|
||||
"COMMUNITY": "Comunidad",
|
||||
"RETURN_TO_TITLE": "Volver al Título",
|
||||
"SAVE_AND_QUIT": "Save and Quit",
|
||||
"LOG_OUT": "Cerrar Sesión",
|
||||
"slot": "Ranura {{slotNumber}}",
|
||||
"importSession": "Importar Sesión",
|
||||
|
@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = {
|
||||
"boyOrGirl": "¿Eres un chico o una chica?",
|
||||
"boy": "Chico",
|
||||
"girl": "Chica",
|
||||
"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": "Rankings Diarios",
|
||||
"weeklyRankings": "Rankings Semanales",
|
||||
"noRankings": "Sin Rankings",
|
||||
|
409
src/locales/es/modifier-type.ts
Normal file
409
src/locales/es/modifier-type.ts
Normal file
@ -0,0 +1,409 @@
|
||||
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;
|
@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = {
|
||||
},
|
||||
zippyZap: {
|
||||
name: "Pikaturbo",
|
||||
effect: "Ataque eléctrico a la velocidad del rayo. Este movimiento tiene prioridad alta y propina golpes críticos.",
|
||||
effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness.",
|
||||
},
|
||||
splishySplash: {
|
||||
name: "Salpikasurf",
|
||||
|
@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam":'¿Comenzar con estos Pokémon?',
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
"gen4": "IV",
|
||||
"gen5": "V",
|
||||
"gen6": "VI",
|
||||
"gen7": "VII",
|
||||
"gen8": "VIII",
|
||||
"gen9": "IX",
|
||||
"growthRate": "Crecimiento:",
|
||||
"ability": "Habilid:",
|
||||
"passive": "Pasiva:",
|
||||
@ -28,5 +37,8 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"cycleNature": 'N: Cambiar Naturaleza',
|
||||
"cycleVariant": 'V: Cambiar Variante',
|
||||
"enablePassive": "Activar Pasiva",
|
||||
"disablePassive": "Desactivar Pasiva"
|
||||
}
|
||||
"disablePassive": "Desactivar Pasiva",
|
||||
"locked": "Locked",
|
||||
"disabled": "Disabled",
|
||||
"uncaught": "Uncaught"
|
||||
}
|
||||
|
44
src/locales/es/weather.ts
Normal file
44
src/locales/es/weather.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
/**
|
||||
* The weather namespace holds text displayed when weather is active during a battle
|
||||
*/
|
||||
export const weather: SimpleTranslationEntries = {
|
||||
"sunnyStartMessage": "The sunlight got bright!",
|
||||
"sunnyLapseMessage": "The sunlight is strong.",
|
||||
"sunnyClearMessage": "The sunlight faded.",
|
||||
|
||||
"rainStartMessage": "A downpour started!",
|
||||
"rainLapseMessage": "The downpour continues.",
|
||||
"rainClearMessage": "The rain stopped.",
|
||||
|
||||
"sandstormStartMessage": "A sandstorm brewed!",
|
||||
"sandstormLapseMessage": "The sandstorm rages.",
|
||||
"sandstormClearMessage": "The sandstorm subsided.",
|
||||
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
|
||||
|
||||
"hailStartMessage": "It started to hail!",
|
||||
"hailLapseMessage": "Hail continues to fall.",
|
||||
"hailClearMessage": "The hail stopped.",
|
||||
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
|
||||
|
||||
"snowStartMessage": "It started to snow!",
|
||||
"snowLapseMessage": "The snow is falling down.",
|
||||
"snowClearMessage": "The snow stopped.",
|
||||
|
||||
"fogStartMessage": "A thick fog emerged!",
|
||||
"fogLapseMessage": "The fog continues.",
|
||||
"fogClearMessage": "The fog disappeared.",
|
||||
|
||||
"heavyRainStartMessage": "A heavy downpour started!",
|
||||
"heavyRainLapseMessage": "The heavy downpour continues.",
|
||||
"heavyRainClearMessage": "The heavy rain stopped.",
|
||||
|
||||
"harshSunStartMessage": "The sunlight got hot!",
|
||||
"harshSunLapseMessage": "The sun is scorching hot.",
|
||||
"harshSunClearMessage": "The harsh sunlight faded.",
|
||||
|
||||
"strongWindsStartMessage": "A heavy wind began!",
|
||||
"strongWindsLapseMessage": "The wind blows intensely.",
|
||||
"strongWindsClearMessage": "The heavy wind stopped."
|
||||
}
|
5
src/locales/fr/ability-trigger.ts
Normal file
5
src/locales/fr/ability-trigger.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{abilityName}}\nde {{pokemonName}} le protège du contrecoup !`,
|
||||
} as const;
|
@ -475,7 +475,7 @@ export const ability: AbilityTranslationEntries = {
|
||||
},
|
||||
frisk: {
|
||||
name: "Fouille",
|
||||
description: "Permet de connaitre l’objet tenu par l’adversaire quand le combat commence.",
|
||||
description: "Lorsqu'il entre en combat, le Pokémon peut vérifier la capacité d'un Pokémon adverse.",
|
||||
},
|
||||
reckless: {
|
||||
name: "Téméraire",
|
||||
|
@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = {
|
||||
"learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.",
|
||||
"learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
|
||||
"countdownPoof": "@d{32}1, @d{15}2, @d{15}et@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Tadaaa !",
|
||||
"learnMoveAnd": "Et…",
|
||||
"levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
|
||||
"moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
|
||||
"moveNoPP": "Il n’y a plus de PP pour\ncette capacité !",
|
||||
|
@ -1,10 +1,13 @@
|
||||
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";
|
||||
@ -13,12 +16,15 @@ import { pokemonStat } from "./pokemon-stat";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { tutorial } from "./tutorial";
|
||||
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,
|
||||
@ -30,5 +36,7 @@ export const frConfig = {
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
}
|
21
src/locales/fr/egg.ts
Normal file
21
src/locales/fr/egg.ts
Normal file
@ -0,0 +1,21 @@
|
||||
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": "Qu’est-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 n’avez pas assez de coupons !",
|
||||
"tooManyEggs": "Vous avez trop d’Œufs !",
|
||||
"pull": "Tirage",
|
||||
"pulls": "Tirages"
|
||||
} as const;
|
@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"EGG_GACHA": "Gacha-Œufs",
|
||||
"MANAGE_DATA": "Mes données",
|
||||
"COMMUNITY": "Communauté",
|
||||
"RETURN_TO_TITLE": "Écran titre",
|
||||
"SAVE_AND_QUIT": "Sauver & quitter",
|
||||
"LOG_OUT": "Déconnexion",
|
||||
"slot": "Emplacement {{slotNumber}}",
|
||||
"importSession": "Importer session",
|
||||
|
@ -30,6 +30,11 @@ export const menu: SimpleTranslationEntries = {
|
||||
"boyOrGirl": "Es-tu un garçon ou une fille ?",
|
||||
"boy": "Garçon",
|
||||
"girl": "Fille",
|
||||
"evolving": "Quoi ?\n{{pokemonName}} évolue !",
|
||||
"stoppedEvolving": "Hein ?\n{{pokemonName}} n’évolue plus !",
|
||||
"pauseEvolutionsQuestion": "Mettre en pause les évolutions pour {{pokemonName}} ?\nElles peuvent être réactivées depuis l’écran d’équipe.",
|
||||
"evolutionsPaused": "Les évolutions ont été mises en pause pour {{pokemonName}}.",
|
||||
"evolutionDone": "Félicitations !\n{{pokemonName}} a évolué en {{evolvedPokemonName}} !",
|
||||
"dailyRankings": "Classement du Jour",
|
||||
"weeklyRankings": "Classement de la Semaine",
|
||||
"noRankings": "Pas de Classement",
|
||||
|
409
src/locales/fr/modifier-type.ts
Normal file
409
src/locales/fr/modifier-type.ts
Normal file
@ -0,0 +1,409 @@
|
||||
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;
|
@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = {
|
||||
},
|
||||
"zippyZap": {
|
||||
name: "Pika-Sprint",
|
||||
effect: "Une attaque électrique rapide comme l’éclair qui inflige un coup critique à coup sûr. Frappe en priorité."
|
||||
effect: "Une attaque électrique rapide comme l’éclair qui auguemente l’esquive. Frappe en priorité."
|
||||
},
|
||||
"splishySplash": {
|
||||
name: "Pika-Splash",
|
||||
|
@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam":'Commencer avec ces Pokémon ?',
|
||||
"gen1": "1G",
|
||||
"gen2": "2G",
|
||||
"gen3": "3G",
|
||||
"gen4": "4G",
|
||||
"gen5": "5G",
|
||||
"gen6": "6G",
|
||||
"gen7": "7G",
|
||||
"gen8": "8G",
|
||||
"gen9": "9G",
|
||||
"growthRate": "Croissance :",
|
||||
"ability": "Talent :",
|
||||
"passive": "Passif :",
|
||||
@ -28,5 +37,8 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"cycleNature": "N: » Natures",
|
||||
"cycleVariant": "V: » Variants",
|
||||
"enablePassive": "Activer Passif",
|
||||
"disablePassive": "Désactiver Passif"
|
||||
"disablePassive": "Désactiver Passif",
|
||||
"locked": "Verrouillé",
|
||||
"disabled": "Désactivé",
|
||||
"uncaught": "Non-capturé"
|
||||
}
|
||||
|
44
src/locales/fr/weather.ts
Normal file
44
src/locales/fr/weather.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
/**
|
||||
* The weather namespace holds text displayed when weather is active during a battle
|
||||
*/
|
||||
export const weather: SimpleTranslationEntries = {
|
||||
"sunnyStartMessage": "Les rayons du soleil brillent !",
|
||||
"sunnyLapseMessage": "Les rayons du soleil brillent fort !",
|
||||
"sunnyClearMessage": "Les rayons du soleil s’affaiblissent !",
|
||||
|
||||
"rainStartMessage": "Il commence à pleuvoir !",
|
||||
"rainLapseMessage": "La pluie continue de tomber !",
|
||||
"rainClearMessage": "La pluie s’est arrêtée !",
|
||||
|
||||
"sandstormStartMessage": "Une tempête de sable se prépare !",
|
||||
"sandstormLapseMessage": "La tempête de sable fait rage !",
|
||||
"sandstormClearMessage": "La tempête de sable se calme !",
|
||||
"sandstormDamageMessage": "La tempête de sable inflige des dégâts\nà {{pokemonPrefix}}{{pokemonName}} !",
|
||||
|
||||
"hailStartMessage": "Il commence à grêler !",
|
||||
"hailLapseMessage": "La grêle continue de tomber !",
|
||||
"hailClearMessage": "La grêle s’est arrêtée !",
|
||||
"hailDamageMessage": "La grêle inflige des dégâts\nà {{pokemonPrefix}}{{pokemonName}} !",
|
||||
|
||||
"snowStartMessage": "Il commence à neiger !",
|
||||
"snowLapseMessage": "Il y a une tempête de neige !",
|
||||
"snowClearMessage": "La neige s’est arrêtée !",
|
||||
|
||||
"fogStartMessage": "Le brouillard devient épais…",
|
||||
"fogLapseMessage": "Le brouillard continue !",
|
||||
"fogClearMessage": "Le brouillard s’est dissipé !",
|
||||
|
||||
"heavyRainStartMessage": "Une pluie battante s’abat soudainement !",
|
||||
"heavyRainLapseMessage": "La pluie battante continue.",
|
||||
"heavyRainClearMessage": "La pluie battante s’est arrêtée…",
|
||||
|
||||
"harshSunStartMessage": "Les rayons du soleil s’intensifient !",
|
||||
"harshSunLapseMessage": "Les rayons du soleil sont brulants !",
|
||||
"harshSunClearMessage": "Les rayons du soleil s’affaiblissent !",
|
||||
|
||||
"strongWindsStartMessage": "Un vent mystérieux se lève !",
|
||||
"strongWindsLapseMessage": "Le vent mystérieux violemment !",
|
||||
"strongWindsClearMessage": "Le vent mystérieux s’est dissipé…"
|
||||
}
|
5
src/locales/it/ability-trigger.ts
Normal file
5
src/locales/it/ability-trigger.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const abilityTriggers: SimpleTranslationEntries = {
|
||||
'blockRecoilDamage' : `{{abilityName}} di {{pokemonName}}\nl'ha protetto dal contraccolpo!`,
|
||||
} as const;
|
@ -475,7 +475,7 @@ export const ability: AbilityTranslationEntries = {
|
||||
},
|
||||
frisk: {
|
||||
name: "Indagine",
|
||||
description: "Quando il Pokémon entra in campo, rivela lo strumento del nemico.",
|
||||
description: "Quando entra in battaglia, il Pokémon può controllare il Potere di un Pokémon avversario.",
|
||||
},
|
||||
reckless: {
|
||||
name: "Temerarietà",
|
||||
|
@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = {
|
||||
"learnMoveNotLearned": "{{pokemonName}} non ha imparato\n{{moveName}}.",
|
||||
"learnMoveForgetQuestion": "Quale mossa deve dimenticare?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} ha dimenticato la mossa\n{{moveName}}.",
|
||||
"countdownPoof": "@d{32}1, @d{15}2, @d{15}e@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Puff!",
|
||||
"learnMoveAnd": "E…",
|
||||
"levelCapUp": "Il livello massimo\nè aumentato a {{levelCap}}!",
|
||||
"moveNotImplemented": "{{moveName}} non è ancora implementata e non può essere selezionata.",
|
||||
"moveNoPP": "Non ci sono PP rimanenti\nper questa mossa!",
|
||||
|
@ -1,10 +1,13 @@
|
||||
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";
|
||||
@ -13,12 +16,15 @@ import { pokemonStat } from "./pokemon-stat";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { splashMessages } from "./splash-messages"
|
||||
import { weather } from "./weather";
|
||||
|
||||
|
||||
export const itConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
battle: battle,
|
||||
commandUiHandler: commandUiHandler,
|
||||
egg: egg,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
menu: menu,
|
||||
@ -30,5 +36,7 @@ export const itConfig = {
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
}
|
21
src/locales/it/egg.ts
Normal file
21
src/locales/it/egg.ts
Normal file
@ -0,0 +1,21 @@
|
||||
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;
|
@ -3,5 +3,5 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
export const fightUiHandler: SimpleTranslationEntries = {
|
||||
"pp": "PP",
|
||||
"power": "Potenza",
|
||||
"accuracy": "Accuracy",
|
||||
"accuracy": "Precisione",
|
||||
} as const;
|
@ -1,10 +1,10 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const growth: SimpleTranslationEntries = {
|
||||
"Erratic": "Erratic",
|
||||
"Fast": "Fast",
|
||||
"Medium_Fast": "Medium Fast",
|
||||
"Medium_Slow": "Medium Slow",
|
||||
"Slow": "Slow",
|
||||
"Fluctuating": "Fluctuating"
|
||||
"Erratic": "Irregolare",
|
||||
"Fast": "Veloce",
|
||||
"Medium_Fast": "Medio-Veloce",
|
||||
"Medium_Slow": "Medio-Lenta",
|
||||
"Slow": "Lenta",
|
||||
"Fluctuating": "Fluttuante"
|
||||
} as const;
|
@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"EGG_GACHA": "Gacha Uova",
|
||||
"MANAGE_DATA": "Gestisci Dati",
|
||||
"COMMUNITY": "Community",
|
||||
"RETURN_TO_TITLE": "Ritorna al Titolo",
|
||||
"SAVE_AND_QUIT": "Save and Quit",
|
||||
"LOG_OUT": "Disconnettiti",
|
||||
"slot": "Slot {{slotNumber}}",
|
||||
"importSession": "Importa Sessione",
|
||||
|
@ -40,6 +40,11 @@ export const menu: SimpleTranslationEntries = {
|
||||
"noRankings": "Nessuna Classifica",
|
||||
"loading": "Caricamento…",
|
||||
"playersOnline": "Giocatori Online",
|
||||
"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",
|
||||
|
409
src/locales/it/modifier-type.ts
Normal file
409
src/locales/it/modifier-type.ts
Normal file
@ -0,0 +1,409 @@
|
||||
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;
|
@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = {
|
||||
},
|
||||
zippyZap: {
|
||||
name: "Sprintaboom",
|
||||
effect: "Un attacco elettrico ad altissima velocità. Questa mossa ha priorità alta e infligge sicuramente un brutto colpo.",
|
||||
effect: "The user attacks the target with bursts of electricity at high speed. This move always goes first and raises the user's evasiveness.",
|
||||
},
|
||||
splishySplash: {
|
||||
name: "Surfasplash",
|
||||
|
@ -1,29 +1,29 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const nature: SimpleTranslationEntries = {
|
||||
"Hardy": "Hardy",
|
||||
"Lonely": "Lonely",
|
||||
"Brave": "Brave",
|
||||
"Adamant": "Adamant",
|
||||
"Naughty": "Naughty",
|
||||
"Bold": "Bold",
|
||||
"Hardy": "Ardita",
|
||||
"Lonely": "Schiva",
|
||||
"Brave": "Audace",
|
||||
"Adamant": "Decisa",
|
||||
"Naughty": "Birbona",
|
||||
"Bold": "Sicura",
|
||||
"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"
|
||||
"Relaxed": "Placida",
|
||||
"Impish": "Scaltra",
|
||||
"Lax": "Fiacca",
|
||||
"Timid": "Timida",
|
||||
"Hasty": "Lesta",
|
||||
"Serious": "Seria",
|
||||
"Jolly": "Allegra",
|
||||
"Naive": "Ingenuaa",
|
||||
"Modest": "Modesta",
|
||||
"Mild": "Mite",
|
||||
"Quiet": "Quieta",
|
||||
"Bashful": "Ritrosa",
|
||||
"Rash": "Ardente",
|
||||
"Calm": "Calma",
|
||||
"Gentle": "Gentile",
|
||||
"Sassy": "Vivace",
|
||||
"Careful": "Cauta",
|
||||
"Quirky": "Furba"
|
||||
} as const;
|
@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
*/
|
||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"confirmStartTeam":'Vuoi iniziare con questi Pokémon?',
|
||||
"gen1": "I",
|
||||
"gen2": "II",
|
||||
"gen3": "III",
|
||||
"gen4": "IV",
|
||||
"gen5": "V",
|
||||
"gen6": "VI",
|
||||
"gen7": "VII",
|
||||
"gen8": "VIII",
|
||||
"gen9": "IX",
|
||||
"growthRate": "Vel. Crescita:",
|
||||
"ability": "Abilità:",
|
||||
"passive": "Passiva:",
|
||||
@ -28,5 +37,8 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"cycleNature": 'N: Alterna Natura',
|
||||
"cycleVariant": 'V: Alterna Variante',
|
||||
"enablePassive": "Attiva Passiva",
|
||||
"disablePassive": "Disattiva Passiva"
|
||||
"disablePassive": "Disattiva Passiva",
|
||||
"locked": "Bloccato",
|
||||
"disabled": "Disabilitato",
|
||||
"uncaught": "Non Catturato"
|
||||
}
|
44
src/locales/it/weather.ts
Normal file
44
src/locales/it/weather.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
/**
|
||||
* The weather namespace holds text displayed when weather is active during a battle
|
||||
*/
|
||||
export const weather: SimpleTranslationEntries = {
|
||||
"sunnyStartMessage": "The sunlight got bright!",
|
||||
"sunnyLapseMessage": "The sunlight is strong.",
|
||||
"sunnyClearMessage": "The sunlight faded.",
|
||||
|
||||
"rainStartMessage": "A downpour started!",
|
||||
"rainLapseMessage": "The downpour continues.",
|
||||
"rainClearMessage": "The rain stopped.",
|
||||
|
||||
"sandstormStartMessage": "A sandstorm brewed!",
|
||||
"sandstormLapseMessage": "The sandstorm rages.",
|
||||
"sandstormClearMessage": "The sandstorm subsided.",
|
||||
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
|
||||
|
||||
"hailStartMessage": "It started to hail!",
|
||||
"hailLapseMessage": "Hail continues to fall.",
|
||||
"hailClearMessage": "The hail stopped.",
|
||||
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
|
||||
|
||||
"snowStartMessage": "It started to snow!",
|
||||
"snowLapseMessage": "The snow is falling down.",
|
||||
"snowClearMessage": "The snow stopped.",
|
||||
|
||||
"fogStartMessage": "A thick fog emerged!",
|
||||
"fogLapseMessage": "The fog continues.",
|
||||
"fogClearMessage": "The fog disappeared.",
|
||||
|
||||
"heavyRainStartMessage": "A heavy downpour started!",
|
||||
"heavyRainLapseMessage": "The heavy downpour continues.",
|
||||
"heavyRainClearMessage": "The heavy rain stopped.",
|
||||
|
||||
"harshSunStartMessage": "The sunlight got hot!",
|
||||
"harshSunLapseMessage": "The sun is scorching hot.",
|
||||
"harshSunClearMessage": "The harsh sunlight faded.",
|
||||
|
||||
"strongWindsStartMessage": "A heavy wind began!",
|
||||
"strongWindsLapseMessage": "The wind blows intensely.",
|
||||
"strongWindsClearMessage": "The heavy wind stopped."
|
||||
}
|
1241
src/locales/pt_BR/ability.ts
Normal file
1241
src/locales/pt_BR/ability.ts
Normal file
File diff suppressed because it is too large
Load Diff
55
src/locales/pt_BR/battle.ts
Normal file
55
src/locales/pt_BR/battle.ts
Normal file
@ -0,0 +1,55 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const battle: SimpleTranslationEntries = {
|
||||
"bossAppeared": "{{bossName}} apareceu.",
|
||||
"trainerAppeared": "{{trainerName}}\nquer batalhar!",
|
||||
"singleWildAppeared": "Um {{pokemonName}} selvagem apareceu!",
|
||||
"multiWildAppeared": "Um {{pokemonName1}} e um {{pokemonName2}} selvagens\napareceram!",
|
||||
"playerComeBack": "{{pokemonName}}, retorne!",
|
||||
"trainerComeBack": "{{trainerName}} retirou {{pokemonName}} da batalha!",
|
||||
"playerGo": "{{pokemonName}}, eu escolho você!",
|
||||
"trainerGo": "{{trainerName}} enviou {{pokemonName}}!",
|
||||
"switchQuestion": "Quer trocar\nde {{pokemonName}}?",
|
||||
"trainerDefeated": "Você derrotou\n{{trainerName}}!",
|
||||
"pokemonCaught": "{{pokemonName}} foi capturado!",
|
||||
"pokemon": "Pokémon",
|
||||
"sendOutPokemon": "{{pokemonName}}, eu escolho você!!",
|
||||
"hitResultCriticalHit": "Um golpe crítico!",
|
||||
"hitResultSuperEffective": "É supereficaz!",
|
||||
"hitResultNotVeryEffective": "É pouco eficaz...",
|
||||
"hitResultNoEffect": "Isso não afeta {{pokemonName}}!",
|
||||
"hitResultOneHitKO": "Foi um nocaute de um golpe!",
|
||||
"attackFailed": "Mas falhou!",
|
||||
"attackHitsCount": `Acertou {{count}} vezes.`,
|
||||
"expGain": "{{pokemonName}} ganhou\n{{exp}} pontos de experiência.",
|
||||
"levelUp": "{{pokemonName}} subiu para \nNv. {{level}}!",
|
||||
"learnMove": "{{pokemonName}} aprendeu {{moveName}}!",
|
||||
"learnMovePrompt": "{{pokemonName}} quer aprender\n{{moveName}}.",
|
||||
"learnMoveLimitReached": "Porém, {{pokemonName}} já sabe\nquatro movimentos.",
|
||||
"learnMoveReplaceQuestion": "Quer substituir um de seus movimentos por {{moveName}}?",
|
||||
"learnMoveStopTeaching": "Você não quer aprender\n{{moveName}}?",
|
||||
"learnMoveNotLearned": "{{pokemonName}} não aprendeu {{moveName}}.",
|
||||
"learnMoveForgetQuestion": "Qual movimento quer esquecer?",
|
||||
"learnMoveForgetSuccess": "{{pokemonName}} esqueceu como usar {{moveName}}.",
|
||||
"countdownPoof": "@d{32}1, @d{15}2, @d{15}e@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Puf!",
|
||||
"learnMoveAnd": "E…",
|
||||
"levelCapUp": "O nível máximo aumentou\npara {{levelCap}}!",
|
||||
"moveNotImplemented": "{{moveName}} ainda não foi implementado e não pode ser usado.",
|
||||
"moveNoPP": "Não há mais PP\npara esse movimento!",
|
||||
"moveDisabled": "Não se pode usar {{moveName}} porque foi desabilitado!",
|
||||
"noPokeballForce": "Uma força misteriosa\nte impede de usar Poké Bolas.",
|
||||
"noPokeballTrainer": "Não se pode capturar\nPokémon dos outros!",
|
||||
"noPokeballMulti": "Não se pode lançar Poké Bolas\nquando há mais de um Pokémon!",
|
||||
"noPokeballStrong": "Este Pokémon é forte demais para ser capturado!\nÉ preciso enfraquecê-lo primeiro!",
|
||||
"noEscapeForce": "Uma força misteriosa\nte impede de fugir.",
|
||||
"noEscapeTrainer": "Não se pode fugir de\nbatalhas contra treinadores!",
|
||||
"noEscapePokemon": "O movimento {{moveName}} de {{pokemonName}} te impede de fugir!",
|
||||
"runAwaySuccess": "Você fugiu com sucesso",
|
||||
"runAwayCannotEscape": "Você nao conseguiu fugir!",
|
||||
"escapeVerbSwitch": "trocar",
|
||||
"escapeVerbFlee": "fugir",
|
||||
"notDisabled": "O movimento {{moveName}}\nnão está mais desabilitado!",
|
||||
"skipItemQuestion": "Tem certeza de que não quer escolher um item?",
|
||||
"eggHatching": "Opa?",
|
||||
"ivScannerUseQuestion": "Quer usar o Scanner de IVs em {{pokemonName}}?"
|
||||
} as const;
|
9
src/locales/pt_BR/command-ui-handler.ts
Normal file
9
src/locales/pt_BR/command-ui-handler.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const commandUiHandler: SimpleTranslationEntries = {
|
||||
"fight": "Lutar",
|
||||
"ball": "Bolas",
|
||||
"pokemon": "Pokémon",
|
||||
"run": "Fugir",
|
||||
"actionMessage": "O que {{pokemonName}}\ndeve fazer?",
|
||||
} as const;
|
36
src/locales/pt_BR/config.ts
Normal file
36
src/locales/pt_BR/config.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import { ability } from "./ability";
|
||||
import { battle } from "./battle";
|
||||
import { commandUiHandler } from "./command-ui-handler";
|
||||
import { fightUiHandler } from "./fight-ui-handler";
|
||||
import { growth } from "./growth";
|
||||
import { menu } from "./menu";
|
||||
import { menuUiHandler } from "./menu-ui-handler";
|
||||
import { modifierType } from "./modifier-type";
|
||||
import { move } from "./move";
|
||||
import { nature } from "./nature";
|
||||
import { pokeball } from "./pokeball";
|
||||
import { pokemon } from "./pokemon";
|
||||
import { pokemonStat } from "./pokemon-stat";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
|
||||
|
||||
export const ptBrConfig = {
|
||||
ability: ability,
|
||||
battle: battle,
|
||||
commandUiHandler: commandUiHandler,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
menu: menu,
|
||||
move: move,
|
||||
pokeball: pokeball,
|
||||
pokemonStat: pokemonStat,
|
||||
pokemon: pokemon,
|
||||
starterSelectUiHandler: starterSelectUiHandler,
|
||||
tutorial: tutorial,
|
||||
nature: nature,
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
}
|
7
src/locales/pt_BR/fight-ui-handler.ts
Normal file
7
src/locales/pt_BR/fight-ui-handler.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const fightUiHandler: SimpleTranslationEntries = {
|
||||
"pp": "PP",
|
||||
"power": "Poder",
|
||||
"accuracy": "Precisão",
|
||||
} as const;
|
10
src/locales/pt_BR/growth.ts
Normal file
10
src/locales/pt_BR/growth.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const growth: SimpleTranslationEntries = {
|
||||
"Erratic": "Instável",
|
||||
"Fast": "Rápido",
|
||||
"Medium_Fast": "Meio Rápido",
|
||||
"Medium_Slow": "Meio Lento",
|
||||
"Slow": "Lento",
|
||||
"Fluctuating": "Flutuante"
|
||||
} as const;
|
23
src/locales/pt_BR/menu-ui-handler.ts
Normal file
23
src/locales/pt_BR/menu-ui-handler.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"GAME_SETTINGS": "Configurações",
|
||||
"ACHIEVEMENTS": "Conquistas",
|
||||
"STATS": "Estatísticas",
|
||||
"VOUCHERS": "Vouchers",
|
||||
"EGG_LIST": "Incubadora",
|
||||
"EGG_GACHA": "Gacha de ovos",
|
||||
"MANAGE_DATA": "Gerenciar dados",
|
||||
"COMMUNITY": "Comunidade",
|
||||
"SAVE_AND_QUIT": "Salvar e sair",
|
||||
"LOG_OUT": "Logout",
|
||||
"slot": "Slot {{slotNumber}}",
|
||||
"importSession": "Importar sessão",
|
||||
"importSlotSelect": "Selecione um slot para importar.",
|
||||
"exportSession": "Exportar sessão",
|
||||
"exportSlotSelect": "Selecione um slot para exportar.",
|
||||
"importData": "Importar dados",
|
||||
"exportData": "Exportar dados",
|
||||
"cancel": "Cancelar",
|
||||
"losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?"
|
||||
} as const;
|
51
src/locales/pt_BR/menu.ts
Normal file
51
src/locales/pt_BR/menu.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
/**
|
||||
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||
* contents or directly related to Pokemon data. This includes menu navigation, settings,
|
||||
* account interactions, descriptive text, etc.
|
||||
*/
|
||||
export const menu: SimpleTranslationEntries = {
|
||||
"cancel": "Cancelar",
|
||||
"continue": "Continuar",
|
||||
"dailyRun": "Desafio Diário (Beta)",
|
||||
"loadGame": "Carregar Jogo",
|
||||
"newGame": "Novo Jogo",
|
||||
"selectGameMode": "Escolha um modo de jogo.",
|
||||
"logInOrCreateAccount": "Inicie uma sessão ou crie uma conta para começar. Não é necessário email!",
|
||||
"username": "Nome de Usuário",
|
||||
"password": "Senha",
|
||||
"login": "Iniciar sessão",
|
||||
"register": "Registrar-se",
|
||||
"emptyUsername": "Nome de usuário vazio",
|
||||
"invalidLoginUsername": "Nome de usuário inválido",
|
||||
"invalidRegisterUsername": "O nome de usuário só pode conter letras, números e sublinhados",
|
||||
"invalidLoginPassword": "Senha inválida",
|
||||
"invalidRegisterPassword": "A senha deve ter pelo menos 6 caracteres",
|
||||
"usernameAlreadyUsed": "Esse nome de usuário já está em uso",
|
||||
"accountNonExistent": "Esse nome de usuário não existe",
|
||||
"unmatchingPassword": "Senha incorreta",
|
||||
"passwordNotMatchingConfirmPassword": "As senhas não coincidem",
|
||||
"confirmPassword": "Confirmar senha",
|
||||
"registrationAgeWarning": "Se registrando, você confirma que tem pelo menos 13 anos de idade.",
|
||||
"backToLogin": "Voltar ao Login",
|
||||
"failedToLoadSaveData": "Não foi possível carregar os dados de salvamento. Por favor, recarregue a página.\nSe a falha persistir, contate o administrador.",
|
||||
"sessionSuccess": "Sessão carregada com sucesso.",
|
||||
"failedToLoadSession": "Não foi possível carregar os dados da sua sessão.\nEles podem estar corrompidos.",
|
||||
"boyOrGirl": "Você é um menino ou uma menina?",
|
||||
"boy": "Menino",
|
||||
"girl": "Menina",
|
||||
"evolving": "Que?\n{{pokemonName}} tá evoluindo!",
|
||||
"stoppedEvolving": "{{pokemonName}} parou de evoluir.",
|
||||
"pauseEvolutionsQuestion": "Gostaria de pausar evoluções para {{pokemonName}}?\nEvoluções podem ser religadas na tela de equipe.",
|
||||
"evolutionsPaused": "Evoluções foram paradas para {{pokemonName}}.",
|
||||
"evolutionDone": "Parabéns!\nSeu {{pokemonName}} evolui para {{evolvedPokemonName}}!",
|
||||
"dailyRankings": "Classificação Diária",
|
||||
"weeklyRankings": "Classificação Semanal",
|
||||
"noRankings": "Sem Classificação",
|
||||
"loading": "Carregando…",
|
||||
"playersOnline": "Jogadores Ativos",
|
||||
"empty": "Vazio",
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
} as const;
|
409
src/locales/pt_BR/modifier-type.ts
Normal file
409
src/locales/pt_BR/modifier-type.ts
Normal file
@ -0,0 +1,409 @@
|
||||
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;
|
3812
src/locales/pt_BR/move.ts
Normal file
3812
src/locales/pt_BR/move.ts
Normal file
File diff suppressed because it is too large
Load Diff
29
src/locales/pt_BR/nature.ts
Normal file
29
src/locales/pt_BR/nature.ts
Normal file
@ -0,0 +1,29 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const nature: SimpleTranslationEntries = {
|
||||
"Hardy": "Destemida",
|
||||
"Lonely": "Solitária",
|
||||
"Brave": "Valente",
|
||||
"Adamant": "Rígida",
|
||||
"Naughty": "Teimosa",
|
||||
"Bold": "Corajosa",
|
||||
"Docile": "Dócil",
|
||||
"Relaxed": "Relaxada",
|
||||
"Impish": "Inquieta",
|
||||
"Lax": "Relaxada",
|
||||
"Timid": "Tímida",
|
||||
"Hasty": "Apressada",
|
||||
"Serious": "Séria",
|
||||
"Jolly": "Alegre",
|
||||
"Naive": "Ingênua",
|
||||
"Modest": "Modesta",
|
||||
"Mild": "Mansa",
|
||||
"Quiet": "Quieta",
|
||||
"Bashful": "Atrapalhada",
|
||||
"Rash": "Rabugenta",
|
||||
"Calm": "Calma",
|
||||
"Gentle": "Gentil",
|
||||
"Sassy": "Atrevida",
|
||||
"Careful": "Cuidadosa",
|
||||
"Quirky": "Peculiar",
|
||||
} as const;
|
10
src/locales/pt_BR/pokeball.ts
Normal file
10
src/locales/pt_BR/pokeball.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const pokeball: SimpleTranslationEntries = {
|
||||
"pokeBall": "Poké Bola",
|
||||
"greatBall": "Grande Bola",
|
||||
"ultraBall": "Ultra Bola",
|
||||
"rogueBall": "Rogue Bola",
|
||||
"masterBall": "Master Bola",
|
||||
"luxuryBall": "Bola de Luxo",
|
||||
} as const;
|
16
src/locales/pt_BR/pokemon-stat.ts
Normal file
16
src/locales/pt_BR/pokemon-stat.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const pokemonStat: SimpleTranslationEntries = {
|
||||
"HP": "PS",
|
||||
"HPshortened": "PS",
|
||||
"ATK": "Ataque",
|
||||
"ATKshortened": "Ata",
|
||||
"DEF": "Defesa",
|
||||
"DEFshortened": "Def",
|
||||
"SPATK": "At. Esp.",
|
||||
"SPATKshortened": "AtEsp",
|
||||
"SPDEF": "Def. Esp.",
|
||||
"SPDEFshortened": "DefEsp",
|
||||
"SPD": "Veloc.",
|
||||
"SPDshortened": "Veloc."
|
||||
} as const;
|
1086
src/locales/pt_BR/pokemon.ts
Normal file
1086
src/locales/pt_BR/pokemon.ts
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user