mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-01 13:12:19 +02:00
Compare commits
No commits in common. "98ae2bc665257b985f57ac87b0e94d46b5d163d1" and "af56eee1cf23383164a2ac390afb94ba01bdde4d" have entirely different histories.
98ae2bc665
...
af56eee1cf
Binary file not shown.
Binary file not shown.
BIN
public/fonts/PokePT_Wansung.ttf
Normal file
BIN
public/fonts/PokePT_Wansung.ttf
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/fonts/unifont-15.1.05.otf
Normal file
BIN
public/fonts/unifont-15.1.05.otf
Normal file
Binary file not shown.
Binary file not shown.
@ -1,440 +0,0 @@
|
|||||||
{
|
|
||||||
"textures": [
|
|
||||||
{
|
|
||||||
"image": "types_ja.png",
|
|
||||||
"format": "RGBA8888",
|
|
||||||
"size": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 280
|
|
||||||
},
|
|
||||||
"scale": 1,
|
|
||||||
"frames": [
|
|
||||||
{
|
|
||||||
"filename": "unknown",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "bug",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 14,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "dark",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 28,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "dragon",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 42,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "electric",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 56,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "fairy",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 70,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "fighting",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 84,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "fire",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 98,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "flying",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 112,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "ghost",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 126,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "grass",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 140,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "ground",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 154,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "ice",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 168,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "normal",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 182,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "poison",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 196,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "psychic",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 210,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "rock",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 224,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "steel",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 238,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "water",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 252,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "stellar",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": false,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 266,
|
|
||||||
"w": 32,
|
|
||||||
"h": 14
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"meta": {
|
|
||||||
"app": "https://www.codeandweb.com/texturepacker",
|
|
||||||
"version": "3.0",
|
|
||||||
"smartupdate": "$TexturePacker:SmartUpdate:f14cf47d9a8f1d40c8e03aa6ba00fff3:6fc4227b57a95d429a1faad4280f7ec8:5961efbfbf4c56b8745347e7a663a32f$"
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.1 KiB |
@ -6,7 +6,7 @@ import { BattleStat, getBattleStatName } from "./battle-stat";
|
|||||||
import { MovePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases";
|
import { MovePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases";
|
||||||
import { getPokemonNameWithAffix } from "../messages";
|
import { getPokemonNameWithAffix } from "../messages";
|
||||||
import { Weather, WeatherType } from "./weather";
|
import { Weather, WeatherType } from "./weather";
|
||||||
import { BattlerTag, GroundedTag, GulpMissileTag } from "./battler-tags";
|
import { BattlerTag, GroundedTag } from "./battler-tags";
|
||||||
import { StatusEffect, getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
import { StatusEffect, getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
||||||
import { Gender } from "./gender";
|
import { Gender } from "./gender";
|
||||||
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr, MoveAttr, MultiHitAttr, ChargeAttr, SacrificialAttr, SacrificialAttrOnHit } from "./move";
|
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr, MoveAttr, MultiHitAttr, ChargeAttr, SacrificialAttr, SacrificialAttrOnHit } from "./move";
|
||||||
@ -496,49 +496,6 @@ export class PostDefendAbAttr extends AbAttr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Applies the effects of Gulp Missile when the user is hit by an attack.
|
|
||||||
* @extends PostDefendAbAttr
|
|
||||||
*/
|
|
||||||
export class PostDefendGulpMissileAbAttr extends PostDefendAbAttr {
|
|
||||||
constructor() {
|
|
||||||
super(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Damages the attacker and triggers the secondary effect based on the form or the BattlerTagType.
|
|
||||||
* @param {Pokemon} pokemon - The defending Pokemon.
|
|
||||||
* @param passive - n/a
|
|
||||||
* @param {Pokemon} attacker - The attacking Pokemon.
|
|
||||||
* @param {Move} move - The move being used.
|
|
||||||
* @param {HitResult} hitResult - n/a
|
|
||||||
* @param {any[]} args - n/a
|
|
||||||
* @returns Whether the effects of the ability are applied.
|
|
||||||
*/
|
|
||||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean | Promise<boolean> {
|
|
||||||
const battlerTag = pokemon.getTag(GulpMissileTag);
|
|
||||||
if (!battlerTag || move.category === MoveCategory.STATUS) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const cancelled = new Utils.BooleanHolder(false);
|
|
||||||
applyAbAttrs(BlockNonDirectDamageAbAttr, attacker, cancelled);
|
|
||||||
|
|
||||||
if (!cancelled.value) {
|
|
||||||
attacker.damageAndUpdate(Math.max(1, Math.floor(attacker.getMaxHp() / 4)), HitResult.OTHER);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (battlerTag.tagType === BattlerTagType.GULP_MISSILE_ARROKUDA) {
|
|
||||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, attacker.getBattlerIndex(), false, [ BattleStat.DEF ], -1));
|
|
||||||
} else {
|
|
||||||
attacker.trySetStatus(StatusEffect.PARALYSIS, true, pokemon);
|
|
||||||
}
|
|
||||||
|
|
||||||
pokemon.removeTag(battlerTag.tagType);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class PostDefendDisguiseAbAttr extends PostDefendAbAttr {
|
export class PostDefendDisguiseAbAttr extends PostDefendAbAttr {
|
||||||
|
|
||||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
|
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
|
||||||
@ -5130,11 +5087,7 @@ export function initAbilities() {
|
|||||||
.attr(UnsuppressableAbilityAbAttr)
|
.attr(UnsuppressableAbilityAbAttr)
|
||||||
.attr(NoTransformAbilityAbAttr)
|
.attr(NoTransformAbilityAbAttr)
|
||||||
.attr(NoFusionAbilityAbAttr)
|
.attr(NoFusionAbilityAbAttr)
|
||||||
.attr(UncopiableAbilityAbAttr)
|
.unimplemented(),
|
||||||
.attr(UnswappableAbilityAbAttr)
|
|
||||||
.attr(PostDefendGulpMissileAbAttr)
|
|
||||||
// Does not transform when Surf/Dive misses/is protected
|
|
||||||
.partial(),
|
|
||||||
new Ability(Abilities.STALWART, 8)
|
new Ability(Abilities.STALWART, 8)
|
||||||
.attr(BlockRedirectAbAttr),
|
.attr(BlockRedirectAbAttr),
|
||||||
new Ability(Abilities.STEAM_ENGINE, 8)
|
new Ability(Abilities.STEAM_ENGINE, 8)
|
||||||
|
@ -1647,39 +1647,6 @@ export class StockpilingTag extends BattlerTag {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Battler tag for Gulp Missile used by Cramorant.
|
|
||||||
* @extends BattlerTag
|
|
||||||
*/
|
|
||||||
export class GulpMissileTag extends BattlerTag {
|
|
||||||
constructor(tagType: BattlerTagType, sourceMove: Moves) {
|
|
||||||
super(tagType, BattlerTagLapseType.CUSTOM, 0, sourceMove);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gulp Missile's initial form changes are triggered by using Surf and Dive.
|
|
||||||
* @param {Pokemon} pokemon The Pokemon with Gulp Missile ability.
|
|
||||||
* @returns Whether the BattlerTag can be added.
|
|
||||||
*/
|
|
||||||
canAdd(pokemon: Pokemon): boolean {
|
|
||||||
const isSurfOrDive = [ Moves.SURF, Moves.DIVE ].includes(this.sourceMove);
|
|
||||||
const isNormalForm = pokemon.formIndex === 0 && !pokemon.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA) && !pokemon.getTag(BattlerTagType.GULP_MISSILE_PIKACHU);
|
|
||||||
const isCramorant = pokemon.species.speciesId === Species.CRAMORANT;
|
|
||||||
|
|
||||||
return isSurfOrDive && isNormalForm && isCramorant;
|
|
||||||
}
|
|
||||||
|
|
||||||
onAdd(pokemon: Pokemon): void {
|
|
||||||
super.onAdd(pokemon);
|
|
||||||
pokemon.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeManualTrigger);
|
|
||||||
}
|
|
||||||
|
|
||||||
onRemove(pokemon: Pokemon): void {
|
|
||||||
super.onRemove(pokemon);
|
|
||||||
pokemon.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeManualTrigger);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getBattlerTag(tagType: BattlerTagType, turnCount: number, sourceMove: Moves, sourceId: number): BattlerTag {
|
export function getBattlerTag(tagType: BattlerTagType, turnCount: number, sourceMove: Moves, sourceId: number): BattlerTag {
|
||||||
switch (tagType) {
|
switch (tagType) {
|
||||||
case BattlerTagType.RECHARGING:
|
case BattlerTagType.RECHARGING:
|
||||||
@ -1803,9 +1770,6 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source
|
|||||||
return new StockpilingTag(sourceMove);
|
return new StockpilingTag(sourceMove);
|
||||||
case BattlerTagType.OCTOLOCK:
|
case BattlerTagType.OCTOLOCK:
|
||||||
return new OctolockTag(sourceId);
|
return new OctolockTag(sourceId);
|
||||||
case BattlerTagType.GULP_MISSILE_ARROKUDA:
|
|
||||||
case BattlerTagType.GULP_MISSILE_PIKACHU:
|
|
||||||
return new GulpMissileTag(tagType, sourceMove);
|
|
||||||
case BattlerTagType.NONE:
|
case BattlerTagType.NONE:
|
||||||
default:
|
default:
|
||||||
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
|
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
|
||||||
|
@ -205,11 +205,7 @@ export class Egg {
|
|||||||
this._species = this.rollSpecies(scene);
|
this._species = this.rollSpecies(scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
let pokemonSpecies = getPokemonSpecies(this._species);
|
const pokemonSpecies = getPokemonSpecies(this._species);
|
||||||
// Special condition to have Phione eggs also have a chance of generating Manaphy
|
|
||||||
if (this._species === Species.PHIONE) {
|
|
||||||
pokemonSpecies = getPokemonSpecies(Utils.randSeedInt(MANAPHY_EGG_MANAPHY_RATE) ? Species.PHIONE : Species.MANAPHY);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sets the hidden ability if a hidden ability exists and the override is set
|
// Sets the hidden ability if a hidden ability exists and the override is set
|
||||||
// or if the same species egg hits the chance
|
// or if the same species egg hits the chance
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
||||||
import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
||||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||||
import { EncoreTag, GulpMissileTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags";
|
import { EncoreTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags";
|
||||||
import { getPokemonNameWithAffix } from "../messages";
|
import { getPokemonNameWithAffix } from "../messages";
|
||||||
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
||||||
import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect";
|
import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect";
|
||||||
@ -27,7 +27,6 @@ import { BattlerTagType } from "#enums/battler-tag-type";
|
|||||||
import { Biome } from "#enums/biome";
|
import { Biome } from "#enums/biome";
|
||||||
import { Moves } from "#enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
import { MoveUsedEvent } from "#app/events/battle-scene.js";
|
|
||||||
|
|
||||||
export enum MoveCategory {
|
export enum MoveCategory {
|
||||||
PHYSICAL,
|
PHYSICAL,
|
||||||
@ -4301,46 +4300,6 @@ export class AddBattlerTagAttr extends MoveEffectAttr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the appropriate battler tag for Gulp Missile when Surf or Dive is used.
|
|
||||||
* @extends MoveEffectAttr
|
|
||||||
*/
|
|
||||||
export class GulpMissileTagAttr extends MoveEffectAttr {
|
|
||||||
constructor() {
|
|
||||||
super(true, MoveEffectTrigger.POST_APPLY);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds BattlerTagType from GulpMissileTag based on the Pokemon's HP ratio.
|
|
||||||
* @param {Pokemon} user The Pokemon using the move.
|
|
||||||
* @param {Pokemon} target The Pokemon being targeted by the move.
|
|
||||||
* @param {Move} move The move being used.
|
|
||||||
* @param {any[]} args Additional arguments, if any.
|
|
||||||
* @returns Whether the BattlerTag is applied.
|
|
||||||
*/
|
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean | Promise<boolean> {
|
|
||||||
if (!super.apply(user, target, move, args)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (user.hasAbility(Abilities.GULP_MISSILE) && user.species.speciesId === Species.CRAMORANT) {
|
|
||||||
if (user.getHpRatio() >= .5) {
|
|
||||||
user.addTag(BattlerTagType.GULP_MISSILE_ARROKUDA, 0, move.id);
|
|
||||||
} else {
|
|
||||||
user.addTag(BattlerTagType.GULP_MISSILE_PIKACHU, 0, move.id);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
getUserBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
|
||||||
const isCramorant = user.hasAbility(Abilities.GULP_MISSILE) && user.species.speciesId === Species.CRAMORANT;
|
|
||||||
return isCramorant && !user.getTag(GulpMissileTag) ? 10 : 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class CurseAttr extends MoveEffectAttr {
|
export class CurseAttr extends MoveEffectAttr {
|
||||||
|
|
||||||
apply(user: Pokemon, target: Pokemon, move:Move, args: any[]): boolean {
|
apply(user: Pokemon, target: Pokemon, move:Move, args: any[]): boolean {
|
||||||
@ -5338,7 +5297,7 @@ export class ReducePpMoveAttr extends MoveEffectAttr {
|
|||||||
movesetMove.ppUsed = Math.min(movesetMove.ppUsed + this.reduction, movesetMove.getMovePp());
|
movesetMove.ppUsed = Math.min(movesetMove.ppUsed + this.reduction, movesetMove.getMovePp());
|
||||||
|
|
||||||
const message = i18next.t("battle:ppReduced", {targetName: getPokemonNameWithAffix(target), moveName: movesetMove.getName(), reduction: movesetMove.ppUsed - lastPpUsed});
|
const message = i18next.t("battle:ppReduced", {targetName: getPokemonNameWithAffix(target), moveName: movesetMove.getName(), reduction: movesetMove.ppUsed - lastPpUsed});
|
||||||
user.scene.eventTarget.dispatchEvent(new MoveUsedEvent(target?.id, movesetMove.getMove(), movesetMove.ppUsed));
|
|
||||||
user.scene.queueMessage(message);
|
user.scene.queueMessage(message);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -5460,26 +5419,10 @@ export class MovesetCopyMoveAttr extends OverrideMoveEffectAttr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Attribute for {@linkcode Moves.SKETCH} that causes the user to copy the opponent's last used move
|
|
||||||
* This move copies the last used non-virtual move
|
|
||||||
* e.g. if Metronome is used, it copies Metronome itself, not the virtual move called by Metronome
|
|
||||||
* Fails if the opponent has not yet used a move.
|
|
||||||
* Fails if used on an uncopiable move, listed in unsketchableMoves in getCondition
|
|
||||||
* Fails if the move is already in the user's moveset
|
|
||||||
*/
|
|
||||||
export class SketchAttr extends MoveEffectAttr {
|
export class SketchAttr extends MoveEffectAttr {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(true);
|
super(true);
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* User copies the opponent's last used move, if possible
|
|
||||||
* @param {Pokemon} user Pokemon that used the move and will replace Sketch with the copied move
|
|
||||||
* @param {Pokemon} target Pokemon that the user wants to copy a move from
|
|
||||||
* @param {Move} move Move being used
|
|
||||||
* @param {any[]} args Unused
|
|
||||||
* @returns {boolean} true if the function succeeds, otherwise false
|
|
||||||
*/
|
|
||||||
|
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
if (!super.apply(user, target, move, args)) {
|
if (!super.apply(user, target, move, args)) {
|
||||||
@ -5510,28 +5453,14 @@ export class SketchAttr extends MoveEffectAttr {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const targetMove = target.getMoveHistory().filter(m => !m.virtual).at(-1);
|
const targetMoves = target.getMoveHistory().filter(m => !m.virtual);
|
||||||
if (!targetMove) {
|
if (!targetMoves.length) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const unsketchableMoves = [
|
const sketchableMove = targetMoves[0];
|
||||||
Moves.CHATTER,
|
|
||||||
Moves.MIRROR_MOVE,
|
|
||||||
Moves.SLEEP_TALK,
|
|
||||||
Moves.STRUGGLE,
|
|
||||||
Moves.SKETCH,
|
|
||||||
Moves.REVIVAL_BLESSING,
|
|
||||||
Moves.TERA_STARSTORM,
|
|
||||||
Moves.BREAKNECK_BLITZ__PHYSICAL,
|
|
||||||
Moves.BREAKNECK_BLITZ__SPECIAL
|
|
||||||
];
|
|
||||||
|
|
||||||
if (unsketchableMoves.includes(targetMove.move)) {
|
if (user.getMoveset().find(m => m.moveId === sketchableMove.move)) {
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (user.getMoveset().find(m => m.moveId === targetMove.move)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6198,8 +6127,7 @@ export function initMoves() {
|
|||||||
new AttackMove(Moves.HYDRO_PUMP, Type.WATER, MoveCategory.SPECIAL, 110, 80, 5, -1, 0, 1),
|
new AttackMove(Moves.HYDRO_PUMP, Type.WATER, MoveCategory.SPECIAL, 110, 80, 5, -1, 0, 1),
|
||||||
new AttackMove(Moves.SURF, Type.WATER, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 1)
|
new AttackMove(Moves.SURF, Type.WATER, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 1)
|
||||||
.target(MoveTarget.ALL_NEAR_OTHERS)
|
.target(MoveTarget.ALL_NEAR_OTHERS)
|
||||||
.attr(HitsTagAttr, BattlerTagType.UNDERWATER, true)
|
.attr(HitsTagAttr, BattlerTagType.UNDERWATER, true),
|
||||||
.attr(GulpMissileTagAttr),
|
|
||||||
new AttackMove(Moves.ICE_BEAM, Type.ICE, MoveCategory.SPECIAL, 90, 100, 10, 10, 0, 1)
|
new AttackMove(Moves.ICE_BEAM, Type.ICE, MoveCategory.SPECIAL, 90, 100, 10, 10, 0, 1)
|
||||||
.attr(StatusEffectAttr, StatusEffect.FREEZE),
|
.attr(StatusEffectAttr, StatusEffect.FREEZE),
|
||||||
new AttackMove(Moves.BLIZZARD, Type.ICE, MoveCategory.SPECIAL, 110, 70, 5, 10, 0, 1)
|
new AttackMove(Moves.BLIZZARD, Type.ICE, MoveCategory.SPECIAL, 110, 70, 5, 10, 0, 1)
|
||||||
@ -6864,7 +6792,6 @@ export function initMoves() {
|
|||||||
.partial(),
|
.partial(),
|
||||||
new AttackMove(Moves.DIVE, Type.WATER, MoveCategory.PHYSICAL, 80, 100, 10, -1, 0, 3)
|
new AttackMove(Moves.DIVE, Type.WATER, MoveCategory.PHYSICAL, 80, 100, 10, -1, 0, 3)
|
||||||
.attr(ChargeAttr, ChargeAnim.DIVE_CHARGING, i18next.t("moveTriggers:hidUnderwater", {pokemonName: "{USER}"}), BattlerTagType.UNDERWATER)
|
.attr(ChargeAttr, ChargeAnim.DIVE_CHARGING, i18next.t("moveTriggers:hidUnderwater", {pokemonName: "{USER}"}), BattlerTagType.UNDERWATER)
|
||||||
.attr(GulpMissileTagAttr)
|
|
||||||
.ignoresVirtual(),
|
.ignoresVirtual(),
|
||||||
new AttackMove(Moves.ARM_THRUST, Type.FIGHTING, MoveCategory.PHYSICAL, 15, 100, 20, -1, 0, 3)
|
new AttackMove(Moves.ARM_THRUST, Type.FIGHTING, MoveCategory.PHYSICAL, 15, 100, 20, -1, 0, 3)
|
||||||
.attr(MultiHitAttr),
|
.attr(MultiHitAttr),
|
||||||
|
@ -828,12 +828,6 @@ export const pokemonFormChanges: PokemonFormChanges = {
|
|||||||
[Species.EISCUE]: [
|
[Species.EISCUE]: [
|
||||||
new SpeciesFormChange(Species.EISCUE, "", "no-ice", new SpeciesFormChangeManualTrigger(), true),
|
new SpeciesFormChange(Species.EISCUE, "", "no-ice", new SpeciesFormChangeManualTrigger(), true),
|
||||||
new SpeciesFormChange(Species.EISCUE, "no-ice", "", new SpeciesFormChangeManualTrigger(), true),
|
new SpeciesFormChange(Species.EISCUE, "no-ice", "", new SpeciesFormChangeManualTrigger(), true),
|
||||||
],
|
|
||||||
[Species.CRAMORANT]: [
|
|
||||||
new SpeciesFormChange(Species.CRAMORANT, "", "gulping", new SpeciesFormChangeManualTrigger, true, new SpeciesFormChangeCondition(p => p.getHpRatio() >= .5)),
|
|
||||||
new SpeciesFormChange(Species.CRAMORANT, "", "gorging", new SpeciesFormChangeManualTrigger, true, new SpeciesFormChangeCondition(p => p.getHpRatio() < .5)),
|
|
||||||
new SpeciesFormChange(Species.CRAMORANT, "gulping", "", new SpeciesFormChangeManualTrigger, true),
|
|
||||||
new SpeciesFormChange(Species.CRAMORANT, "gorging", "", new SpeciesFormChangeManualTrigger, true),
|
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2725,8 +2725,8 @@ export const speciesStarters = {
|
|||||||
[Species.VOLTORB]: 2,
|
[Species.VOLTORB]: 2,
|
||||||
[Species.EXEGGCUTE]: 3,
|
[Species.EXEGGCUTE]: 3,
|
||||||
[Species.CUBONE]: 3,
|
[Species.CUBONE]: 3,
|
||||||
[Species.HITMONLEE]: 5,
|
[Species.HITMONLEE]: 4,
|
||||||
[Species.HITMONCHAN]: 5,
|
[Species.HITMONCHAN]: 4,
|
||||||
[Species.LICKITUNG]: 3,
|
[Species.LICKITUNG]: 3,
|
||||||
[Species.KOFFING]: 2,
|
[Species.KOFFING]: 2,
|
||||||
[Species.RHYHORN]: 3,
|
[Species.RHYHORN]: 3,
|
||||||
@ -2738,7 +2738,7 @@ export const speciesStarters = {
|
|||||||
[Species.STARYU]: 3,
|
[Species.STARYU]: 3,
|
||||||
[Species.MR_MIME]: 3,
|
[Species.MR_MIME]: 3,
|
||||||
[Species.SCYTHER]: 5,
|
[Species.SCYTHER]: 5,
|
||||||
[Species.JYNX]: 4,
|
[Species.JYNX]: 3,
|
||||||
[Species.ELECTABUZZ]: 4,
|
[Species.ELECTABUZZ]: 4,
|
||||||
[Species.MAGMAR]: 4,
|
[Species.MAGMAR]: 4,
|
||||||
[Species.PINSIR]: 4,
|
[Species.PINSIR]: 4,
|
||||||
@ -2805,8 +2805,8 @@ export const speciesStarters = {
|
|||||||
[Species.PHANPY]: 3,
|
[Species.PHANPY]: 3,
|
||||||
[Species.STANTLER]: 3,
|
[Species.STANTLER]: 3,
|
||||||
[Species.SMEARGLE]: 1,
|
[Species.SMEARGLE]: 1,
|
||||||
[Species.TYROGUE]: 3,
|
[Species.TYROGUE]: 2,
|
||||||
[Species.SMOOCHUM]: 3,
|
[Species.SMOOCHUM]: 2,
|
||||||
[Species.ELEKID]: 3,
|
[Species.ELEKID]: 3,
|
||||||
[Species.MAGBY]: 3,
|
[Species.MAGBY]: 3,
|
||||||
[Species.MILTANK]: 4,
|
[Species.MILTANK]: 4,
|
||||||
@ -2898,7 +2898,7 @@ export const speciesStarters = {
|
|||||||
[Species.CHIMCHAR]: 3,
|
[Species.CHIMCHAR]: 3,
|
||||||
[Species.PIPLUP]: 3,
|
[Species.PIPLUP]: 3,
|
||||||
[Species.STARLY]: 3,
|
[Species.STARLY]: 3,
|
||||||
[Species.BIDOOF]: 2,
|
[Species.BIDOOF]: 3,
|
||||||
[Species.KRICKETOT]: 1,
|
[Species.KRICKETOT]: 1,
|
||||||
[Species.SHINX]: 2,
|
[Species.SHINX]: 2,
|
||||||
[Species.BUDEW]: 3,
|
[Species.BUDEW]: 3,
|
||||||
|
@ -63,7 +63,5 @@ export enum BattlerTagType {
|
|||||||
ICE_FACE = "ICE_FACE",
|
ICE_FACE = "ICE_FACE",
|
||||||
STOCKPILING = "STOCKPILING",
|
STOCKPILING = "STOCKPILING",
|
||||||
RECEIVE_DOUBLE_DAMAGE = "RECEIVE_DOUBLE_DAMAGE",
|
RECEIVE_DOUBLE_DAMAGE = "RECEIVE_DOUBLE_DAMAGE",
|
||||||
ALWAYS_GET_HIT = "ALWAYS_GET_HIT",
|
ALWAYS_GET_HIT = "ALWAYS_GET_HIT"
|
||||||
GULP_MISSILE_ARROKUDA = "GULP_MISSILE_ARROKUDA",
|
|
||||||
GULP_MISSILE_PIKACHU = "GULP_MISSILE_PIKACHU"
|
|
||||||
}
|
}
|
||||||
|
@ -264,10 +264,6 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
"MONO_FAIRY": {
|
"MONO_FAIRY": {
|
||||||
name: "Ein ewiges Abenteuer!",
|
name: "Ein ewiges Abenteuer!",
|
||||||
},
|
},
|
||||||
"FRESH_START": {
|
|
||||||
name: "Hussa, noch einmal von vorn!",
|
|
||||||
description: "Schließe die 'Neuanfang' Herausforderung ab"
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female
|
// Achievement translations for the when the player character is female
|
||||||
@ -377,6 +373,5 @@ export const PGFachv: AchievementTranslationEntries = {
|
|||||||
"MONO_DRAGON": PGMachv.MONO_DRAGON,
|
"MONO_DRAGON": PGMachv.MONO_DRAGON,
|
||||||
"MONO_DARK": PGMachv.MONO_DARK,
|
"MONO_DARK": PGMachv.MONO_DARK,
|
||||||
"MONO_FAIRY": PGMachv.MONO_FAIRY,
|
"MONO_FAIRY": PGMachv.MONO_FAIRY,
|
||||||
"FRESH_START": PGMachv.FRESH_START
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
},
|
},
|
||||||
"FRESH_START": {
|
"FRESH_START": {
|
||||||
name: "First Try!",
|
name: "First Try!",
|
||||||
description: "Complete the Fresh Start challenge."
|
description: "Complete the fresh start challenge."
|
||||||
}
|
}
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ export const challenges: TranslationEntries = {
|
|||||||
},
|
},
|
||||||
"freshStart": {
|
"freshStart": {
|
||||||
"name": "Fresh Start",
|
"name": "Fresh Start",
|
||||||
"desc": "You can only use the original starters, and only as if you had just started PokéRogue.",
|
"desc": "You can only use the original starters, and only as if you had just started pokerogue.",
|
||||||
"value.0": "Off",
|
"value.0": "Off",
|
||||||
"value.1": "On",
|
"value.1": "On",
|
||||||
}
|
}
|
||||||
|
@ -264,10 +264,6 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
"MONO_FAIRY": {
|
"MONO_FAIRY": {
|
||||||
name: "Mono FAIRY",
|
name: "Mono FAIRY",
|
||||||
},
|
},
|
||||||
"FRESH_START": {
|
|
||||||
name: "First Try!",
|
|
||||||
description: "Complete the Fresh Start challenge."
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
||||||
|
@ -22,10 +22,4 @@ export const challenges: TranslationEntries = {
|
|||||||
"desc": "Solo puedes usar Pokémon with the {{type}} type.",
|
"desc": "Solo puedes usar Pokémon with the {{type}} type.",
|
||||||
"desc_default": "Solo puedes usar Pokémon del tipo elegido.",
|
"desc_default": "Solo puedes usar Pokémon del tipo elegido.",
|
||||||
},
|
},
|
||||||
"freshStart": {
|
|
||||||
"name": "Fresh Start",
|
|
||||||
"desc": "You can only use the original starters, and only as if you had just started PokéRogue.",
|
|
||||||
"value.0": "Off",
|
|
||||||
"value.1": "On",
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -99,7 +99,7 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
},
|
},
|
||||||
"MEGA_EVOLVE": {
|
"MEGA_EVOLVE": {
|
||||||
name: "Megamorfosi",
|
name: "Megamorfosi",
|
||||||
description: "Megaevolvi un Pokémon",
|
description: "Megaevolvi un pokémon",
|
||||||
},
|
},
|
||||||
"GIGANTAMAX": {
|
"GIGANTAMAX": {
|
||||||
name: "Grosso e Cattivo",
|
name: "Grosso e Cattivo",
|
||||||
@ -264,10 +264,6 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
"MONO_FAIRY": {
|
"MONO_FAIRY": {
|
||||||
name: "Follettini e follettine",
|
name: "Follettini e follettine",
|
||||||
},
|
},
|
||||||
"FRESH_START": {
|
|
||||||
name: "First Try!",
|
|
||||||
description: "Complete the Fresh Start challenge."
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
||||||
|
@ -22,10 +22,4 @@ export const challenges: TranslationEntries = {
|
|||||||
"desc": "Puoi usare solo Pokémon di tipo {{type}}.",
|
"desc": "Puoi usare solo Pokémon di tipo {{type}}.",
|
||||||
"desc_default": "Puoi usare solo Pokémon del tipo selezionato."
|
"desc_default": "Puoi usare solo Pokémon del tipo selezionato."
|
||||||
},
|
},
|
||||||
"freshStart": {
|
|
||||||
"name": "Fresh Start",
|
|
||||||
"desc": "You can only use the original starters, and only as if you had just started PokéRogue.",
|
|
||||||
"value.0": "Off",
|
|
||||||
"value.1": "On",
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const abilityTriggers: SimpleTranslationEntries = {
|
|
||||||
"blockRecoilDamage" : "{{pokemonName}}は {{abilityName}}で\nはんどうダメージを うけない!",
|
|
||||||
"badDreams": "{{pokemonName}}は ナイトメアに うなされている!",
|
|
||||||
"costar": "{{pokemonName}} copied {{allyName}}'s stat changes!",
|
|
||||||
"iceFaceAvoidedDamage": "{{pokemonName}}は\n{{abilityName}}で ダメージを うけない!",
|
|
||||||
"perishBody": "{{pokemonName}}の {{abilityName}}で\nおたがいは 3ターンごに ほろびてしまう!",
|
|
||||||
"poisonHeal": "{{pokemonName}}は {{abilityName}}で\nかいふくした!",
|
|
||||||
"trace": "{{pokemonName}} copied {{targetName}}'s\n{{abilityName}}!",
|
|
||||||
"windPowerCharged": "{{pokemonName}}は\n{{moveName}}を うけて じゅうでんした!",
|
|
||||||
"quickDraw": "{{pokemonName}} can act faster than normal, thanks to its Quick Draw!",
|
|
||||||
"blockItemTheft": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents item theft!",
|
|
||||||
"typeImmunityHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}} avoided damage\nwith {{abilityName}}!",
|
|
||||||
"postDefendDisguise": "{{pokemonNameWithAffix}}'s disguise was busted!",
|
|
||||||
"moveImmunity": "It doesn't affect {{pokemonNameWithAffix}}!",
|
|
||||||
"reverseDrain": "{{pokemonNameWithAffix}} sucked up the liquid ooze!",
|
|
||||||
"postDefendTypeChange": "{{pokemonNameWithAffix}}'s {{abilityName}}\nmade it the {{typeName}} type!",
|
|
||||||
"postDefendContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
|
|
||||||
"postDefendAbilitySwap": "{{pokemonNameWithAffix}} swapped\nabilities with its target!",
|
|
||||||
"postDefendAbilityGive": "{{pokemonNameWithAffix}} gave its target\n{{abilityName}}!",
|
|
||||||
"postDefendMoveDisable": "{{pokemonNameWithAffix}}'s {{moveName}}\nwas disabled!",
|
|
||||||
"pokemonTypeChange": "{{pokemonNameWithAffix}} transformed into the {{moveType}} type!",
|
|
||||||
"postAttackStealHeldItem": "{{pokemonNameWithAffix}} stole\n{{defenderName}}'s {{stolenItemType}}!",
|
|
||||||
"postDefendStealHeldItem": "{{pokemonNameWithAffix}} stole\n{{attackerName}}'s {{stolenItemType}}!",
|
|
||||||
"copyFaintedAllyAbility": "{{pokemonNameWithAffix}}'s {{abilityName}} was taken over!",
|
|
||||||
"intimidateImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}} prevented it from being Intimidated!",
|
|
||||||
"postSummonAllyHeal": "{{pokemonNameWithAffix}} drank down all the\nmatcha that {{pokemonName}} made!",
|
|
||||||
"postSummonClearAllyStats": "{{pokemonNameWithAffix}}'s stat changes\nwere removed!",
|
|
||||||
"postSummonTransform": "{{pokemonNameWithAffix}} transformed\ninto {{targetName}}!",
|
|
||||||
"protectStat": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents lowering its {{statName}}!",
|
|
||||||
"statusEffectImmunityWithName": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents {{statusEffectName}}!",
|
|
||||||
"statusEffectImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents status problems!",
|
|
||||||
"battlerTagImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents {{battlerTagName}}!",
|
|
||||||
"forewarn": "{{pokemonNameWithAffix}} was forewarned about {{moveName}}!",
|
|
||||||
"frisk": "{{pokemonNameWithAffix}} frisked {{opponentName}}'s {{opponentAbilityName}}!",
|
|
||||||
"postWeatherLapseHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"postWeatherLapseDamage": "{{pokemonNameWithAffix}} is hurt\nby its {{abilityName}}!",
|
|
||||||
"postTurnLootCreateEatenBerry": "{{pokemonNameWithAffix}} harvested one {{berryName}}!",
|
|
||||||
"postTurnHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
|
|
||||||
"fetchBall": "{{pokemonNameWithAffix}} found a\n{{pokeballName}}!",
|
|
||||||
"healFromBerryUse": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP!",
|
|
||||||
"arenaTrap": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents switching!",
|
|
||||||
"postBattleLoot": "{{pokemonNameWithAffix}} picked up\n{{itemName}}!",
|
|
||||||
"postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
|
|
||||||
"postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
|
|
||||||
"postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!",
|
|
||||||
"postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!",
|
|
||||||
"postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!",
|
|
||||||
"postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!",
|
|
||||||
"postSummonTeravolt": "{{pokemonNameWithAffix}} is radiating a bursting aura!",
|
|
||||||
"postSummonDarkAura": "{{pokemonNameWithAffix}} is radiating a Dark Aura!",
|
|
||||||
"postSummonFairyAura": "{{pokemonNameWithAffix}} is radiating a Fairy Aura!",
|
|
||||||
"postSummonNeutralizingGas": "{{pokemonNameWithAffix}}'s Neutralizing Gas filled the area!",
|
|
||||||
"postSummonAsOneGlastrier": "{{pokemonNameWithAffix}} has two Abilities!",
|
|
||||||
"postSummonAsOneSpectrier": "{{pokemonNameWithAffix}} has two Abilities!",
|
|
||||||
"postSummonVesselOfRuin": "{{pokemonNameWithAffix}}'s Vessel of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"postSummonSwordOfRuin": "{{pokemonNameWithAffix}}'s Sword of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"postSummonTabletsOfRuin": "{{pokemonNameWithAffix}}'s Tablets of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
"postSummonBeadsOfRuin": "{{pokemonNameWithAffix}}'s Beads of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
|
|
||||||
} as const;
|
|
File diff suppressed because it is too large
Load Diff
@ -1,274 +0,0 @@
|
|||||||
import { AchievementTranslationEntries } from "#app/interfaces/locales.js";
|
|
||||||
|
|
||||||
// Achievement translations for the when the player character is male
|
|
||||||
export const PGMachv: AchievementTranslationEntries = {
|
|
||||||
"Achievements": {
|
|
||||||
name: "Achievements",
|
|
||||||
},
|
|
||||||
"Locked": {
|
|
||||||
name: "Locked",
|
|
||||||
},
|
|
||||||
|
|
||||||
"MoneyAchv": {
|
|
||||||
description: "Accumulate a total of ₽{{moneyAmount}}",
|
|
||||||
},
|
|
||||||
"10K_MONEY": {
|
|
||||||
name: "Money Haver",
|
|
||||||
},
|
|
||||||
"100K_MONEY": {
|
|
||||||
name: "Rich",
|
|
||||||
},
|
|
||||||
"1M_MONEY": {
|
|
||||||
name: "Millionaire",
|
|
||||||
},
|
|
||||||
"10M_MONEY": {
|
|
||||||
name: "One Percenter",
|
|
||||||
},
|
|
||||||
|
|
||||||
"DamageAchv": {
|
|
||||||
description: "Inflict {{damageAmount}} damage in one hit",
|
|
||||||
},
|
|
||||||
"250_DMG": {
|
|
||||||
name: "Hard Hitter",
|
|
||||||
},
|
|
||||||
"1000_DMG": {
|
|
||||||
name: "Harder Hitter",
|
|
||||||
},
|
|
||||||
"2500_DMG": {
|
|
||||||
name: "That's a Lotta Damage!",
|
|
||||||
},
|
|
||||||
"10000_DMG": {
|
|
||||||
name: "One Punch Man",
|
|
||||||
},
|
|
||||||
|
|
||||||
"HealAchv": {
|
|
||||||
description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item",
|
|
||||||
},
|
|
||||||
"250_HEAL": {
|
|
||||||
name: "Novice Healer",
|
|
||||||
},
|
|
||||||
"1000_HEAL": {
|
|
||||||
name: "Big Healer",
|
|
||||||
},
|
|
||||||
"2500_HEAL": {
|
|
||||||
name: "Cleric",
|
|
||||||
},
|
|
||||||
"10000_HEAL": {
|
|
||||||
name: "Recovery Master",
|
|
||||||
},
|
|
||||||
|
|
||||||
"LevelAchv": {
|
|
||||||
description: "Level up a Pokémon to Lv{{level}}",
|
|
||||||
},
|
|
||||||
"LV_100": {
|
|
||||||
name: "But Wait, There's More!",
|
|
||||||
},
|
|
||||||
"LV_250": {
|
|
||||||
name: "Elite",
|
|
||||||
},
|
|
||||||
"LV_1000": {
|
|
||||||
name: "To Go Even Further Beyond",
|
|
||||||
},
|
|
||||||
|
|
||||||
"RibbonAchv": {
|
|
||||||
description: "Accumulate a total of {{ribbonAmount}} Ribbons",
|
|
||||||
},
|
|
||||||
"10_RIBBONS": {
|
|
||||||
name: "Pokémon League Champion",
|
|
||||||
},
|
|
||||||
"25_RIBBONS": {
|
|
||||||
name: "Great League Champion",
|
|
||||||
},
|
|
||||||
"50_RIBBONS": {
|
|
||||||
name: "Ultra League Champion",
|
|
||||||
},
|
|
||||||
"75_RIBBONS": {
|
|
||||||
name: "Rogue League Champion",
|
|
||||||
},
|
|
||||||
"100_RIBBONS": {
|
|
||||||
name: "Master League Champion",
|
|
||||||
},
|
|
||||||
|
|
||||||
"TRANSFER_MAX_BATTLE_STAT": {
|
|
||||||
name: "Teamwork",
|
|
||||||
description: "Baton pass to another party member with at least one stat maxed out",
|
|
||||||
},
|
|
||||||
"MAX_FRIENDSHIP": {
|
|
||||||
name: "Friendmaxxing",
|
|
||||||
description: "Reach max friendship on a Pokémon",
|
|
||||||
},
|
|
||||||
"MEGA_EVOLVE": {
|
|
||||||
name: "Megamorph",
|
|
||||||
description: "Mega evolve a Pokémon",
|
|
||||||
},
|
|
||||||
"GIGANTAMAX": {
|
|
||||||
name: "Absolute Unit",
|
|
||||||
description: "Gigantamax a Pokémon",
|
|
||||||
},
|
|
||||||
"TERASTALLIZE": {
|
|
||||||
name: "STAB Enthusiast",
|
|
||||||
description: "Terastallize a Pokémon",
|
|
||||||
},
|
|
||||||
"STELLAR_TERASTALLIZE": {
|
|
||||||
name: "The Hidden Type",
|
|
||||||
description: "Stellar Terastallize a Pokémon",
|
|
||||||
},
|
|
||||||
"SPLICE": {
|
|
||||||
name: "Infinite Fusion",
|
|
||||||
description: "Splice two Pokémon together with DNA Splicers",
|
|
||||||
},
|
|
||||||
"MINI_BLACK_HOLE": {
|
|
||||||
name: "A Hole Lot of Items",
|
|
||||||
description: "Acquire a Mini Black Hole",
|
|
||||||
},
|
|
||||||
"CATCH_MYTHICAL": {
|
|
||||||
name: "Mythical",
|
|
||||||
description: "Catch a mythical Pokémon",
|
|
||||||
},
|
|
||||||
"CATCH_SUB_LEGENDARY": {
|
|
||||||
name: "(Sub-)Legendary",
|
|
||||||
description: "Catch a sub-legendary Pokémon",
|
|
||||||
},
|
|
||||||
"CATCH_LEGENDARY": {
|
|
||||||
name: "Legendary",
|
|
||||||
description: "Catch a legendary Pokémon",
|
|
||||||
},
|
|
||||||
"SEE_SHINY": {
|
|
||||||
name: "Shiny",
|
|
||||||
description: "Find a shiny Pokémon in the wild",
|
|
||||||
},
|
|
||||||
"SHINY_PARTY": {
|
|
||||||
name: "That's Dedication",
|
|
||||||
description: "Have a full party of shiny Pokémon",
|
|
||||||
},
|
|
||||||
"HATCH_MYTHICAL": {
|
|
||||||
name: "Mythical Egg",
|
|
||||||
description: "Hatch a mythical Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HATCH_SUB_LEGENDARY": {
|
|
||||||
name: "Sub-Legendary Egg",
|
|
||||||
description: "Hatch a sub-legendary Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HATCH_LEGENDARY": {
|
|
||||||
name: "Legendary Egg",
|
|
||||||
description: "Hatch a legendary Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HATCH_SHINY": {
|
|
||||||
name: "Shiny Egg",
|
|
||||||
description: "Hatch a shiny Pokémon from an egg",
|
|
||||||
},
|
|
||||||
"HIDDEN_ABILITY": {
|
|
||||||
name: "Hidden Potential",
|
|
||||||
description: "Catch a Pokémon with a hidden ability",
|
|
||||||
},
|
|
||||||
"PERFECT_IVS": {
|
|
||||||
name: "Certificate of Authenticity",
|
|
||||||
description: "Get perfect IVs on a Pokémon",
|
|
||||||
},
|
|
||||||
"CLASSIC_VICTORY": {
|
|
||||||
name: "Undefeated",
|
|
||||||
description: "Beat the game in classic mode",
|
|
||||||
},
|
|
||||||
|
|
||||||
"MONO_GEN_ONE": {
|
|
||||||
name: "The Original Rival",
|
|
||||||
description: "Complete the generation one only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_TWO": {
|
|
||||||
name: "Generation 1.5",
|
|
||||||
description: "Complete the generation two only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_THREE": {
|
|
||||||
name: "Too much water?",
|
|
||||||
description: "Complete the generation three only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_FOUR": {
|
|
||||||
name: "Is she really the hardest?",
|
|
||||||
description: "Complete the generation four only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_FIVE": {
|
|
||||||
name: "All Original",
|
|
||||||
description: "Complete the generation five only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_SIX": {
|
|
||||||
name: "Almost Royalty",
|
|
||||||
description: "Complete the generation six only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_SEVEN": {
|
|
||||||
name: "Only Technically",
|
|
||||||
description: "Complete the generation seven only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_EIGHT": {
|
|
||||||
name: "A Champion Time!",
|
|
||||||
description: "Complete the generation eight only challenge.",
|
|
||||||
},
|
|
||||||
"MONO_GEN_NINE": {
|
|
||||||
name: "She was going easy on you",
|
|
||||||
description: "Complete the generation nine only challenge.",
|
|
||||||
},
|
|
||||||
|
|
||||||
"MonoType": {
|
|
||||||
description: "Complete the {{type}} monotype challenge.",
|
|
||||||
},
|
|
||||||
"MONO_NORMAL": {
|
|
||||||
name: "Extra Ordinary",
|
|
||||||
},
|
|
||||||
"MONO_FIGHTING": {
|
|
||||||
name: "I Know Kung Fu",
|
|
||||||
},
|
|
||||||
"MONO_FLYING": {
|
|
||||||
name: "Angry Birds",
|
|
||||||
},
|
|
||||||
"MONO_POISON": {
|
|
||||||
name: "Kanto's Favourite",
|
|
||||||
},
|
|
||||||
"MONO_GROUND": {
|
|
||||||
name: "Forecast: Earthquakes",
|
|
||||||
},
|
|
||||||
"MONO_ROCK": {
|
|
||||||
name: "Brock Hard",
|
|
||||||
},
|
|
||||||
"MONO_BUG": {
|
|
||||||
name: "You Like Jazz?",
|
|
||||||
},
|
|
||||||
"MONO_GHOST": {
|
|
||||||
name: "Who You Gonna Call?",
|
|
||||||
},
|
|
||||||
"MONO_STEEL": {
|
|
||||||
name: "Iron Giant",
|
|
||||||
},
|
|
||||||
"MONO_FIRE": {
|
|
||||||
name: "I Cast Fireball!",
|
|
||||||
},
|
|
||||||
"MONO_WATER": {
|
|
||||||
name: "When It Rains, It Pours",
|
|
||||||
},
|
|
||||||
"MONO_GRASS": {
|
|
||||||
name: "Can't Touch This",
|
|
||||||
},
|
|
||||||
"MONO_ELECTRIC": {
|
|
||||||
name: "Aim For The Horn!",
|
|
||||||
},
|
|
||||||
"MONO_PSYCHIC": {
|
|
||||||
name: "Big Brain Energy",
|
|
||||||
},
|
|
||||||
"MONO_ICE": {
|
|
||||||
name: "Walking On Thin Ice",
|
|
||||||
},
|
|
||||||
"MONO_DRAGON": {
|
|
||||||
name: "Pseudo-Legend Club",
|
|
||||||
},
|
|
||||||
"MONO_DARK": {
|
|
||||||
name: "It's Just A Phase",
|
|
||||||
},
|
|
||||||
"MONO_FAIRY": {
|
|
||||||
name: "Hey! Listen!",
|
|
||||||
},
|
|
||||||
"FRESH_START": {
|
|
||||||
name: "First Try!",
|
|
||||||
description: "Complete the fresh start challenge."
|
|
||||||
}
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
|
||||||
export const PGFachv: AchievementTranslationEntries = PGMachv;
|
|
@ -1,49 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const arenaFlyout: SimpleTranslationEntries = {
|
|
||||||
// Title
|
|
||||||
"activeBattleEffects": "Active Battle Effects",
|
|
||||||
"player": "Player",
|
|
||||||
"neutral": "Neutral",
|
|
||||||
"enemy": "Enemy",
|
|
||||||
|
|
||||||
// WeatherType
|
|
||||||
"sunny": "Sunny",
|
|
||||||
"rain": "Rain",
|
|
||||||
"sandstorm": "Sandstorm",
|
|
||||||
"hail": "Hail",
|
|
||||||
"snow": "Snow",
|
|
||||||
"fog": "Fog",
|
|
||||||
"heavyRain": "Heavy Rain",
|
|
||||||
"harshSun": "Harsh Sun",
|
|
||||||
"strongWinds": "Strong Winds",
|
|
||||||
|
|
||||||
// TerrainType
|
|
||||||
"misty": "Misty Terrain",
|
|
||||||
"electric": "Electric Terrain",
|
|
||||||
"grassy": "Grassy Terrain",
|
|
||||||
"psychic": "Psychic Terrain",
|
|
||||||
|
|
||||||
// ArenaTagType
|
|
||||||
"mudSport": "Mud Sport",
|
|
||||||
"waterSport": "Water Sport",
|
|
||||||
"spikes": "Spikes",
|
|
||||||
"toxicSpikes": "Toxic Spikes",
|
|
||||||
"mist": "Mist",
|
|
||||||
"futureSight": "Future Sight",
|
|
||||||
"doomDesire": "Doom Desire",
|
|
||||||
"wish": "Wish",
|
|
||||||
"stealthRock": "Stealth Rock",
|
|
||||||
"stickyWeb": "Sticky Web",
|
|
||||||
"trickRoom": "Trick Room",
|
|
||||||
"gravity": "Gravity",
|
|
||||||
"reflect": "Reflect",
|
|
||||||
"lightScreen": "Light Screen",
|
|
||||||
"auroraVeil": "Aurora Veil",
|
|
||||||
"quickGuard": "Quick Guard",
|
|
||||||
"wideGuard": "Wide Guard",
|
|
||||||
"matBlock": "Mat Block",
|
|
||||||
"craftyShield": "Crafty Shield",
|
|
||||||
"tailwind": "Tailwind",
|
|
||||||
"happyHour": "Happy Hour",
|
|
||||||
};
|
|
@ -1,50 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const arenaTag: SimpleTranslationEntries = {
|
|
||||||
"yourTeam": "your team",
|
|
||||||
"opposingTeam": "the opposing team",
|
|
||||||
"arenaOnRemove": "{{moveName}}'s effect wore off.",
|
|
||||||
"arenaOnRemovePlayer": "{{moveName}}'s effect wore off\non your side.",
|
|
||||||
"arenaOnRemoveEnemy": "{{moveName}}'s effect wore off\non the foe's side.",
|
|
||||||
"mistOnAdd": "{{pokemonNameWithAffix}}'s team became\nshrouded in mist!",
|
|
||||||
"mistApply": "The mist prevented\nthe lowering of stats!",
|
|
||||||
"reflectOnAdd": "Reflect reduced the damage of physical moves.",
|
|
||||||
"reflectOnAddPlayer": "Reflect reduced the damage of physical moves on your side.",
|
|
||||||
"reflectOnAddEnemy": "Reflect reduced the damage of physical moves on the foe's side.",
|
|
||||||
"lightScreenOnAdd": "Light Screen reduced the damage of special moves.",
|
|
||||||
"lightScreenOnAddPlayer": "Light Screen reduced the damage of special moves on your side.",
|
|
||||||
"lightScreenOnAddEnemy": "Light Screen reduced the damage of special moves on the foe's side.",
|
|
||||||
"auroraVeilOnAdd": "Aurora Veil reduced the damage of moves.",
|
|
||||||
"auroraVeilOnAddPlayer": "Aurora Veil reduced the damage of moves on your side.",
|
|
||||||
"auroraVeilOnAddEnemy": "Aurora Veil reduced the damage of moves on the foe's side.",
|
|
||||||
"conditionalProtectOnAdd": "{{moveName}} protected team!",
|
|
||||||
"conditionalProtectOnAddPlayer": "{{moveName}} protected your team!",
|
|
||||||
"conditionalProtectOnAddEnemy": "{{moveName}} protected the\nopposing team!",
|
|
||||||
"conditionalProtectApply": "{{moveName}} protected {{pokemonNameWithAffix}}!",
|
|
||||||
"matBlockOnAdd": "{{pokemonNameWithAffix}} intends to flip up a mat\nand block incoming attacks!",
|
|
||||||
"wishTagOnAdd": "{{pokemonNameWithAffix}}'s wish\ncame true!",
|
|
||||||
"mudSportOnAdd": "Electricity's power was weakened!",
|
|
||||||
"mudSportOnRemove": "The effects of Mud Sport\nhave faded.",
|
|
||||||
"waterSportOnAdd": "Fire's power was weakened!",
|
|
||||||
"waterSportOnRemove": "The effects of Water Sport\nhave faded.",
|
|
||||||
"spikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
|
|
||||||
"spikesActivateTrap": "{{pokemonNameWithAffix}} is hurt\nby the spikes!",
|
|
||||||
"toxicSpikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
|
|
||||||
"toxicSpikesActivateTrapPoison": "{{pokemonNameWithAffix}} absorbed the {{moveName}}!",
|
|
||||||
"stealthRockOnAdd": "Pointed stones float in the air\naround {{opponentDesc}}!",
|
|
||||||
"stealthRockActivateTrap": "Pointed stones dug into\n{{pokemonNameWithAffix}}!",
|
|
||||||
"stickyWebOnAdd": "A {{moveName}} has been laid out on the ground around the opposing team!",
|
|
||||||
"stickyWebActivateTrap": "The opposing {{pokemonName}} was caught in a sticky web!",
|
|
||||||
"trickRoomOnAdd": "{{pokemonNameWithAffix}} twisted\nthe dimensions!",
|
|
||||||
"trickRoomOnRemove": "The twisted dimensions\nreturned to normal!",
|
|
||||||
"gravityOnAdd": "Gravity intensified!",
|
|
||||||
"gravityOnRemove": "Gravity returned to normal!",
|
|
||||||
"tailwindOnAdd": "The Tailwind blew from behind team!",
|
|
||||||
"tailwindOnAddPlayer": "The Tailwind blew from behind\nyour team!",
|
|
||||||
"tailwindOnAddEnemy": "The Tailwind blew from behind\nthe opposing team!",
|
|
||||||
"tailwindOnRemove": "Team's Tailwind petered out!",
|
|
||||||
"tailwindOnRemovePlayer": "Your team's Tailwind petered out!",
|
|
||||||
"tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!",
|
|
||||||
"happyHourOnAdd": "Everyone is caught up in the happy atmosphere!",
|
|
||||||
"happyHourOnRemove": "The atmosphere returned to normal.",
|
|
||||||
} as const;
|
|
@ -1,5 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battleInfo: SimpleTranslationEntries = {
|
|
||||||
"generation": "Generation {{generation}}",
|
|
||||||
} as const;
|
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battleMessageUiHandler: SimpleTranslationEntries = {
|
|
||||||
"ivBest": "さいこう",
|
|
||||||
"ivFantastic": "すばらしい",
|
|
||||||
"ivVeryGood": "すごくいい",
|
|
||||||
"ivPrettyGood": "かなりいい",
|
|
||||||
"ivDecent": "まぁまぁ",
|
|
||||||
"ivNoGood": "ダメかも",
|
|
||||||
} as const;
|
|
@ -1,159 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battle: SimpleTranslationEntries = {
|
|
||||||
"bossAppeared": "{{bossName}}が あらわれた!",
|
|
||||||
"trainerAppeared": "{{trainerName}}が\nしょうぶを しかけてきた!",
|
|
||||||
"trainerAppearedDouble": "{{trainerName}}が\nしょうぶを しかけてきた!",
|
|
||||||
"trainerSendOut": "{{trainerName}}は\n{{pokemonName}}を くりだした!",
|
|
||||||
"singleWildAppeared": "あっ! やせいの\n{{pokemonName}}が とびだしてきた!",
|
|
||||||
"multiWildAppeared": "あっ! やせいの {{pokemonName1}}と\n{{pokemonName2}}が とびだしてきた!",
|
|
||||||
"playerComeBack": "{{pokemonName}}! もどれ!",
|
|
||||||
"trainerComeBack": "{{trainerName}}は\n{{pokemonName}}を ひっこめた!",
|
|
||||||
"playerGo": "ゆけっ! {{pokemonName}}!",
|
|
||||||
"trainerGo": "{{trainerName}}は\n{{pokemonName}}を くりだした!",
|
|
||||||
"switchQuestion": "{{pokemonName}}を\nいれかえますか?",
|
|
||||||
"trainerDefeated": "{{trainerName}}\nとの しょうぶに かった!",
|
|
||||||
"moneyWon": "しょうきんとして\n₽{{moneyAmount}} てにいれた!",
|
|
||||||
"moneyPickedUp": "₽{{moneyAmount}}を ひろった!",
|
|
||||||
"pokemonCaught": "{{pokemonName}}を\nつかまえたぞ!",
|
|
||||||
"addedAsAStarter": "{{pokemonName}} has been\nadded as a starter!",
|
|
||||||
"partyFull": "てもちがいっぱいです。\n{{pokemonName}}をいれるために ポケモンを ひとり てばなしますか?",
|
|
||||||
"pokemon": "ポケモン",
|
|
||||||
"sendOutPokemon": "がんばれ! {{pokemonName}}!",
|
|
||||||
"hitResultCriticalHit": "きゅうしょに あたった!",
|
|
||||||
"hitResultSuperEffective": "こうかは ばつぐんだ!",
|
|
||||||
"hitResultNotVeryEffective": "こうかは いまひとつの ようだ……",
|
|
||||||
"hitResultNoEffect": "{{pokemonName}}には こうかが ないようだ…",
|
|
||||||
"hitResultOneHitKO": "いちげき ひっさつ!",
|
|
||||||
"attackFailed": "しかし うまく きまらなかった!!",
|
|
||||||
"attackMissed": "{{pokemonNameWithAffix}}には あたらなかった!",
|
|
||||||
"attackHitsCount": "{{count}}かい あたった!",
|
|
||||||
"rewardGain": "{{modifierName}}を\nてにいれた!",
|
|
||||||
"expGain": "{{pokemonName}}は\n{{exp}}けいけんちを もらった!",
|
|
||||||
"levelUp": "{{pokemonName}}は\nレベル{{level}} に あがった!",
|
|
||||||
"learnMove": "{{pokemonName}}は あたらしく\n{{moveName}}を おぼえた!",
|
|
||||||
"learnMovePrompt": "{{pokemonName}}は あたらしく\n{{moveName}}を おぼえたい……",
|
|
||||||
"learnMoveLimitReached": "しかし {{pokemonName}}は わざを 4つ\nおぼえるので せいいっぱいだ!",
|
|
||||||
"learnMoveReplaceQuestion": "{{moveName}}の かわりに\nほかの わざを わすれさせますか?",
|
|
||||||
"learnMoveStopTeaching": "それでは…… {{moveName}}を\nおぼえるのを あきらめますか?",
|
|
||||||
"learnMoveNotLearned": "{{pokemonName}}は {{moveName}}を\nおぼえずに おわった!",
|
|
||||||
"learnMoveForgetQuestion": "どの わざを\nわすれさせたい?",
|
|
||||||
"learnMoveForgetSuccess": "{{pokemonName}}は {{moveName}}の\nつかいかたを きれいに わすれた!",
|
|
||||||
"countdownPoof": "@d{32}1 @d{15}2の @d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}ポカン!",
|
|
||||||
"learnMoveAnd": "そして…",
|
|
||||||
"levelCapUp": "レベルキャップの\n{{levelCap}}に あがった!",
|
|
||||||
"moveNotImplemented": "{{moveName}}は まだじっそうされておらず、せんたくできません。",
|
|
||||||
"moveNoPP": "しかし わざの\nのこりポイントが なかった!",
|
|
||||||
"moveDisabled": "かなしばりで\n{{moveName}}が だせない!",
|
|
||||||
"noPokeballForce": "みえない ちからの せいで\nボールを なげられない!",
|
|
||||||
"noPokeballTrainer": "ひとのものを\nとったら どろぼう!",
|
|
||||||
"noPokeballMulti": "あいての ポケモンが ひとつしか\n いないまえに ボールが つかえない!",
|
|
||||||
"noPokeballStrong": "あいての ポケモンが つよすぎて つかまえられない!\nまずは よわらせよう!",
|
|
||||||
"noEscapeForce": "みえない ちからの せいで\nにげることが できない!",
|
|
||||||
"noEscapeTrainer": "ダメだ! しょうぶのさいちゅうに\nあいてに せなかを みせられない!",
|
|
||||||
"noEscapePokemon": "{{pokemonName}}の {{moveName}}で {{escapeVerb}}!",
|
|
||||||
"runAwaySuccess": " うまく にげきれた!",
|
|
||||||
"runAwayCannotEscape": "にげることが できない!",
|
|
||||||
"escapeVerbSwitch": "いれかえることが できない",
|
|
||||||
"escapeVerbFlee": "にげることが できない",
|
|
||||||
"notDisabled": "{{pokemonName}}の かなしばりが とけた!\nまた {{moveName}}が つかえられる!",
|
|
||||||
"turnEndHpRestore": "{{pokemonName}}の たいりょくが かいふくした!",
|
|
||||||
"hpIsFull": "{{pokemonName}}の\nHPが まんたんだ!",
|
|
||||||
"skipItemQuestion": "ほんとに アイテムを とらない?",
|
|
||||||
"eggHatching": "おや?",
|
|
||||||
"ivScannerUseQuestion": "{{pokemonName}}を\nこたいちスキャナーで そうさする?",
|
|
||||||
"wildPokemonWithAffix": "やせいの {{pokemonName}}",
|
|
||||||
"foePokemonWithAffix": "あいての {{pokemonName}}",
|
|
||||||
"useMove": "{{pokemonNameWithAffix}}の {{moveName}}!",
|
|
||||||
"drainMessage": "{{pokemonName}}から\nたいりょくを すいとった!",
|
|
||||||
"regainHealth": "{{pokemonName}}は\nたいりょくを かいふくした!",
|
|
||||||
"stealEatBerry": "{{pokemonName}}は {{targetName}}の\n{{berryName}}を うばって たべた!",
|
|
||||||
"ppHealBerry": "{{pokemonNameWithAffix}}は {{berryName}}で {{moveName}}のPPを かいふくした!",
|
|
||||||
"hpHealBerry": "{{pokemonNameWithAffix}}は {{berryName}}で たいりょくを かいふくした!",
|
|
||||||
"fainted": "{{pokemonNameWithAffix}}は たおれた!",
|
|
||||||
"statsAnd": "と ",
|
|
||||||
"stats": "のうりょく",
|
|
||||||
"statRose_one": "{{pokemonNameWithAffix}}の {{stats}}が あがった!",
|
|
||||||
"statRose_other": "{{pokemonNameWithAffix}}の {{stats}}が あがった!",
|
|
||||||
"statSharplyRose_one": "{{pokemonNameWithAffix}}の {{stats}}が ぐーんと あがった!",
|
|
||||||
"statSharplyRose_other": "{{pokemonNameWithAffix}}の {{stats}}が ぐーんと あがった!",
|
|
||||||
"statRoseDrastically_one": "{{pokemonNameWithAffix}}の {{stats}}が ぐぐーんと あがった!",
|
|
||||||
"statRoseDrastically_other": "{{pokemonNameWithAffix}}の {{stats}}が ぐぐーんと あがった!",
|
|
||||||
"statWontGoAnyHigher_one": "{{pokemonNameWithAffix}}の {{stats}}が もう あがらない!",
|
|
||||||
"statWontGoAnyHigher_other": "{{pokemonNameWithAffix}}の {{stats}}が もう あがらない!",
|
|
||||||
"statFell_one": "{{pokemonNameWithAffix}}の {{stats}}が さがった!",
|
|
||||||
"statFell_other": "{{pokemonNameWithAffix}}の {{stats}}が さがった!",
|
|
||||||
"statHarshlyFell_one": "{{pokemonNameWithAffix}}の {{stats}}が がくっと さがった!",
|
|
||||||
"statHarshlyFell_other": "{{pokemonNameWithAffix}}の {{stats}}が がくっと さがった!",
|
|
||||||
"statSeverelyFell_one": "{{pokemonNameWithAffix}}の {{stats}}が がくーんと さがった!",
|
|
||||||
"statSeverelyFell_other": "{{pokemonNameWithAffix}}の {{stats}}が がくーんと さがった!",
|
|
||||||
"statWontGoAnyLower_one": "{{pokemonNameWithAffix}}の {{stats}}が もう さがらない!",
|
|
||||||
"statWontGoAnyLower_other": "{{pokemonNameWithAffix}}の {{stats}}が もう さがらない!",
|
|
||||||
"transformedIntoType": "{{pokemonName}}は\n{{type}}タイプに へんしんした!",
|
|
||||||
"retryBattle": "このせんとうの はじまりから やりなおす?",
|
|
||||||
"unlockedSomething": "{{unlockedThing}}\nを アンロックした!",
|
|
||||||
"congratulations": "おめでとうございます!!",
|
|
||||||
"beatModeFirstTime": "はじめて {{speciesName}}が {{gameMode}}モードを クリアした!\n{{newModifier}}を てにいれた!",
|
|
||||||
"ppReduced": "{{targetName}}の {{moveName}}を {{reduction}}けずった!",
|
|
||||||
"battlerTagsRechargingLapse": "{{pokemonNameWithAffix}}は こうげきの はんどうで うごけない!",
|
|
||||||
"battlerTagsTrappedOnAdd": "{{pokemonNameWithAffix}}は もう にげられない!",
|
|
||||||
"battlerTagsTrappedOnRemove": "{{pokemonNameWithAffix}}は\n{{moveName}}の こうかが とけた!",
|
|
||||||
"battlerTagsFlinchedLapse": "{{pokemonNameWithAffix}}は ひるんで わざが だせない!",
|
|
||||||
"battlerTagsConfusedOnAdd": "{{pokemonNameWithAffix}}は こんらん した!",
|
|
||||||
"battlerTagsConfusedOnRemove": "{{pokemonNameWithAffix}}の こんらんが とけた!",
|
|
||||||
"battlerTagsConfusedOnOverlap": "{{pokemonNameWithAffix}}は すでに こんらん している!",
|
|
||||||
"battlerTagsConfusedLapse": "{{pokemonNameWithAffix}}は こんらん している!",
|
|
||||||
"battlerTagsConfusedLapseHurtItself": "わけも わからず じぶんを こうげきした!",
|
|
||||||
"battlerTagsDestinyBondLapseIsBoss": "{{pokemonNameWithAffix}}を みちづれに できない!",
|
|
||||||
"battlerTagsDestinyBondLapse": "{{pokemonNameWithAffix}}は あいてを みちづれに した!",
|
|
||||||
"battlerTagsInfatuatedOnAdd": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に メロメロに なった!",
|
|
||||||
"battlerTagsInfatuatedOnOverlap": "{{pokemonNameWithAffix}}は すでに メロメロだ!",
|
|
||||||
"battlerTagsInfatuatedLapse": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に メロメロだ!",
|
|
||||||
"battlerTagsInfatuatedLapseImmobilize": "{{pokemonNameWithAffix}}は\nメロメロで わざが だせなかった!",
|
|
||||||
"battlerTagsInfatuatedOnRemove": "{{pokemonNameWithAffix}}は メロメロじょうたいが なおった!",
|
|
||||||
"battlerTagsSeededOnAdd": "{{pokemonNameWithAffix}}に たねを うえつけた!",
|
|
||||||
"battlerTagsSeededLapse": "やどりぎが {{pokemonNameWithAffix}}の たいりょくを うばう!",
|
|
||||||
"battlerTagsSeededLapseShed": "{{pokemonNameWithAffix}}は ヘドロえきを すいとった!",
|
|
||||||
"battlerTagsNightmareOnAdd": "{{pokemonNameWithAffix}}は あくむを みはじめた!",
|
|
||||||
"battlerTagsNightmareOnOverlap": "{{pokemonNameWithAffix}}は すでに うなされている!",
|
|
||||||
"battlerTagsNightmareLapse": "{{pokemonNameWithAffix}}は あくむに うなされている!",
|
|
||||||
"battlerTagsEncoreOnAdd": "{{pokemonNameWithAffix}}は アンコールをうけた!",
|
|
||||||
"battlerTagsEncoreOnRemove": "{{pokemonNameWithAffix}}の アンコールじょうたいが とけた!",
|
|
||||||
"battlerTagsHelpingHandOnAdd": "{{pokemonNameWithAffix}}は {{pokemonName}}を\nてだすけする たいせいに はいった!",
|
|
||||||
"battlerTagsIngrainLapse": "{{pokemonNameWithAffix}}は ねから\n ようぶんを すいとった!",
|
|
||||||
"battlerTagsIngrainOnTrap": "{{pokemonNameWithAffix}}は ねを はった!",
|
|
||||||
"battlerTagsAquaRingOnAdd": "{{pokemonNameWithAffix}}は みずのリングを まとった!",
|
|
||||||
"battlerTagsAquaRingLapse": "{{pokemonName}}は {{moveName}}で\nたいりょくを かいふくした!",
|
|
||||||
"battlerTagsDrowsyOnAdd": "{{pokemonNameWithAffix}} の ねむけを さそった!",
|
|
||||||
"battlerTagsDamagingTrapLapse": "{{pokemonNameWithAffix}}は {{moveName}}の ダメージを うけた!",
|
|
||||||
"battlerTagsBindOnTrap": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に しめつけられた!",
|
|
||||||
"battlerTagsWrapOnTrap": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に まきつかれた!",
|
|
||||||
"battlerTagsVortexOnTrap": "{{pokemonNameWithAffix}}は うずの なかに とじこめられた!",
|
|
||||||
"battlerTagsClampOnTrap": "{{pokemonName}}は {{sourcePokemonNameWithAffix}}の\nからに はさまれた!",
|
|
||||||
"battlerTagsSandTombOnTrap": "{{pokemonNameWithAffix}}は {{moveName}}に とらわれた!",
|
|
||||||
"battlerTagsMagmaStormOnTrap": "{{pokemonNameWithAffix}}は マグマの\n うずに とじこめられた!",
|
|
||||||
"battlerTagsSnapTrapOnTrap": "{{pokemonNameWithAffix}}は トラバサミに とらわれた!",
|
|
||||||
"battlerTagsThunderCageOnTrap": "{{sourcePokemonNameWithAffix}}は {{pokemonNameWithAffix}}に とじこめられた!",
|
|
||||||
"battlerTagsInfestationOnTrap": "{{pokemonNameWithAffix}}は {{sourcePokemonNameWithAffix}}に まとわりつかれた!",
|
|
||||||
"battlerTagsProtectedOnAdd": "{{pokemonNameWithAffix}}は\nまもりの たいせいに はいった!",
|
|
||||||
"battlerTagsProtectedLapse": "{{pokemonNameWithAffix}}は\nこうげきから みを まもった!",
|
|
||||||
"battlerTagsEnduringOnAdd": "{{pokemonNameWithAffix}}は\nこらえる たいせいに はいった!",
|
|
||||||
"battlerTagsEnduringLapse": "{{pokemonNameWithAffix}}は\nこうげきを こらえた!",
|
|
||||||
"battlerTagsSturdyLapse": "{{pokemonNameWithAffix}}は\nこうげきを こらえた!",
|
|
||||||
"battlerTagsPerishSongLapse": "{{pokemonNameWithAffix}}の ほろびのカウントが {{turnCount}}になった!",
|
|
||||||
"battlerTagsCenterOfAttentionOnAdd": "{{pokemonNameWithAffix}}は ちゅうもくの まとになった!",
|
|
||||||
"battlerTagsTruantLapse": "{{pokemonNameWithAffix}}は なまけている!",
|
|
||||||
"battlerTagsSlowStartOnAdd": "{{pokemonNameWithAffix}}は ちょうしが あがらない!",
|
|
||||||
"battlerTagsSlowStartOnRemove": "{{pokemonNameWithAffix}}は ちょうしを とりもどした!",
|
|
||||||
"battlerTagsHighestStatBoostOnAdd": "{{pokemonNameWithAffix}}の {{statName}}が\nあがっている じょうたいに なった!",
|
|
||||||
"battlerTagsHighestStatBoostOnRemove": "{{pokemonNameWithAffix}}の {{abilityName}}の こうかが なくなった!",
|
|
||||||
"battlerTagsMagnetRisenOnAdd": "{{pokemonNameWithAffix}}は でんじりょくで うかびあがった!",
|
|
||||||
"battlerTagsMagnetRisenOnRemove": "{{pokemonNameWithAffix}}は でんじりょくが なくなった!",
|
|
||||||
"battlerTagsCritBoostOnAdd": "{{pokemonNameWithAffix}}は はりきっている!",
|
|
||||||
"battlerTagsCritBoostOnRemove": "{{pokemonNameWithAffix}}は おちついた。",
|
|
||||||
"battlerTagsSaltCuredOnAdd": "{{pokemonNameWithAffix}}は しおづけに なった!",
|
|
||||||
"battlerTagsSaltCuredLapse": "{{pokemonNameWithAffix}}は {{moveName}}の\n ダメージを うけている",
|
|
||||||
"battlerTagsCursedOnAdd": "{{pokemonNameWithAffix}}は じぶんの たいりょくを けずって\n{{pokemonName}}に のろいを かけた!",
|
|
||||||
"battlerTagsCursedLapse": "{{pokemonNameWithAffix}}は のろわれている!",
|
|
||||||
"battlerTagsStockpilingOnAdd": "{{pokemonNameWithAffix}}は {{stockpiledCount}}つ たくわえた!"
|
|
||||||
} as const;
|
|
@ -1,12 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battlerTags: SimpleTranslationEntries = {
|
|
||||||
"trappedDesc": "trapping",
|
|
||||||
"flinchedDesc": "flinching",
|
|
||||||
"confusedDesc": "confusion",
|
|
||||||
"infatuatedDesc": "infatuation",
|
|
||||||
"seedDesc": "seeding",
|
|
||||||
"nightmareDesc": "nightmares",
|
|
||||||
"ingrainDesc": "roots",
|
|
||||||
"drowsyDesc": "drowsiness",
|
|
||||||
} as const;
|
|
@ -1,48 +0,0 @@
|
|||||||
import { BerryTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const berry: BerryTranslationEntries = {
|
|
||||||
"SITRUS": {
|
|
||||||
name: "オボンのみ",
|
|
||||||
effect: "HP 50%いかのとき HPを 25パーセント かいふくする",
|
|
||||||
},
|
|
||||||
"LUM": {
|
|
||||||
name: "ラムのみ",
|
|
||||||
effect: "すべての じょうたい いじょうと こんらんを かいふくする",
|
|
||||||
},
|
|
||||||
"ENIGMA": {
|
|
||||||
name: "ナゾのみ",
|
|
||||||
effect: "こうかばつぐんの わざを うけたとき HPを 25パーセント かいふくする",
|
|
||||||
},
|
|
||||||
"LIECHI": {
|
|
||||||
name: "チイラのみ",
|
|
||||||
effect: "HP 25%いかのとき こうげきが あがる",
|
|
||||||
},
|
|
||||||
"GANLON": {
|
|
||||||
name: "リュガのみ",
|
|
||||||
effect: "HP 25%いかのとき ぼうぎょが あがる",
|
|
||||||
},
|
|
||||||
"PETAYA": {
|
|
||||||
name: "ヤタピのみ",
|
|
||||||
effect: "HP 25%いかのとき とくこうが あがる",
|
|
||||||
},
|
|
||||||
"APICOT": {
|
|
||||||
name: "ズアのみ",
|
|
||||||
effect: "HP 25%いかのとき とくぼうが あがる",
|
|
||||||
},
|
|
||||||
"SALAC": {
|
|
||||||
name: "カムラのみ",
|
|
||||||
effect: "HP 25%いかのとき すばやさが あがる",
|
|
||||||
},
|
|
||||||
"LANSAT": {
|
|
||||||
name: "サンのみ",
|
|
||||||
effect: "HP 25%いかのとき こうげきが きゅうしょに あたりやすくなる",
|
|
||||||
},
|
|
||||||
"STARF": {
|
|
||||||
name: "スターのみ",
|
|
||||||
effect: "HP 25%いかのとき のうりょくの どれか 1つが ぐーんと あがる",
|
|
||||||
},
|
|
||||||
"LEPPA": {
|
|
||||||
name: "ヒメリのみ",
|
|
||||||
effect: "PPが 0に なった わざの PPを 10だけ かいふくする",
|
|
||||||
},
|
|
||||||
} as const;
|
|
@ -1,145 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const bgmName: SimpleTranslationEntries = {
|
|
||||||
"music": "Music: ",
|
|
||||||
"missing_entries" : "{{name}}",
|
|
||||||
"battle_kanto_champion": "B2W2 Kanto Champion Battle",
|
|
||||||
"battle_johto_champion": "B2W2 Johto Champion Battle",
|
|
||||||
"battle_hoenn_champion": "B2W2 Hoenn Champion Battle",
|
|
||||||
"battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle",
|
|
||||||
"battle_champion_alder": "BW Unova Champion Battle",
|
|
||||||
"battle_champion_iris": "B2W2 Unova Champion Battle",
|
|
||||||
"battle_kalos_champion": "XY Kalos Champion Battle",
|
|
||||||
"battle_alola_champion": "USUM Alola Champion Battle",
|
|
||||||
"battle_galar_champion": "SWSH Galar Champion Battle",
|
|
||||||
"battle_champion_geeta": "SV Champion Geeta Battle",
|
|
||||||
"battle_champion_nemona": "SV Champion Nemona Battle",
|
|
||||||
"battle_champion_kieran": "SV Champion Kieran Battle",
|
|
||||||
"battle_hoenn_elite": "ORAS Elite Four Battle",
|
|
||||||
"battle_unova_elite": "BW Elite Four Battle",
|
|
||||||
"battle_kalos_elite": "XY Elite Four Battle",
|
|
||||||
"battle_alola_elite": "SM Elite Four Battle",
|
|
||||||
"battle_galar_elite": "SWSH League Tournament Battle",
|
|
||||||
"battle_paldea_elite": "SV Elite Four Battle",
|
|
||||||
"battle_bb_elite": "SV BB League Elite Four Battle",
|
|
||||||
"battle_final_encounter": "PMD RTDX Rayquaza's Domain",
|
|
||||||
"battle_final": "BW Ghetsis Battle",
|
|
||||||
"battle_kanto_gym": "B2W2 Kanto Gym Battle",
|
|
||||||
"battle_johto_gym": "B2W2 Johto Gym Battle",
|
|
||||||
"battle_hoenn_gym": "B2W2 Hoenn Gym Battle",
|
|
||||||
"battle_sinnoh_gym": "B2W2 Sinnoh Gym Battle",
|
|
||||||
"battle_unova_gym": "BW Unova Gym Battle",
|
|
||||||
"battle_kalos_gym": "XY Kalos Gym Battle",
|
|
||||||
"battle_galar_gym": "SWSH Galar Gym Battle",
|
|
||||||
"battle_paldea_gym": "SV Paldea Gym Battle",
|
|
||||||
"battle_legendary_kanto": "XY Kanto Legendary Battle",
|
|
||||||
"battle_legendary_raikou": "HGSS Raikou Battle",
|
|
||||||
"battle_legendary_entei": "HGSS Entei Battle",
|
|
||||||
"battle_legendary_suicune": "HGSS Suicune Battle",
|
|
||||||
"battle_legendary_lugia": "HGSS Lugia Battle",
|
|
||||||
"battle_legendary_ho_oh": "HGSS Ho-oh Battle",
|
|
||||||
"battle_legendary_regis_g5": "B2W2 Legendary Titan Battle",
|
|
||||||
"battle_legendary_regis_g6": "ORAS Legendary Titan Battle",
|
|
||||||
"battle_legendary_gro_kyo": "ORAS Groudon & Kyogre Battle",
|
|
||||||
"battle_legendary_rayquaza": "ORAS Rayquaza Battle",
|
|
||||||
"battle_legendary_deoxys": "ORAS Deoxys Battle",
|
|
||||||
"battle_legendary_lake_trio": "ORAS Lake Guardians Battle",
|
|
||||||
"battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle",
|
|
||||||
"battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle",
|
|
||||||
"battle_legendary_giratina": "ORAS Giratina Battle",
|
|
||||||
"battle_legendary_arceus": "HGSS Arceus Battle",
|
|
||||||
"battle_legendary_unova": "BW Unova Legendary Battle",
|
|
||||||
"battle_legendary_kyurem": "BW Kyurem Battle",
|
|
||||||
"battle_legendary_res_zek": "BW Reshiram & Zekrom Battle",
|
|
||||||
"battle_legendary_xern_yvel": "XY Xerneas & Yveltal Battle",
|
|
||||||
"battle_legendary_tapu": "SM Tapu Battle",
|
|
||||||
"battle_legendary_sol_lun": "SM Solgaleo & Lunala Battle",
|
|
||||||
"battle_legendary_ub": "SM Ultra Beast Battle",
|
|
||||||
"battle_legendary_dusk_dawn": "USUM Dusk Mane & Dawn Wings Necrozma Battle",
|
|
||||||
"battle_legendary_ultra_nec": "USUM Ultra Necrozma Battle",
|
|
||||||
"battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle",
|
|
||||||
"battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle",
|
|
||||||
"battle_legendary_calyrex": "SWSH Calyrex Battle",
|
|
||||||
"battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle",
|
|
||||||
"battle_legendary_ruinous": "SV Treasures of Ruin Battle",
|
|
||||||
"battle_legendary_kor_mir": "SV Depths of Area Zero Battle",
|
|
||||||
"battle_legendary_loyal_three": "SV Loyal Three Battle",
|
|
||||||
"battle_legendary_ogerpon": "SV Ogerpon Battle",
|
|
||||||
"battle_legendary_terapagos": "SV Terapagos Battle",
|
|
||||||
"battle_legendary_pecharunt": "SV Pecharunt Battle",
|
|
||||||
"battle_rival": "BW Rival Battle",
|
|
||||||
"battle_rival_2": "BW N Battle",
|
|
||||||
"battle_rival_3": "BW Final N Battle",
|
|
||||||
"battle_trainer": "BW Trainer Battle",
|
|
||||||
"battle_wild": "BW Wild Battle",
|
|
||||||
"battle_wild_strong": "BW Strong Wild Battle",
|
|
||||||
"end_summit": "PMD RTDX Sky Tower Summit",
|
|
||||||
"battle_rocket_grunt": "HGSS Team Rocket Battle",
|
|
||||||
"battle_aqua_magma_grunt": "ORAS Team Aqua & Magma Battle",
|
|
||||||
"battle_galactic_grunt": "BDSP Team Galactic Battle",
|
|
||||||
"battle_plasma_grunt": "BW Team Plasma Battle",
|
|
||||||
"battle_flare_grunt": "XY Team Flare Battle",
|
|
||||||
"battle_rocket_boss": "USUM Giovanni Battle",
|
|
||||||
"battle_aqua_magma_boss": "ORAS Archie & Maxie Battle",
|
|
||||||
"battle_galactic_boss": "BDSP Cyrus Battle",
|
|
||||||
"battle_plasma_boss": "B2W2 Ghetsis Battle",
|
|
||||||
"battle_flare_boss": "XY Lysandre Battle",
|
|
||||||
|
|
||||||
// Biome Music
|
|
||||||
"abyss": "PMD EoS Dark Crater",
|
|
||||||
"badlands": "PMD EoS Barren Valley",
|
|
||||||
"beach": "PMD EoS Drenched Bluff",
|
|
||||||
"cave": "PMD EoS Sky Peak Cave",
|
|
||||||
"construction_site": "PMD EoS Boulder Quarry",
|
|
||||||
"desert": "PMD EoS Northern Desert",
|
|
||||||
"dojo": "PMD EoS Marowak Dojo",
|
|
||||||
"end": "PMD RTDX Sky Tower",
|
|
||||||
"factory": "PMD EoS Concealed Ruins",
|
|
||||||
"fairy_cave": "PMD EoS Star Cave",
|
|
||||||
"forest": "PMD EoS Dusk Forest",
|
|
||||||
"grass": "PMD EoS Apple Woods",
|
|
||||||
"graveyard": "PMD EoS Mystifying Forest",
|
|
||||||
"ice_cave": "PMD EoS Vast Ice Mountain",
|
|
||||||
"island": "PMD EoS Craggy Coast",
|
|
||||||
"jungle": "Lmz - Jungle", // The composer thinks about a more creative name
|
|
||||||
"laboratory": "Firel - Laboratory", // The composer thinks about a more creative name
|
|
||||||
"lake": "PMD EoS Crystal Cave",
|
|
||||||
"meadow": "PMD EoS Sky Peak Forest",
|
|
||||||
"metropolis": "Firel - Metropolis", // The composer thinks about a more creative name
|
|
||||||
"mountain": "PMD EoS Mt. Horn",
|
|
||||||
"plains": "PMD EoS Sky Peak Prairie",
|
|
||||||
"power_plant": "PMD EoS Far Amp Plains",
|
|
||||||
"ruins": "PMD EoS Deep Sealed Ruin",
|
|
||||||
"sea": "Andr06 - Marine Mystique", // Name defined by the composer
|
|
||||||
"seabed": "Firel - Seabed", // The composer thinks about a more creative name
|
|
||||||
"slum": "Andr06 - Sneaky Snom", // Name defined by the composer
|
|
||||||
"snowy_forest": "PMD EoS Sky Peak Snowfield",
|
|
||||||
"space": "Firel - Aether",
|
|
||||||
"swamp": "PMD EoS Surrounded Sea",
|
|
||||||
"tall_grass": "PMD EoS Foggy Forest",
|
|
||||||
"temple": "PMD EoS Aegis Cave",
|
|
||||||
"town": "PMD EoS Random Dungeon Theme 3",
|
|
||||||
"volcano": "PMD EoS Steam Cave",
|
|
||||||
"wasteland": "PMD EoS Hidden Highland",
|
|
||||||
|
|
||||||
// Encounter
|
|
||||||
"encounter_ace_trainer": "BW Trainers' Eyes Meet (Ace Trainer)",
|
|
||||||
"encounter_backpacker": "BW Trainers' Eyes Meet (Backpacker)",
|
|
||||||
"encounter_clerk": "BW Trainers' Eyes Meet (Clerk)",
|
|
||||||
"encounter_cyclist": "BW Trainers' Eyes Meet (Cyclist)",
|
|
||||||
"encounter_lass": "BW Trainers' Eyes Meet (Lass)",
|
|
||||||
"encounter_parasol_lady": "BW Trainers' Eyes Meet (Parasol Lady)",
|
|
||||||
"encounter_pokefan": "BW Trainers' Eyes Meet (Poke Fan)",
|
|
||||||
"encounter_psychic": "BW Trainers' Eyes Meet (Psychic)",
|
|
||||||
"encounter_rich": "BW Trainers' Eyes Meet (Gentleman)",
|
|
||||||
"encounter_rival": "BW Cheren",
|
|
||||||
"encounter_roughneck": "BW Trainers' Eyes Meet (Roughneck)",
|
|
||||||
"encounter_scientist": "BW Trainers' Eyes Meet (Scientist)",
|
|
||||||
"encounter_twins": "BW Trainers' Eyes Meet (Twins)",
|
|
||||||
"encounter_youngster": "BW Trainers' Eyes Meet (Youngster)",
|
|
||||||
|
|
||||||
// Other
|
|
||||||
"heal": "BW Pokémon Heal",
|
|
||||||
"menu": "PMD EoS Welcome to the World of Pokémon!",
|
|
||||||
"title": "PMD EoS Top Menu Theme",
|
|
||||||
} as const;
|
|
@ -1,40 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const biome: SimpleTranslationEntries = {
|
|
||||||
"unknownLocation": "Somewhere you can\'t remember",
|
|
||||||
"TOWN": "Town",
|
|
||||||
"PLAINS": "Plains",
|
|
||||||
"GRASS": "Grassy Field",
|
|
||||||
"TALL_GRASS": "Tall Grass",
|
|
||||||
"METROPOLIS": "Metropolis",
|
|
||||||
"FOREST": "Forest",
|
|
||||||
"SEA": "Sea",
|
|
||||||
"SWAMP": "Swamp",
|
|
||||||
"BEACH": "Beach",
|
|
||||||
"LAKE": "Lake",
|
|
||||||
"SEABED": "Seabed",
|
|
||||||
"MOUNTAIN": "Mountain",
|
|
||||||
"BADLANDS": "Badlands",
|
|
||||||
"CAVE": "Cave",
|
|
||||||
"DESERT": "Desert",
|
|
||||||
"ICE_CAVE": "Ice Cave",
|
|
||||||
"MEADOW": "Meadow",
|
|
||||||
"POWER_PLANT": "Power Plant",
|
|
||||||
"VOLCANO": "Volcano",
|
|
||||||
"GRAVEYARD": "Graveyard",
|
|
||||||
"DOJO": "Dojo",
|
|
||||||
"FACTORY": "Factory",
|
|
||||||
"RUINS": "Ancient Ruins",
|
|
||||||
"WASTELAND": "Wasteland",
|
|
||||||
"ABYSS": "Abyss",
|
|
||||||
"SPACE": "Space",
|
|
||||||
"CONSTRUCTION_SITE": "Construction Site",
|
|
||||||
"JUNGLE": "Jungle",
|
|
||||||
"FAIRY_CAVE": "Fairy Cave",
|
|
||||||
"TEMPLE": "Temple",
|
|
||||||
"SLUM": "Slum",
|
|
||||||
"SNOWY_FOREST": "Snowy Forest",
|
|
||||||
"ISLAND": "Island",
|
|
||||||
"LABORATORY": "Laboratory",
|
|
||||||
"END": "???",
|
|
||||||
} as const;
|
|
@ -1,32 +0,0 @@
|
|||||||
import { TranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const challenges: TranslationEntries = {
|
|
||||||
"title": "チャレンジ じょうけん せってい",
|
|
||||||
"illegalEvolution": "{{pokemon}} changed into an ineligble pokémon\nfor this challenge!",
|
|
||||||
"singleGeneration": {
|
|
||||||
"name": "Mono Gen",
|
|
||||||
"desc": "You can only use Pokémon from Generation {{gen}}.",
|
|
||||||
"desc_default": "You can only use Pokémon from the chosen generation.",
|
|
||||||
"gen_1": "one",
|
|
||||||
"gen_2": "two",
|
|
||||||
"gen_3": "three",
|
|
||||||
"gen_4": "four",
|
|
||||||
"gen_5": "five",
|
|
||||||
"gen_6": "six",
|
|
||||||
"gen_7": "seven",
|
|
||||||
"gen_8": "eight",
|
|
||||||
"gen_9": "nine",
|
|
||||||
},
|
|
||||||
"singleType": {
|
|
||||||
"name": "Mono Type",
|
|
||||||
"desc": "You can only use Pokémon with the {{type}} type.",
|
|
||||||
"desc_default": "You can only use Pokémon of the chosen type."
|
|
||||||
//types in pokemon-info
|
|
||||||
},
|
|
||||||
"freshStart": {
|
|
||||||
"name": "Fresh Start",
|
|
||||||
"desc": "You can only use the original starters, and only as if you had just started pokerogue.",
|
|
||||||
"value.0": "Off",
|
|
||||||
"value.1": "On",
|
|
||||||
},
|
|
||||||
} as const;
|
|
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const commandUiHandler: SimpleTranslationEntries = {
|
|
||||||
"fight": "たたかう",
|
|
||||||
"ball": "ボール",
|
|
||||||
"pokemon": "ポケモン",
|
|
||||||
"run": "にげる",
|
|
||||||
"actionMessage": "{{pokemonName}}は どうする?",
|
|
||||||
} as const;
|
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const common: SimpleTranslationEntries = {
|
|
||||||
"start": "Start",
|
|
||||||
"luckIndicator": "Luck:",
|
|
||||||
"shinyOnHover": "Shiny",
|
|
||||||
"commonShiny": "Common",
|
|
||||||
"rareShiny": "Rare",
|
|
||||||
"epicShiny": "Epic",
|
|
||||||
} as const;
|
|
@ -1,117 +0,0 @@
|
|||||||
import { ability } from "./ability";
|
|
||||||
import { abilityTriggers } from "./ability-trigger";
|
|
||||||
import { arenaFlyout } from "./arena-flyout";
|
|
||||||
import { arenaTag } from "./arena-tag";
|
|
||||||
import { PGFachv, PGMachv } from "./achv";
|
|
||||||
import { battle } from "./battle";
|
|
||||||
import { battleInfo } from "./battle-info";
|
|
||||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
|
||||||
import { battlerTags } from "./battler-tags";
|
|
||||||
import { berry } from "./berry";
|
|
||||||
import { bgmName } from "./bgm-name";
|
|
||||||
import { biome } from "./biome";
|
|
||||||
import { challenges } from "./challenges";
|
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
|
||||||
import {
|
|
||||||
PGFbattleSpecDialogue,
|
|
||||||
PGFdialogue,
|
|
||||||
PGFdoubleBattleDialogue,
|
|
||||||
PGFmiscDialogue,
|
|
||||||
PGMbattleSpecDialogue,
|
|
||||||
PGMdialogue,
|
|
||||||
PGMdoubleBattleDialogue,
|
|
||||||
PGMmiscDialogue
|
|
||||||
} from "./dialogue";
|
|
||||||
|
|
||||||
import { egg } from "./egg";
|
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
|
||||||
import { filterBar } from "./filter-bar";
|
|
||||||
import { gameMode } from "./game-mode";
|
|
||||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
|
||||||
import { growth } from "./growth";
|
|
||||||
import { menu } from "./menu";
|
|
||||||
import { menuUiHandler } from "./menu-ui-handler";
|
|
||||||
import { modifier } from "./modifier";
|
|
||||||
import { modifierType } from "./modifier-type";
|
|
||||||
import { move } from "./move";
|
|
||||||
import { nature } from "./nature";
|
|
||||||
import { pokeball } from "./pokeball";
|
|
||||||
import { pokemon } from "./pokemon";
|
|
||||||
import { pokemonForm, battlePokemonForm } from "./pokemon-form";
|
|
||||||
import { pokemonInfo } from "./pokemon-info";
|
|
||||||
import { pokemonInfoContainer } from "./pokemon-info-container";
|
|
||||||
import { pokemonSummary } from "./pokemon-summary";
|
|
||||||
import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler";
|
|
||||||
import { splashMessages } from "./splash-messages";
|
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
|
||||||
import { statusEffect } from "./status-effect";
|
|
||||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
|
||||||
import { tutorial } from "./tutorial";
|
|
||||||
import { voucher } from "./voucher";
|
|
||||||
import { terrain, weather } from "./weather";
|
|
||||||
import { partyUiHandler } from "./party-ui-handler";
|
|
||||||
import { settings } from "./settings.js";
|
|
||||||
import { common } from "./common.js";
|
|
||||||
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
|
|
||||||
import { moveTriggers } from "./move-trigger";
|
|
||||||
|
|
||||||
export const jaConfig = {
|
|
||||||
ability: ability,
|
|
||||||
abilityTriggers: abilityTriggers,
|
|
||||||
arenaFlyout: arenaFlyout,
|
|
||||||
arenaTag: arenaTag,
|
|
||||||
battle: battle,
|
|
||||||
battleInfo: battleInfo,
|
|
||||||
battleMessageUiHandler: battleMessageUiHandler,
|
|
||||||
battlePokemonForm: battlePokemonForm,
|
|
||||||
battlerTags: battlerTags,
|
|
||||||
berry: berry,
|
|
||||||
bgmName: bgmName,
|
|
||||||
biome: biome,
|
|
||||||
challenges: challenges,
|
|
||||||
commandUiHandler: commandUiHandler,
|
|
||||||
common: common,
|
|
||||||
PGMachv: PGMachv,
|
|
||||||
PGFachv: PGFachv,
|
|
||||||
PGMdialogue: PGMdialogue,
|
|
||||||
PGFdialogue: PGFdialogue,
|
|
||||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
|
||||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
|
||||||
PGMmiscDialogue: PGMmiscDialogue,
|
|
||||||
PGFmiscDialogue: PGFmiscDialogue,
|
|
||||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
|
||||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue,
|
|
||||||
egg: egg,
|
|
||||||
fightUiHandler: fightUiHandler,
|
|
||||||
filterBar: filterBar,
|
|
||||||
gameMode: gameMode,
|
|
||||||
gameStatsUiHandler: gameStatsUiHandler,
|
|
||||||
growth: growth,
|
|
||||||
menu: menu,
|
|
||||||
menuUiHandler: menuUiHandler,
|
|
||||||
modifier: modifier,
|
|
||||||
modifierType: modifierType,
|
|
||||||
move: move,
|
|
||||||
nature: nature,
|
|
||||||
pokeball: pokeball,
|
|
||||||
pokemon: pokemon,
|
|
||||||
pokemonForm: pokemonForm,
|
|
||||||
pokemonInfo: pokemonInfo,
|
|
||||||
pokemonInfoContainer: pokemonInfoContainer,
|
|
||||||
pokemonSummary: pokemonSummary,
|
|
||||||
saveSlotSelectUiHandler: saveSlotSelectUiHandler,
|
|
||||||
settings: settings,
|
|
||||||
splashMessages: splashMessages,
|
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
|
||||||
statusEffect: statusEffect,
|
|
||||||
terrain: terrain,
|
|
||||||
titles: titles,
|
|
||||||
trainerClasses: trainerClasses,
|
|
||||||
trainerNames: trainerNames,
|
|
||||||
tutorial: tutorial,
|
|
||||||
voucher: voucher,
|
|
||||||
weather: weather,
|
|
||||||
partyUiHandler: partyUiHandler,
|
|
||||||
modifierSelectUiHandler: modifierSelectUiHandler,
|
|
||||||
moveTriggers: moveTriggers
|
|
||||||
};
|
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
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",
|
|
||||||
"sameSpeciesEgg": "{{species}} will hatch from this egg!",
|
|
||||||
"hatchFromTheEgg": "{{pokemonName}} hatched from the egg!",
|
|
||||||
"eggMoveUnlock": "Egg Move unlocked: {{moveName}}",
|
|
||||||
"rareEggMoveUnlock": "Rare Egg Move unlocked: {{moveName}}",
|
|
||||||
"moveUPGacha": "Move UP!",
|
|
||||||
"shinyUPGacha": "Shiny UP!",
|
|
||||||
"legendaryUPGacha": "UP!",
|
|
||||||
} as const;
|
|
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const fightUiHandler: SimpleTranslationEntries = {
|
|
||||||
"pp": "PP",
|
|
||||||
"power": "いりょく",
|
|
||||||
"accuracy": "めいちゅう",
|
|
||||||
"abilityFlyInText": " {{pokemonName}}の {{passive}}{{abilityName}}",
|
|
||||||
"passive": "Passive ", // The space at the end is important
|
|
||||||
} as const;
|
|
@ -1,21 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const filterBar: SimpleTranslationEntries = {
|
|
||||||
"genFilter": "Gen",
|
|
||||||
"typeFilter": "Type",
|
|
||||||
"unlocksFilter": "Unlocks",
|
|
||||||
"winFilter": "Win",
|
|
||||||
"sortFilter": "Sort",
|
|
||||||
"all": "All",
|
|
||||||
"normal": "Normal",
|
|
||||||
"uncaught": "Uncaught",
|
|
||||||
"passiveUnlocked": "Passive Unlocked",
|
|
||||||
"passiveLocked": "Passive Locked",
|
|
||||||
"hasWon": "Yes",
|
|
||||||
"hasNotWon": "No",
|
|
||||||
"sortByNumber": "No.",
|
|
||||||
"sortByCost": "Cost",
|
|
||||||
"sortByCandies": "Candy Count",
|
|
||||||
"sortByIVs": "IVs",
|
|
||||||
"sortByName": "Name",
|
|
||||||
};
|
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const gameMode: SimpleTranslationEntries = {
|
|
||||||
"classic": "クラシック",
|
|
||||||
"endless": "エンドレス",
|
|
||||||
"endlessSpliced": "エンドレス (Spliced)",
|
|
||||||
"dailyRun": "デイリーラン",
|
|
||||||
"unknown": "Unknown",
|
|
||||||
"challenge": "チャレンジ",
|
|
||||||
} as const;
|
|
@ -1,44 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
|
||||||
"stats": "Stats",
|
|
||||||
"playTime": "Play Time",
|
|
||||||
"totalBattles": "Total Battles",
|
|
||||||
"starters": "Starters",
|
|
||||||
"shinyStarters": "Shiny Starters",
|
|
||||||
"speciesSeen": "Species Seen",
|
|
||||||
"speciesCaught": "Species Caught",
|
|
||||||
"ribbonsOwned": "Ribbons Owned",
|
|
||||||
"classicRuns": "Classic Runs",
|
|
||||||
"classicWins": "Classic Wins",
|
|
||||||
"dailyRunAttempts": "Daily Run Attempts",
|
|
||||||
"dailyRunWins": "Daily Run Wins",
|
|
||||||
"endlessRuns": "Endless Runs",
|
|
||||||
"highestWaveEndless": "Highest Wave (Endless)",
|
|
||||||
"highestMoney": "Highest Money",
|
|
||||||
"highestDamage": "Highest Damage",
|
|
||||||
"highestHPHealed": "Highest HP Healed",
|
|
||||||
"pokemonEncountered": "Pokémon Encountered",
|
|
||||||
"pokemonDefeated": "Pokémon Defeated",
|
|
||||||
"pokemonCaught": "Pokémon Caught",
|
|
||||||
"eggsHatched": "Eggs Hatched",
|
|
||||||
"subLegendsSeen": "Sub-Legends Seen",
|
|
||||||
"subLegendsCaught": "Sub-Legends Caught",
|
|
||||||
"subLegendsHatched": "Sub-Legends Hatched",
|
|
||||||
"legendsSeen": "Legends Seen",
|
|
||||||
"legendsCaught": "Legends Caught",
|
|
||||||
"legendsHatched": "Legends Hatched",
|
|
||||||
"mythicalsSeen": "Mythicals Seen",
|
|
||||||
"mythicalsCaught": "Mythicals Caught",
|
|
||||||
"mythicalsHatched": "Mythicals Hatched",
|
|
||||||
"shiniesSeen": "Shinies Seen",
|
|
||||||
"shiniesCaught": "Shinies Caught",
|
|
||||||
"shiniesHatched": "Shinies Hatched",
|
|
||||||
"pokemonFused": "Pokémon Fused",
|
|
||||||
"trainersDefeated": "Trainers Defeated",
|
|
||||||
"eggsPulled": "Eggs Pulled",
|
|
||||||
"rareEggsPulled": "Rare Eggs Pulled",
|
|
||||||
"epicEggsPulled": "Epic Eggs Pulled",
|
|
||||||
"legendaryEggsPulled": "Legendary Eggs Pulled",
|
|
||||||
"manaphyEggsPulled": "Manaphy Eggs Pulled",
|
|
||||||
} as const;
|
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const growth: SimpleTranslationEntries = {
|
|
||||||
"Erratic": "60まんタイプ",
|
|
||||||
"Fast": "80まんタイプ",
|
|
||||||
"Medium_Fast": "100まんタイプ",
|
|
||||||
"Medium_Slow": "105まんタイプ",
|
|
||||||
"Slow": "125まんタイプ",
|
|
||||||
"Fluctuating": "164まんタイプ"
|
|
||||||
} as const;
|
|
@ -1,28 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const menuUiHandler: SimpleTranslationEntries = {
|
|
||||||
"GAME_SETTINGS": "せってい",
|
|
||||||
"ACHIEVEMENTS": "じっせき",
|
|
||||||
"STATS": "とうけい",
|
|
||||||
"VOUCHERS": "クーポン",
|
|
||||||
"EGG_LIST": "タマゴリスト",
|
|
||||||
"EGG_GACHA": "タマゴガチャ",
|
|
||||||
"MANAGE_DATA": "データかんり",
|
|
||||||
"COMMUNITY": "コミュニティ",
|
|
||||||
"SAVE_AND_QUIT": "Save and Quit",
|
|
||||||
"LOG_OUT": "ログアウト",
|
|
||||||
"slot": "スロット {{slotNumber}}",
|
|
||||||
"importSession": "セッションのインポート",
|
|
||||||
"importSlotSelect": "Select a slot to import to.",
|
|
||||||
"exportSession": "セッションのエクスポート",
|
|
||||||
"exportSlotSelect": "Select a slot to export from.",
|
|
||||||
"importData": "データのインポート",
|
|
||||||
"exportData": "データのエクスポート",
|
|
||||||
"linkDiscord": "Link Discord",
|
|
||||||
"unlinkDiscord": "Unlink Discord",
|
|
||||||
"linkGoogle": "Link Google",
|
|
||||||
"unlinkGoogle": "Unlink Google",
|
|
||||||
"cancel": "キャンセル",
|
|
||||||
"losingProgressionWarning": "You will lose any progress since the beginning of the battle. Proceed?",
|
|
||||||
"noEggs": "You are not hatching\nany eggs at the moment!",
|
|
||||||
} as const;
|
|
@ -1,62 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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": "キャンセル",
|
|
||||||
"continue": "つづきから",
|
|
||||||
"dailyRun": "Daily Run (Beta)",
|
|
||||||
"loadGame": "ロードセーブ",
|
|
||||||
"newGame": "はじめから",
|
|
||||||
"settings": "Settings",
|
|
||||||
"selectGameMode": "Select a game mode.",
|
|
||||||
"logInOrCreateAccount": "Log in or create an account to start. No email required!",
|
|
||||||
"username": "ユーザーめい",
|
|
||||||
"password": "パスワード",
|
|
||||||
"login": "ログイン",
|
|
||||||
"orUse": "Or use",
|
|
||||||
"register": "かいいん とうろく",
|
|
||||||
"emptyUsername": "ユーザー名は空にできません",
|
|
||||||
"invalidLoginUsername": "入力したユーザー名は無効です",
|
|
||||||
"invalidRegisterUsername": "ユーザー名には英文字、数字、アンダースコアのみを含める必要があります",
|
|
||||||
"invalidLoginPassword": "入力したパスワードは無効です",
|
|
||||||
"invalidRegisterPassword": "パスワードは6文字以上でなければなりません",
|
|
||||||
"usernameAlreadyUsed": "ユーザー名は既に使用されています",
|
|
||||||
"accountNonExistent": "ユーザーは存在しません",
|
|
||||||
"unmatchingPassword": "パスワードが一致しません",
|
|
||||||
"passwordNotMatchingConfirmPassword": "パスワードは確認パスワードと一致する必要があります",
|
|
||||||
"confirmPassword": "パスワード確認",
|
|
||||||
"registrationAgeWarning": "登録することで、あなたが13歳以上であることを確認します。",
|
|
||||||
"backToLogin": "ログインへ",
|
|
||||||
"failedToLoadSaveData": "保存データの読み込みに失敗しました。ページを再読み込みしてください。\nこれが続く場合は、管理者に連絡してください。",
|
|
||||||
"sessionSuccess": "セッションが正常に読み込まれました。",
|
|
||||||
"failedToLoadSession": "セッションデータを読み込むことができませんでした。\nデータが破損している可能性があります。",
|
|
||||||
"boyOrGirl": "おとこのこ?\nそれとも おんなのこ?",
|
|
||||||
"evolving": "…おや!?\n{{pokemonName}}のようすが…!",
|
|
||||||
"stoppedEvolving": "{{pokemonName}}のへんかがとまった",
|
|
||||||
"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": "おめでとう!\n{{pokemonName}}は{{evolvedPokemonName}}にしんかした!",
|
|
||||||
"dailyRankings": "ほんじつのランキング",
|
|
||||||
"weeklyRankings": "しゅうのランキング",
|
|
||||||
"noRankings": "ランキングなし",
|
|
||||||
"positionIcon": "#",
|
|
||||||
"usernameScoreboard": "Username",
|
|
||||||
"score": "Score",
|
|
||||||
"wave": "Wave",
|
|
||||||
"loading": "よみこみちゅう…",
|
|
||||||
"loadingAsset": "Loading asset: {{assetName}}",
|
|
||||||
"playersOnline": "オンラインのプレイヤー",
|
|
||||||
"yes":"はい",
|
|
||||||
"no":"いいえ",
|
|
||||||
"disclaimer": "DISCLAIMER",
|
|
||||||
"disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed.",
|
|
||||||
"choosePokemon": "Choose a Pokémon.",
|
|
||||||
"renamePokemon": "Rename Pokémon",
|
|
||||||
"rename": "Rename",
|
|
||||||
"nickname": "Nickname",
|
|
||||||
"errorServerDown": "Oops! There was an issue contacting the server.\n\nYou may leave this window open,\nthe game will automatically reconnect.",
|
|
||||||
} as const;
|
|
@ -1,14 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const modifierSelectUiHandler: SimpleTranslationEntries = {
|
|
||||||
"transfer": "Transfer",
|
|
||||||
"reroll": "Reroll",
|
|
||||||
"lockRarities": "Lock Rarities",
|
|
||||||
"checkTeam": "Check Team",
|
|
||||||
"transferDesc": "Transfer a held item from one Pokémon to another.",
|
|
||||||
"rerollDesc": "Spend money to reroll your item options.",
|
|
||||||
"lockRaritiesDesc": "Lock item rarities on reroll (affects reroll cost).",
|
|
||||||
"checkTeamDesc": "Check your team or use a form changing item.",
|
|
||||||
"rerollCost": "₽{{formattedMoney}}",
|
|
||||||
"itemCost": "₽{{formattedMoney}}"
|
|
||||||
} as const;
|
|
@ -1,456 +0,0 @@
|
|||||||
import { ModifierTypeTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const modifierType: ModifierTypeTranslationEntries = {
|
|
||||||
ModifierType: {
|
|
||||||
"AddPokeballModifierType": {
|
|
||||||
name: "{{modifierCount}}x {{pokeballName}}",
|
|
||||||
description: "{{pokeballName}} x{{modifierCount}}こ てにいれる (インベントリ: {{pokeballAmount}}) \nほそくりつ: {{catchRate}}",
|
|
||||||
},
|
|
||||||
"AddVoucherModifierType": {
|
|
||||||
name: "{{modifierCount}}x {{voucherTypeName}}",
|
|
||||||
description: "{{voucherTypeName}} x{{modifierCount}}こ てにいれる",
|
|
||||||
},
|
|
||||||
"PokemonHeldItemModifierType": {
|
|
||||||
extra: {
|
|
||||||
"inoperable": "{{pokemonName}} はこのアイテムを\nもつことができません!",
|
|
||||||
"tooMany": "{{pokemonName}} はこのアイテムを\nもちすぎています!",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonHpRestoreModifierType": {
|
|
||||||
description: "ポケモンの HPを {{restorePoints}} または {{restorePercent}}%のどちらか たかいほうを かいふくする",
|
|
||||||
extra: {
|
|
||||||
"fully": "ポケモンのHPをすべてかいふくする",
|
|
||||||
"fullyWithStatus": "ポケモンの HPと じょうたいいじょうを かいふくする",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonReviveModifierType": {
|
|
||||||
description: "ひんしになってしまったポケモンの HP {{restorePercent}}%を かいふくする",
|
|
||||||
},
|
|
||||||
"PokemonStatusHealModifierType": {
|
|
||||||
description: "すべてのじょうたいいじょうを なおす",
|
|
||||||
},
|
|
||||||
"PokemonPpRestoreModifierType": {
|
|
||||||
description: "ポケモンが おぼえている わざの PPを {{restorePoints}}ずつ かいふくする",
|
|
||||||
extra: {
|
|
||||||
"fully": "ポケモンが おぼえている わざの PPを すべて かいふくする",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonAllMovePpRestoreModifierType": {
|
|
||||||
description: "ポケモンが おぼえている 4つの わざの PPを {{restorePoints}}ずつ かいふくする",
|
|
||||||
extra: {
|
|
||||||
"fully": "ポケモンが おぼえている 4つの わざの PPを すべて かいふくする",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"PokemonPpUpModifierType": {
|
|
||||||
description: "ポケモンのわざのさいだいPPを さいだいPP 5ごとに {{upPoints}} ポイントずつ ふやします(さいだい3)",
|
|
||||||
},
|
|
||||||
"PokemonNatureChangeModifierType": {
|
|
||||||
name: "{{natureName}} Mint",
|
|
||||||
description: "ポケモンのせいかくを {{natureName}}にかえて スターターのせいかくをえいきゅうにかいじょする",
|
|
||||||
},
|
|
||||||
"DoubleBattleChanceBoosterModifierType": {
|
|
||||||
description: "バトル{{battleCount}}かいのあいだ ダブルバトルになるかくりつを2ばいにする",
|
|
||||||
},
|
|
||||||
"TempBattleStatBoosterModifierType": {
|
|
||||||
description: "すべてのパーティメンバーの {{tempBattleStatName}}を5かいのバトルのあいだ 1だんかいあげる",
|
|
||||||
},
|
|
||||||
"AttackTypeBoosterModifierType": {
|
|
||||||
description: "ポケモンの {{moveType}}タイプのわざのいりょくを20パーセントあげる",
|
|
||||||
},
|
|
||||||
"PokemonLevelIncrementModifierType": {
|
|
||||||
description: "ポケモンのレベルを1あげる",
|
|
||||||
},
|
|
||||||
"AllPokemonLevelIncrementModifierType": {
|
|
||||||
description: "すべてのパーティメンバーのレベルを1あげる",
|
|
||||||
},
|
|
||||||
"PokemonBaseStatBoosterModifierType": {
|
|
||||||
description: "ポケモンの{{statName}}のきほんステータスを10パーセントあげる。こたいちがたかいほどスタックのげんかいもたかくなる。",
|
|
||||||
},
|
|
||||||
"AllPokemonFullHpRestoreModifierType": {
|
|
||||||
description: "すべてのポケモンのHPを100パーセントかいふくする",
|
|
||||||
},
|
|
||||||
"AllPokemonFullReviveModifierType": {
|
|
||||||
description: "ひんしになったすべてのポケモンをふっかつさせ HPをぜんかいふくする",
|
|
||||||
},
|
|
||||||
"MoneyRewardModifierType": {
|
|
||||||
description: "{{moneyMultiplier}}ぶんのきんがくをあたえる (₽{{moneyAmount}})",
|
|
||||||
extra: {
|
|
||||||
"small": "すくない",
|
|
||||||
"moderate": "ふつう",
|
|
||||||
"large": "おおい",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"ExpBoosterModifierType": {
|
|
||||||
description: "もらえるけいけんちを {{boostPercent}}パーセントふやす",
|
|
||||||
},
|
|
||||||
"PokemonExpBoosterModifierType": {
|
|
||||||
description: "もっているポケモンのけいけんちを {{boostPercent}}パーセントふやす",
|
|
||||||
},
|
|
||||||
"PokemonFriendshipBoosterModifierType": {
|
|
||||||
description: "しょうりごとに 50%パーセント なかよく なりやすくなる",
|
|
||||||
},
|
|
||||||
"PokemonMoveAccuracyBoosterModifierType": {
|
|
||||||
description: "わざのめいちゅうりつを{{accuracyAmount}}ふやす (さいだい100)",
|
|
||||||
},
|
|
||||||
"PokemonMultiHitModifierType": {
|
|
||||||
description: "こうげきがもういちどあたる。そのたびにいりょくがそれぞれ60/75/82.5%へる",
|
|
||||||
},
|
|
||||||
"TmModifierType": {
|
|
||||||
name: "TM{{moveId}} - {{moveName}}",
|
|
||||||
description: "ポケモンに {{moveName}} をおしえる",
|
|
||||||
},
|
|
||||||
"TmModifierTypeWithInfo": {
|
|
||||||
name: "TM{{moveId}} - {{moveName}}",
|
|
||||||
description: "ポケモンに {{moveName}} をおしえる\n(Hold C or Shift for more info)",
|
|
||||||
},
|
|
||||||
"EvolutionItemModifierType": {
|
|
||||||
description: "とくていのポケモンをしんかさせる",
|
|
||||||
},
|
|
||||||
"FormChangeItemModifierType": {
|
|
||||||
description: "とくていのポケモンをフォームチェンジさせる",
|
|
||||||
},
|
|
||||||
"FusePokemonModifierType": {
|
|
||||||
description: "2匹のポケモンをけつごうする (とくせいをいどうし、きほんステータスとタイプをわけ、わざプールをきょうゆうする)",
|
|
||||||
},
|
|
||||||
"TerastallizeModifierType": {
|
|
||||||
name: "{{teraType}} Tera Shard",
|
|
||||||
description: "ポケモンを{{teraType}}タイプにテラスタル(10かいのバトルまで)",
|
|
||||||
},
|
|
||||||
"ContactHeldItemTransferChanceModifierType": {
|
|
||||||
description: "こうげきするとき あいてがもっているアイテムを {{chancePercent}}パーセントのかくりつでぬすむ",
|
|
||||||
},
|
|
||||||
"TurnHeldItemTransferModifierType": {
|
|
||||||
description: "まいターン あいてからひとつのもちものをてにいれる",
|
|
||||||
},
|
|
||||||
"EnemyAttackStatusEffectChanceModifierType": {
|
|
||||||
description: "こうげきわざに {{chancePercent}}パーセントのかくりつで {{statusEffect}}をあたえる",
|
|
||||||
},
|
|
||||||
"EnemyEndureChanceModifierType": {
|
|
||||||
description: "こうげきをこらえるかくりつを{{chancePercent}}パーセントふやす",
|
|
||||||
},
|
|
||||||
|
|
||||||
"RARE_CANDY": { name: "ふしぎなアメ" },
|
|
||||||
"RARER_CANDY": { name: "もっとふしぎなアメ" },
|
|
||||||
|
|
||||||
"MEGA_BRACELET": { name: "メガバングル", description: "メガストーンがつかえるようになる" },
|
|
||||||
"DYNAMAX_BAND": { name: "ダイマックスバンド", description: "ダイスープがつかえるようになる" },
|
|
||||||
"TERA_ORB": { name: "テラスタルオーブ", description: "テラピースがつかえるようになる" },
|
|
||||||
|
|
||||||
"MAP": { name: "ちず", description: "わかれみちでいきさきをえらべるようになる" },
|
|
||||||
|
|
||||||
"POTION": { name: "キズぐすり" },
|
|
||||||
"SUPER_POTION": { name: "いいキズぐすり" },
|
|
||||||
"HYPER_POTION": { name: "すごいキズぐすり" },
|
|
||||||
"MAX_POTION": { name: "まんたんのくすり" },
|
|
||||||
"FULL_RESTORE": { name: "かいふくのくすり" },
|
|
||||||
|
|
||||||
"REVIVE": { name: "げんきのかけら" },
|
|
||||||
"MAX_REVIVE": { name: "げんきのかたまり" },
|
|
||||||
|
|
||||||
"FULL_HEAL": { name: "なんでもなおし" },
|
|
||||||
|
|
||||||
"SACRED_ASH": { name: "せいなるはい" },
|
|
||||||
|
|
||||||
"REVIVER_SEED": { name: "ふっかつのタネ", description: "ひんしになったときもっているポケモンをHPはんぶんでふっかつさせる" },
|
|
||||||
|
|
||||||
"WHITE_HERB": { name: "White Herb", description: "An item to be held by a Pokémon. It will restore any lowered stat in battle." },
|
|
||||||
|
|
||||||
"ETHER": { name: "ピーピーエイド" },
|
|
||||||
"MAX_ETHER": { name: "ピーピーリカバー" },
|
|
||||||
|
|
||||||
"ELIXIR": { name: "ピーピーエイダー" },
|
|
||||||
"MAX_ELIXIR": { name: "ピーピーマックス" },
|
|
||||||
|
|
||||||
"PP_UP": { name: "ポイントアップ" },
|
|
||||||
"PP_MAX": { name: "ポイントマックス" },
|
|
||||||
|
|
||||||
"LURE": { name: "ダブルバトルコロン" },
|
|
||||||
"SUPER_LURE": { name: "シルバーコロン" },
|
|
||||||
"MAX_LURE": { name: "ゴールドコロン" },
|
|
||||||
|
|
||||||
"MEMORY_MUSHROOM": { name: "きおくキノコ", description: "ポケモンのわすれたわざをおぼえさせる" },
|
|
||||||
|
|
||||||
"EXP_SHARE": { name: "がくしゅうそうち", description: "バトルにさんかしていないポケモンが けいけんちの20パーセントをもらう" },
|
|
||||||
"EXP_BALANCE": { name: "バランスそうち", description: "レベルがひくいパーティメンバーがもらうけいけんちがふえる" },
|
|
||||||
|
|
||||||
"OVAL_CHARM": { name: "まるいおまもり", description: "バトルにふくすうのポケモンがさんかするとけいけんちが10パーセントふえる" },
|
|
||||||
|
|
||||||
"EXP_CHARM": { name: "けいけんちおまもり" },
|
|
||||||
"SUPER_EXP_CHARM": { name: "いいけいけんちおまもり" },
|
|
||||||
"GOLDEN_EXP_CHARM": { name: "ゴールドけいけんちおまもり" },
|
|
||||||
|
|
||||||
"LUCKY_EGG": { name: "しあわせタマゴ" },
|
|
||||||
"GOLDEN_EGG": { name: "おうごんタマゴ" },
|
|
||||||
|
|
||||||
"SOOTHE_BELL": { name: "やすらぎのすず" },
|
|
||||||
|
|
||||||
"SCOPE_LENS": { name: "ピントレンズ", description: "弱点が 見える レンズ。持たせた ポケモンの技が 急所に 当たりやすくなる。"},
|
|
||||||
"LEEK": { name: "ながねぎ", description: "とても長くて 硬いクキ。カモネギに 持たせると 技が 急所に 当たりやすくなる。"},
|
|
||||||
|
|
||||||
"EVIOLITE": { name: "しんかのきせき", description: "進化の不思議な かたまり。持たせると 進化前ポケモンの 防御と 特防が あがる。" },
|
|
||||||
|
|
||||||
"SOUL_DEW": { name: "こころのしずく", description: "ポケモンのせいかくがステータスにあたえるえいきょうを10%ふやす(合算)" },
|
|
||||||
|
|
||||||
"NUGGET": { name: "きんのたま" },
|
|
||||||
"BIG_NUGGET": { name: "でかいきんのたま" },
|
|
||||||
"RELIC_GOLD": { name: "こだいのきんか" },
|
|
||||||
|
|
||||||
"AMULET_COIN": { name: "おまもりこばん", description: "もらえる おかねが 20パーセント ふえる" },
|
|
||||||
"GOLDEN_PUNCH": { name: "ゴールドパンチ", description: "あたえたちょくせつダメージの50パーセントをおかねとしてもらえる" },
|
|
||||||
"COIN_CASE": { name: "コインケース", description: "10かいのバトルごとにもちきんの10パーセントをりしとしてうけとる" },
|
|
||||||
|
|
||||||
"LOCK_CAPSULE": { name: "ロックカプセル", description: "リロールするときにアイテムのレアリティをロックできる" },
|
|
||||||
|
|
||||||
"GRIP_CLAW": { name: "ねばりのかぎづめ" },
|
|
||||||
"WIDE_LENS": { name: "こうかくレンズ" },
|
|
||||||
|
|
||||||
"MULTI_LENS": { name: "マルチレンズ" },
|
|
||||||
|
|
||||||
"HEALING_CHARM": { name: "ヒーリングチャーム", description: "HPをかいふくするわざとアイテムのこうかを10パーセントあげる (ふっかつはのぞく)" },
|
|
||||||
"CANDY_JAR": { name: "アメボトル", description: "ふしぎなアメのアイテムでふえるレベルが1ふえる" },
|
|
||||||
|
|
||||||
"BERRY_POUCH": { name: "きのみぶくろ", description: "つかったきのみがつかわれないかくりつを30パーセントふやす" },
|
|
||||||
|
|
||||||
"FOCUS_BAND": { name: "きあいのハチマキ", description: "ひんしになるダメージをうけてもHP1でたえるかくりつを10パーセントふやす" },
|
|
||||||
|
|
||||||
"QUICK_CLAW": { name: "せんせいのツメ", description: "すばやさにかかわらず さきにこうどうするかくりつを10パーセントふやす (ゆうせんどのあと)" },
|
|
||||||
|
|
||||||
"KINGS_ROCK": { name: "おうじゃのしるし", description: "こうげきわざがあいてをひるませるかくりつを10パーセントふやす" },
|
|
||||||
|
|
||||||
"LEFTOVERS": { name: "たべのこし", description: "ポケモンのさいだいHPの1/16をまいターンかいふくする" },
|
|
||||||
"SHELL_BELL": { name: "かいがらのすず", description: "ポケモンがあたえたダメージの1/8をかいふくする" },
|
|
||||||
|
|
||||||
"TOXIC_ORB": { name: "どくどくだま", description: "ターンの終わりに すでに じょうたいじょうしょうが なければ もうどくの じょうたいに なる" },
|
|
||||||
"FLAME_ORB": { name: "かえんだま", description: "ターンの終わりに すでに じょうたいじょうしょうが なければ やけどの じょうたいに なる" },
|
|
||||||
|
|
||||||
"BATON": { name: "バトン", description: "ポケモンをこうたいするときにこうかをひきつぎ わなをかいひすることもできる" },
|
|
||||||
|
|
||||||
"SHINY_CHARM": { name: "ひかるおまもり", description: "やせいのポケモンがいろちがいポケモンであるかくりつをおおきくふやす" },
|
|
||||||
"ABILITY_CHARM": { name: "とくせいおまもり", description: "やせいのポケモンがかくれとくせいをもつかくりつをおおきくふやす" },
|
|
||||||
|
|
||||||
"IV_SCANNER": { name: "こたいち たんちき", description: "やせいのポケモンのこたいちをスキャンできる。スタックごとに2つのこたいちがあきらかになる。もっともたかいこたいちがさいしょにひょうじされる" },
|
|
||||||
|
|
||||||
"DNA_SPLICERS": { name: "いでんしのくさび" },
|
|
||||||
|
|
||||||
"MINI_BLACK_HOLE": { name: "ミニブラックホール" },
|
|
||||||
|
|
||||||
"GOLDEN_POKEBALL": { name: "ゴールドモンスターボール", description: "バトルごとに1つのアイテムオプションをふやす" },
|
|
||||||
|
|
||||||
"ENEMY_DAMAGE_BOOSTER": { name: "ダメージトークン", description: "ダメージを5%ふやす" },
|
|
||||||
"ENEMY_DAMAGE_REDUCTION": { name: "プロテクショントークン", description: "うけるダメージを2.5%へらす" },
|
|
||||||
"ENEMY_HEAL": { name: "かいふくトークン", description: "まいターンさいだいHPの2%をかいふくする" },
|
|
||||||
"ENEMY_ATTACK_POISON_CHANCE": { name: "どくトークン" },
|
|
||||||
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "まひトークン" },
|
|
||||||
"ENEMY_ATTACK_BURN_CHANCE": { name: "やけどトークン" },
|
|
||||||
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "なおしトークン", description: "まいターン2.5%のかくりつでじょうたいじょうしょうをかいふくする" },
|
|
||||||
"ENEMY_ENDURE_CHANCE": { name: "こらえるトークン" },
|
|
||||||
"ENEMY_FUSED_CHANCE": { name: "フュージョントークン", description: "やせいのポケモンがフュージョンするかくりつを1%ふやす" },
|
|
||||||
},
|
|
||||||
SpeciesBoosterItem: {
|
|
||||||
"LIGHT_BALL": { name: "でんきだま", description: "ピカチュウに 持たせると 攻撃と 特攻が あがる 不思議な玉。" },
|
|
||||||
"THICK_CLUB": { name: "ふといホネ", description: "なにかの 硬いホネ。カラカラ または ガラガラに 持たせると 攻撃が あがる。" },
|
|
||||||
"METAL_POWDER": { name: "メタルパウダー", description: "メタモンに 持たせると 防御が あがる 不思議な粉。とても こまかくて 硬い。" },
|
|
||||||
"QUICK_POWDER": { name: "スピードパウダー", description: "メタモンに 持たせると 素早さが あがる 不思議 粉。とても こまかくて 硬い。" }
|
|
||||||
},
|
|
||||||
TempBattleStatBoosterItem: {
|
|
||||||
"x_attack": "プラスパワー",
|
|
||||||
"x_defense": "ディフェンダー",
|
|
||||||
"x_sp_atk": "スペシャルアップ",
|
|
||||||
"x_sp_def": "スペシャルガード",
|
|
||||||
"x_speed": "スピーダー",
|
|
||||||
"x_accuracy": "ヨクアタール",
|
|
||||||
"dire_hit": "クリティカット",
|
|
||||||
},
|
|
||||||
|
|
||||||
TempBattleStatBoosterStatName: {
|
|
||||||
"ATK": "こうげき",
|
|
||||||
"DEF": "ぼうぎょ",
|
|
||||||
"SPATK": "とくこう",
|
|
||||||
"SPDEF": "とくぼう",
|
|
||||||
"SPD": "すばやさ",
|
|
||||||
"ACC": "めいちゅう",
|
|
||||||
"CRIT": "きゅうしょりつ",
|
|
||||||
"EVA": "かいひ",
|
|
||||||
"DEFAULT": "???",
|
|
||||||
},
|
|
||||||
|
|
||||||
AttackTypeBoosterItem: {
|
|
||||||
"silk_scarf": "シルクのスカーフ",
|
|
||||||
"black_belt": "くろおび",
|
|
||||||
"sharp_beak": "するどいくちばし",
|
|
||||||
"poison_barb": "どくバリ",
|
|
||||||
"soft_sand": "やわらかいすな",
|
|
||||||
"hard_stone": "かたいいし",
|
|
||||||
"silver_powder": "ぎんのこな",
|
|
||||||
"spell_tag": "のろいのおふだ",
|
|
||||||
"metal_coat": "メタルコート",
|
|
||||||
"charcoal": "もくたん",
|
|
||||||
"mystic_water": "しんぴのしずく",
|
|
||||||
"miracle_seed": "きせきのタネ",
|
|
||||||
"magnet": "じしゃく",
|
|
||||||
"twisted_spoon": "まがったスプーン",
|
|
||||||
"never_melt_ice": "とけないこおり",
|
|
||||||
"dragon_fang": "りゅうのキバ",
|
|
||||||
"black_glasses": "くろいメガネ",
|
|
||||||
"fairy_feather": "ようせいのハネ",
|
|
||||||
},
|
|
||||||
BaseStatBoosterItem: {
|
|
||||||
"hp_up": "マックスアップ",
|
|
||||||
"protein": "タウリン",
|
|
||||||
"iron": "ブロムヘキシン",
|
|
||||||
"calcium": "リゾチウム",
|
|
||||||
"zinc": "キトサン",
|
|
||||||
"carbos": "インドメタシン",
|
|
||||||
},
|
|
||||||
EvolutionItem: {
|
|
||||||
"NONE": "None",
|
|
||||||
|
|
||||||
"LINKING_CORD": "つながりのヒモ",
|
|
||||||
"SUN_STONE": "たいようのいし",
|
|
||||||
"MOON_STONE": "つきのいし",
|
|
||||||
"LEAF_STONE": "リーフのいし",
|
|
||||||
"FIRE_STONE": "ほのおのいし",
|
|
||||||
"WATER_STONE": "みずのいし",
|
|
||||||
"THUNDER_STONE": "かみなりのいし",
|
|
||||||
"ICE_STONE": "こおりのいし",
|
|
||||||
"DUSK_STONE": "やみのいし",
|
|
||||||
"DAWN_STONE": "めざめいし",
|
|
||||||
"SHINY_STONE": "ひかりのいし",
|
|
||||||
"CRACKED_POT": "われたポット",
|
|
||||||
"SWEET_APPLE": "あまーいりんご",
|
|
||||||
"TART_APPLE": "すっぱいりんご",
|
|
||||||
"STRAWBERRY_SWEET": "いちごアメざいく",
|
|
||||||
"UNREMARKABLE_TEACUP": "ボンサクのちゃわん",
|
|
||||||
|
|
||||||
"CHIPPED_POT": "かけたポット",
|
|
||||||
"BLACK_AUGURITE": "くろのきせき",
|
|
||||||
"GALARICA_CUFF": "ガラナツブレス",
|
|
||||||
"GALARICA_WREATH": "ガラナツリース",
|
|
||||||
"PEAT_BLOCK": "ピートブロック",
|
|
||||||
"AUSPICIOUS_ARMOR": "イワイノヨロイ",
|
|
||||||
"MALICIOUS_ARMOR": "ノロイノヨロイ",
|
|
||||||
"MASTERPIECE_TEACUP": "ケッサクのちゃわん",
|
|
||||||
"METAL_ALLOY": "ふくごうきんぞく",
|
|
||||||
"SCROLL_OF_DARKNESS": "あくのかけじく",
|
|
||||||
"SCROLL_OF_WATERS": "みずのかけじく",
|
|
||||||
"SYRUPY_APPLE": "みついりりんご",
|
|
||||||
},
|
|
||||||
FormChangeItem: {
|
|
||||||
"NONE": "None",
|
|
||||||
|
|
||||||
"ABOMASITE": "ユキノオナイト",
|
|
||||||
"ABSOLITE": "アブソルナイト",
|
|
||||||
"AERODACTYLITE": "プテラナイト",
|
|
||||||
"AGGRONITE": "ボスゴドラナイト",
|
|
||||||
"ALAKAZITE": "フーディナイト",
|
|
||||||
"ALTARIANITE": "チルタリスナイト",
|
|
||||||
"AMPHAROSITE": "デンリュウナイト",
|
|
||||||
"AUDINITE": "タブンネナイト",
|
|
||||||
"BANETTITE": "ジュペッタナイト",
|
|
||||||
"BEEDRILLITE": "スピアナイト",
|
|
||||||
"BLASTOISINITE": "カメックスナイト",
|
|
||||||
"BLAZIKENITE": "バシャーモナイト",
|
|
||||||
"CAMERUPTITE": "バクーダナイト",
|
|
||||||
"CHARIZARDITE_X": "リザードナイトX",
|
|
||||||
"CHARIZARDITE_Y": "リザードナイトY",
|
|
||||||
"DIANCITE": "ディアンシナイト",
|
|
||||||
"GALLADITE": "エルレイドナイト",
|
|
||||||
"GARCHOMPITE": "ガブリアスナイト",
|
|
||||||
"GARDEVOIRITE": "サーナイトナイト",
|
|
||||||
"GENGARITE": "ゲンガナイト",
|
|
||||||
"GLALITITE": "オニゴーリナイト",
|
|
||||||
"GYARADOSITE": "ギャラドスナイト",
|
|
||||||
"HERACRONITE": "ヘラクロスナイト",
|
|
||||||
"HOUNDOOMINITE": "ヘルガナイト",
|
|
||||||
"KANGASKHANITE": "ガルーラナイト",
|
|
||||||
"LATIASITE": "ラティアスナイト",
|
|
||||||
"LATIOSITE": "ラティオスナイト",
|
|
||||||
"LOPUNNITE": "ミミロップナイト",
|
|
||||||
"LUCARIONITE": "ルカリオナイト",
|
|
||||||
"MANECTITE": "ライボルトナイト",
|
|
||||||
"MAWILITE": "クチートナイト",
|
|
||||||
"MEDICHAMITE": "チャーレムナイト",
|
|
||||||
"METAGROSSITE": "メタグロスナイト",
|
|
||||||
"MEWTWONITE_X": "ミュウツナイトX",
|
|
||||||
"MEWTWONITE_Y": "ミュウツナイトY",
|
|
||||||
"PIDGEOTITE": "ピジョットナイト",
|
|
||||||
"PINSIRITE": "カイロスナイト",
|
|
||||||
"RAYQUAZITE": "レックウザナイト",
|
|
||||||
"SABLENITE": "ヤミラミナイト",
|
|
||||||
"SALAMENCITE": "ボーマンダナイト",
|
|
||||||
"SCEPTILITE": "ジュカインナイト",
|
|
||||||
"SCIZORITE": "ハッサムナイト",
|
|
||||||
"SHARPEDONITE": "サメハダナイト",
|
|
||||||
"SLOWBRONITE": "ヤドランナイト",
|
|
||||||
"STEELIXITE": "ハガネールナイト",
|
|
||||||
"SWAMPERTITE": "ラグラージナイト",
|
|
||||||
"TYRANITARITE": "バンギラスナイト",
|
|
||||||
"VENUSAURITE": "フシギバナイト",
|
|
||||||
|
|
||||||
"BLUE_ORB": "あいいろのたま",
|
|
||||||
"RED_ORB": "べにいろのたま",
|
|
||||||
"SHARP_METEORITE": "シャープなうんせき",
|
|
||||||
"HARD_METEORITE": "かたいうんせき",
|
|
||||||
"SMOOTH_METEORITE": "やわらかいうんせき",
|
|
||||||
"ADAMANT_CRYSTAL": "だいこんごうだま",
|
|
||||||
"LUSTROUS_GLOBE": "だいしらたま",
|
|
||||||
"GRISEOUS_CORE": "だいはっきんだま",
|
|
||||||
"REVEAL_GLASS": "うつしかがみ",
|
|
||||||
"GRACIDEA": "グラシデアのはな",
|
|
||||||
"MAX_MUSHROOMS": "ダイキノコ",
|
|
||||||
"DARK_STONE": "ダークストーン",
|
|
||||||
"LIGHT_STONE": "ライトストーン",
|
|
||||||
"PRISON_BOTTLE": "いましめのツボ",
|
|
||||||
"N_LUNARIZER": "ネクロプラスルナ",
|
|
||||||
"N_SOLARIZER": "ネクロプラスソル",
|
|
||||||
"RUSTED_SWORD": "くちたけん",
|
|
||||||
"RUSTED_SHIELD": "くちたたて",
|
|
||||||
"ICY_REINS_OF_UNITY": "つめたいキズナのタヅナ",
|
|
||||||
"SHADOW_REINS_OF_UNITY": "くろいキズナのタヅナ",
|
|
||||||
"WELLSPRING_MASK": "いどのめん",
|
|
||||||
"HEARTHFLAME_MASK": "かまどのめん",
|
|
||||||
"CORNERSTONE_MASK": "いしずえのめん",
|
|
||||||
"SHOCK_DRIVE": "イナズマカセット",
|
|
||||||
"BURN_DRIVE": "ブレイズカセット",
|
|
||||||
"CHILL_DRIVE": "フリーズカセット",
|
|
||||||
"DOUSE_DRIVE": "アクアカセット",
|
|
||||||
|
|
||||||
"FIST_PLATE": "Fist Plate",
|
|
||||||
"SKY_PLATE": "Sky Plate",
|
|
||||||
"TOXIC_PLATE": "Toxic Plate",
|
|
||||||
"EARTH_PLATE": "Earth Plate",
|
|
||||||
"STONE_PLATE": "Stone Plate",
|
|
||||||
"INSECT_PLATE": "Insect Plate",
|
|
||||||
"SPOOKY_PLATE": "Spooky Plate",
|
|
||||||
"IRON_PLATE": "Iron Plate",
|
|
||||||
"FLAME_PLATE": "Flame Plate",
|
|
||||||
"SPLASH_PLATE": "Splash Plate",
|
|
||||||
"MEADOW_PLATE": "Meadow Plate",
|
|
||||||
"ZAP_PLATE": "Zap Plate",
|
|
||||||
"MIND_PLATE": "Mind Plate",
|
|
||||||
"ICICLE_PLATE": "Icicle Plate",
|
|
||||||
"DRACO_PLATE": "Draco Plate",
|
|
||||||
"DREAD_PLATE": "Dread Plate",
|
|
||||||
"PIXIE_PLATE": "Pixie Plate",
|
|
||||||
"BLANK_PLATE": "Blank Plate",
|
|
||||||
"LEGEND_PLATE": "Legend Plate",
|
|
||||||
"FIGHTING_MEMORY": "Fighting Memory",
|
|
||||||
"FLYING_MEMORY": "Flying Memory",
|
|
||||||
"POISON_MEMORY": "Poison Memory",
|
|
||||||
"GROUND_MEMORY": "Ground Memory",
|
|
||||||
"ROCK_MEMORY": "Rock Memory",
|
|
||||||
"BUG_MEMORY": "Bug Memory",
|
|
||||||
"GHOST_MEMORY": "Ghost Memory",
|
|
||||||
"STEEL_MEMORY": "Steel Memory",
|
|
||||||
"FIRE_MEMORY": "Fire Memory",
|
|
||||||
"WATER_MEMORY": "Water Memory",
|
|
||||||
"GRASS_MEMORY": "Grass Memory",
|
|
||||||
"ELECTRIC_MEMORY": "Electric Memory",
|
|
||||||
"PSYCHIC_MEMORY": "Psychic Memory",
|
|
||||||
"ICE_MEMORY": "Ice Memory",
|
|
||||||
"DRAGON_MEMORY": "Dragon Memory",
|
|
||||||
"DARK_MEMORY": "Dark Memory",
|
|
||||||
"FAIRY_MEMORY": "Fairy Memory",
|
|
||||||
"BLANK_MEMORY": "Blank Memory",
|
|
||||||
},
|
|
||||||
} as const;
|
|
@ -1,14 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const modifier: SimpleTranslationEntries = {
|
|
||||||
"surviveDamageApply": "{{pokemonNameWithAffix}} hung on\nusing its {{typeName}}!",
|
|
||||||
"turnHealApply": "{{pokemonNameWithAffix}} restored a little HP using\nits {{typeName}}!",
|
|
||||||
"hitHealApply": "{{pokemonNameWithAffix}} restored a little HP using\nits {{typeName}}!",
|
|
||||||
"pokemonInstantReviveApply": "{{pokemonNameWithAffix}} was revived\nby its {{typeName}}!",
|
|
||||||
"pokemonResetNegativeStatStageApply": "{{pokemonNameWithAffix}}'s lowered stats were restored\nby its {{typeName}}!",
|
|
||||||
"moneyInterestApply": "You received interest of ₽{{moneyAmount}}\nfrom the {{typeName}}!",
|
|
||||||
"turnHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} was absorbed\nby {{pokemonName}}'s {{typeName}}!",
|
|
||||||
"contactHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} was snatched\nby {{pokemonName}}'s {{typeName}}!",
|
|
||||||
"enemyTurnHealApply": "{{pokemonNameWithAffix}}\nrestored some HP!",
|
|
||||||
"bypassSpeedChanceApply": "{{pokemonName}} can act faster than normal, thanks to its {{itemName}}!",
|
|
||||||
} as const;
|
|
@ -1,62 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const moveTriggers: SimpleTranslationEntries = {
|
|
||||||
"hitWithRecoil" : "{{pokemonName}} was damaged by the recoil!",
|
|
||||||
"cutHpPowerUpMove": "{{pokemonName}} cut its own HP to power up its move!",
|
|
||||||
"absorbedElectricity": "{{pokemonName}} absorbed electricity!",
|
|
||||||
"switchedStatChanges": "{{pokemonName}} switched stat changes with the target!",
|
|
||||||
"goingAllOutForAttack": "{{pokemonName}} is going all out for this attack!",
|
|
||||||
"regainedHealth": "{{pokemonName}} regained\nhealth!",
|
|
||||||
"keptGoingAndCrashed": "{{pokemonName}} kept going\nand crashed!",
|
|
||||||
"fled": "{{pokemonName}} fled!",
|
|
||||||
"cannotBeSwitchedOut": "{{pokemonName}} can't be switched out!",
|
|
||||||
"swappedAbilitiesWithTarget": "{{pokemonName}} swapped\nabilities with its target!",
|
|
||||||
"coinsScatteredEverywhere": "Coins were scattered everywhere!",
|
|
||||||
"attackedByItem": "{{pokemonName}} is about to be attacked by its {{itemName}}!",
|
|
||||||
"whippedUpAWhirlwind": "{{pokemonName}} whipped\nup a whirlwind!",
|
|
||||||
"flewUpHigh": "{{pokemonName}} flew\nup high!",
|
|
||||||
"tookInSunlight": "{{pokemonName}} absorbed light!",
|
|
||||||
"dugAHole": "{{pokemonName}} burrowed its way under the ground!",
|
|
||||||
"loweredItsHead": "{{pokemonName}} tucked in its head!",
|
|
||||||
"isGlowing": "{{pokemonName}} became cloaked in a harsh light!",
|
|
||||||
"bellChimed": "A bell chimed!",
|
|
||||||
"foresawAnAttack": "{{pokemonName}} foresaw\nan attack!",
|
|
||||||
"hidUnderwater": "{{pokemonName}} hid\nunderwater!",
|
|
||||||
"soothingAromaWaftedThroughArea": "A soothing aroma wafted through the area!",
|
|
||||||
"sprangUp": "{{pokemonName}} sprang up!",
|
|
||||||
"choseDoomDesireAsDestiny": "{{pokemonName}} chose\nDoom Desire as its destiny!",
|
|
||||||
"vanishedInstantly": "{{pokemonName}} vanished\ninstantly!",
|
|
||||||
"tookTargetIntoSky": "{{pokemonName}} took {{targetName}}\ninto the sky!",
|
|
||||||
"becameCloakedInFreezingLight": "{{pokemonName}} became cloaked\nin a freezing light!",
|
|
||||||
"becameCloakedInFreezingAir": "{{pokemonName}} became cloaked\nin freezing air!",
|
|
||||||
"isChargingPower": "{{pokemonName}} is absorbing power!",
|
|
||||||
"burnedItselfOut": "{{pokemonName}} burned itself out!",
|
|
||||||
"startedHeatingUpBeak": "{{pokemonName}} started\nheating up its beak!",
|
|
||||||
"isOverflowingWithSpacePower": "{{pokemonName}} is overflowing\nwith space power!",
|
|
||||||
"usedUpAllElectricity": "{{pokemonName}} used up all its electricity!",
|
|
||||||
"stoleItem": "{{pokemonName}} stole\n{{targetName}}'s {{itemName}}!",
|
|
||||||
"incineratedItem": "{{pokemonName}} incinerated\n{{targetName}}'s {{itemName}}!",
|
|
||||||
"knockedOffItem": "{{pokemonName}} knocked off\n{{targetName}}'s {{itemName}}!",
|
|
||||||
"tookMoveAttack": "{{pokemonName}} took\nthe {{moveName}} attack!",
|
|
||||||
"cutOwnHpAndMaximizedStat": "{{pokemonName}} cut its own HP\nand maximized its {{statName}}!",
|
|
||||||
"copiedStatChanges": "{{pokemonName}} copied\n{{targetName}}'s stat changes!",
|
|
||||||
"magnitudeMessage": "Magnitude {{magnitude}}!",
|
|
||||||
"tookAimAtTarget": "{{pokemonName}} took aim\nat {{targetName}}!",
|
|
||||||
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{typeName}} type!",
|
|
||||||
"copiedMove": "{{pokemonName}} copied\n{{moveName}}!",
|
|
||||||
"sketchedMove": "{{pokemonName}} sketched\n{{moveName}}!",
|
|
||||||
"acquiredAbility": "The {{pokemonName}} acquired\n{{abilityName}}!",
|
|
||||||
"copiedTargetAbility": "{{pokemonName}} copied the {{targetName}}'s\n{{abilityName}}!",
|
|
||||||
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
|
|
||||||
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
|
|
||||||
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
|
|
||||||
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!",
|
|
||||||
"healHp": "{{pokemonName}} had its HP restored.",
|
|
||||||
"sacrificialFullRestore": "{{pokemonName}}'s Healing Wish\nwas granted!",
|
|
||||||
"invertStats": "{{pokemonName}}'s stat changes\nwere all reversed!",
|
|
||||||
"resetStats": "{{pokemonName}}'s stat changes\nwere eliminated!",
|
|
||||||
"faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.",
|
|
||||||
"copyType": "{{pokemonName}}'s type became the same as\n{{targetPokemonName}}'s type!",
|
|
||||||
"suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!",
|
|
||||||
"swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!",
|
|
||||||
} as const;
|
|
File diff suppressed because it is too large
Load Diff
@ -1,29 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const nature: SimpleTranslationEntries = {
|
|
||||||
"Hardy": "がんばりや",
|
|
||||||
"Lonely": "さみしがり",
|
|
||||||
"Brave": "ゆうかん",
|
|
||||||
"Adamant": "いじっぱり",
|
|
||||||
"Naughty": "やんちゃ",
|
|
||||||
"Bold": "ずぶとい",
|
|
||||||
"Docile": "すなお",
|
|
||||||
"Relaxed": "のんき",
|
|
||||||
"Impish": "わんぱく",
|
|
||||||
"Lax": "のうてんき",
|
|
||||||
"Timid": "おくびょう",
|
|
||||||
"Hasty": "せっかち",
|
|
||||||
"Serious": "まじめ",
|
|
||||||
"Jolly": "ようき",
|
|
||||||
"Naive": "むじゃき",
|
|
||||||
"Modest": "ひかえめ",
|
|
||||||
"Mild": "おっとり",
|
|
||||||
"Quiet": "れいせい",
|
|
||||||
"Bashful": "てれや",
|
|
||||||
"Rash": "うっかりや",
|
|
||||||
"Calm": "おだやか",
|
|
||||||
"Gentle": "おとなしい",
|
|
||||||
"Sassy": "なまいき",
|
|
||||||
"Careful": "しんちょう",
|
|
||||||
"Quirky": "きまぐれ"
|
|
||||||
} as const;
|
|
@ -1,54 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const partyUiHandler: SimpleTranslationEntries = {
|
|
||||||
"SEND_OUT": "いれかえる",
|
|
||||||
"SUMMARY": "つよさをみる",
|
|
||||||
"CANCEL": "やめる",
|
|
||||||
"RELEASE": "にがす",
|
|
||||||
"APPLY": "つかう",
|
|
||||||
"TEACH": "おしえる",
|
|
||||||
"SPLICE": "Splice",
|
|
||||||
"UNSPLICE": "Unsplice",
|
|
||||||
"ACTIVATE": "Activate",
|
|
||||||
"DEACTIVATE": "Deactivate",
|
|
||||||
"TRANSFER": "Transfer",
|
|
||||||
"ALL": "すべて",
|
|
||||||
"PASS_BATON": "Pass Baton",
|
|
||||||
"UNPAUSE_EVOLUTION": "Unpause Evolution",
|
|
||||||
"REVIVE": "Revive",
|
|
||||||
"RENAME": "Rename",
|
|
||||||
|
|
||||||
"choosePokemon": "Choose a Pokémon.",
|
|
||||||
"doWhatWithThisPokemon": "Do what with this Pokémon?",
|
|
||||||
"noEnergy": "{{pokemonName}} has no energy\nleft to battle!",
|
|
||||||
"hasEnergy": "{{pokemonName}} still has energy\nto battle!",
|
|
||||||
"cantBeUsed": "{{pokemonName}} can't be used in\nthis challenge!",
|
|
||||||
"tooManyItems": "{{pokemonName}} has too many\nof this item!",
|
|
||||||
"anyEffect": "It won't have any effect.",
|
|
||||||
"unpausedEvolutions": "Evolutions have been unpaused for {{pokemonName}}.",
|
|
||||||
"unspliceConfirmation": "Do you really want to unsplice {{fusionName}}\nfrom {{pokemonName}}? {{fusionName}} will be lost.",
|
|
||||||
"wasReverted": "{{fusionName}} was reverted to {{pokemonName}}.",
|
|
||||||
"releaseConfirmation": "Do you really want to release {{pokemonName}}?",
|
|
||||||
"releaseInBattle": "You can't release a Pokémon that's in battle!",
|
|
||||||
"selectAMove": "Select a move.",
|
|
||||||
"changeQuantity": "Select a held item to transfer.\nUse < and > to change the quantity.",
|
|
||||||
"selectAnotherPokemonToSplice": "Select another Pokémon to splice.",
|
|
||||||
"cancel": "Cancel",
|
|
||||||
|
|
||||||
// Slot TM text
|
|
||||||
"able": "Able",
|
|
||||||
"notAble": "Not able",
|
|
||||||
"learned": "Learned",
|
|
||||||
|
|
||||||
// Releasing messages
|
|
||||||
"goodbye": "Goodbye, {{pokemonName}}!",
|
|
||||||
"byebye": "Byebye, {{pokemonName}}!",
|
|
||||||
"farewell": "Farewell, {{pokemonName}}!",
|
|
||||||
"soLong": "So long, {{pokemonName}}!",
|
|
||||||
"thisIsWhereWePart": "This is where we part, {{pokemonName}}!",
|
|
||||||
"illMissYou": "I'll miss you, {{pokemonName}}!",
|
|
||||||
"illNeverForgetYou": "I'll never forget you, {{pokemonName}}!",
|
|
||||||
"untilWeMeetAgain": "Until we meet again, {{pokemonName}}!",
|
|
||||||
"sayonara": "Sayonara, {{pokemonName}}!",
|
|
||||||
"smellYaLater": "Smell ya later, {{pokemonName}}!",
|
|
||||||
} as const;
|
|
@ -1,10 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const pokeball: SimpleTranslationEntries = {
|
|
||||||
"pokeBall": "モンスターボール",
|
|
||||||
"greatBall": "スーパーボール",
|
|
||||||
"ultraBall": "ハイパーボール",
|
|
||||||
"rogueBall": "ローグボール",
|
|
||||||
"masterBall": "マスターボール",
|
|
||||||
"luxuryBall": "ゴージャスボール",
|
|
||||||
} as const;
|
|
@ -1,197 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const battlePokemonForm: SimpleTranslationEntries = {
|
|
||||||
"mega": "Mega {{pokemonName}}",
|
|
||||||
"mega-x": "Mega {{pokemonName}} X",
|
|
||||||
"mega-y": "Mega {{pokemonName}} Y",
|
|
||||||
"primal": "Primal {{pokemonName}}",
|
|
||||||
"gigantamax": "G-Max {{pokemonName}}",
|
|
||||||
"eternamax": "E-Max {{pokemonName}}",
|
|
||||||
|
|
||||||
"megaChange": "{{preName}} Mega Evolved\ninto {{pokemonName}}!",
|
|
||||||
"gigantamaxChange": "{{preName}} Gigantamaxed\ninto {{pokemonName}}!",
|
|
||||||
"eternamaxChange": "{{preName}} Eternamaxed\ninto {{pokemonName}}!",
|
|
||||||
"revertChange": "{{pokemonName}} reverted\nto its original form!",
|
|
||||||
"formChange": "{{preName}} changed form!",
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
export const pokemonForm: SimpleTranslationEntries = {
|
|
||||||
// Starters forms
|
|
||||||
// 1G
|
|
||||||
"pikachuCosplay": "Cosplay",
|
|
||||||
"pikachuCoolCosplay": "Cool Cosplay",
|
|
||||||
"pikachuBeautyCosplay": "Beauty Cosplay",
|
|
||||||
"pikachuCuteCosplay": "Cute Cosplay",
|
|
||||||
"pikachuSmartCosplay": "Smart Cosplay",
|
|
||||||
"pikachuToughCosplay": "Tough Cosplay",
|
|
||||||
"pikachuPartner": "Partner",
|
|
||||||
"eeveePartner": "Partner",
|
|
||||||
// 2G
|
|
||||||
"pichuSpiky": "Spiky",
|
|
||||||
"unownA": "A",
|
|
||||||
"unownB": "B",
|
|
||||||
"unownC": "C",
|
|
||||||
"unownD": "D",
|
|
||||||
"unownE": "E",
|
|
||||||
"unownF": "F",
|
|
||||||
"unownG": "G",
|
|
||||||
"unownH": "H",
|
|
||||||
"unownI": "I",
|
|
||||||
"unownJ": "J",
|
|
||||||
"unownK": "K",
|
|
||||||
"unownL": "L",
|
|
||||||
"unownM": "M",
|
|
||||||
"unownN": "N",
|
|
||||||
"unownO": "O",
|
|
||||||
"unownP": "P",
|
|
||||||
"unownQ": "Q",
|
|
||||||
"unownR": "R",
|
|
||||||
"unownS": "S",
|
|
||||||
"unownT": "T",
|
|
||||||
"unownU": "U",
|
|
||||||
"unownV": "V",
|
|
||||||
"unownW": "W",
|
|
||||||
"unownX": "X",
|
|
||||||
"unownY": "Y",
|
|
||||||
"unownZ": "Z",
|
|
||||||
"unownExclamation": "!",
|
|
||||||
"unownQuestion": "?",
|
|
||||||
// 3G
|
|
||||||
"castformSunny": "Sunny",
|
|
||||||
"castformRainy": "Rainy",
|
|
||||||
"castformSnowy": "Snowy",
|
|
||||||
"deoxysNormal": "Normal",
|
|
||||||
// 4G
|
|
||||||
"burmyPlant": "Plant",
|
|
||||||
"burmySandy": "Sandy",
|
|
||||||
"burmyTrash": "Trash",
|
|
||||||
"shellosEast": "East",
|
|
||||||
"shellosWest": "West",
|
|
||||||
"rotomHeat": "Heat",
|
|
||||||
"rotomWash": "Wash",
|
|
||||||
"rotomFrost": "Frost",
|
|
||||||
"rotomFan": "Fan",
|
|
||||||
"rotomMow": "Mow",
|
|
||||||
"giratinaAltered": "Altered",
|
|
||||||
"shayminLand": "Land",
|
|
||||||
// 5G
|
|
||||||
"basculinRedStriped": "Red Striped",
|
|
||||||
"basculinBlueStriped": "Blue Striped",
|
|
||||||
"basculinWhiteStriped": "White Striped",
|
|
||||||
"deerlingSpring": "Spring",
|
|
||||||
"deerlingSummer": "Summer",
|
|
||||||
"deerlingAutumn": "Autumn",
|
|
||||||
"deerlingWinter": "Winter",
|
|
||||||
"tornadusIncarnate": "Incarnate",
|
|
||||||
"thundurusIncarnate": "Incarnate",
|
|
||||||
"landorusIncarnate": "Incarnate",
|
|
||||||
"keldeoOrdinary": "Ordinary",
|
|
||||||
"meloettaAria": "Aria",
|
|
||||||
// 6G
|
|
||||||
"froakieBattleBond": "Battle Bond",
|
|
||||||
"scatterbugMeadow": "Meadow",
|
|
||||||
"scatterbugIcySnow": "Icy Snow",
|
|
||||||
"scatterbugPolar": "Polar",
|
|
||||||
"scatterbugTundra": "Tundra",
|
|
||||||
"scatterbugContinental": "Continental",
|
|
||||||
"scatterbugGarden": "Garden",
|
|
||||||
"scatterbugElegant": "Elegant",
|
|
||||||
"scatterbugModern": "Modern",
|
|
||||||
"scatterbugMarine": "Marine",
|
|
||||||
"scatterbugArchipelago": "Archipelago",
|
|
||||||
"scatterbugHighPlains": "High Plains",
|
|
||||||
"scatterbugSandstorm": "Sandstorm",
|
|
||||||
"scatterbugRiver": "River",
|
|
||||||
"scatterbugMonsoon": "Monsoon",
|
|
||||||
"scatterbugSavanna": "Savanna",
|
|
||||||
"scatterbugSun": "Sun",
|
|
||||||
"scatterbugOcean": "Ocean",
|
|
||||||
"scatterbugJungle": "Jungle",
|
|
||||||
"scatterbugFancy": "Fancy",
|
|
||||||
"scatterbugPokeBall": "Poké Ball",
|
|
||||||
"flabebeRed": "Red",
|
|
||||||
"flabebeYellow": "Yellow",
|
|
||||||
"flabebeOrange": "Orange",
|
|
||||||
"flabebeBlue": "Blue",
|
|
||||||
"flabebeWhite": "White",
|
|
||||||
"furfrouHeart": "Heart",
|
|
||||||
"furfrouStar": "Star",
|
|
||||||
"furfrouDiamond": "Diamond",
|
|
||||||
"furfrouDebutante": "Debutante",
|
|
||||||
"furfrouMatron": "Matron",
|
|
||||||
"furfrouDandy": "Dandy",
|
|
||||||
"furfrouLaReine": "La Reine",
|
|
||||||
"furfrouKabuki": "Kabuki",
|
|
||||||
"furfrouPharaoh": "Pharaoh",
|
|
||||||
"pumpkabooSmall": "Small",
|
|
||||||
"pumpkabooLarge": "Large",
|
|
||||||
"pumpkabooSuper": "Super",
|
|
||||||
"xerneasNeutral": "Neutral",
|
|
||||||
"xerneasActive": "Active",
|
|
||||||
"zygarde50": "50% Forme",
|
|
||||||
"zygarde10": "10% Forme",
|
|
||||||
"zygarde50Pc": "50% Forme Power Construct",
|
|
||||||
"zygarde10Pc": "10% Forme Power Construct",
|
|
||||||
"zygardeComplete": "Complete Forme",
|
|
||||||
// 7G
|
|
||||||
"oricorioBaile": "Baile",
|
|
||||||
"oricorioPompom": "Pom-Pom",
|
|
||||||
"oricorioPau": "Pau",
|
|
||||||
"oricorioSensu": "Sensu",
|
|
||||||
"rockruffOwnTempo": "Own Tempo",
|
|
||||||
"miniorRedMeteor": "Red Meteor",
|
|
||||||
"miniorOrangeMeteor": "Orange Meteor",
|
|
||||||
"miniorYellowMeteor": "Yellow Meteor",
|
|
||||||
"miniorGreenMeteor": "Green Meteor",
|
|
||||||
"miniorBlueMeteor": "Blue Meteor",
|
|
||||||
"miniorIndigoMeteor": "Indigo Meteor",
|
|
||||||
"miniorVioletMeteor": "Violet Meteor",
|
|
||||||
"miniorRed": "Red",
|
|
||||||
"miniorOrange": "Orange",
|
|
||||||
"miniorYellow": "Yellow",
|
|
||||||
"miniorGreen": "Green",
|
|
||||||
"miniorBlue": "Blue",
|
|
||||||
"miniorIndigo": "Indigo",
|
|
||||||
"miniorViolet": "Violet",
|
|
||||||
"mimikyuDisguised": "Disguised",
|
|
||||||
"mimikyuBusted": "Busted",
|
|
||||||
"magearnaOriginal": "Original",
|
|
||||||
"marshadowZenith": "Zenith",
|
|
||||||
// 8G
|
|
||||||
"sinisteaPhony": "Phony",
|
|
||||||
"sinisteaAntique": "Antique",
|
|
||||||
"eiscueNoIce": "No Ice",
|
|
||||||
"indeedeeMale": "Male",
|
|
||||||
"indeedeeFemale": "Female",
|
|
||||||
"morpekoFullBelly": "Full Belly",
|
|
||||||
"zacianHeroOfManyBattles": "Hero Of Many Battles",
|
|
||||||
"zamazentaHeroOfManyBattles": "Hero Of Many Battles",
|
|
||||||
"zarudeDada": "Dada",
|
|
||||||
"enamorusIncarnate": "Incarnate",
|
|
||||||
// 9G
|
|
||||||
"squawkabillyGreenPlumage": "Green Plumage",
|
|
||||||
"squawkabillyBluePlumage": "Blue Plumage",
|
|
||||||
"squawkabillyYellowPlumage": "Yellow Plumage",
|
|
||||||
"squawkabillyWhitePlumage": "White Plumage",
|
|
||||||
"tatsugiriCurly": "Curly",
|
|
||||||
"tatsugiriDroopy": "Droopy",
|
|
||||||
"tatsugiriStretchy": "Stretchy",
|
|
||||||
"gimmighoulChest": "Chest",
|
|
||||||
"gimmighoulRoaming": "Roaming",
|
|
||||||
"koraidonApexBuild": "Apex Build",
|
|
||||||
"koraidonLimitedBuild":"Limited Build",
|
|
||||||
"koraidonSprintingBuild":"Sprinting Build",
|
|
||||||
"koraidonSwimmingBuild":"Swimming Build",
|
|
||||||
"koraidonGlidingBuild":"Gliding Build",
|
|
||||||
"miraidonUltimateMode":"Ultimate Mode",
|
|
||||||
"miraidonLowPowerMode":"Low Power Mode",
|
|
||||||
"miraidonDriveMode":"Drive Mode",
|
|
||||||
"miraidonAquaticMode":"Aquatic Mode",
|
|
||||||
"miraidonGlideMode":"Glide Mode",
|
|
||||||
"poltchageistCounterfeit": "Counterfeit",
|
|
||||||
"poltchageistArtisan": "Artisan",
|
|
||||||
"paldeaTaurosCombat": "Combat",
|
|
||||||
"paldeaTaurosBlaze": "Blaze",
|
|
||||||
"paldeaTaurosAqua": "Aqua",
|
|
||||||
|
|
||||||
} as const;
|
|
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const pokemonInfoContainer: SimpleTranslationEntries = {
|
|
||||||
"moveset": "わざ",
|
|
||||||
"gender": "せいべつ:",
|
|
||||||
"ability": "とくせい:",
|
|
||||||
"nature": "せいかく:",
|
|
||||||
"form": "すがた:"
|
|
||||||
} as const;
|
|
@ -1,43 +0,0 @@
|
|||||||
import { PokemonInfoTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const pokemonInfo: PokemonInfoTranslationEntries = {
|
|
||||||
Stat: {
|
|
||||||
"HP": "HP",
|
|
||||||
"HPshortened": "HP",
|
|
||||||
"ATK": "こうげき",
|
|
||||||
"ATKshortened": "こうげき",
|
|
||||||
"DEF": "ぼうぎょ",
|
|
||||||
"DEFshortened": "ぼうぎょ",
|
|
||||||
"SPATK": "とくこう",
|
|
||||||
"SPATKshortened": "とくこう",
|
|
||||||
"SPDEF": "とくぼう",
|
|
||||||
"SPDEFshortened": "とくぼう",
|
|
||||||
"SPD": "すばやさ",
|
|
||||||
"SPDshortened": "すばやさ",
|
|
||||||
"ACC": "めいちゅう",
|
|
||||||
"EVA": "かいひ"
|
|
||||||
},
|
|
||||||
|
|
||||||
Type: {
|
|
||||||
"UNKNOWN": "Unknown",
|
|
||||||
"NORMAL": "ノーマル",
|
|
||||||
"FIGHTING": "かくとう",
|
|
||||||
"FLYING": "ひこう",
|
|
||||||
"POISON": "どく",
|
|
||||||
"GROUND": "じめん",
|
|
||||||
"ROCK": "いわ",
|
|
||||||
"BUG": "むし",
|
|
||||||
"GHOST": "ゴースト",
|
|
||||||
"STEEL": "はがね",
|
|
||||||
"FIRE": "ほのお",
|
|
||||||
"WATER": "みず",
|
|
||||||
"GRASS": "くさ",
|
|
||||||
"ELECTRIC": "でんき",
|
|
||||||
"PSYCHIC": "エスパー",
|
|
||||||
"ICE": "こおり",
|
|
||||||
"DRAGON": "ドラゴン",
|
|
||||||
"DARK": "あく",
|
|
||||||
"FAIRY": "フェアリー",
|
|
||||||
"STELLAR": "ステラ",
|
|
||||||
},
|
|
||||||
} as const;
|
|
@ -1,20 +0,0 @@
|
|||||||
import { TranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const pokemonSummary: TranslationEntries = {
|
|
||||||
"pokemonInfo": "Pokémon Info",
|
|
||||||
"status": "Status",
|
|
||||||
"powerAccuracyCategory": "Power\nAccuracy\nCategory",
|
|
||||||
"type": "Type",
|
|
||||||
"unknownTrainer": "Unknown",
|
|
||||||
"ot": "OT",
|
|
||||||
"nature": "nature",
|
|
||||||
"expPoints": "Exp. Points",
|
|
||||||
"nextLv": "Next Lv.",
|
|
||||||
"cancel": "Cancel",
|
|
||||||
|
|
||||||
"memoString": "{{natureFragment}} nature,\n{{metFragment}}",
|
|
||||||
"metFragment": {
|
|
||||||
"normal": "met at Lv{{level}},\n{{biome}}.",
|
|
||||||
"apparently": "apparently met at Lv{{level}},\n{{biome}}.",
|
|
||||||
},
|
|
||||||
} as const;
|
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const saveSlotSelectUiHandler: SimpleTranslationEntries = {
|
|
||||||
"overwriteData": "せんたくしたスロットにデータをうわがきしますか?",
|
|
||||||
"loading": "ローディング...",
|
|
||||||
"wave": "Wave",
|
|
||||||
"lv": "Lv",
|
|
||||||
"empty": "なし",
|
|
||||||
} as const;
|
|
@ -1,100 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales.js";
|
|
||||||
|
|
||||||
export const settings: SimpleTranslationEntries = {
|
|
||||||
"boy": "男の子",
|
|
||||||
"girl": "女の子",
|
|
||||||
"general": "全般",
|
|
||||||
"display": "ディスプレイ",
|
|
||||||
"audio": "音声",
|
|
||||||
"gamepad": "コントローラー",
|
|
||||||
"keyboard": "キーボード",
|
|
||||||
"gameSpeed": "ゲームスピード",
|
|
||||||
"hpBarSpeed": "HPバーの増減スピード",
|
|
||||||
"expGainsSpeed": "EXPバーの増加スピード",
|
|
||||||
"expPartyDisplay": "パーティの経験値取得表示",
|
|
||||||
"skipSeenDialogues": "Skip Seen Dialogues",
|
|
||||||
"battleStyle": "試合のルール",
|
|
||||||
"enableRetries": "リトライを有効にする",
|
|
||||||
"tutorials": "チュートリアル",
|
|
||||||
"touchControls": "タッチ操作",
|
|
||||||
"vibrations": "振動",
|
|
||||||
"normal": "普通",
|
|
||||||
"fast": "早い",
|
|
||||||
"faster": "とても早い",
|
|
||||||
"skip": "スキップ",
|
|
||||||
"levelUpNotifications": "レベルアップ時のみ",
|
|
||||||
"on": "オン",
|
|
||||||
"off": "オフ",
|
|
||||||
"switch": "入れ替え",
|
|
||||||
"set": "勝ち抜き",
|
|
||||||
"auto": "自動",
|
|
||||||
"disabled": "無効",
|
|
||||||
"language": "言語",
|
|
||||||
"change": "変更",
|
|
||||||
"uiTheme": "UIテーマ",
|
|
||||||
"default": "デフォルト",
|
|
||||||
"legacy": "レガシー",
|
|
||||||
"windowType": "ウィンドウタイプ",
|
|
||||||
"moneyFormat": "お金の表示形式",
|
|
||||||
"damageNumbers": "ダメージ表示",
|
|
||||||
"simple": "シンプル",
|
|
||||||
"fancy": "Fancy",
|
|
||||||
"abbreviated": "省略",
|
|
||||||
"moveAnimations": "戦闘アニメ",
|
|
||||||
"showStatsOnLevelUp": "レベルアップ時のステータス表示",
|
|
||||||
"candyUpgradeNotification": "Candy Upgrade Notification",
|
|
||||||
"passivesOnly": "パッシブのみ",
|
|
||||||
"candyUpgradeDisplay": "Candy Upgrade Display",
|
|
||||||
"icon": "アイコン",
|
|
||||||
"animation": "アニメーション",
|
|
||||||
"moveInfo": "技の情報表示",
|
|
||||||
"showMovesetFlyout": "Show Moveset Flyout",
|
|
||||||
"showArenaFlyout": "Show Arena Flyout",
|
|
||||||
"showTimeOfDayWidget": "Show Time of Day Widget",
|
|
||||||
"timeOfDayAnimation": "Time of Day Animation",
|
|
||||||
"bounce": "Bounce",
|
|
||||||
"timeOfDay_back": "Back",
|
|
||||||
"spriteSet": "Sprite Set",
|
|
||||||
"consistent": "Consistent",
|
|
||||||
"mixedAnimated": "Mixed Animated",
|
|
||||||
"fusionPaletteSwaps": "Fusion Palette Swaps",
|
|
||||||
"playerGender": "プレイヤーの性別",
|
|
||||||
"typeHints": "相性のヒント",
|
|
||||||
"masterVolume": "マスターボリューム",
|
|
||||||
"bgmVolume": "BGMのボリューム",
|
|
||||||
"seVolume": "SEのボリューム",
|
|
||||||
"musicPreference": "Music Preference",
|
|
||||||
"mixed": "Mixed",
|
|
||||||
"gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button",
|
|
||||||
"delete": "Delete",
|
|
||||||
"keyboardPleasePress": "Please Press a Key on Your Keyboard",
|
|
||||||
"reset": "リセット",
|
|
||||||
"requireReload": "再読み込みが必要",
|
|
||||||
"action": "決定",
|
|
||||||
"back": "戻る",
|
|
||||||
"pressToBind": "Press to Bind",
|
|
||||||
"pressButton": "Press a Button...",
|
|
||||||
"buttonUp": "上",
|
|
||||||
"buttonDown": "下",
|
|
||||||
"buttonLeft": "左",
|
|
||||||
"buttonRight": "右",
|
|
||||||
"buttonAction": "決定",
|
|
||||||
"buttonMenu": "メニュー",
|
|
||||||
"buttonSubmit": "Submit",
|
|
||||||
"buttonCancel": "キャンセル",
|
|
||||||
"buttonStats": "Stats",
|
|
||||||
"buttonCycleForm": "Cycle Form",
|
|
||||||
"buttonCycleShiny": "Cycle Shiny",
|
|
||||||
"buttonCycleGender": "Cycle Gender",
|
|
||||||
"buttonCycleAbility": "Cycle Ability",
|
|
||||||
"buttonCycleNature": "Cycle Nature",
|
|
||||||
"buttonCycleVariant": "Cycle Variant",
|
|
||||||
"buttonSpeedUp": "Speed Up",
|
|
||||||
"buttonSlowDown": "Slow Down",
|
|
||||||
"alt": " (代替)",
|
|
||||||
"mute": "ミュート",
|
|
||||||
"controller": "コントローラー",
|
|
||||||
"gamepadSupport": "コントローラーサポート",
|
|
||||||
"showBgmBar": "Show Music Names",
|
|
||||||
"shopOverlayOpacity": "Shop Overlay Opacity",
|
|
||||||
} as const;
|
|
@ -1,38 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const splashMessages: SimpleTranslationEntries = {
|
|
||||||
"battlesWon": "Battles Won!",
|
|
||||||
"joinTheDiscord": "Join the Discord!",
|
|
||||||
"infiniteLevels": "Infinite Levels!",
|
|
||||||
"everythingStacks": "Everything Stacks!",
|
|
||||||
"optionalSaveScumming": "Optional Save Scumming!",
|
|
||||||
"biomes": "35 Biomes!",
|
|
||||||
"openSource": "Open Source!",
|
|
||||||
"playWithSpeed": "Play with 5x Speed!",
|
|
||||||
"liveBugTesting": "Live Bug Testing!",
|
|
||||||
"heavyInfluence": "Heavy RoR2 Influence!",
|
|
||||||
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
|
||||||
"nowWithMoreSalt": "Now with 33% More Salt!",
|
|
||||||
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
|
||||||
"brokenEggMoves": "Broken Egg Moves!",
|
|
||||||
"magnificent": "Magnificent!",
|
|
||||||
"mubstitute": "Mubstitute!",
|
|
||||||
"thatsCrazy": "That's Crazy!",
|
|
||||||
"oranceJuice": "Orance Juice!",
|
|
||||||
"questionableBalancing": "Questionable Balancing!",
|
|
||||||
"coolShaders": "Cool Shaders!",
|
|
||||||
"aiFree": "AI-Free!",
|
|
||||||
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
|
||||||
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
|
||||||
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
|
||||||
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
|
||||||
"achievementPointsDontDoAnything": "Achievement Points Don't Do Anything!",
|
|
||||||
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
|
||||||
"dontTalkAboutTheManaphyEggIncident": "Don't Talk About the Manaphy Egg Incident!",
|
|
||||||
"alsoTryPokengine": "Also Try Pokéngine!",
|
|
||||||
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
|
||||||
"alsoTryRadicalRed": "Also Try Radical Red!",
|
|
||||||
"eeveeExpo": "Eevee Expo!",
|
|
||||||
"ynoproject": "YNOproject!",
|
|
||||||
"breedersInSpace": "Breeders in space!",
|
|
||||||
} as const;
|
|
@ -1,49 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 starterSelectUiHandler: SimpleTranslationEntries = {
|
|
||||||
"confirmStartTeam": "この じょうけんで チャレンジを しんこうしますか?",
|
|
||||||
"confirmExit": "しゅうりょう しますか?",
|
|
||||||
"invalidParty": "This is not a valid starting party!",
|
|
||||||
"gen1": "1せだい",
|
|
||||||
"gen2": "2せだい",
|
|
||||||
"gen3": "3せだい",
|
|
||||||
"gen4": "4せだい",
|
|
||||||
"gen5": "5せだい",
|
|
||||||
"gen6": "6せだい",
|
|
||||||
"gen7": "7せだい",
|
|
||||||
"gen8": "8せだい",
|
|
||||||
"gen9": "9せだい",
|
|
||||||
"growthRate": "EXPタイプ:",
|
|
||||||
"ability": "とくせい:",
|
|
||||||
"passive": "パッシブ:",
|
|
||||||
"nature": "せいかく:",
|
|
||||||
"eggMoves": "タマゴわざ",
|
|
||||||
"start": "始める",
|
|
||||||
"addToParty": "えらぶ",
|
|
||||||
"toggleIVs": "個体値を ひょうじ",
|
|
||||||
"manageMoves": "わざを ならびかえ",
|
|
||||||
"manageNature": "せいかくを ならびかえ",
|
|
||||||
"useCandies": "アメを つかう",
|
|
||||||
"selectNature": "せいかくをえらんでください",
|
|
||||||
"selectMoveSwapOut": "交換する技を選択してください",
|
|
||||||
"selectMoveSwapWith": "交換先の技を選択してください",
|
|
||||||
"unlockPassive": "パッシブを かいほうする",
|
|
||||||
"reduceCost": "ポケモンの 必要ポイントを へらす",
|
|
||||||
"sameSpeciesEgg": "Buy an Egg",
|
|
||||||
"cycleShiny": ": 色違い変更",
|
|
||||||
"cycleForm": ": フォルム変更",
|
|
||||||
"cycleGender": ": 性別変更",
|
|
||||||
"cycleAbility": ": 特性変更",
|
|
||||||
"cycleNature": ": 性格変更",
|
|
||||||
"cycleVariant": ": 色変更",
|
|
||||||
"enablePassive": "パッシブ ゆうこう",
|
|
||||||
"disablePassive": "パッシブ むこう",
|
|
||||||
"locked": "Locked",
|
|
||||||
"disabled": "Disabled",
|
|
||||||
"uncaught": "Uncaught"
|
|
||||||
};
|
|
@ -1,67 +0,0 @@
|
|||||||
import { StatusEffectTranslationEntries } from "#app/interfaces/locales.js";
|
|
||||||
|
|
||||||
export const statusEffect: StatusEffectTranslationEntries = {
|
|
||||||
none: {
|
|
||||||
name: "None",
|
|
||||||
description: "",
|
|
||||||
obtain: "",
|
|
||||||
obtainSource: "",
|
|
||||||
activation: "",
|
|
||||||
overlap: "",
|
|
||||||
heal: ""
|
|
||||||
},
|
|
||||||
poison: {
|
|
||||||
name: "Poison",
|
|
||||||
description: "poisoning",
|
|
||||||
obtain: "{{pokemonNameWithAffix}}\nwas poisoned!",
|
|
||||||
obtainSource: "{{pokemonNameWithAffix}}\nwas poisoned by the {{sourceText}}!",
|
|
||||||
activation: "{{pokemonNameWithAffix}} is hurt\nby poison!",
|
|
||||||
overlap: "{{pokemonNameWithAffix}} is\nalready poisoned!",
|
|
||||||
heal: "{{pokemonNameWithAffix}} was\ncured of its poison!"
|
|
||||||
},
|
|
||||||
toxic: {
|
|
||||||
name: "Toxic",
|
|
||||||
description: "poisoning",
|
|
||||||
obtain: "{{pokemonNameWithAffix}}\nwas badly poisoned!",
|
|
||||||
obtainSource: "{{pokemonNameWithAffix}}\nwas badly poisoned by the {{sourceText}}!",
|
|
||||||
activation: "{{pokemonNameWithAffix}} is hurt\nby poison!",
|
|
||||||
overlap: "{{pokemonNameWithAffix}} is\nalready poisoned!",
|
|
||||||
heal: "{{pokemonNameWithAffix}} was\ncured of its poison!"
|
|
||||||
},
|
|
||||||
paralysis: {
|
|
||||||
name: "Paralysis",
|
|
||||||
description: "paralysis",
|
|
||||||
obtain: "{{pokemonNameWithAffix}} was paralyzed,\nIt may be unable to move!",
|
|
||||||
obtainSource: "{{pokemonNameWithAffix}} was paralyzed by the {{sourceText}}!\nIt may be unable to move!",
|
|
||||||
activation: "{{pokemonNameWithAffix}} is paralyzed!\nIt can't move!",
|
|
||||||
overlap: "{{pokemonNameWithAffix}} is\nalready paralyzed!",
|
|
||||||
heal: "{{pokemonNameWithAffix}} was\nhealed of paralysis!"
|
|
||||||
},
|
|
||||||
sleep: {
|
|
||||||
name: "Sleep",
|
|
||||||
description: "sleep",
|
|
||||||
obtain: "{{pokemonNameWithAffix}}\nfell asleep!",
|
|
||||||
obtainSource: "{{pokemonNameWithAffix}}\nfell asleep from the {{sourceText}}!",
|
|
||||||
activation: "{{pokemonNameWithAffix}} is fast asleep.",
|
|
||||||
overlap: "{{pokemonNameWithAffix}} is\nalready asleep!",
|
|
||||||
heal: "{{pokemonNameWithAffix}} woke up!"
|
|
||||||
},
|
|
||||||
freeze: {
|
|
||||||
name: "Freeze",
|
|
||||||
description: "freezing",
|
|
||||||
obtain: "{{pokemonNameWithAffix}}\nwas frozen solid!",
|
|
||||||
obtainSource: "{{pokemonNameWithAffix}}\nwas frozen solid by the {{sourceText}}!",
|
|
||||||
activation: "{{pokemonNameWithAffix}} is\nfrozen solid!",
|
|
||||||
overlap: "{{pokemonNameWithAffix}} is\nalready frozen!",
|
|
||||||
heal: "{{pokemonNameWithAffix}} was\ndefrosted!"
|
|
||||||
},
|
|
||||||
burn: {
|
|
||||||
name: "Burn",
|
|
||||||
description: "burn",
|
|
||||||
obtain: "{{pokemonNameWithAffix}}\nwas burned!",
|
|
||||||
obtainSource: "{{pokemonNameWithAffix}}\nwas burned by the {{sourceText}}!",
|
|
||||||
activation: "{{pokemonNameWithAffix}} is hurt\nby its burn!",
|
|
||||||
overlap: "{{pokemonNameWithAffix}} is\nalready burned!",
|
|
||||||
heal: "{{pokemonNameWithAffix}} was\nhealed of its burn!"
|
|
||||||
},
|
|
||||||
} as const;
|
|
@ -1,302 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
|
||||||
export const titles: SimpleTranslationEntries = {
|
|
||||||
"elite_four": "Elite Four",
|
|
||||||
"elite_four_female": "Elite Four",
|
|
||||||
"gym_leader": "Gym Leader",
|
|
||||||
"gym_leader_female": "Gym Leader",
|
|
||||||
"gym_leader_double": "Gym Leader Duo",
|
|
||||||
"champion": "Champion",
|
|
||||||
"champion_female": "Champion",
|
|
||||||
"champion_double": "Champion Duo",
|
|
||||||
"rival": "Rival",
|
|
||||||
"professor": "Professor",
|
|
||||||
"frontier_brain": "Frontier Brain",
|
|
||||||
"rocket_boss": "Team Rocket Boss",
|
|
||||||
"magma_boss": "Team Magma Boss",
|
|
||||||
"aqua_boss": "Team Aqua Boss",
|
|
||||||
"galactic_boss": "Team Galactic Boss",
|
|
||||||
"plasma_boss": "Team Plasma Boss",
|
|
||||||
"flare_boss": "Team Flare Boss",
|
|
||||||
// Maybe if we add the evil teams we can add "Team Rocket" and "Team Aqua" etc. here as well as "Team Rocket Boss" and "Team Aqua Admin" etc.
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
// Titles of trainers like "Youngster" or "Lass"
|
|
||||||
export const trainerClasses: SimpleTranslationEntries = {
|
|
||||||
"ace_trainer": "Ace Trainer",
|
|
||||||
"ace_trainer_female": "Ace Trainer",
|
|
||||||
"ace_duo": "Ace Duo",
|
|
||||||
"artist": "Artist",
|
|
||||||
"artist_female": "Artist",
|
|
||||||
"backers": "Backers",
|
|
||||||
"backpacker": "Backpacker",
|
|
||||||
"backpacker_female": "Backpacker",
|
|
||||||
"backpackers": "Backpackers",
|
|
||||||
"baker": "Baker",
|
|
||||||
"battle_girl": "Battle Girl",
|
|
||||||
"beauty": "Beauty",
|
|
||||||
"beginners": "Beginners",
|
|
||||||
"biker": "Biker",
|
|
||||||
"black_belt": "Black Belt",
|
|
||||||
"breeder": "Breeder",
|
|
||||||
"breeder_female": "Breeder",
|
|
||||||
"breeders": "Breeders",
|
|
||||||
"clerk": "Clerk",
|
|
||||||
"clerk_female": "Clerk",
|
|
||||||
"colleagues": "Colleagues",
|
|
||||||
"crush_kin": "Crush Kin",
|
|
||||||
"cyclist": "Cyclist",
|
|
||||||
"cyclist_female": "Cyclist",
|
|
||||||
"cyclists": "Cyclists",
|
|
||||||
"dancer": "Dancer",
|
|
||||||
"dancer_female": "Dancer",
|
|
||||||
"depot_agent": "Depot Agent",
|
|
||||||
"doctor": "Doctor",
|
|
||||||
"doctor_female": "Doctor",
|
|
||||||
"firebreather": "Firebreather",
|
|
||||||
"fisherman": "Fisherman",
|
|
||||||
"fisherman_female": "Fisherman",
|
|
||||||
"gentleman": "Gentleman",
|
|
||||||
"guitarist": "Guitarist",
|
|
||||||
"guitarist_female": "Guitarist",
|
|
||||||
"harlequin": "Harlequin",
|
|
||||||
"hiker": "Hiker",
|
|
||||||
"hooligans": "Hooligans",
|
|
||||||
"hoopster": "Hoopster",
|
|
||||||
"infielder": "Infielder",
|
|
||||||
"janitor": "Janitor",
|
|
||||||
"lady": "Lady",
|
|
||||||
"lass": "Lass",
|
|
||||||
"linebacker": "Linebacker",
|
|
||||||
"maid": "Maid",
|
|
||||||
"madame": "Madame",
|
|
||||||
"medical_team": "Medical Team",
|
|
||||||
"musician": "Musician",
|
|
||||||
"hex_maniac": "Hex Maniac",
|
|
||||||
"nurse": "Nurse",
|
|
||||||
"nursery_aide": "Nursery Aide",
|
|
||||||
"officer": "Officer",
|
|
||||||
"parasol_lady": "Parasol Lady",
|
|
||||||
"pilot": "Pilot",
|
|
||||||
"pokéfan": "Poké Fan",
|
|
||||||
"pokéfan_female": "Poké Fan",
|
|
||||||
"pokéfan_family": "Poké Fan Family",
|
|
||||||
"preschooler": "Preschooler",
|
|
||||||
"preschooler_female": "Preschooler",
|
|
||||||
"preschoolers": "Preschoolers",
|
|
||||||
"psychic": "Psychic",
|
|
||||||
"psychic_female": "Psychic",
|
|
||||||
"psychics": "Psychics",
|
|
||||||
"pokémon_ranger": "Pokémon Ranger",
|
|
||||||
"pokémon_ranger_female": "Pokémon Ranger",
|
|
||||||
"pokémon_rangers": "Pokémon Ranger",
|
|
||||||
"ranger": "Ranger",
|
|
||||||
"restaurant_staff": "Restaurant Staff",
|
|
||||||
"rich": "Rich",
|
|
||||||
"rich_female": "Rich",
|
|
||||||
"rich_boy": "Rich Boy",
|
|
||||||
"rich_couple": "Rich Couple",
|
|
||||||
"rich_kid": "Rich Kid",
|
|
||||||
"rich_kid_female": "Rich Kid",
|
|
||||||
"rich_kids": "Rich Kids",
|
|
||||||
"roughneck": "Roughneck",
|
|
||||||
"sailor": "Sailor",
|
|
||||||
"scientist": "Scientist",
|
|
||||||
"scientist_female": "Scientist",
|
|
||||||
"scientists": "Scientists",
|
|
||||||
"smasher": "Smasher",
|
|
||||||
"snow_worker": "Snow Worker",
|
|
||||||
"snow_worker_female": "Snow Worker",
|
|
||||||
"striker": "Striker",
|
|
||||||
"school_kid": "School Kid",
|
|
||||||
"school_kid_female": "School Kid",
|
|
||||||
"school_kids": "School Kids",
|
|
||||||
"swimmer": "Swimmer",
|
|
||||||
"swimmer_female": "Swimmer",
|
|
||||||
"swimmers": "Swimmers",
|
|
||||||
"twins": "Twins",
|
|
||||||
"veteran": "Veteran",
|
|
||||||
"veteran_female": "Veteran",
|
|
||||||
"veteran_duo": "Veteran Duo",
|
|
||||||
"waiter": "Waiter",
|
|
||||||
"waitress": "Waitress",
|
|
||||||
"worker": "Worker",
|
|
||||||
"worker_female": "Worker",
|
|
||||||
"workers": "Workers",
|
|
||||||
"youngster": "Youngster",
|
|
||||||
"rocket_grunt": "Rocket Grunt",
|
|
||||||
"rocket_grunts": "Rocket Grunts",
|
|
||||||
"rocket_grunt_female": "Rocket Grunt",
|
|
||||||
"rocket_admin": "Rocket Admin",
|
|
||||||
"rocket_admin_female": "Rocket Admin",
|
|
||||||
"magma_grunt": "Magma Grunt",
|
|
||||||
"magma_grunt_female": "Magma Grunt",
|
|
||||||
"magma_grunts": "Magma Grunts",
|
|
||||||
"magma_admin": "Magma Admin",
|
|
||||||
"magma_admin_female": "Magma Admin",
|
|
||||||
"aqua_grunt": "Aqua Grunt",
|
|
||||||
"aqua_grunt_female": "Aqua Grunt",
|
|
||||||
"aqua_grunts": "Aqua Grunts",
|
|
||||||
"aqua_admin": "Aqua Admin",
|
|
||||||
"aqua_admin_female": "Aqua Admin",
|
|
||||||
"galactic_grunt": "Galactic Grunt",
|
|
||||||
"galactic_grunt_female": "Galactic Grunt",
|
|
||||||
"galactic_grunts": "Galactic Grunts",
|
|
||||||
"galactic_admin": "Galactic Admin",
|
|
||||||
"galactic_admin_female": "Galactic Admin",
|
|
||||||
"plasma_grunt": "Plasma Grunt",
|
|
||||||
"plasma_grunt_female": "Plasma Grunt",
|
|
||||||
"plasma_grunts": "Plasma Grunts",
|
|
||||||
"plasma_sage": "Plasma Sage",
|
|
||||||
"flare_grunt": "Flare Grunt",
|
|
||||||
"flare_grunt_female": "Flare Grunt",
|
|
||||||
"flare_grunts": "Flare Grunts",
|
|
||||||
"flare_admin": "Flare Admin",
|
|
||||||
"flare_admin_female": "Flare Admin",
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
// Names of special trainers like gym leaders, elite four, and the champion
|
|
||||||
export const trainerNames: SimpleTranslationEntries = {
|
|
||||||
"brock": "Brock",
|
|
||||||
"misty": "Misty",
|
|
||||||
"lt_surge": "Lt Surge",
|
|
||||||
"erika": "Erika",
|
|
||||||
"janine": "Janine",
|
|
||||||
"sabrina": "Sabrina",
|
|
||||||
"blaine": "Blaine",
|
|
||||||
"giovanni": "Giovanni",
|
|
||||||
"falkner": "Falkner",
|
|
||||||
"bugsy": "Bugsy",
|
|
||||||
"whitney": "Whitney",
|
|
||||||
"morty": "Morty",
|
|
||||||
"chuck": "Chuck",
|
|
||||||
"jasmine": "Jasmine",
|
|
||||||
"pryce": "Pryce",
|
|
||||||
"clair": "Clair",
|
|
||||||
"roxanne": "Roxanne",
|
|
||||||
"brawly": "Brawly",
|
|
||||||
"wattson": "Wattson",
|
|
||||||
"flannery": "Flannery",
|
|
||||||
"norman": "Norman",
|
|
||||||
"winona": "Winona",
|
|
||||||
"tate": "Tate",
|
|
||||||
"liza": "Liza",
|
|
||||||
"juan": "Juan",
|
|
||||||
"roark": "Roark",
|
|
||||||
"gardenia": "Gardenia",
|
|
||||||
"maylene": "Maylene",
|
|
||||||
"crasher_wake": "Crasher Wake",
|
|
||||||
"fantina": "Fantina",
|
|
||||||
"byron": "Byron",
|
|
||||||
"candice": "Candice",
|
|
||||||
"volkner": "Volkner",
|
|
||||||
"cilan": "Cilan",
|
|
||||||
"chili": "Chili",
|
|
||||||
"cress": "Cress",
|
|
||||||
"cheren": "Cheren",
|
|
||||||
"lenora": "Lenora",
|
|
||||||
"roxie": "Roxie",
|
|
||||||
"burgh": "Burgh",
|
|
||||||
"elesa": "Elesa",
|
|
||||||
"clay": "Clay",
|
|
||||||
"skyla": "Skyla",
|
|
||||||
"brycen": "Brycen",
|
|
||||||
"drayden": "Drayden",
|
|
||||||
"marlon": "Marlon",
|
|
||||||
"viola": "Viola",
|
|
||||||
"grant": "Grant",
|
|
||||||
"korrina": "Korrina",
|
|
||||||
"ramos": "Ramos",
|
|
||||||
"clemont": "Clemont",
|
|
||||||
"valerie": "Valerie",
|
|
||||||
"olympia": "Olympia",
|
|
||||||
"wulfric": "Wulfric",
|
|
||||||
"milo": "Milo",
|
|
||||||
"nessa": "Nessa",
|
|
||||||
"kabu": "Kabu",
|
|
||||||
"bea": "Bea",
|
|
||||||
"allister": "Allister",
|
|
||||||
"opal": "Opal",
|
|
||||||
"bede": "Bede",
|
|
||||||
"gordie": "Gordie",
|
|
||||||
"melony": "Melony",
|
|
||||||
"piers": "Piers",
|
|
||||||
"marnie": "Marnie",
|
|
||||||
"raihan": "Raihan",
|
|
||||||
"katy": "Katy",
|
|
||||||
"brassius": "Brassius",
|
|
||||||
"iono": "Iono",
|
|
||||||
"kofu": "Kofu",
|
|
||||||
"larry": "Larry",
|
|
||||||
"ryme": "Ryme",
|
|
||||||
"tulip": "Tulip",
|
|
||||||
"grusha": "Grusha",
|
|
||||||
"lorelei": "Lorelei",
|
|
||||||
"bruno": "Bruno",
|
|
||||||
"agatha": "Agatha",
|
|
||||||
"lance": "Lance",
|
|
||||||
"will": "Will",
|
|
||||||
"koga": "Koga",
|
|
||||||
"karen": "Karen",
|
|
||||||
"sidney": "Sidney",
|
|
||||||
"phoebe": "Phoebe",
|
|
||||||
"glacia": "Glacia",
|
|
||||||
"drake": "Drake",
|
|
||||||
"aaron": "Aaron",
|
|
||||||
"bertha": "Bertha",
|
|
||||||
"flint": "Flint",
|
|
||||||
"lucian": "Lucian",
|
|
||||||
"shauntal": "Shauntal",
|
|
||||||
"marshal": "Marshal",
|
|
||||||
"grimsley": "Grimsley",
|
|
||||||
"caitlin": "Caitlin",
|
|
||||||
"malva": "Malva",
|
|
||||||
"siebold": "Siebold",
|
|
||||||
"wikstrom": "Wikstrom",
|
|
||||||
"drasna": "Drasna",
|
|
||||||
"hala": "Hala",
|
|
||||||
"molayne": "Molayne",
|
|
||||||
"olivia": "Olivia",
|
|
||||||
"acerola": "Acerola",
|
|
||||||
"kahili": "Kahili",
|
|
||||||
"rika": "Rika",
|
|
||||||
"poppy": "Poppy",
|
|
||||||
"hassel": "Hassel",
|
|
||||||
"crispin": "Crispin",
|
|
||||||
"amarys": "Amarys",
|
|
||||||
"lacey": "Lacey",
|
|
||||||
"drayton": "Drayton",
|
|
||||||
"blue": "Blue",
|
|
||||||
"red": "Red",
|
|
||||||
"steven": "Steven",
|
|
||||||
"wallace": "Wallace",
|
|
||||||
"cynthia": "Cynthia",
|
|
||||||
"alder": "Alder",
|
|
||||||
"iris": "Iris",
|
|
||||||
"diantha": "Diantha",
|
|
||||||
"hau": "Hau",
|
|
||||||
"geeta": "Geeta",
|
|
||||||
"nemona": "Nemona",
|
|
||||||
"kieran": "Kieran",
|
|
||||||
"leon": "Leon",
|
|
||||||
"rival": "Finn",
|
|
||||||
"rival_female": "Ivy",
|
|
||||||
"maxie": "Maxie",
|
|
||||||
"archie": "Archie",
|
|
||||||
"cyrus": "Cyrus",
|
|
||||||
"ghetsis": "Ghetsis",
|
|
||||||
"lysandre": "Lysandre",
|
|
||||||
|
|
||||||
// Double Names
|
|
||||||
"blue_red_double": "Blue & Red",
|
|
||||||
"red_blue_double": "Red & Blue",
|
|
||||||
"tate_liza_double": "Tate & Liza",
|
|
||||||
"liza_tate_double": "Liza & Tate",
|
|
||||||
"steven_wallace_double": "Steven & Wallace",
|
|
||||||
"wallace_steven_double": "Wallace & Steven",
|
|
||||||
"alder_iris_double": "Alder & Iris",
|
|
||||||
"iris_alder_double": "Iris & Alder",
|
|
||||||
"marnie_piers_double": "Marnie & Piers",
|
|
||||||
"piers_marnie_double": "Piers & Marnie",
|
|
||||||
} as const;
|
|
@ -1,44 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const tutorial: SimpleTranslationEntries = {
|
|
||||||
intro: `PokéRogueへようこそ!ログライク要素が\n加わったバトル中心のポケモンファンゲームです。
|
|
||||||
$このゲームは収益を上げず、Pokémonおよび使用される\n著作権資産に対する所有権を主張しません。
|
|
||||||
$ゲームはまだ作業中ですが、完全にプレイすることができます。\nバグ報告はディスコードコミュニティをご利用ください。
|
|
||||||
$ゲームが遅い場合は、ブラウザ設定で「ハードウェア\nアクセラレーション」がオンになっていることを確認してください`,
|
|
||||||
|
|
||||||
accessMenu: "メニューにアクセスするには、入力待ちの間にMキーまたはEscを押してください。\nメニューには設定やさまざまな機能が含まれています。",
|
|
||||||
|
|
||||||
menu: `このメニューから設定にアクセスできます。
|
|
||||||
$設定ではゲームスピード、ウィンドウスタイル、\nおよびその他のオプションを変更できます。
|
|
||||||
$ここにはさまざまな他の機能もありますので、\nぜひ確認してみてください!`,
|
|
||||||
|
|
||||||
starterSelect: `この画面でZキーやSpaceを押してポケモンを選択できます。\n選んだポケモンは自分の最初のパーティーになります。
|
|
||||||
$最大6匹のパーティーで始めることができますが\nポケモンによってポイントがあり、合計10を超えてはなりません。
|
|
||||||
$捕まえたりふかさせたりすることで\n選択できる性別、特性、フォルムなどの幅を広げることができます。
|
|
||||||
$個体値も徐々に累積して高くなるので、\n同じポケモンをたくさん捕まえてみてください!`,
|
|
||||||
|
|
||||||
pokerus: `毎日ランダムでスターターの\n3種類に紫色の枠が表示されます。
|
|
||||||
$登録されたスターターの中にあれば、\nパーティに追加してつよさを確認してみましょう!`,
|
|
||||||
|
|
||||||
statChange: `ポケモンは交代しない限り、\n次のバトルでも能力変化が維持されます。
|
|
||||||
$その代わりに、トレーナーバトルや新しいバイオームに\n入る直前に自動的にリセットされます。
|
|
||||||
$CキーまたはShiftキーを押し続けると、\n現在のポケモンの能力変化を確認できます。
|
|
||||||
$Vキーを押すと、\n相手が使用した技も確認できます。
|
|
||||||
$ただし、今のバトルで相手ポケモンがすでに\n使った技のみが表示されます。`,
|
|
||||||
|
|
||||||
selectItem: `バトルが終わるたびに、\nランダムなアイテム3つの中から1つを選んで獲得します。
|
|
||||||
$種類は消耗品、ポケモンの持ち物、\n永続的なパッシブアイテムなど様々です。
|
|
||||||
$ほとんどの消耗しない道具は\n効果が累積されます。
|
|
||||||
$進化用など一部のアイテムは\n使用できる場合にのみ登場します。
|
|
||||||
$持ち物を渡す機能を使用して\nポケモン同士で道具を持たせることもできます。
|
|
||||||
$持ち物があれば、アイテム選択画面の\n右下に渡す機能が表示されます。
|
|
||||||
$お金で消耗品を購入することもでき、\nウェーブが進むにつれて購入可能な種類が増えます。
|
|
||||||
$アイテムを選択すると次のウェーブに進むため、\nまず消耗品の購入を行ってください。`,
|
|
||||||
|
|
||||||
eggGacha: `この画面でポケモンのたまごクーポンを\nガチャができます。
|
|
||||||
$卵は戦闘を繰り返すうちにふかします。\n珍しいほどもっと長くかかります。
|
|
||||||
$ふかさせたポケモンはパーティーに追加されず、\nスターティングに登録されます。
|
|
||||||
$卵からふかしたポケモンは一般的に\n野生で捕まえたポケモンよりも高い個体値を持ちます。
|
|
||||||
$一部のポケモンは卵からしか手に入りません。
|
|
||||||
$各ガチャマシンがそれぞれ異なるボーナスを持っているため、\n好きな方を使ってみてください!,`,
|
|
||||||
} as const;
|
|
@ -1,11 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
export const voucher: SimpleTranslationEntries = {
|
|
||||||
"vouchers": "クーポン",
|
|
||||||
"eggVoucher": "たまごクーポン",
|
|
||||||
"eggVoucherPlus": "たまごクーポンプラス",
|
|
||||||
"eggVoucherPremium": "たまごクーポンプレミアム",
|
|
||||||
"eggVoucherGold": "たまごクーポンゴールド",
|
|
||||||
"locked": "Locked",
|
|
||||||
"defeatTrainer": "Defeat {{trainerName}}"
|
|
||||||
} as const;
|
|
@ -1,66 +0,0 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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": "{{pokemonNameWithAffix}} is buffeted\nby the sandstorm!",
|
|
||||||
|
|
||||||
"hailStartMessage": "It started to hail!",
|
|
||||||
"hailLapseMessage": "Hail continues to fall.",
|
|
||||||
"hailClearMessage": "The hail stopped.",
|
|
||||||
"hailDamageMessage": "{{pokemonNameWithAffix}} 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.",
|
|
||||||
"strongWindsEffectMessage": "The mysterious air current weakened the attack!",
|
|
||||||
"strongWindsClearMessage": "The heavy wind stopped."
|
|
||||||
};
|
|
||||||
|
|
||||||
export const terrain: SimpleTranslationEntries = {
|
|
||||||
"misty": "Misty",
|
|
||||||
"mistyStartMessage": "Mist swirled around the battlefield!",
|
|
||||||
"mistyClearMessage": "The mist disappeared from the battlefield.",
|
|
||||||
"mistyBlockMessage": "{{pokemonNameWithAffix}} surrounds itself with a protective mist!",
|
|
||||||
|
|
||||||
"electric": "Electric",
|
|
||||||
"electricStartMessage": "An electric current ran across the battlefield!",
|
|
||||||
"electricClearMessage": "The electricity disappeared from the battlefield.",
|
|
||||||
|
|
||||||
"grassy": "Grassy",
|
|
||||||
"grassyStartMessage": "Grass grew to cover the battlefield!",
|
|
||||||
"grassyClearMessage": "The grass disappeared from the battlefield.",
|
|
||||||
|
|
||||||
"psychic": "Psychic",
|
|
||||||
"psychicStartMessage": "The battlefield got weird!",
|
|
||||||
"psychicClearMessage": "The weirdness disappeared from the battlefield!",
|
|
||||||
|
|
||||||
"defaultBlockMessage": "{{pokemonNameWithAffix}} is protected by the {{terrainName}} Terrain!"
|
|
||||||
};
|
|
@ -22,10 +22,4 @@ export const challenges: TranslationEntries = {
|
|||||||
"desc": "Você só pode user Pokémon do tipo {{type}}.",
|
"desc": "Você só pode user Pokémon do tipo {{type}}.",
|
||||||
"desc_default": "Você só pode user Pokémon de um único tipo."
|
"desc_default": "Você só pode user Pokémon de um único tipo."
|
||||||
},
|
},
|
||||||
"freshStart": {
|
|
||||||
"name": "Novo Começo",
|
|
||||||
"desc": "Você só pode usar os iniciais originais, como se tivesse acabado de começar o PokéRogue.",
|
|
||||||
"value.0": "Desligado",
|
|
||||||
"value.1": "Ligado",
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -264,10 +264,6 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
"MONO_FAIRY": {
|
"MONO_FAIRY": {
|
||||||
name: "林克,醒醒!",
|
name: "林克,醒醒!",
|
||||||
},
|
},
|
||||||
"FRESH_START": {
|
|
||||||
name: "First Try!",
|
|
||||||
description: "Complete the Fresh Start challenge."
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
||||||
|
@ -22,10 +22,4 @@ export const challenges: TranslationEntries = {
|
|||||||
"desc": "你只能使用{{type}}\n屬性的寶可夢",
|
"desc": "你只能使用{{type}}\n屬性的寶可夢",
|
||||||
"desc_default": "你只能使用所選\n屬性的寶可夢"
|
"desc_default": "你只能使用所選\n屬性的寶可夢"
|
||||||
},
|
},
|
||||||
"freshStart": {
|
|
||||||
"name": "Fresh Start",
|
|
||||||
"desc": "You can only use the original starters, and only as if you had just started PokéRogue.",
|
|
||||||
"value.0": "Off",
|
|
||||||
"value.1": "On",
|
|
||||||
}
|
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -1809,7 +1809,7 @@ export function getModifierPoolForType(poolType: ModifierPoolType): ModifierPool
|
|||||||
return pool;
|
return pool;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tierWeights = [ 768 / 1024, 195 / 1024, 48 / 1024, 12 / 1024, 1 / 1024 ];
|
const tierWeights = [ 769 / 1024, 192 / 1024, 48 / 1024, 12 / 1024, 1 / 1024 ];
|
||||||
|
|
||||||
export function regenerateModifierPoolThresholds(party: Pokemon[], poolType: ModifierPoolType, rerollCount: integer = 0) {
|
export function regenerateModifierPoolThresholds(party: Pokemon[], poolType: ModifierPoolType, rerollCount: integer = 0) {
|
||||||
const pool = getModifierPoolForType(poolType);
|
const pool = getModifierPoolForType(poolType);
|
||||||
@ -2023,6 +2023,10 @@ function getNewModifierTypeOption(party: Pokemon[], poolType: ModifierPoolType,
|
|||||||
} while (upgraded);
|
} while (upgraded);
|
||||||
}
|
}
|
||||||
tier = tierValue > 255 ? ModifierTier.COMMON : tierValue > 60 ? ModifierTier.GREAT : tierValue > 12 ? ModifierTier.ULTRA : tierValue ? ModifierTier.ROGUE : ModifierTier.MASTER;
|
tier = tierValue > 255 ? ModifierTier.COMMON : tierValue > 60 ? ModifierTier.GREAT : tierValue > 12 ? ModifierTier.ULTRA : tierValue ? ModifierTier.ROGUE : ModifierTier.MASTER;
|
||||||
|
// Does this actually do anything?
|
||||||
|
if (!upgradeCount) {
|
||||||
|
upgradeCount = Math.min(upgradeCount, ModifierTier.MASTER - tier);
|
||||||
|
}
|
||||||
tier += upgradeCount;
|
tier += upgradeCount;
|
||||||
while (tier && (!modifierPool.hasOwnProperty(tier) || !modifierPool[tier].length)) {
|
while (tier && (!modifierPool.hasOwnProperty(tier) || !modifierPool[tier].length)) {
|
||||||
tier--;
|
tier--;
|
||||||
|
@ -2733,7 +2733,7 @@ export class MovePhase extends BattlePhase {
|
|||||||
if (this.cancelled || this.failed) {
|
if (this.cancelled || this.failed) {
|
||||||
if (this.failed) {
|
if (this.failed) {
|
||||||
this.move.usePp(ppUsed); // Only use PP if the move failed
|
this.move.usePp(ppUsed); // Only use PP if the move failed
|
||||||
this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), this.move.ppUsed));
|
this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), ppUsed));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Record a failed move so Abilities like Truant don't trigger next turn and soft-lock
|
// Record a failed move so Abilities like Truant don't trigger next turn and soft-lock
|
||||||
@ -2766,7 +2766,7 @@ export class MovePhase extends BattlePhase {
|
|||||||
|
|
||||||
if (!moveQueue.length || !moveQueue.shift().ignorePP) { // using .shift here clears out two turn moves once they've been used
|
if (!moveQueue.length || !moveQueue.shift().ignorePP) { // using .shift here clears out two turn moves once they've been used
|
||||||
this.move.usePp(ppUsed);
|
this.move.usePp(ppUsed);
|
||||||
this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), this.move.ppUsed));
|
this.scene.eventTarget.dispatchEvent(new MoveUsedEvent(this.pokemon?.id, this.move.getMove(), ppUsed));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!allMoves[this.move.moveId].hasAttr(CopyMoveAttr)) {
|
if (!allMoves[this.move.moveId].hasAttr(CopyMoveAttr)) {
|
||||||
|
@ -8,67 +8,53 @@ import { esConfig } from "#app/locales/es/config.js";
|
|||||||
import { frConfig } from "#app/locales/fr/config.js";
|
import { frConfig } from "#app/locales/fr/config.js";
|
||||||
import { itConfig } from "#app/locales/it/config.js";
|
import { itConfig } from "#app/locales/it/config.js";
|
||||||
import { koConfig } from "#app/locales/ko/config.js";
|
import { koConfig } from "#app/locales/ko/config.js";
|
||||||
import { jaConfig } from "#app/locales/ja/config.js";
|
|
||||||
import { ptBrConfig } from "#app/locales/pt_BR/config.js";
|
import { ptBrConfig } from "#app/locales/pt_BR/config.js";
|
||||||
import { zhCnConfig } from "#app/locales/zh_CN/config.js";
|
import { zhCnConfig } from "#app/locales/zh_CN/config.js";
|
||||||
import { zhTwConfig } from "#app/locales/zh_TW/config.js";
|
import { zhTwConfig } from "#app/locales/zh_TW/config.js";
|
||||||
|
|
||||||
interface LoadingFontFaceProperty {
|
const unicodeHalfAndFullWidthForms = [
|
||||||
face: FontFace,
|
"U+FF00-FFEF"
|
||||||
extraOptions?: { [key:string]: any },
|
|
||||||
only?: Array<string>
|
|
||||||
}
|
|
||||||
|
|
||||||
const unicodeRanges = {
|
|
||||||
fullwidth: "U+FF00-FFEF",
|
|
||||||
hangul: "U+1100-11FF,U+3130-318F,U+A960-A97F,U+AC00-D7AF,U+D7B0-D7FF",
|
|
||||||
kana: "U+3040-30FF",
|
|
||||||
CJKCommon: "U+2E80-2EFF,U+3000-303F,U+31C0-31EF,U+3200-32FF,U+3400-4DBF,U+F900-FAFF,U+FE30-FE4F",
|
|
||||||
CJKIdeograph: "U+4E00-9FFF",
|
|
||||||
};
|
|
||||||
const rangesByLanguage = {
|
|
||||||
korean: [unicodeRanges.CJKCommon, unicodeRanges.hangul].join(","),
|
|
||||||
chinese: [unicodeRanges.CJKCommon, unicodeRanges.fullwidth, unicodeRanges.CJKIdeograph].join(","),
|
|
||||||
japanese: [unicodeRanges.CJKCommon, unicodeRanges.fullwidth, unicodeRanges.kana, unicodeRanges.CJKIdeograph].join(",")
|
|
||||||
};
|
|
||||||
|
|
||||||
const fonts: Array<LoadingFontFaceProperty> = [
|
|
||||||
{
|
|
||||||
face: new FontFace("emerald", "url(./fonts/PokePT_Wansung.woff2)", { unicodeRange: rangesByLanguage.korean }),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
face: new FontFace("pkmnems", "url(./fonts/PokePT_Wansung.woff2)", { unicodeRange: rangesByLanguage.korean }),
|
|
||||||
extraOptions: { sizeAdjust: "133%" },
|
|
||||||
},
|
|
||||||
// unicode (chinese)
|
|
||||||
{
|
|
||||||
face: new FontFace("emerald", "url(./fonts/unifont-15.1.05.subset.woff2)", { unicodeRange: rangesByLanguage.chinese }),
|
|
||||||
extraOptions: { sizeAdjust: "70%", format: "woff2" },
|
|
||||||
only: [ "en", "es", "fr", "it", "de", "zh", "pt", "ko" ],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
face: new FontFace("pkmnems", "url(./fonts/unifont-15.1.05.subset.woff2)", { unicodeRange: rangesByLanguage.chinese }),
|
|
||||||
extraOptions: { format: "woff2" },
|
|
||||||
only: [ "en", "es", "fr", "it", "de", "zh", "pt", "ko" ],
|
|
||||||
},
|
|
||||||
// japanese
|
|
||||||
{
|
|
||||||
face: new FontFace("emerald", "url(./fonts/Galmuri11.subset.woff2)", { unicodeRange: rangesByLanguage.japanese }),
|
|
||||||
extraOptions: { sizeAdjust: "66%" },
|
|
||||||
only: [ "ja" ],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
face: new FontFace("pkmnems", "url(./fonts/Galmuri9.subset.woff2)", { unicodeRange: rangesByLanguage.japanese }),
|
|
||||||
only: [ "ja" ],
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
async function initFonts(language: string | undefined) {
|
const unicodeCJK = [
|
||||||
const results = await Promise.allSettled(
|
"U+2E80-2EFF",
|
||||||
fonts
|
"U+3000-303F",
|
||||||
.filter(font => !font.only || font.only.some(exclude => language?.indexOf(exclude) === 0))
|
"U+31C0-31EF",
|
||||||
.map(font => Object.assign(font.face, font.extraOptions ?? {}).load())
|
"U+3200-32FF",
|
||||||
);
|
"U+3400-4DBF",
|
||||||
|
"U+4E00-9FFF",
|
||||||
|
"U+F900-FAFF",
|
||||||
|
"U+FE30-FE4F",
|
||||||
|
].join(",");
|
||||||
|
|
||||||
|
const unicodeHangul = [
|
||||||
|
"U+1100-11FF",
|
||||||
|
"U+3130-318F",
|
||||||
|
"U+A960-A97F",
|
||||||
|
"U+AC00-D7AF",
|
||||||
|
"U+D7B0-D7FF",
|
||||||
|
].join(",");
|
||||||
|
|
||||||
|
const fonts = [
|
||||||
|
// korean
|
||||||
|
new FontFace("emerald", "url(./fonts/PokePT_Wansung.ttf)", { unicodeRange: unicodeHangul}),
|
||||||
|
Object.assign(
|
||||||
|
new FontFace("pkmnems", "url(./fonts/PokePT_Wansung.ttf)", { unicodeRange: unicodeHangul}),
|
||||||
|
{ sizeAdjust: "133%" }
|
||||||
|
),
|
||||||
|
// unicode
|
||||||
|
Object.assign(
|
||||||
|
new FontFace("emerald", "url(./fonts/unifont-15.1.05.otf)", { unicodeRange: [unicodeCJK, unicodeHalfAndFullWidthForms].join(",") }),
|
||||||
|
{ sizeAdjust: "70%", format: "opentype" }
|
||||||
|
),
|
||||||
|
Object.assign(
|
||||||
|
new FontFace("pkmnems", "url(./fonts/unifont-15.1.05.otf)", { unicodeRange: [unicodeCJK, unicodeHalfAndFullWidthForms].join(",") }),
|
||||||
|
{ format: "opentype" }
|
||||||
|
),
|
||||||
|
];
|
||||||
|
|
||||||
|
async function initFonts() {
|
||||||
|
const results = await Promise.allSettled(fonts.map(font => font.load()));
|
||||||
for (const result of results) {
|
for (const result of results) {
|
||||||
if (result.status === "fulfilled") {
|
if (result.status === "fulfilled") {
|
||||||
document.fonts?.add(result.value);
|
document.fonts?.add(result.value);
|
||||||
@ -108,7 +94,7 @@ export async function initI18n(): Promise<void> {
|
|||||||
await i18next.init({
|
await i18next.init({
|
||||||
nonExplicitSupportedLngs: true,
|
nonExplicitSupportedLngs: true,
|
||||||
fallbackLng: "en",
|
fallbackLng: "en",
|
||||||
supportedLngs: ["en", "es", "fr", "it", "de", "zh", "pt", "ko", "ja"],
|
supportedLngs: ["en", "es", "fr", "it", "de", "zh", "pt", "ko"],
|
||||||
defaultNS: "menu",
|
defaultNS: "menu",
|
||||||
ns: Object.keys(enConfig),
|
ns: Object.keys(enConfig),
|
||||||
detection: {
|
detection: {
|
||||||
@ -146,14 +132,11 @@ export async function initI18n(): Promise<void> {
|
|||||||
ko: {
|
ko: {
|
||||||
...koConfig
|
...koConfig
|
||||||
},
|
},
|
||||||
ja: {
|
|
||||||
...jaConfig
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
postProcess: ["korean-postposition"],
|
postProcess: ["korean-postposition"],
|
||||||
});
|
});
|
||||||
|
|
||||||
await initFonts(localStorage.getItem("prLang"));
|
await initFonts();
|
||||||
}
|
}
|
||||||
|
|
||||||
export default i18next;
|
export default i18next;
|
||||||
|
@ -763,10 +763,6 @@ export function setSetting(scene: BattleScene, setting: string, value: integer):
|
|||||||
label: "한국어",
|
label: "한국어",
|
||||||
handler: () => changeLocaleHandler("ko")
|
handler: () => changeLocaleHandler("ko")
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "日本語",
|
|
||||||
handler: () => changeLocaleHandler("ja")
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: i18next.t("settings:back"),
|
label: i18next.t("settings:back"),
|
||||||
handler: () => cancelHandler()
|
handler: () => cancelHandler()
|
||||||
|
@ -1,266 +0,0 @@
|
|||||||
import { BattlerTagType } from "#app/enums/battler-tag-type.js";
|
|
||||||
import {
|
|
||||||
MoveEndPhase,
|
|
||||||
TurnEndPhase,
|
|
||||||
TurnStartPhase,
|
|
||||||
} from "#app/phases";
|
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
|
||||||
import { getMovePosition } from "#app/test/utils/gameManagerUtils";
|
|
||||||
import { Abilities } from "#enums/abilities";
|
|
||||||
import { Moves } from "#enums/moves";
|
|
||||||
import { Species } from "#enums/species";
|
|
||||||
import Phaser from "phaser";
|
|
||||||
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
|
||||||
import { SPLASH_ONLY } from "../utils/testUtils";
|
|
||||||
import { BattleStat } from "#app/data/battle-stat.js";
|
|
||||||
import { StatusEffect } from "#app/enums/status-effect.js";
|
|
||||||
import { GulpMissileTag } from "#app/data/battler-tags.js";
|
|
||||||
import Pokemon from "#app/field/pokemon.js";
|
|
||||||
|
|
||||||
describe("Abilities - Gulp Missile", () => {
|
|
||||||
let phaserGame: Phaser.Game;
|
|
||||||
let game: GameManager;
|
|
||||||
|
|
||||||
const NORMAL_FORM = 0;
|
|
||||||
const GULPING_FORM = 1;
|
|
||||||
const GORGING_FORM = 2;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the effect damage of Gulp Missile
|
|
||||||
* See Gulp Missile {@link https://bulbapedia.bulbagarden.net/wiki/Gulp_Missile_(Ability)}
|
|
||||||
* @param {Pokemon} pokemon The pokemon taking the effect damage.
|
|
||||||
* @returns The effect damage of Gulp Missile
|
|
||||||
*/
|
|
||||||
const getEffectDamage = (pokemon: Pokemon): number => {
|
|
||||||
return Math.max(1, Math.floor(pokemon.getMaxHp() * 1/4));
|
|
||||||
};
|
|
||||||
|
|
||||||
beforeAll(() => {
|
|
||||||
phaserGame = new Phaser.Game({
|
|
||||||
type: Phaser.HEADLESS,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
game.phaseInterceptor.restoreOg();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
game = new GameManager(phaserGame);
|
|
||||||
game.override
|
|
||||||
.battleType("single")
|
|
||||||
.moveset([Moves.SURF, Moves.DIVE, Moves.SPLASH])
|
|
||||||
.enemySpecies(Species.SNORLAX)
|
|
||||||
.enemyAbility(Abilities.BALL_FETCH)
|
|
||||||
.enemyMoveset(SPLASH_ONLY)
|
|
||||||
.enemyLevel(5);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("changes to Gulping Form if HP is over half when Surf or Dive is used", async () => {
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.DIVE));
|
|
||||||
await game.toNextTurn();
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.DIVE));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getHpRatio()).toBeGreaterThanOrEqual(.5);
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("changes to Gorging Form if HP is under half when Surf or Dive is used", async () => {
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.49);
|
|
||||||
expect(cramorant.getHpRatio()).toBe(.49);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_PIKACHU)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GORGING_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("deals ¼ of the attacker's maximum HP when hit by a damaging attack", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.TACKLE));
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const enemy = game.scene.getEnemyPokemon();
|
|
||||||
vi.spyOn(enemy, "damageAndUpdate");
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(enemy.damageAndUpdate).toHaveReturnedWith(getEffectDamage(enemy));
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not have any effect when hit by non-damaging attack", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.TAIL_WHIP));
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.55);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("lowers the attacker's Defense by 1 stage when hit in Gulping form", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.TACKLE));
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
const enemy = game.scene.getEnemyPokemon();
|
|
||||||
|
|
||||||
vi.spyOn(enemy, "damageAndUpdate");
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.55);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(enemy.damageAndUpdate).toHaveReturnedWith(getEffectDamage(enemy));
|
|
||||||
expect(enemy.summonData.battleStats[BattleStat.DEF]).toBe(-1);
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeUndefined();
|
|
||||||
expect(cramorant.formIndex).toBe(NORMAL_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("paralyzes the enemy when hit in Gorging form", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.TACKLE));
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
const enemy = game.scene.getEnemyPokemon();
|
|
||||||
|
|
||||||
vi.spyOn(enemy, "damageAndUpdate");
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.45);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_PIKACHU)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GORGING_FORM);
|
|
||||||
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(enemy.damageAndUpdate).toHaveReturnedWith(getEffectDamage(enemy));
|
|
||||||
expect(enemy.status.effect).toBe(StatusEffect.PARALYSIS);
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_PIKACHU)).toBeUndefined();
|
|
||||||
expect(cramorant.formIndex).toBe(NORMAL_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not activate the ability when underwater", async () => {
|
|
||||||
game.override
|
|
||||||
.enemyMoveset(Array(4).fill(Moves.SURF))
|
|
||||||
.enemySpecies(Species.REGIELEKI)
|
|
||||||
.enemyAbility(Abilities.BALL_FETCH)
|
|
||||||
.enemyLevel(5);
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.DIVE));
|
|
||||||
await game.toNextTurn();
|
|
||||||
|
|
||||||
// Turn 2 underwater, enemy moves first
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.DIVE));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.formIndex).toBe(NORMAL_FORM);
|
|
||||||
expect(cramorant.getTag(GulpMissileTag)).toBeUndefined();
|
|
||||||
|
|
||||||
// Turn 2 Cramorant comes out and changes form
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
expect(cramorant.formIndex).not.toBe(NORMAL_FORM);
|
|
||||||
expect(cramorant.getTag(GulpMissileTag)).toBeDefined();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("prevents effect damage but inflicts secondary effect on attacker with Magic Guard", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.TACKLE)).enemyAbility(Abilities.MAGIC_GUARD);
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
const enemy = game.scene.getEnemyPokemon();
|
|
||||||
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.55);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
const enemyHpPreEffect = enemy.hp;
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(enemy.hp).toBe(enemyHpPreEffect);
|
|
||||||
expect(enemy.summonData.battleStats[BattleStat.DEF]).toBe(-1);
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeUndefined();
|
|
||||||
expect(cramorant.formIndex).toBe(NORMAL_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("cannot be suppressed", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.GASTRO_ACID));
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.55);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.hasAbility(Abilities.GULP_MISSILE)).toBe(true);
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("cannot be swapped with another ability", async () => {
|
|
||||||
game.override.enemyMoveset(Array(4).fill(Moves.SKILL_SWAP));
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
|
|
||||||
const cramorant = game.scene.getPlayerPokemon();
|
|
||||||
vi.spyOn(cramorant, "getHpRatio").mockReturnValue(.55);
|
|
||||||
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SURF));
|
|
||||||
await game.phaseInterceptor.to(MoveEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
|
|
||||||
await game.phaseInterceptor.to(TurnEndPhase);
|
|
||||||
|
|
||||||
expect(cramorant.hasAbility(Abilities.GULP_MISSILE)).toBe(true);
|
|
||||||
expect(cramorant.getTag(BattlerTagType.GULP_MISSILE_ARROKUDA)).toBeDefined();
|
|
||||||
expect(cramorant.formIndex).toBe(GULPING_FORM);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("cannot be copied", async () => {
|
|
||||||
game.override.enemyAbility(Abilities.TRACE);
|
|
||||||
|
|
||||||
await game.startBattle([Species.CRAMORANT]);
|
|
||||||
game.doAttack(getMovePosition(game.scene, 0, Moves.SPLASH));
|
|
||||||
await game.phaseInterceptor.to(TurnStartPhase);
|
|
||||||
|
|
||||||
expect(game.scene.getEnemyPokemon().hasAbility(Abilities.GULP_MISSILE)).toBe(false);
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,5 +1,5 @@
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { TextStyle, addTextObject, getTextStyleOptions } from "./text";
|
import { TextStyle, addTextObject } from "./text";
|
||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
import UiHandler from "./ui-handler";
|
import UiHandler from "./ui-handler";
|
||||||
import { addWindow } from "./ui-theme";
|
import { addWindow } from "./ui-theme";
|
||||||
@ -42,8 +42,6 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler {
|
|||||||
|
|
||||||
protected scrollCursor: integer = 0;
|
protected scrollCursor: integer = 0;
|
||||||
|
|
||||||
protected scale: number = 0.1666666667;
|
|
||||||
|
|
||||||
private cursorObj: Phaser.GameObjects.Image;
|
private cursorObj: Phaser.GameObjects.Image;
|
||||||
|
|
||||||
constructor(scene: BattleScene, mode?: Mode) {
|
constructor(scene: BattleScene, mode?: Mode) {
|
||||||
@ -53,7 +51,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler {
|
|||||||
abstract getWindowWidth(): integer;
|
abstract getWindowWidth(): integer;
|
||||||
|
|
||||||
getWindowHeight(): integer {
|
getWindowHeight(): integer {
|
||||||
return (Math.min((this.config?.options || []).length, this.config?.maxOptions || 99) + 1) * 96 * this.scale;
|
return (Math.min((this.config?.options || []).length, this.config?.maxOptions || 99) + 1) * 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
@ -71,8 +69,6 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler {
|
|||||||
|
|
||||||
this.optionSelectIcons = [];
|
this.optionSelectIcons = [];
|
||||||
|
|
||||||
this.scale = getTextStyleOptions(TextStyle.WINDOW, (this.scene as BattleScene).uiTheme).scale;
|
|
||||||
|
|
||||||
this.setCursor(0);
|
this.setCursor(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +84,6 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.optionSelectText = addTextObject(this.scene, 0, 0, options.map(o => o.item ? ` ${o.label}` : o.label).join("\n"), TextStyle.WINDOW, { maxLines: options.length });
|
this.optionSelectText = addTextObject(this.scene, 0, 0, options.map(o => o.item ? ` ${o.label}` : o.label).join("\n"), TextStyle.WINDOW, { maxLines: options.length });
|
||||||
this.optionSelectText.setLineSpacing(this.scale * 72);
|
|
||||||
this.optionSelectText.setName("text-option-select");
|
this.optionSelectText.setName("text-option-select");
|
||||||
this.optionSelectText.setLineSpacing(12);
|
this.optionSelectText.setLineSpacing(12);
|
||||||
this.optionSelectContainer.add(this.optionSelectText);
|
this.optionSelectContainer.add(this.optionSelectText);
|
||||||
@ -102,26 +97,26 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler {
|
|||||||
|
|
||||||
this.optionSelectBg.height = this.getWindowHeight();
|
this.optionSelectBg.height = this.getWindowHeight();
|
||||||
|
|
||||||
this.optionSelectText.setPositionRelative(this.optionSelectBg, 12+24*this.scale, 2+42*this.scale);
|
this.optionSelectText.setPositionRelative(this.optionSelectBg, 16, 9);
|
||||||
|
|
||||||
options.forEach((option: OptionSelectItem, i: integer) => {
|
options.forEach((option: OptionSelectItem, i: integer) => {
|
||||||
if (option.item) {
|
if (option.item) {
|
||||||
const itemIcon = this.scene.add.sprite(0, 0, "items", option.item);
|
const itemIcon = this.scene.add.sprite(0, 0, "items", option.item);
|
||||||
itemIcon.setScale(3 * this.scale);
|
itemIcon.setScale(0.5);
|
||||||
this.optionSelectIcons.push(itemIcon);
|
this.optionSelectIcons.push(itemIcon);
|
||||||
|
|
||||||
this.optionSelectContainer.add(itemIcon);
|
this.optionSelectContainer.add(itemIcon);
|
||||||
|
|
||||||
itemIcon.setPositionRelative(this.optionSelectText, 36 * this.scale, 7 + i * (114 * this.scale - 3));
|
itemIcon.setPositionRelative(this.optionSelectText, 6, 7 + 16 * i);
|
||||||
|
|
||||||
if (option.item === "candy") {
|
if (option.item === "candy") {
|
||||||
const itemOverlayIcon = this.scene.add.sprite(0, 0, "items", "candy_overlay");
|
const itemOverlayIcon = this.scene.add.sprite(0, 0, "items", "candy_overlay");
|
||||||
itemOverlayIcon.setScale(3 * this.scale);
|
itemOverlayIcon.setScale(0.5);
|
||||||
this.optionSelectIcons.push(itemOverlayIcon);
|
this.optionSelectIcons.push(itemOverlayIcon);
|
||||||
|
|
||||||
this.optionSelectContainer.add(itemOverlayIcon);
|
this.optionSelectContainer.add(itemOverlayIcon);
|
||||||
|
|
||||||
itemOverlayIcon.setPositionRelative(this.optionSelectText, 36 * this.scale, 7 + i * (114 * this.scale - 3));
|
itemOverlayIcon.setPositionRelative(this.optionSelectText, 6, 7 + 16 * i);
|
||||||
|
|
||||||
itemIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(option.itemArgs[0])));
|
itemIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(option.itemArgs[0])));
|
||||||
itemOverlayIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(option.itemArgs[1])));
|
itemOverlayIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(option.itemArgs[1])));
|
||||||
@ -299,8 +294,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler {
|
|||||||
this.optionSelectContainer.add(this.cursorObj);
|
this.optionSelectContainer.add(this.cursorObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cursorObj.setScale(this.scale * 6);
|
this.cursorObj.setPositionRelative(this.optionSelectBg, 12, 17 + this.cursor * 16);
|
||||||
this.cursorObj.setPositionRelative(this.optionSelectBg, 12, 102*this.scale + this.cursor * (114 * this.scale - 3));
|
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { CommandPhase } from "../phases";
|
import { CommandPhase } from "../phases";
|
||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { getPokeballName } from "../data/pokeball";
|
import { getPokeballName } from "../data/pokeball";
|
||||||
import { addTextObject, getTextStyleOptions, TextStyle } from "./text";
|
import { addTextObject, TextStyle } from "./text";
|
||||||
import { Command } from "./command-ui-handler";
|
import { Command } from "./command-ui-handler";
|
||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
import UiHandler from "./ui-handler";
|
import UiHandler from "./ui-handler";
|
||||||
@ -15,8 +15,6 @@ export default class BallUiHandler extends UiHandler {
|
|||||||
|
|
||||||
private cursorObj: Phaser.GameObjects.Image;
|
private cursorObj: Phaser.GameObjects.Image;
|
||||||
|
|
||||||
private scale: number = 0.1666666667;
|
|
||||||
|
|
||||||
constructor(scene: BattleScene) {
|
constructor(scene: BattleScene) {
|
||||||
super(scene, Mode.BALL);
|
super(scene, Mode.BALL);
|
||||||
}
|
}
|
||||||
@ -24,7 +22,13 @@ export default class BallUiHandler extends UiHandler {
|
|||||||
setup() {
|
setup() {
|
||||||
const ui = this.getUi();
|
const ui = this.getUi();
|
||||||
|
|
||||||
this.scale = getTextStyleOptions(TextStyle.WINDOW, this.scene.uiTheme).scale;
|
this.pokeballSelectContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 115, -49);
|
||||||
|
this.pokeballSelectContainer.setVisible(false);
|
||||||
|
ui.add(this.pokeballSelectContainer);
|
||||||
|
|
||||||
|
this.pokeballSelectBg = addWindow(this.scene, 0, 0, 114, 112);
|
||||||
|
this.pokeballSelectBg.setOrigin(0, 1);
|
||||||
|
this.pokeballSelectContainer.add(this.pokeballSelectBg);
|
||||||
|
|
||||||
let optionsTextContent = "";
|
let optionsTextContent = "";
|
||||||
|
|
||||||
@ -33,22 +37,14 @@ export default class BallUiHandler extends UiHandler {
|
|||||||
}
|
}
|
||||||
optionsTextContent += "Cancel";
|
optionsTextContent += "Cancel";
|
||||||
const optionsText = addTextObject(this.scene, 0, 0, optionsTextContent, TextStyle.WINDOW, { align: "right", maxLines: 6 });
|
const optionsText = addTextObject(this.scene, 0, 0, optionsTextContent, TextStyle.WINDOW, { align: "right", maxLines: 6 });
|
||||||
const optionsTextWidth = optionsText.displayWidth;
|
|
||||||
this.pokeballSelectContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 51 - Math.max(64, optionsTextWidth), -49);
|
|
||||||
this.pokeballSelectContainer.setVisible(false);
|
|
||||||
ui.add(this.pokeballSelectContainer);
|
|
||||||
|
|
||||||
this.pokeballSelectBg = addWindow(this.scene, 0, 0, 50 + Math.max(64, optionsTextWidth), 32 + 480 * this.scale);
|
|
||||||
this.pokeballSelectBg.setOrigin(0, 1);
|
|
||||||
this.pokeballSelectContainer.add(this.pokeballSelectBg);
|
|
||||||
this.pokeballSelectContainer.add(optionsText);
|
|
||||||
optionsText.setOrigin(0, 0);
|
optionsText.setOrigin(0, 0);
|
||||||
optionsText.setPositionRelative(this.pokeballSelectBg, 42, 9);
|
optionsText.setPositionRelative(this.pokeballSelectBg, 42, 9);
|
||||||
optionsText.setLineSpacing(this.scale * 72);
|
optionsText.setLineSpacing(12);
|
||||||
|
this.pokeballSelectContainer.add(optionsText);
|
||||||
|
|
||||||
this.countsText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW, { maxLines: 5 });
|
this.countsText = addTextObject(this.scene, 0, 0, "", TextStyle.WINDOW, { maxLines: 5 });
|
||||||
this.countsText.setPositionRelative(this.pokeballSelectBg, 18, 9);
|
this.countsText.setPositionRelative(this.pokeballSelectBg, 18, 9);
|
||||||
this.countsText.setLineSpacing(this.scale * 72);
|
this.countsText.setLineSpacing(12);
|
||||||
this.pokeballSelectContainer.add(this.countsText);
|
this.pokeballSelectContainer.add(this.countsText);
|
||||||
|
|
||||||
this.setCursor(0);
|
this.setCursor(0);
|
||||||
@ -118,8 +114,7 @@ export default class BallUiHandler extends UiHandler {
|
|||||||
this.pokeballSelectContainer.add(this.cursorObj);
|
this.pokeballSelectContainer.add(this.cursorObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cursorObj.setScale(this.scale * 6);
|
this.cursorObj.setPositionRelative(this.pokeballSelectBg, 12, 17 + 16 * this.cursor);
|
||||||
this.cursorObj.setPositionRelative(this.pokeballSelectBg, 12, 15 + (6 + this.cursor * 96) * this.scale);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ export default class BattleFlyout extends Phaser.GameObjects.Container {
|
|||||||
|
|
||||||
const foundInfo = this.moveInfo.find(x => x?.move.id === moveUsedEvent.move.id);
|
const foundInfo = this.moveInfo.find(x => x?.move.id === moveUsedEvent.move.id);
|
||||||
if (foundInfo) {
|
if (foundInfo) {
|
||||||
foundInfo.ppUsed = moveUsedEvent.ppUsed;
|
foundInfo.ppUsed = Math.min(foundInfo.ppUsed + moveUsedEvent.ppUsed, foundInfo.maxPp);
|
||||||
} else {
|
} else {
|
||||||
this.moveInfo.push({move: moveUsedEvent.move, maxPp: moveUsedEvent.move.pp, ppUsed: moveUsedEvent.ppUsed});
|
this.moveInfo.push({move: moveUsedEvent.move, maxPp: moveUsedEvent.move.pp, ppUsed: moveUsedEvent.ppUsed});
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
import { TextStyle, addTextObject, getEggTierTextTint, getTextStyleOptions } from "./text";
|
import { TextStyle, addTextObject, getEggTierTextTint } from "./text";
|
||||||
import MessageUiHandler from "./message-ui-handler";
|
import MessageUiHandler from "./message-ui-handler";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { Egg, getLegendaryGachaSpeciesForTimestamp, IEggOptions } from "../data/egg";
|
import { Egg, getLegendaryGachaSpeciesForTimestamp, IEggOptions } from "../data/egg";
|
||||||
@ -36,8 +36,6 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
private transitionCancelled: boolean;
|
private transitionCancelled: boolean;
|
||||||
private defaultText: string;
|
private defaultText: string;
|
||||||
|
|
||||||
private scale: number = 0.1666666667;
|
|
||||||
|
|
||||||
constructor(scene: BattleScene) {
|
constructor(scene: BattleScene) {
|
||||||
super(scene, Mode.EGG_GACHA);
|
super(scene, Mode.EGG_GACHA);
|
||||||
|
|
||||||
@ -52,7 +50,6 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
this.gachaCursor = 0;
|
this.gachaCursor = 0;
|
||||||
this.scale = getTextStyleOptions(TextStyle.WINDOW, this.scene.uiTheme).scale;
|
|
||||||
|
|
||||||
const ui = this.getUi();
|
const ui = this.getUi();
|
||||||
|
|
||||||
@ -203,7 +200,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
this.eggGachaContainer.add(this.eggGachaOptionsContainer);
|
this.eggGachaContainer.add(this.eggGachaOptionsContainer);
|
||||||
|
|
||||||
|
|
||||||
this.eggGachaOptionSelectBg = addWindow(this.scene, 0, 0, 96, 16 + 576 * this.scale);
|
this.eggGachaOptionSelectBg = addWindow(this.scene, 0, 0, 96, 112);
|
||||||
this.eggGachaOptionSelectBg.setOrigin(1, 1);
|
this.eggGachaOptionSelectBg.setOrigin(1, 1);
|
||||||
this.eggGachaOptionsContainer.add(this.eggGachaOptionSelectBg);
|
this.eggGachaOptionsContainer.add(this.eggGachaOptionSelectBg);
|
||||||
|
|
||||||
@ -246,8 +243,8 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
pullOptions.forEach((option, i) => {
|
pullOptions.forEach((option, i) => {
|
||||||
const icon = this.scene.add.sprite(0, 0, "items", option.icon);
|
const icon = this.scene.add.sprite(0, 0, "items", option.icon);
|
||||||
icon.setScale(3 * this.scale);
|
icon.setScale(0.5);
|
||||||
icon.setPositionRelative(this.eggGachaOptionSelectBg, 20, 9 + (48 + i * 96) * this.scale);
|
icon.setPositionRelative(this.eggGachaOptionSelectBg, 20, 17 + i * 16);
|
||||||
this.eggGachaOptionsContainer.add(icon);
|
this.eggGachaOptionsContainer.add(icon);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -738,8 +735,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
this.eggGachaOptionsContainer.add(this.cursorObj);
|
this.eggGachaOptionsContainer.add(this.cursorObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cursorObj.setScale(this.scale * 6);
|
this.cursorObj.setPositionRelative(this.eggGachaOptionSelectBg, 10, 17 + this.cursor * 16);
|
||||||
this.cursorObj.setPositionRelative(this.eggGachaOptionSelectBg, 10, 9 + (48 + this.cursor * 96) * this.scale);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import BattleScene, { bypassLogin } from "../battle-scene";
|
import BattleScene, { bypassLogin } from "../battle-scene";
|
||||||
import { TextStyle, addTextObject, getTextStyleOptions } from "./text";
|
import { TextStyle, addTextObject } from "./text";
|
||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { addWindow } from "./ui-theme";
|
import { addWindow } from "./ui-theme";
|
||||||
@ -46,8 +46,6 @@ export default class MenuUiHandler extends MessageUiHandler {
|
|||||||
protected manageDataConfig: OptionSelectConfig;
|
protected manageDataConfig: OptionSelectConfig;
|
||||||
protected communityConfig: OptionSelectConfig;
|
protected communityConfig: OptionSelectConfig;
|
||||||
|
|
||||||
protected scale: number = 0.1666666667;
|
|
||||||
|
|
||||||
public bgmBar: BgmBar;
|
public bgmBar: BgmBar;
|
||||||
|
|
||||||
|
|
||||||
@ -111,16 +109,10 @@ export default class MenuUiHandler extends MessageUiHandler {
|
|||||||
this.optionSelectText = addTextObject(this.scene, 0, 0, this.menuOptions.map(o => `${i18next.t(`menuUiHandler:${MenuOptions[o]}`)}`).join("\n"), TextStyle.WINDOW, { maxLines: this.menuOptions.length });
|
this.optionSelectText = addTextObject(this.scene, 0, 0, this.menuOptions.map(o => `${i18next.t(`menuUiHandler:${MenuOptions[o]}`)}`).join("\n"), TextStyle.WINDOW, { maxLines: this.menuOptions.length });
|
||||||
this.optionSelectText.setLineSpacing(12);
|
this.optionSelectText.setLineSpacing(12);
|
||||||
|
|
||||||
this.scale = getTextStyleOptions(TextStyle.WINDOW, (this.scene as BattleScene).uiTheme).scale;
|
this.menuBg = addWindow(this.scene, (this.scene.game.canvas.width / 6) - (this.optionSelectText.displayWidth + 25), 0, this.optionSelectText.displayWidth + 23, (this.scene.game.canvas.height / 6) - 2);
|
||||||
this.menuBg = addWindow(this.scene,
|
|
||||||
(this.scene.game.canvas.width / 6) - (this.optionSelectText.displayWidth + 25),
|
|
||||||
0,
|
|
||||||
this.optionSelectText.displayWidth + 19+24*this.scale,
|
|
||||||
(this.scene.game.canvas.height / 6) - 2
|
|
||||||
);
|
|
||||||
this.menuBg.setOrigin(0, 0);
|
this.menuBg.setOrigin(0, 0);
|
||||||
|
|
||||||
this.optionSelectText.setPositionRelative(this.menuBg, 10+24*this.scale, 6);
|
this.optionSelectText.setPositionRelative(this.menuBg, 14, 6);
|
||||||
|
|
||||||
this.menuContainer.add(this.menuBg);
|
this.menuContainer.add(this.menuBg);
|
||||||
|
|
||||||
@ -525,8 +517,7 @@ export default class MenuUiHandler extends MessageUiHandler {
|
|||||||
this.menuContainer.add(this.cursorObj);
|
this.menuContainer.add(this.cursorObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cursorObj.setScale(this.scale * 6);
|
this.cursorObj.setPositionRelative(this.menuBg, 7, 9 + this.cursor * 16);
|
||||||
this.cursorObj.setPositionRelative(this.menuBg, 7, 6 + (18 + this.cursor * 96) * this.scale);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
|
|||||||
|
|
||||||
const canvas = document.createElement("canvas");
|
const canvas = document.createElement("canvas");
|
||||||
const context = canvas.getContext("2d");
|
const context = canvas.getContext("2d");
|
||||||
const styleOptions = getTextStyleOptions(TextStyle.PARTY, (this.scene as BattleScene).uiTheme).styleOptions;
|
const [ , styleOptions, , , ] = getTextStyleOptions(TextStyle.PARTY, (this.scene as BattleScene).uiTheme);
|
||||||
context.font = styleOptions.fontSize + "px " + styleOptions.fontFamily;
|
context.font = styleOptions.fontSize + "px " + styleOptions.fontFamily;
|
||||||
this.transferButtonWidth = context.measureText(i18next.t("modifierSelectUiHandler:transfer")).width;
|
this.transferButtonWidth = context.measureText(i18next.t("modifierSelectUiHandler:transfer")).width;
|
||||||
this.checkButtonWidth = context.measureText(i18next.t("modifierSelectUiHandler:checkTeam")).width;
|
this.checkButtonWidth = context.measureText(i18next.t("modifierSelectUiHandler:checkTeam")).width;
|
||||||
|
@ -105,7 +105,7 @@ export default class AbstractSettingsUiHandler extends UiHandler {
|
|||||||
|
|
||||||
this.optionsContainer.add(this.settingLabels[s]);
|
this.optionsContainer.add(this.settingLabels[s]);
|
||||||
this.optionValueLabels.push(setting.options.map((option, o) => {
|
this.optionValueLabels.push(setting.options.map((option, o) => {
|
||||||
const valueLabel = addTextObject(this.scene, 0, 0, option.label, setting.default === o ? TextStyle.SETTINGS_SELECTED : TextStyle.SETTINGS_VALUE);
|
const valueLabel = addTextObject(this.scene, 0, 0, option.label, setting.default === o ? TextStyle.SETTINGS_SELECTED : TextStyle.WINDOW);
|
||||||
valueLabel.setOrigin(0, 0);
|
valueLabel.setOrigin(0, 0);
|
||||||
|
|
||||||
this.optionsContainer.add(valueLabel);
|
this.optionsContainer.add(valueLabel);
|
||||||
@ -314,8 +314,8 @@ export default class AbstractSettingsUiHandler extends UiHandler {
|
|||||||
const lastCursor = this.optionCursors[settingIndex];
|
const lastCursor = this.optionCursors[settingIndex];
|
||||||
|
|
||||||
const lastValueLabel = this.optionValueLabels[settingIndex][lastCursor];
|
const lastValueLabel = this.optionValueLabels[settingIndex][lastCursor];
|
||||||
lastValueLabel.setColor(this.getTextColor(TextStyle.SETTINGS_VALUE));
|
lastValueLabel.setColor(this.getTextColor(TextStyle.WINDOW));
|
||||||
lastValueLabel.setShadowColor(this.getTextColor(TextStyle.SETTINGS_VALUE, true));
|
lastValueLabel.setShadowColor(this.getTextColor(TextStyle.WINDOW, true));
|
||||||
|
|
||||||
this.optionCursors[settingIndex] = cursor;
|
this.optionCursors[settingIndex] = cursor;
|
||||||
|
|
||||||
|
@ -79,12 +79,6 @@ export default class SettingsDisplayUiHandler extends AbstractSettingsUiHandler
|
|||||||
label: "한국어",
|
label: "한국어",
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
case "ja":
|
|
||||||
this.settings[languageIndex].options[0] = {
|
|
||||||
value: "日本語",
|
|
||||||
label: "日本語",
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
this.settings[languageIndex].options[0] = {
|
this.settings[languageIndex].options[0] = {
|
||||||
value: "English",
|
value: "English",
|
||||||
|
@ -103,10 +103,6 @@ const languageSettings: { [key: string]: LanguageSetting } = {
|
|||||||
"ko":{
|
"ko":{
|
||||||
starterInfoTextSize: "52px",
|
starterInfoTextSize: "52px",
|
||||||
instructionTextSize: "38px",
|
instructionTextSize: "38px",
|
||||||
},
|
|
||||||
"ja":{
|
|
||||||
starterInfoTextSize: "51px",
|
|
||||||
instructionTextSize: "38px",
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ import BBCodeText from "phaser3-rex-plugins/plugins/gameobjects/tagtext/bbcodete
|
|||||||
import InputText from "phaser3-rex-plugins/plugins/inputtext";
|
import InputText from "phaser3-rex-plugins/plugins/inputtext";
|
||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { ModifierTier } from "../modifier/modifier-tier";
|
import { ModifierTier } from "../modifier/modifier-tier";
|
||||||
import i18next from "#app/plugins/i18n.js";
|
|
||||||
|
|
||||||
export enum TextStyle {
|
export enum TextStyle {
|
||||||
MESSAGE,
|
MESSAGE,
|
||||||
@ -25,7 +24,6 @@ export enum TextStyle {
|
|||||||
MONEY,
|
MONEY,
|
||||||
STATS_LABEL,
|
STATS_LABEL,
|
||||||
STATS_VALUE,
|
STATS_VALUE,
|
||||||
SETTINGS_VALUE,
|
|
||||||
SETTINGS_LABEL,
|
SETTINGS_LABEL,
|
||||||
SETTINGS_SELECTED,
|
SETTINGS_SELECTED,
|
||||||
SETTINGS_LOCKED,
|
SETTINGS_LOCKED,
|
||||||
@ -40,64 +38,44 @@ export enum TextStyle {
|
|||||||
BGM_BAR
|
BGM_BAR
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TextStyleOptions {
|
|
||||||
scale: number,
|
|
||||||
styleOptions: Phaser.Types.GameObjects.Text.TextStyle | InputText.IConfig,
|
|
||||||
shadowColor: string,
|
|
||||||
shadowXpos: number,
|
|
||||||
shadowYpos: number
|
|
||||||
}
|
|
||||||
|
|
||||||
export function addTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): Phaser.GameObjects.Text {
|
export function addTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): Phaser.GameObjects.Text {
|
||||||
const { scale, styleOptions, shadowColor, shadowXpos, shadowYpos } = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
const [ scale, styleOptions, shadowColor, shadowXpos, shadowYpos ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
||||||
|
|
||||||
const ret = scene.add.text(x, y, content, styleOptions);
|
const ret = scene.add.text(x, y, content, styleOptions);
|
||||||
ret.setScale(scale);
|
ret.setScale(scale);
|
||||||
ret.setShadow(shadowXpos, shadowYpos, shadowColor);
|
ret.setShadow(shadowXpos, shadowYpos, shadowColor);
|
||||||
if (!(styleOptions as Phaser.Types.GameObjects.Text.TextStyle).lineSpacing) {
|
if (!(styleOptions as Phaser.Types.GameObjects.Text.TextStyle).lineSpacing) {
|
||||||
ret.setLineSpacing(scale * 30);
|
ret.setLineSpacing(5);
|
||||||
}
|
|
||||||
|
|
||||||
if (ret.lineSpacing < 12 && i18next.resolvedLanguage === "ja") {
|
|
||||||
ret.setLineSpacing(ret.lineSpacing + 35);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setTextStyle(obj: Phaser.GameObjects.Text, scene: Phaser.Scene, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle) {
|
export function setTextStyle(obj: Phaser.GameObjects.Text, scene: Phaser.Scene, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle) {
|
||||||
const { scale, styleOptions, shadowColor, shadowXpos, shadowYpos } = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
const [ scale, styleOptions, shadowColor, shadowXpos, shadowYpos ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
||||||
obj.setScale(scale);
|
obj.setScale(scale);
|
||||||
obj.setShadow(shadowXpos, shadowYpos, shadowColor);
|
obj.setShadow(shadowXpos, shadowYpos, shadowColor);
|
||||||
if (!(styleOptions as Phaser.Types.GameObjects.Text.TextStyle).lineSpacing) {
|
if (!(styleOptions as Phaser.Types.GameObjects.Text.TextStyle).lineSpacing) {
|
||||||
obj.setLineSpacing(scale * 30);
|
obj.setLineSpacing(5);
|
||||||
}
|
|
||||||
|
|
||||||
if (obj.lineSpacing < 12 && i18next.resolvedLanguage === "ja") {
|
|
||||||
obj.setLineSpacing(obj.lineSpacing + 35);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addBBCodeTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): BBCodeText {
|
export function addBBCodeTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): BBCodeText {
|
||||||
const { scale, styleOptions, shadowColor, shadowXpos, shadowYpos } = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
const [ scale, styleOptions, shadowColor, shadowXpos, shadowYpos ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
||||||
|
|
||||||
const ret = new BBCodeText(scene, x, y, content, styleOptions as BBCodeText.TextStyle);
|
const ret = new BBCodeText(scene, x, y, content, styleOptions as BBCodeText.TextStyle);
|
||||||
scene.add.existing(ret);
|
scene.add.existing(ret);
|
||||||
ret.setScale(scale);
|
ret.setScale(scale);
|
||||||
ret.setShadow(shadowXpos, shadowYpos, shadowColor);
|
ret.setShadow(shadowXpos, shadowYpos, shadowColor);
|
||||||
if (!(styleOptions as BBCodeText.TextStyle).lineSpacing) {
|
if (!(styleOptions as BBCodeText.TextStyle).lineSpacing) {
|
||||||
ret.setLineSpacing(scale * 60);
|
ret.setLineSpacing(10);
|
||||||
}
|
|
||||||
|
|
||||||
if (ret.lineSpacing < 12 && i18next.resolvedLanguage === "ja") {
|
|
||||||
ret.setLineSpacing(ret.lineSpacing + 35);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addTextInputObject(scene: Phaser.Scene, x: number, y: number, width: number, height: number, style: TextStyle, extraStyleOptions?: InputText.IConfig): InputText {
|
export function addTextInputObject(scene: Phaser.Scene, x: number, y: number, width: number, height: number, style: TextStyle, extraStyleOptions?: InputText.IConfig): InputText {
|
||||||
const { scale, styleOptions } = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
const [ scale, styleOptions ] = getTextStyleOptions(style, (scene as BattleScene).uiTheme, extraStyleOptions);
|
||||||
|
|
||||||
const ret = new InputText(scene, x, y, width, height, styleOptions as InputText.IConfig);
|
const ret = new InputText(scene, x, y, width, height, styleOptions as InputText.IConfig);
|
||||||
scene.add.existing(ret);
|
scene.add.existing(ret);
|
||||||
@ -106,10 +84,10 @@ export function addTextInputObject(scene: Phaser.Scene, x: number, y: number, wi
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): TextStyleOptions {
|
export function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): [ number, Phaser.Types.GameObjects.Text.TextStyle | InputText.IConfig, string, number, number ] {
|
||||||
let shadowXpos = 4;
|
let shadowXpos = 4;
|
||||||
let shadowYpos = 5;
|
let shadowYpos = 5;
|
||||||
let scale = 0.1666666667;
|
const scale = 0.1666666667;
|
||||||
const defaultFontSize = 96;
|
const defaultFontSize = 96;
|
||||||
|
|
||||||
let styleOptions: Phaser.Types.GameObjects.Text.TextStyle = {
|
let styleOptions: Phaser.Types.GameObjects.Text.TextStyle = {
|
||||||
@ -121,11 +99,6 @@ export function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraSty
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (i18next.resolvedLanguage === "ja") {
|
|
||||||
scale = 0.1388888889;
|
|
||||||
styleOptions.padding = { top:2, bottom:4 };
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (style) {
|
switch (style) {
|
||||||
case TextStyle.SUMMARY:
|
case TextStyle.SUMMARY:
|
||||||
case TextStyle.SUMMARY_ALT:
|
case TextStyle.SUMMARY_ALT:
|
||||||
@ -191,7 +164,7 @@ export function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraSty
|
|||||||
styleOptions = Object.assign(styleOptions, extraStyleOptions);
|
styleOptions = Object.assign(styleOptions, extraStyleOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
return { scale, styleOptions, shadowColor, shadowXpos, shadowYpos };
|
return [ scale, styleOptions, shadowColor, shadowXpos, shadowYpos ];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getBBCodeFrag(content: string, textStyle: TextStyle, uiTheme: UiTheme = UiTheme.DEFAULT): string {
|
export function getBBCodeFrag(content: string, textStyle: TextStyle, uiTheme: UiTheme = UiTheme.DEFAULT): string {
|
||||||
@ -206,7 +179,6 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui
|
|||||||
case TextStyle.MOVE_INFO_CONTENT:
|
case TextStyle.MOVE_INFO_CONTENT:
|
||||||
case TextStyle.MOVE_PP_FULL:
|
case TextStyle.MOVE_PP_FULL:
|
||||||
case TextStyle.TOOLTIP_CONTENT:
|
case TextStyle.TOOLTIP_CONTENT:
|
||||||
case TextStyle.SETTINGS_VALUE:
|
|
||||||
if (uiTheme) {
|
if (uiTheme) {
|
||||||
return !shadow ? "#484848" : "#d0d0c8";
|
return !shadow ? "#484848" : "#d0d0c8";
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ import BattleScene from "../battle-scene";
|
|||||||
import OptionSelectUiHandler from "./settings/option-select-ui-handler";
|
import OptionSelectUiHandler from "./settings/option-select-ui-handler";
|
||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TextStyle, addTextObject, getTextStyleOptions } from "./text";
|
import { TextStyle, addTextObject } from "./text";
|
||||||
import { getBattleCountSplashMessage, getSplashMessages } from "../data/splash-messages";
|
import { getBattleCountSplashMessage, getSplashMessages } from "../data/splash-messages";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { TimedEventDisplay } from "#app/timed-event-manager.js";
|
import { TimedEventDisplay } from "#app/timed-event-manager.js";
|
||||||
@ -40,14 +40,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
|||||||
this.titleContainer.add(this.eventDisplay);
|
this.titleContainer.add(this.eventDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.playerCountLabel = addTextObject(
|
this.playerCountLabel = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - 109, `? ${i18next.t("menu:playersOnline")}`, TextStyle.MESSAGE, { fontSize: "54px" });
|
||||||
this.scene,
|
|
||||||
(this.scene.game.canvas.width / 6) - 2,
|
|
||||||
(this.scene.game.canvas.height / 6) - 13 - 576 * getTextStyleOptions(TextStyle.WINDOW, this.scene.uiTheme).scale,
|
|
||||||
`? ${i18next.t("menu:playersOnline")}`,
|
|
||||||
TextStyle.MESSAGE,
|
|
||||||
{ fontSize: "54px" }
|
|
||||||
);
|
|
||||||
this.playerCountLabel.setOrigin(1, 0);
|
this.playerCountLabel.setOrigin(1, 0);
|
||||||
this.titleContainer.add(this.playerCountLabel);
|
this.titleContainer.add(this.playerCountLabel);
|
||||||
|
|
||||||
|
@ -454,7 +454,7 @@ export default class UI extends Phaser.GameObjects.Container {
|
|||||||
this.modeChain.push(this.mode);
|
this.modeChain.push(this.mode);
|
||||||
}
|
}
|
||||||
this.mode = mode;
|
this.mode = mode;
|
||||||
const touchControls = document?.getElementById("touchControls");
|
const touchControls = document.getElementById("touchControls");
|
||||||
if (touchControls) {
|
if (touchControls) {
|
||||||
touchControls.dataset.uiMode = Mode[mode];
|
touchControls.dataset.uiMode = Mode[mode];
|
||||||
}
|
}
|
||||||
|
@ -466,7 +466,6 @@ export function verifyLang(lang?: string): boolean {
|
|||||||
case "zh-TW":
|
case "zh-TW":
|
||||||
case "pt-BR":
|
case "pt-BR":
|
||||||
case "ko":
|
case "ko":
|
||||||
case "ja":
|
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user