Compare commits
55 Commits
cde648038d
...
f3ce23f16e
Author | SHA1 | Date | |
---|---|---|---|
|
f3ce23f16e | ||
|
51545bda36 | ||
|
6feefb3368 | ||
|
f54df49042 | ||
|
672bc77c58 | ||
|
89b0344a3f | ||
|
4a5faa8e5f | ||
|
b0360123e0 | ||
|
60becf54f8 | ||
|
df1c6efe2d | ||
|
89a1ff7b5b | ||
|
a820eb41c8 | ||
|
9c30e5b213 | ||
|
03567ed56c | ||
|
4c4a2c1900 | ||
|
ce5a92325c | ||
|
e9998fcc16 | ||
|
aae4d6933c | ||
|
256dfbde6e | ||
|
86316bd6f8 | ||
|
ad778101e4 | ||
|
c20f37bcf9 | ||
|
39cfe69cd9 | ||
|
634bfb7900 | ||
|
434b823112 | ||
|
744c8f8845 | ||
|
0cbdaab28e | ||
|
84ef7f0683 | ||
|
1e432fc74b | ||
|
f54846f735 | ||
|
2d5bd57c44 | ||
|
f3c41edf5e | ||
|
69a9916b4c | ||
|
4553c1c34f | ||
|
22d31bc704 | ||
|
a894438e24 | ||
|
dd033f4ec1 | ||
|
0671a244a8 | ||
|
c4c9cf939e | ||
|
8edb9ca65b | ||
|
08fe9e1e21 | ||
|
781bfd831f | ||
|
e29f1fe5fd | ||
|
1fd662111e | ||
|
56b39032b9 | ||
|
80828359e2 | ||
|
709066bd1a | ||
|
dcb03f4ee9 | ||
|
14e0c66ed9 | ||
|
49c3158fd1 | ||
|
c070f110e5 | ||
|
0c28da75b4 | ||
|
64368b62bc | ||
|
3bcee779e2 | ||
|
97e3250f62 |
101
create-test-boilerplate.js
Normal file
@ -0,0 +1,101 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
/**
|
||||
* This script creates a test boilerplate file for a move or ability.
|
||||
* @param {string} type - The type of test to create. Either "move" or "ability".
|
||||
* @param {string} fileName - The name of the file to create.
|
||||
* @example npm run create-test move tackle
|
||||
*/
|
||||
|
||||
// Get the directory name of the current module file
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
// Get the arguments from the command line
|
||||
const args = process.argv.slice(2);
|
||||
const type = args[0]; // "move" or "ability"
|
||||
let fileName = args[1]; // The file name
|
||||
|
||||
if (!type || !fileName) {
|
||||
console.error('Please provide both a type ("move" or "ability") and a file name.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Convert fileName from to snake_case if camelCase is given
|
||||
fileName = fileName.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
|
||||
|
||||
// Format the description for the test case
|
||||
const formattedName = fileName
|
||||
.replace(/_/g, ' ')
|
||||
.replace(/\b\w/g, char => char.toUpperCase());
|
||||
|
||||
// Determine the directory based on the type
|
||||
let dir;
|
||||
let description;
|
||||
if (type === 'move') {
|
||||
dir = path.join(__dirname, 'src', 'test', 'moves');
|
||||
description = `Moves - ${formattedName}`;
|
||||
} else if (type === 'ability') {
|
||||
dir = path.join(__dirname, 'src', 'test', 'abilities');
|
||||
description = `Abilities - ${formattedName}`;
|
||||
} else {
|
||||
console.error('Invalid type. Please use "move" or "ability".');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Ensure the directory exists
|
||||
if (!fs.existsSync(dir)) {
|
||||
fs.mkdirSync(dir, { recursive: true });
|
||||
}
|
||||
|
||||
// Create the file with the given name
|
||||
const filePath = path.join(dir, `${fileName}.test.ts`);
|
||||
|
||||
if (fs.existsSync(filePath)) {
|
||||
console.error(`File "${fileName}.test.ts" already exists.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Define the content template
|
||||
const content = `import { Abilities } from "#enums/abilities";
|
||||
import GameManager from "#test/utils/gameManager";
|
||||
import { SPLASH_ONLY } from "#test/utils/testUtils";
|
||||
import Phaser from "phaser";
|
||||
import { afterEach, beforeAll, beforeEach, describe, it } from "vitest";
|
||||
|
||||
describe("${description}", () => {
|
||||
let phaserGame: Phaser.Game;
|
||||
let game: GameManager;
|
||||
const TIMEOUT = 20 * 1000;
|
||||
|
||||
beforeAll(() => {
|
||||
phaserGame = new Phaser.Game({
|
||||
type: Phaser.HEADLESS,
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
game.phaseInterceptor.restoreOg();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
game = new GameManager(phaserGame);
|
||||
game.override
|
||||
.battleType("single")
|
||||
.enemyAbility(Abilities.BALL_FETCH)
|
||||
.enemyMoveset(SPLASH_ONLY);
|
||||
});
|
||||
|
||||
it("test case", async () => {
|
||||
// await game.classicMode.startBattle();
|
||||
// game.move.select();
|
||||
}, TIMEOUT);
|
||||
});
|
||||
`;
|
||||
|
||||
// Write the template content to the file
|
||||
fs.writeFileSync(filePath, content, 'utf8');
|
||||
|
||||
console.log(`File created at: ${filePath}`);
|
11
index.css
@ -23,15 +23,6 @@ body {
|
||||
}
|
||||
}
|
||||
|
||||
#links {
|
||||
width: 90%;
|
||||
text-align: center;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#app {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@ -93,7 +84,7 @@ input:-internal-autofill-selected {
|
||||
|
||||
@media (orientation: landscape) {
|
||||
#touchControls {
|
||||
--controls-size: 20vh;
|
||||
--controls-size: 20vh;
|
||||
--text-shadow-size: 1.3vh;
|
||||
--small-button-offset: 4vh;
|
||||
}
|
||||
|
@ -39,7 +39,6 @@
|
||||
</style>
|
||||
<link rel="stylesheet" type="text/css" href="./index.css" />
|
||||
<link rel="manifest" href="./manifest.webmanifest">
|
||||
<script type="text/javascript" src="https://app.termly.io/resource-blocker/c5dbfa2f-9723-4c0f-a84b-2895124e851f?autoBlock=on"></script>
|
||||
<script>
|
||||
if ("serviceWorker" in navigator) {
|
||||
window.addEventListener("load", function () {
|
||||
@ -144,13 +143,6 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="tnc-links">
|
||||
<a href="#" class="termly-display-preferences" style="display: none;" target="_blank" rel="noreferrer noopener">Consent Preferences</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=bc96778b-3f04-4d25-bafc-0deba53e8bec" target="_blank" rel="noreferrer noopener">Privacy Policy</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=8b523c05-7ec2-4646-9534-5bd61b386e2a" target="_blank" rel="noreferrer noopener">Cookie Disclaimer</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=b01e092a-9721-477f-8356-45576702ff9e" target="_blank" rel="noreferrer noopener">Terms & Conditions</a>
|
||||
<a href="https://app.termly.io/policy-viewer/policy.html?policyUUID=3b5d1928-3f5b-4ee1-b8df-2d6c276b0bcc" target="_blank" rel="noreferrer noopener">Acceptable Use Policy</a>
|
||||
</div>
|
||||
<script type="module" src="./src/main.ts"></script>
|
||||
<script src="./src/touch-controls.ts" type="module"></script>
|
||||
<script src="./src/debug.js" type="module"></script>
|
||||
|
@ -18,7 +18,8 @@
|
||||
"eslint-ci": "eslint .",
|
||||
"docs": "typedoc",
|
||||
"depcruise": "depcruise src",
|
||||
"depcruise:graph": "depcruise src --output-type dot | node dependency-graph.js > dependency-graph.svg"
|
||||
"depcruise:graph": "depcruise src --output-type dot | node dependency-graph.js > dependency-graph.svg",
|
||||
"create-test": "node ./create-test-boilerplate.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.3.0",
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 12 KiB |
@ -1,38 +1,49 @@
|
||||
{
|
||||
"0": {
|
||||
"bc4524": "af5457",
|
||||
"31638c": "324a26",
|
||||
"101010": "101010",
|
||||
"5aa5ce": "40683c",
|
||||
"a5e6ff": "b6d9ac",
|
||||
"7bceef": "789c6e",
|
||||
"ced6ef": "c09e99",
|
||||
"737384": "774644",
|
||||
"ce4252": "af2c4f",
|
||||
"ffffff": "f1dcd8",
|
||||
"8c4231": "420b0c",
|
||||
"ffde4a": "c66f68",
|
||||
"c57b31": "551917",
|
||||
"ffffad": "f4bfb6",
|
||||
"ffde4a": "c66f68",
|
||||
"7bceef": "789c6e",
|
||||
"a5e6ff": "b6d9ac",
|
||||
"737384": "774644",
|
||||
"f7b531": "af5457",
|
||||
"ce4252": "af2c4f",
|
||||
"bc4524": "af5457",
|
||||
"00e5e7": "00e5e7"
|
||||
"c57b31": "551917",
|
||||
"ced6ef": "c09e99"
|
||||
},
|
||||
"1": {
|
||||
"bc4524": "3d325e",
|
||||
"31638c": "143a72",
|
||||
"101010": "101010",
|
||||
"5aa5ce": "4060bc",
|
||||
"a5e6ff": "b4b3ff",
|
||||
"7bceef": "657ddf",
|
||||
"ced6ef": "a8b5dd",
|
||||
"737384": "737384",
|
||||
"ce4252": "b75558",
|
||||
"ffffff": "e5ecff",
|
||||
"8c4231": "17103f",
|
||||
"ffde4a": "534e72",
|
||||
"c57b31": "2a1f50",
|
||||
"ffffad": "87879b",
|
||||
"ffde4a": "534e72",
|
||||
"7bceef": "657ddf",
|
||||
"a5e6ff": "b4b3ff",
|
||||
"f7b531": "3d325e",
|
||||
"ce4252": "b75558",
|
||||
"bc4524": "3d325e",
|
||||
"00e5e7": "00e5e7"
|
||||
"c57b31": "2a1f50",
|
||||
"ced6ef": "a8b5dd"
|
||||
},
|
||||
"2": {
|
||||
"ce4252": "215991",
|
||||
"ffde4a": "f16f40",
|
||||
"ffffad": "ffb274",
|
||||
"737384": "884c43",
|
||||
"c57b31": "761c03",
|
||||
"7bceef": "be3d2f",
|
||||
"8c4231": "5a0700",
|
||||
"5aa5ce": "892722",
|
||||
"8c4232": "761c03",
|
||||
"ffffff": "f5e1d1",
|
||||
"a5e6ff": "dd533a",
|
||||
"f7b531": "bc4524",
|
||||
"ced6ef": "d19e92",
|
||||
"31638c": "610f0e"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 30 KiB |
@ -1017,7 +1017,7 @@
|
||||
"279": [
|
||||
1,
|
||||
1,
|
||||
2
|
||||
1
|
||||
],
|
||||
"280": [
|
||||
0,
|
||||
|
BIN
public/images/ui/icon_lock.png
Normal file
After Width: | Height: | Size: 172 B |
BIN
public/images/ui/icon_stop.png
Normal file
After Width: | Height: | Size: 205 B |
BIN
public/images/ui/legacy/icon_lock.png
Normal file
After Width: | Height: | Size: 172 B |
BIN
public/images/ui/legacy/icon_stop.png
Normal file
After Width: | Height: | Size: 205 B |
@ -841,12 +841,13 @@ export default class BattleScene extends SceneBase {
|
||||
}
|
||||
|
||||
addEnemyPokemon(species: PokemonSpecies, level: integer, trainerSlot: TrainerSlot, boss: boolean = false, dataSource?: PokemonData, postProcess?: (enemyPokemon: EnemyPokemon) => void): EnemyPokemon {
|
||||
if (Overrides.OPP_LEVEL_OVERRIDE > 0) {
|
||||
level = Overrides.OPP_LEVEL_OVERRIDE;
|
||||
}
|
||||
if (Overrides.OPP_SPECIES_OVERRIDE) {
|
||||
species = getPokemonSpecies(Overrides.OPP_SPECIES_OVERRIDE);
|
||||
}
|
||||
|
||||
if (Overrides.OPP_LEVEL_OVERRIDE !== 0) {
|
||||
level = Overrides.OPP_LEVEL_OVERRIDE;
|
||||
// The fact that a Pokemon is a boss or not can change based on its Species and level
|
||||
boss = this.getEncounterBossSegments(this.currentBattle.waveIndex, level, species) > 1;
|
||||
}
|
||||
|
||||
const pokemon = new EnemyPokemon(this, species, level, trainerSlot, boss, dataSource);
|
||||
@ -1327,6 +1328,13 @@ export default class BattleScene extends SceneBase {
|
||||
}
|
||||
|
||||
getEncounterBossSegments(waveIndex: integer, level: integer, species?: PokemonSpecies, forceBoss: boolean = false): integer {
|
||||
if (Overrides.OPP_HEALTH_SEGMENTS_OVERRIDE > 1) {
|
||||
return Overrides.OPP_HEALTH_SEGMENTS_OVERRIDE;
|
||||
} else if (Overrides.OPP_HEALTH_SEGMENTS_OVERRIDE === 1) {
|
||||
// The rest of the code expects to be returned 0 and not 1 if the enemy is not a boss
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (this.gameMode.isDaily && this.gameMode.isWaveFinal(waveIndex)) {
|
||||
return 5;
|
||||
}
|
||||
@ -1791,6 +1799,7 @@ export default class BattleScene extends SceneBase {
|
||||
config = config ?? {};
|
||||
try {
|
||||
const keyDetails = key.split("/");
|
||||
config["volume"] = config["volume"] ?? 1;
|
||||
switch (keyDetails[0]) {
|
||||
case "level_up_fanfare":
|
||||
case "item_fanfare":
|
||||
@ -1800,11 +1809,11 @@ export default class BattleScene extends SceneBase {
|
||||
case "evolution_fanfare":
|
||||
// These sounds are loaded in as BGM, but played as sound effects
|
||||
// When these sounds are updated in updateVolume(), they are treated as BGM however because they are placed in the BGM Cache through being called by playSoundWithoutBGM()
|
||||
config["volume"] = this.masterVolume * this.bgmVolume;
|
||||
config["volume"] *= (this.masterVolume * this.bgmVolume);
|
||||
break;
|
||||
case "battle_anims":
|
||||
case "cry":
|
||||
config["volume"] = this.masterVolume * this.fieldVolume;
|
||||
config["volume"] *= (this.masterVolume * this.fieldVolume);
|
||||
//PRSFX sound files are unusually loud
|
||||
if (keyDetails[1].startsWith("PRSFX- ")) {
|
||||
config["volume"] *= 0.5;
|
||||
@ -1812,10 +1821,10 @@ export default class BattleScene extends SceneBase {
|
||||
break;
|
||||
case "ui":
|
||||
//As of, right now this applies to the "select", "menu_open", "error" sound effects
|
||||
config["volume"] = this.masterVolume * this.uiVolume;
|
||||
config["volume"] *= (this.masterVolume * this.uiVolume);
|
||||
break;
|
||||
case "se":
|
||||
config["volume"] = this.masterVolume * this.seVolume;
|
||||
config["volume"] *= (this.masterVolume * this.seVolume);
|
||||
break;
|
||||
}
|
||||
this.sound.play(key, config);
|
||||
|
@ -847,7 +847,7 @@ export class PostDefendTerrainChangeAbAttr extends PostDefendAbAttr {
|
||||
}
|
||||
|
||||
export class PostDefendContactApplyStatusEffectAbAttr extends PostDefendAbAttr {
|
||||
private chance: integer;
|
||||
public chance: integer;
|
||||
private effects: StatusEffect[];
|
||||
|
||||
constructor(chance: integer, ...effects: StatusEffect[]) {
|
||||
@ -2377,9 +2377,13 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr {
|
||||
pokemon.summonData.moveset = target.getMoveset().map(m => new PokemonMove(m!.moveId, m!.ppUsed, m!.ppUp)); // TODO: are those bangs correct?
|
||||
pokemon.summonData.types = target.getTypes();
|
||||
|
||||
|
||||
pokemon.scene.playSound("battle_anims/PRSFX- Transform");
|
||||
|
||||
pokemon.loadAssets(false).then(() => pokemon.playAnim());
|
||||
pokemon.loadAssets(false).then(() => {
|
||||
pokemon.playAnim();
|
||||
pokemon.updateInfo();
|
||||
});
|
||||
|
||||
pokemon.scene.queueMessage(i18next.t("abilityTriggers:postSummonTransform", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon), targetName: target.name, }));
|
||||
|
||||
@ -2417,7 +2421,7 @@ export class PostSummonWeatherSuppressedFormChangeAbAttr extends PostSummonAbAtt
|
||||
|
||||
/**
|
||||
* Triggers weather-based form change when summoned into an active weather.
|
||||
* Used by Forecast.
|
||||
* Used by Forecast and Flower Gift.
|
||||
* @extends PostSummonAbAttr
|
||||
*/
|
||||
export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr {
|
||||
@ -2440,7 +2444,10 @@ export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr {
|
||||
* @returns whether the form change was triggered
|
||||
*/
|
||||
applyPostSummon(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
|
||||
if (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST) {
|
||||
const isCastformWithForecast = (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST);
|
||||
const isCherrimWithFlowerGift = (pokemon.species.speciesId === Species.CHERRIM && this.ability === Abilities.FLOWER_GIFT);
|
||||
|
||||
if (isCastformWithForecast || isCherrimWithFlowerGift) {
|
||||
if (simulated) {
|
||||
return simulated;
|
||||
}
|
||||
@ -3113,37 +3120,41 @@ export class PostWeatherChangeAbAttr extends AbAttr {
|
||||
|
||||
/**
|
||||
* Triggers weather-based form change when weather changes.
|
||||
* Used by Forecast.
|
||||
* Used by Forecast and Flower Gift.
|
||||
* @extends PostWeatherChangeAbAttr
|
||||
*/
|
||||
export class PostWeatherChangeFormChangeAbAttr extends PostWeatherChangeAbAttr {
|
||||
private ability: Abilities;
|
||||
private formRevertingWeathers: WeatherType[];
|
||||
|
||||
constructor(ability: Abilities) {
|
||||
constructor(ability: Abilities, formRevertingWeathers: WeatherType[]) {
|
||||
super(false);
|
||||
|
||||
this.ability = ability;
|
||||
this.formRevertingWeathers = formRevertingWeathers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls {@linkcode Arena.triggerWeatherBasedFormChangesToNormal | triggerWeatherBasedFormChangesToNormal} when the
|
||||
* weather changed to form-reverting weather, otherwise calls {@linkcode Arena.triggerWeatherBasedFormChanges | triggerWeatherBasedFormChanges}
|
||||
* @param {Pokemon} pokemon the Pokemon that changed the weather
|
||||
* @param {Pokemon} pokemon the Pokemon with this ability
|
||||
* @param passive n/a
|
||||
* @param weather n/a
|
||||
* @param args n/a
|
||||
* @returns whether the form change was triggered
|
||||
*/
|
||||
applyPostWeatherChange(pokemon: Pokemon, passive: boolean, simulated: boolean, weather: WeatherType, args: any[]): boolean {
|
||||
if (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST) {
|
||||
const isCastformWithForecast = (pokemon.species.speciesId === Species.CASTFORM && this.ability === Abilities.FORECAST);
|
||||
const isCherrimWithFlowerGift = (pokemon.species.speciesId === Species.CHERRIM && this.ability === Abilities.FLOWER_GIFT);
|
||||
|
||||
if (isCastformWithForecast || isCherrimWithFlowerGift) {
|
||||
if (simulated) {
|
||||
return simulated;
|
||||
}
|
||||
|
||||
const formRevertingWeathers: WeatherType[] = [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG ];
|
||||
const weatherType = pokemon.scene.arena.weather?.weatherType;
|
||||
|
||||
if (weatherType && formRevertingWeathers.includes(weatherType)) {
|
||||
if (weatherType && this.formRevertingWeathers.includes(weatherType)) {
|
||||
pokemon.scene.arena.triggerWeatherBasedFormChangesToNormal();
|
||||
} else {
|
||||
pokemon.scene.arena.triggerWeatherBasedFormChanges();
|
||||
@ -3447,30 +3458,33 @@ export class MoodyAbAttr extends PostTurnAbAttr {
|
||||
super(true);
|
||||
}
|
||||
/**
|
||||
* Randomly increases one BattleStat by 2 stages and decreases a different BattleStat by 1 stage
|
||||
* Randomly increases one stat stage by 2 and decreases a different stat stage by 1
|
||||
* @param {Pokemon} pokemon Pokemon that has this ability
|
||||
* @param passive N/A
|
||||
* @param simulated true if applying in a simulated call.
|
||||
* @param args N/A
|
||||
* @returns true
|
||||
*
|
||||
* Any BattleStats at +6 or -6 are excluded from being increased or decreased, respectively
|
||||
* If the pokemon already has all BattleStats raised to stage 6, it will only decrease one BattleStat by 1 stage
|
||||
* If the pokemon already has all BattleStats lowered to stage -6, it will only increase one BattleStat by 2 stages
|
||||
* Any stat stages at +6 or -6 are excluded from being increased or decreased, respectively
|
||||
* If the pokemon already has all stat stages raised to 6, it will only decrease one stat stage by 1
|
||||
* If the pokemon already has all stat stages lowered to -6, it will only increase one stat stage by 2
|
||||
*/
|
||||
applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean {
|
||||
const increaseStatArray = EFFECTIVE_STATS.filter(s => pokemon.getStatStage(s) < 6);
|
||||
let decreaseStatArray = EFFECTIVE_STATS.filter(s => pokemon.getStatStage(s) > -6);
|
||||
const canRaise = EFFECTIVE_STATS.filter(s => pokemon.getStatStage(s) < 6);
|
||||
let canLower = EFFECTIVE_STATS.filter(s => pokemon.getStatStage(s) > -6);
|
||||
|
||||
if (!simulated && increaseStatArray.length > 0) {
|
||||
const increaseStat = increaseStatArray[Utils.randInt(increaseStatArray.length)];
|
||||
decreaseStatArray = decreaseStatArray.filter(s => s !== increaseStat);
|
||||
pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2));
|
||||
}
|
||||
if (!simulated && decreaseStatArray.length > 0) {
|
||||
const decreaseStat = decreaseStatArray[Utils.randInt(EFFECTIVE_STATS.length)];
|
||||
pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1));
|
||||
if (!simulated) {
|
||||
if (canRaise.length > 0) {
|
||||
const raisedStat = Utils.randSeedItem(canRaise);
|
||||
canLower = canRaise.filter(s => s !== raisedStat);
|
||||
pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ raisedStat ], 2));
|
||||
}
|
||||
if (canLower.length > 0) {
|
||||
const loweredStat = Utils.randSeedItem(canLower);
|
||||
pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ loweredStat ], -1));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -3676,10 +3690,10 @@ export class PostDancingMoveAbAttr extends PostMoveUsedAbAttr {
|
||||
// If the move is an AttackMove or a StatusMove the Dancer must replicate the move on the source of the Dance
|
||||
if (move.getMove() instanceof AttackMove || move.getMove() instanceof StatusMove) {
|
||||
const target = this.getTarget(dancer, source, targets);
|
||||
dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, target, move, true));
|
||||
dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, target, move, true, true));
|
||||
} else if (move.getMove() instanceof SelfStatusMove) {
|
||||
// If the move is a SelfStatusMove (ie. Swords Dance) the Dancer should replicate it on itself
|
||||
dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, [dancer.getBattlerIndex()], move, true));
|
||||
dancer.scene.unshiftPhase(new MovePhase(dancer.scene, dancer, [dancer.getBattlerIndex()], move, true, true));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -4732,7 +4746,8 @@ function setAbilityRevealed(pokemon: Pokemon): void {
|
||||
*/
|
||||
function getPokemonWithWeatherBasedForms(scene: BattleScene) {
|
||||
return scene.getField(true).filter(p =>
|
||||
p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM
|
||||
(p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM)
|
||||
|| (p.hasAbility(Abilities.FLOWER_GIFT) && p.species.speciesId === Species.CHERRIM)
|
||||
);
|
||||
}
|
||||
|
||||
@ -4931,7 +4946,7 @@ export function initAbilities() {
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.attr(PostSummonFormChangeByWeatherAbAttr, Abilities.FORECAST)
|
||||
.attr(PostWeatherChangeFormChangeAbAttr, Abilities.FORECAST),
|
||||
.attr(PostWeatherChangeFormChangeAbAttr, Abilities.FORECAST, [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG ]),
|
||||
new Ability(Abilities.STICKY_HOLD, 3)
|
||||
.attr(BlockItemTheftAbAttr)
|
||||
.bypassFaint()
|
||||
@ -5124,8 +5139,10 @@ export function initAbilities() {
|
||||
.conditionalAttr(getWeatherCondition(WeatherType.SUNNY || WeatherType.HARSH_SUN), StatMultiplierAbAttr, Stat.SPDEF, 1.5)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.ignorable()
|
||||
.partial(),
|
||||
.attr(PostSummonFormChangeByWeatherAbAttr, Abilities.FLOWER_GIFT)
|
||||
.attr(PostWeatherChangeFormChangeAbAttr, Abilities.FLOWER_GIFT, [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG, WeatherType.HAIL, WeatherType.HEAVY_RAIN, WeatherType.SNOW, WeatherType.RAIN ])
|
||||
.partial() // Should also boosts stats of ally
|
||||
.ignorable(),
|
||||
new Ability(Abilities.BAD_DREAMS, 4)
|
||||
.attr(PostTurnHurtIfSleepingAbAttr),
|
||||
new Ability(Abilities.PICKPOCKET, 5)
|
||||
|
@ -905,6 +905,21 @@ class HappyHourTag extends ArenaTag {
|
||||
}
|
||||
}
|
||||
|
||||
class SafeguardTag extends ArenaTag {
|
||||
constructor(turnCount: integer, sourceId: integer, side: ArenaTagSide) {
|
||||
super(ArenaTagType.SAFEGUARD, turnCount, Moves.SAFEGUARD, sourceId, side);
|
||||
}
|
||||
|
||||
onAdd(arena: Arena): void {
|
||||
arena.scene.queueMessage(i18next.t(`arenaTag:safeguardOnAdd${this.side === ArenaTagSide.PLAYER ? "Player" : this.side === ArenaTagSide.ENEMY ? "Enemy" : ""}`));
|
||||
}
|
||||
|
||||
onRemove(arena: Arena): void {
|
||||
arena.scene.queueMessage(i18next.t(`arenaTag:safeguardOnRemove${this.side === ArenaTagSide.PLAYER ? "Player" : this.side === ArenaTagSide.ENEMY ? "Enemy" : ""}`));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves | undefined, sourceId: integer, targetIndex?: BattlerIndex, side: ArenaTagSide = ArenaTagSide.BOTH): ArenaTag | null {
|
||||
switch (tagType) {
|
||||
case ArenaTagType.MIST:
|
||||
@ -950,6 +965,8 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov
|
||||
return new TailwindTag(turnCount, sourceId, side);
|
||||
case ArenaTagType.HAPPY_HOUR:
|
||||
return new HappyHourTag(turnCount, sourceId, side);
|
||||
case ArenaTagType.SAFEGUARD:
|
||||
return new SafeguardTag(turnCount, sourceId, side);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
@ -788,10 +788,10 @@ export abstract class BattleAnim {
|
||||
targetSprite.pipelineData["tone"] = [ 0.0, 0.0, 0.0, 0.0 ];
|
||||
targetSprite.setAngle(0);
|
||||
if (!this.isHideUser() && userSprite) {
|
||||
userSprite.setVisible(true);
|
||||
this.user?.getSprite().setVisible(true); // using this.user to fix context loss due to isOppAnim swap (#481)
|
||||
}
|
||||
if (!this.isHideTarget() && (targetSprite !== userSprite || !this.isHideUser())) {
|
||||
targetSprite.setVisible(true);
|
||||
this.target?.getSprite().setVisible(true); // using this.target to fix context loss due to isOppAnim swap (#481)
|
||||
}
|
||||
for (const ms of Object.values(spriteCache).flat()) {
|
||||
if (ms) {
|
||||
|
@ -211,7 +211,7 @@ export class TrappedTag extends BattlerTag {
|
||||
|
||||
canAdd(pokemon: Pokemon): boolean {
|
||||
const isGhost = pokemon.isOfType(Type.GHOST);
|
||||
const isTrapped = pokemon.getTag(BattlerTagType.TRAPPED);
|
||||
const isTrapped = pokemon.getTag(TrappedTag);
|
||||
|
||||
return !isTrapped && !isGhost;
|
||||
}
|
||||
@ -244,6 +244,23 @@ export class TrappedTag extends BattlerTag {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* BattlerTag implementing No Retreat's trapping effect.
|
||||
* This is treated separately from other trapping effects to prevent
|
||||
* Ghost-type Pokemon from being able to reuse the move.
|
||||
* @extends TrappedTag
|
||||
*/
|
||||
class NoRetreatTag extends TrappedTag {
|
||||
constructor(sourceId: number) {
|
||||
super(BattlerTagType.NO_RETREAT, BattlerTagLapseType.CUSTOM, 0, Moves.NO_RETREAT, sourceId);
|
||||
}
|
||||
|
||||
/** overrides {@linkcode TrappedTag.apply}, removing the Ghost-type condition */
|
||||
canAdd(pokemon: Pokemon): boolean {
|
||||
return !pokemon.getTag(TrappedTag);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* BattlerTag that represents the {@link https://bulbapedia.bulbagarden.net/wiki/Flinch Flinch} status condition
|
||||
*/
|
||||
@ -749,7 +766,7 @@ export class OctolockTag extends TrappedTag {
|
||||
const shouldLapse = lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType);
|
||||
|
||||
if (shouldLapse) {
|
||||
pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [ Stat.DEF, Stat.SPDEF ], -1));
|
||||
pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), false, [ Stat.DEF, Stat.SPDEF ], -1));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -863,7 +880,7 @@ export abstract class DamagingTrapTag extends TrappedTag {
|
||||
}
|
||||
|
||||
canAdd(pokemon: Pokemon): boolean {
|
||||
return !pokemon.isOfType(Type.GHOST) && !pokemon.findTag(t => t instanceof DamagingTrapTag);
|
||||
return !pokemon.getTag(TrappedTag);
|
||||
}
|
||||
|
||||
lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean {
|
||||
@ -1505,6 +1522,25 @@ export class CritBoostTag extends BattlerTag {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag for the effects of Dragon Cheer, which boosts the critical hit ratio of the user's allies.
|
||||
* @extends {CritBoostTag}
|
||||
*/
|
||||
export class DragonCheerTag extends CritBoostTag {
|
||||
/** The types of the user's ally when the tag is added */
|
||||
public typesOnAdd: Type[];
|
||||
|
||||
constructor() {
|
||||
super(BattlerTagType.CRIT_BOOST, Moves.DRAGON_CHEER);
|
||||
}
|
||||
|
||||
onAdd(pokemon: Pokemon): void {
|
||||
super.onAdd(pokemon);
|
||||
|
||||
this.typesOnAdd = pokemon.getTypes(true);
|
||||
}
|
||||
}
|
||||
|
||||
export class SaltCuredTag extends BattlerTag {
|
||||
private sourceIndex: number;
|
||||
|
||||
@ -1862,6 +1898,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source
|
||||
return new DrowsyTag();
|
||||
case BattlerTagType.TRAPPED:
|
||||
return new TrappedTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
|
||||
case BattlerTagType.NO_RETREAT:
|
||||
return new NoRetreatTag(sourceId);
|
||||
case BattlerTagType.BIND:
|
||||
return new BindTag(turnCount, sourceId);
|
||||
case BattlerTagType.WRAP:
|
||||
@ -1921,6 +1959,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source
|
||||
return new TypeBoostTag(tagType, sourceMove, Type.FIRE, 1.5, false);
|
||||
case BattlerTagType.CRIT_BOOST:
|
||||
return new CritBoostTag(tagType, sourceMove);
|
||||
case BattlerTagType.DRAGON_CHEER:
|
||||
return new DragonCheerTag();
|
||||
case BattlerTagType.ALWAYS_CRIT:
|
||||
case BattlerTagType.IGNORE_ACCURACY:
|
||||
return new BattlerTag(tagType, BattlerTagLapseType.TURN_END, 2, sourceMove);
|
||||
|
@ -13,7 +13,6 @@ import { TrainerType } from "#enums/trainer-type";
|
||||
import { Nature } from "./nature";
|
||||
import { Moves } from "#app/enums/moves.js";
|
||||
import { TypeColor, TypeShadow } from "#app/enums/color.js";
|
||||
import { Gender } from "./gender";
|
||||
import { pokemonEvolutions } from "./pokemon-evolutions";
|
||||
import { pokemonFormChanges } from "./pokemon-forms";
|
||||
|
||||
@ -659,7 +658,6 @@ export class FreshStartChallenge extends Challenge {
|
||||
pokemon.luck = 0; // No luck
|
||||
pokemon.shiny = false; // Not shiny
|
||||
pokemon.variant = 0; // Not shiny
|
||||
pokemon.gender = Gender.MALE; // Starters default to male
|
||||
pokemon.formIndex = 0; // Froakie should be base form
|
||||
pokemon.ivs = [10, 10, 10, 10, 10, 10]; // Default IVs of 10 for all stats
|
||||
return true;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { BattleSpec } from "#enums/battle-spec";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
import {trainerConfigs} from "./trainer-config";
|
||||
import { trainerConfigs } from "./trainer-config";
|
||||
|
||||
export interface TrainerTypeMessages {
|
||||
encounter?: string | string[],
|
||||
@ -707,6 +707,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.ROOD]: [
|
||||
{
|
||||
encounter: [
|
||||
"dialogue:rood.encounter.1",
|
||||
"dialogue:rood.encounter.2",
|
||||
"dialogue:rood.encounter.3",
|
||||
],
|
||||
victory: [
|
||||
"dialogue:rood.victory.1",
|
||||
"dialogue:rood.victory.2",
|
||||
"dialogue:rood.victory.3",
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.FLARE_GRUNT]: [
|
||||
{
|
||||
encounter: [
|
||||
|
@ -1951,6 +1951,13 @@ export class StatusEffectAttr extends MoveEffectAttr {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (user !== target && target.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY)) {
|
||||
if (move.category === MoveCategory.STATUS) {
|
||||
user.scene.queueMessage(i18next.t("moveTriggers:safeguard", { targetName: getPokemonNameWithAffix(target)}));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if ((!pokemon.status || (pokemon.status.effect === this.effect && moveChance < 0))
|
||||
&& pokemon.trySetStatus(this.effect, true, user, this.cureTurn)) {
|
||||
applyPostAttackAbAttrs(ConfusionOnStatusEffectAbAttr, user, target, move, null, false, this.effect);
|
||||
@ -4678,6 +4685,17 @@ export class ConfuseAttr extends AddBattlerTagAttr {
|
||||
constructor(selfTarget?: boolean) {
|
||||
super(BattlerTagType.CONFUSED, selfTarget, false, 2, 5);
|
||||
}
|
||||
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (!this.selfTarget && target.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY)) {
|
||||
if (move.category === MoveCategory.STATUS) {
|
||||
user.scene.queueMessage(i18next.t("moveTriggers:safeguard", { targetName: getPokemonNameWithAffix(target)}));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.apply(user, target, move, args);
|
||||
}
|
||||
}
|
||||
|
||||
export class RechargeAttr extends AddBattlerTagAttr {
|
||||
@ -5907,9 +5925,9 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr {
|
||||
target.summonData.ability = tempAbilityId;
|
||||
|
||||
user.scene.queueMessage(i18next.t("moveTriggers:swappedAbilitiesWithTarget", {pokemonName: getPokemonNameWithAffix(user)}));
|
||||
// Swaps Forecast from Castform
|
||||
// Swaps Forecast/Flower Gift from Castform/Cherrim
|
||||
user.scene.arena.triggerWeatherBasedFormChangesToNormal();
|
||||
// Swaps Forecast to Castform (edge case)
|
||||
// Swaps Forecast/Flower Gift to Castform/Cherrim (edge case)
|
||||
user.scene.arena.triggerWeatherBasedFormChanges();
|
||||
|
||||
return true;
|
||||
@ -6008,6 +6026,7 @@ export class TransformAttr extends MoveEffectAttr {
|
||||
|
||||
user.loadAssets(false).then(() => {
|
||||
user.playAnim();
|
||||
user.updateInfo();
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
@ -6154,6 +6173,57 @@ export class DestinyBondAttr extends MoveEffectAttr {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attribute to apply a battler tag to the target if they have had their stats boosted this turn.
|
||||
* @extends AddBattlerTagAttr
|
||||
*/
|
||||
export class AddBattlerTagIfBoostedAttr extends AddBattlerTagAttr {
|
||||
constructor(tag: BattlerTagType) {
|
||||
super(tag, false, false, 2, 5);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param user {@linkcode Pokemon} using this move
|
||||
* @param target {@linkcode Pokemon} target of this move
|
||||
* @param move {@linkcode Move} being used
|
||||
* @param {any[]} args N/A
|
||||
* @returns true
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (target.turnData.statStagesIncreased) {
|
||||
super.apply(user, target, move, args);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attribute to apply a status effect to the target if they have had their stats boosted this turn.
|
||||
* @extends MoveEffectAttr
|
||||
*/
|
||||
export class StatusIfBoostedAttr extends MoveEffectAttr {
|
||||
public effect: StatusEffect;
|
||||
|
||||
constructor(effect: StatusEffect) {
|
||||
super(true, MoveEffectTrigger.HIT);
|
||||
this.effect = effect;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param user {@linkcode Pokemon} using this move
|
||||
* @param target {@linkcode Pokemon} target of this move
|
||||
* @param move {@linkcode Move} N/A
|
||||
* @param {any[]} args N/A
|
||||
* @returns true
|
||||
*/
|
||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||
if (target.turnData.statStagesIncreased) {
|
||||
target.trySetStatus(this.effect, true, user);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class LastResortAttr extends MoveAttr {
|
||||
getCondition(): MoveConditionFunc {
|
||||
return (user: Pokemon, target: Pokemon, move: Move) => {
|
||||
@ -7080,7 +7150,7 @@ export function initMoves() {
|
||||
.attr(FriendshipPowerAttr, true),
|
||||
new StatusMove(Moves.SAFEGUARD, Type.NORMAL, -1, 25, -1, 0, 2)
|
||||
.target(MoveTarget.USER_SIDE)
|
||||
.unimplemented(),
|
||||
.attr(AddArenaTagAttr, ArenaTagType.SAFEGUARD, 5, true, true),
|
||||
new StatusMove(Moves.PAIN_SPLIT, Type.NORMAL, -1, 20, -1, 0, 2)
|
||||
.attr(HpSplitAttr)
|
||||
.condition(failOnBossCondition),
|
||||
@ -7269,7 +7339,7 @@ export function initMoves() {
|
||||
.attr(RemoveScreensAttr),
|
||||
new StatusMove(Moves.YAWN, Type.NORMAL, -1, 10, -1, 0, 3)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true)
|
||||
.condition((user, target, move) => !target.status),
|
||||
.condition((user, target, move) => !target.status && !target.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY)),
|
||||
new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.getHeldItems().filter(i => i.isTransferrable).length > 0 ? 1.5 : 1)
|
||||
.attr(RemoveHeldItemAttr, false),
|
||||
@ -8619,7 +8689,7 @@ export function initMoves() {
|
||||
.partial(),
|
||||
new SelfStatusMove(Moves.NO_RETREAT, Type.FIGHTING, -1, 5, -1, 0, 8)
|
||||
.attr(StatStageChangeAttr, [ Stat.ATK, Stat.DEF, Stat.SPATK, Stat.SPDEF, Stat.SPD ], 1, true)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, true, true, 1)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.NO_RETREAT, true, false)
|
||||
.condition((user, target, move) => user.getTag(TrappedTag)?.sourceMove !== Moves.NO_RETREAT), // fails if the user is currently trapped by No Retreat
|
||||
new StatusMove(Moves.TAR_SHOT, Type.ROCK, 100, 15, -1, 0, 8)
|
||||
.attr(StatStageChangeAttr, [ Stat.SPD ], -1)
|
||||
@ -8811,10 +8881,10 @@ export function initMoves() {
|
||||
new AttackMove(Moves.SKITTER_SMACK, Type.BUG, MoveCategory.PHYSICAL, 70, 90, 10, 100, 0, 8)
|
||||
.attr(StatStageChangeAttr, [ Stat.SPATK ], -1),
|
||||
new AttackMove(Moves.BURNING_JEALOUSY, Type.FIRE, MoveCategory.SPECIAL, 70, 100, 5, 100, 0, 8)
|
||||
.target(MoveTarget.ALL_NEAR_ENEMIES)
|
||||
.partial(),
|
||||
.attr(StatusIfBoostedAttr, StatusEffect.BURN)
|
||||
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
||||
new AttackMove(Moves.LASH_OUT, Type.DARK, MoveCategory.PHYSICAL, 75, 100, 5, -1, 0, 8)
|
||||
.partial(),
|
||||
.attr(MovePowerMultiplierAttr, (user, _target, _move) => user.turnData.statStagesDecreased ? 2 : 1),
|
||||
new AttackMove(Moves.POLTERGEIST, Type.GHOST, MoveCategory.PHYSICAL, 110, 90, 5, -1, 0, 8)
|
||||
.attr(AttackedByItemAttr)
|
||||
.makesContact(false),
|
||||
@ -9260,12 +9330,11 @@ export function initMoves() {
|
||||
new AttackMove(Moves.HARD_PRESS, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 9)
|
||||
.attr(OpponentHighHpPowerAttr, 100),
|
||||
new StatusMove(Moves.DRAGON_CHEER, Type.DRAGON, -1, 15, -1, 0, 9)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.CRIT_BOOST, false, true)
|
||||
.target(MoveTarget.NEAR_ALLY)
|
||||
.partial(),
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.DRAGON_CHEER, false, true)
|
||||
.target(MoveTarget.NEAR_ALLY),
|
||||
new AttackMove(Moves.ALLURING_VOICE, Type.FAIRY, MoveCategory.SPECIAL, 80, 100, 10, -1, 0, 9)
|
||||
.soundBased()
|
||||
.partial(),
|
||||
.attr(AddBattlerTagIfBoostedAttr, BattlerTagType.CONFUSED)
|
||||
.soundBased(),
|
||||
new AttackMove(Moves.TEMPER_FLARE, Type.FIRE, MoveCategory.PHYSICAL, 75, 100, 10, -1, 0, 9)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => user.getLastXMoves(2)[1]?.result === MoveResult.MISS || user.getLastXMoves(2)[1]?.result === MoveResult.FAIL ? 2 : 1),
|
||||
new AttackMove(Moves.SUPERCELL_SLAM, Type.ELECTRIC, MoveCategory.PHYSICAL, 100, 95, 15, -1, 0, 9)
|
||||
|
@ -66,34 +66,34 @@ export enum FormChangeItem {
|
||||
|
||||
BLUE_ORB = 50,
|
||||
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,
|
||||
ULTRANECROZIUM_Z,
|
||||
|
||||
SHARP_METEORITE = 100,
|
||||
HARD_METEORITE,
|
||||
SMOOTH_METEORITE,
|
||||
GRACIDEA,
|
||||
SHOCK_DRIVE,
|
||||
BURN_DRIVE,
|
||||
CHILL_DRIVE,
|
||||
DOUSE_DRIVE,
|
||||
ULTRANECROZIUM_Z,
|
||||
|
||||
FIST_PLATE = 100,
|
||||
N_SOLARIZER,
|
||||
N_LUNARIZER,
|
||||
WELLSPRING_MASK,
|
||||
HEARTHFLAME_MASK,
|
||||
CORNERSTONE_MASK,
|
||||
FIST_PLATE,
|
||||
SKY_PLATE,
|
||||
TOXIC_PLATE,
|
||||
EARTH_PLATE,
|
||||
@ -129,7 +129,7 @@ export enum FormChangeItem {
|
||||
DRAGON_MEMORY,
|
||||
DARK_MEMORY,
|
||||
FAIRY_MEMORY,
|
||||
BLANK_MEMORY // TODO: Find a potential use for this
|
||||
NORMAL_MEMORY // TODO: Find a potential use for this
|
||||
}
|
||||
|
||||
export type SpeciesFormChangeConditionPredicate = (p: Pokemon) => boolean;
|
||||
@ -359,7 +359,7 @@ export class SpeciesDefaultFormMatchTrigger extends SpeciesFormChangeTrigger {
|
||||
|
||||
/**
|
||||
* Class used for triggering form changes based on weather.
|
||||
* Used by Castform.
|
||||
* Used by Castform and Cherrim.
|
||||
* @extends SpeciesFormChangeTrigger
|
||||
*/
|
||||
export class SpeciesFormChangeWeatherTrigger extends SpeciesFormChangeTrigger {
|
||||
@ -392,7 +392,7 @@ export class SpeciesFormChangeWeatherTrigger extends SpeciesFormChangeTrigger {
|
||||
/**
|
||||
* Class used for reverting to the original form when the weather runs out
|
||||
* or when the user loses the ability/is suppressed.
|
||||
* Used by Castform.
|
||||
* Used by Castform and Cherrim.
|
||||
* @extends SpeciesFormChangeTrigger
|
||||
*/
|
||||
export class SpeciesFormChangeRevertWeatherFormTrigger extends SpeciesFormChangeTrigger {
|
||||
@ -930,6 +930,11 @@ export const pokemonFormChanges: PokemonFormChanges = {
|
||||
new SpeciesFormChange(Species.CASTFORM, "rainy", "", new SpeciesFormChangeActiveTrigger(), true),
|
||||
new SpeciesFormChange(Species.CASTFORM, "snowy", "", new SpeciesFormChangeActiveTrigger(), true),
|
||||
],
|
||||
[Species.CHERRIM]: [
|
||||
new SpeciesFormChange(Species.CHERRIM, "overcast", "sunshine", new SpeciesFormChangeWeatherTrigger(Abilities.FLOWER_GIFT, [ WeatherType.SUNNY, WeatherType.HARSH_SUN ]), true),
|
||||
new SpeciesFormChange(Species.CHERRIM, "sunshine", "overcast", new SpeciesFormChangeRevertWeatherFormTrigger(Abilities.FLOWER_GIFT, [ WeatherType.NONE, WeatherType.SANDSTORM, WeatherType.STRONG_WINDS, WeatherType.FOG, WeatherType.HAIL, WeatherType.HEAVY_RAIN, WeatherType.SNOW, WeatherType.RAIN ]), true),
|
||||
new SpeciesFormChange(Species.CHERRIM, "sunshine", "overcast", new SpeciesFormChangeActiveTrigger(), true),
|
||||
],
|
||||
};
|
||||
|
||||
export function initPokemonForms() {
|
||||
|
@ -22,5 +22,6 @@ export enum ArenaTagType {
|
||||
CRAFTY_SHIELD = "CRAFTY_SHIELD",
|
||||
TAILWIND = "TAILWIND",
|
||||
HAPPY_HOUR = "HAPPY_HOUR",
|
||||
SAFEGUARD = "SAFEGUARD",
|
||||
NO_CRIT = "NO_CRIT"
|
||||
}
|
||||
|
@ -69,5 +69,7 @@ export enum BattlerTagType {
|
||||
GULP_MISSILE_ARROKUDA = "GULP_MISSILE_ARROKUDA",
|
||||
GULP_MISSILE_PIKACHU = "GULP_MISSILE_PIKACHU",
|
||||
BEAK_BLAST_CHARGING = "BEAK_BLAST_CHARGING",
|
||||
SHELL_TRAP = "SHELL_TRAP"
|
||||
SHELL_TRAP = "SHELL_TRAP",
|
||||
DRAGON_CHEER = "DRAGON_CHEER",
|
||||
NO_RETREAT = "NO_RETREAT",
|
||||
}
|
||||
|
@ -339,7 +339,10 @@ export class Arena {
|
||||
*/
|
||||
triggerWeatherBasedFormChanges(): void {
|
||||
this.scene.getField(true).forEach( p => {
|
||||
if (p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM) {
|
||||
const isCastformWithForecast = (p.hasAbility(Abilities.FORECAST) && p.species.speciesId === Species.CASTFORM);
|
||||
const isCherrimWithFlowerGift = (p.hasAbility(Abilities.FLOWER_GIFT) && p.species.speciesId === Species.CHERRIM);
|
||||
|
||||
if (isCastformWithForecast || isCherrimWithFlowerGift) {
|
||||
new ShowAbilityPhase(this.scene, p.getBattlerIndex());
|
||||
this.scene.triggerPokemonFormChange(p, SpeciesFormChangeWeatherTrigger);
|
||||
}
|
||||
@ -351,7 +354,10 @@ export class Arena {
|
||||
*/
|
||||
triggerWeatherBasedFormChangesToNormal(): void {
|
||||
this.scene.getField(true).forEach( p => {
|
||||
if (p.hasAbility(Abilities.FORECAST, false, true) && p.species.speciesId === Species.CASTFORM) {
|
||||
const isCastformWithForecast = (p.hasAbility(Abilities.FORECAST, false, true) && p.species.speciesId === Species.CASTFORM);
|
||||
const isCherrimWithFlowerGift = (p.hasAbility(Abilities.FLOWER_GIFT, false, true) && p.species.speciesId === Species.CHERRIM);
|
||||
|
||||
if (isCastformWithForecast || isCherrimWithFlowerGift) {
|
||||
new ShowAbilityPhase(this.scene, p.getBattlerIndex());
|
||||
return this.scene.triggerPokemonFormChange(p, SpeciesFormChangeRevertWeatherFormTrigger);
|
||||
}
|
||||
|
@ -17,10 +17,10 @@ import { initMoveAnim, loadMoveAnimAssets } from "../data/battle-anims";
|
||||
import { Status, StatusEffect, getRandomStatus } from "../data/status-effect";
|
||||
import { pokemonEvolutions, pokemonPrevolutions, SpeciesFormEvolution, SpeciesEvolutionCondition, FusionSpeciesFormEvolution } from "../data/pokemon-evolutions";
|
||||
import { reverseCompatibleTms, tmSpecies, tmPoolTiers } from "../data/tms";
|
||||
import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoostTag, TypeImmuneTag, getBattlerTag, SemiInvulnerableTag, TypeBoostTag, ExposedTag } from "../data/battler-tags";
|
||||
import { BattlerTag, BattlerTagLapseType, EncoreTag, GroundedTag, HighestStatBoostTag, TypeImmuneTag, getBattlerTag, SemiInvulnerableTag, TypeBoostTag, ExposedTag, DragonCheerTag, CritBoostTag, TrappedTag } from "../data/battler-tags";
|
||||
import { WeatherType } from "../data/weather";
|
||||
import { ArenaTagSide, NoCritTag, WeakenMoveScreenTag } from "../data/arena-tag";
|
||||
import { Ability, AbAttr, StatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, IgnoreOpponentStatStagesAbAttr, MoveImmunityAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldStatMultiplierAbAttrs, FieldMultiplyStatAbAttr, AddSecondStrikeAbAttr, UserFieldStatusEffectImmunityAbAttr, UserFieldBattlerTagImmunityAbAttr, BattlerTagImmunityAbAttr, MoveTypeChangeAbAttr, FullHpResistTypeAbAttr } from "../data/ability";
|
||||
import { Ability, AbAttr, StatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, IgnoreOpponentStatStagesAbAttr, MoveImmunityAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldStatMultiplierAbAttrs, FieldMultiplyStatAbAttr, AddSecondStrikeAbAttr, UserFieldStatusEffectImmunityAbAttr, UserFieldBattlerTagImmunityAbAttr, BattlerTagImmunityAbAttr, MoveTypeChangeAbAttr, FullHpResistTypeAbAttr, applyCheckTrappedAbAttrs, CheckTrappedAbAttr } from "../data/ability";
|
||||
import PokemonData from "../system/pokemon-data";
|
||||
import { BattlerIndex } from "../battle";
|
||||
import { Mode } from "../ui/ui";
|
||||
@ -117,6 +117,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
public maskEnabled: boolean;
|
||||
public maskSprite: Phaser.GameObjects.Sprite | null;
|
||||
|
||||
public usedTMs: Moves[];
|
||||
|
||||
private shinySparkle: Phaser.GameObjects.Sprite;
|
||||
|
||||
constructor(scene: BattleScene, x: number, y: number, species: PokemonSpecies, level: integer, abilityIndex?: integer, formIndex?: integer, gender?: Gender, shiny?: boolean, variant?: Variant, ivs?: integer[], nature?: Nature, dataSource?: Pokemon | PokemonData) {
|
||||
@ -131,9 +133,6 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
this.scene.applyModifiers(HiddenAbilityRateBoosterModifier, true, hiddenAbilityChance);
|
||||
}
|
||||
|
||||
const hasHiddenAbility = !Utils.randSeedInt(hiddenAbilityChance.value);
|
||||
const randAbilityIndex = Utils.randSeedInt(2);
|
||||
|
||||
this.species = species;
|
||||
this.pokeball = dataSource?.pokeball || PokeballType.POKEBALL;
|
||||
this.level = level;
|
||||
@ -144,6 +143,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
this.abilityIndex = abilityIndex; // Use the provided ability index if it is defined
|
||||
} else {
|
||||
// If abilityIndex is not provided, determine it based on species and hidden ability
|
||||
const hasHiddenAbility = !Utils.randSeedInt(hiddenAbilityChance.value);
|
||||
const randAbilityIndex = Utils.randSeedInt(2);
|
||||
if (species.abilityHidden && hasHiddenAbility) {
|
||||
// If the species has a hidden ability and the hidden ability is present
|
||||
this.abilityIndex = 2;
|
||||
@ -194,6 +195,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
this.fusionVariant = dataSource.fusionVariant || 0;
|
||||
this.fusionGender = dataSource.fusionGender;
|
||||
this.fusionLuck = dataSource.fusionLuck;
|
||||
this.usedTMs = dataSource.usedTMs ?? [];
|
||||
} else {
|
||||
this.id = Utils.randSeedInt(4294967296);
|
||||
this.ivs = ivs || Utils.getIvsFromId(this.id);
|
||||
@ -674,11 +676,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
|
||||
/**
|
||||
* Retrieves the entire set of stats of the {@linkcode Pokemon}.
|
||||
* @param ignoreOverride prefer actual stats (`true` by default) or in-battle overriden stats (`false`)
|
||||
* @param bypassSummonData prefer actual stats (`true` by default) or in-battle overriden stats (`false`)
|
||||
* @returns the numeric values of the {@linkcode Pokemon}'s stats
|
||||
*/
|
||||
getStats(ignoreOverride: boolean = true): number[] {
|
||||
if (!ignoreOverride && this.summonData?.stats) {
|
||||
getStats(bypassSummonData: boolean = true): number[] {
|
||||
if (!bypassSummonData && this.summonData?.stats) {
|
||||
return this.summonData.stats;
|
||||
}
|
||||
return this.stats;
|
||||
@ -687,11 +689,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
/**
|
||||
* Retrieves the corresponding {@linkcode PermanentStat} of the {@linkcode Pokemon}.
|
||||
* @param stat the desired {@linkcode PermanentStat}
|
||||
* @param ignoreOverride prefer actual stats (`true` by default) or in-battle overridden stats (`false`)
|
||||
* @param bypassSummonData prefer actual stats (`true` by default) or in-battle overridden stats (`false`)
|
||||
* @returns the numeric value of the desired {@linkcode Stat}
|
||||
*/
|
||||
getStat(stat: PermanentStat, ignoreOverride: boolean = true): number {
|
||||
if (!ignoreOverride && this.summonData && (this.summonData.stats[stat] !== 0)) {
|
||||
getStat(stat: PermanentStat, bypassSummonData: boolean = true): number {
|
||||
if (!bypassSummonData && this.summonData && (this.summonData.stats[stat] !== 0)) {
|
||||
return this.summonData.stats[stat];
|
||||
}
|
||||
return this.stats[stat];
|
||||
@ -703,11 +705,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
* Note that this does nothing if {@linkcode value} is less than 0.
|
||||
* @param stat the desired {@linkcode PermanentStat} to be overwritten
|
||||
* @param value the desired numeric value
|
||||
* @param ignoreOverride write to actual stats (`true` by default) or in-battle overridden stats (`false`)
|
||||
* @param bypassSummonData write to actual stats (`true` by default) or in-battle overridden stats (`false`)
|
||||
*/
|
||||
setStat(stat: PermanentStat, value: number, ignoreOverride: boolean = true): void {
|
||||
setStat(stat: PermanentStat, value: number, bypassSummonData: boolean = true): void {
|
||||
if (value >= 0) {
|
||||
if (!ignoreOverride && this.summonData) {
|
||||
if (!bypassSummonData && this.summonData) {
|
||||
this.summonData.stats[stat] = value;
|
||||
} else {
|
||||
this.stats[stat] = value;
|
||||
@ -768,9 +770,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
critStage.value += 1;
|
||||
}
|
||||
}
|
||||
if (source.getTag(BattlerTagType.CRIT_BOOST)) {
|
||||
critStage.value += 2;
|
||||
const critBoostTag = source.getTag(CritBoostTag);
|
||||
if (critBoostTag) {
|
||||
if (critBoostTag instanceof DragonCheerTag) {
|
||||
critStage.value += critBoostTag.typesOnAdd.includes(Type.DRAGON) ? 2 : 1;
|
||||
} else {
|
||||
critStage.value += 2;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`crit stage: +${critStage.value}`);
|
||||
return critStage.value;
|
||||
}
|
||||
@ -1020,7 +1028,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
if (this.metBiome === -1 && !this.scene.gameMode.isFreshStartChallenge() && !this.scene.gameMode.isDaily) {
|
||||
levelMoves = this.getUnlockedEggMoves().concat(levelMoves);
|
||||
}
|
||||
return levelMoves.filter(lm => !this.moveset.some(m => m?.moveId === lm));
|
||||
if (Array.isArray(this.usedTMs) && this.usedTMs.length > 0) {
|
||||
levelMoves = this.usedTMs.filter(m => !levelMoves.includes(m)).concat(levelMoves);
|
||||
}
|
||||
levelMoves = levelMoves.filter(lm => !this.moveset.some(m => m?.moveId === lm));
|
||||
return levelMoves;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1294,6 +1306,28 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
return !!this.getTag(GroundedTag) || (!this.isOfType(Type.FLYING, true, true) && !this.hasAbility(Abilities.LEVITATE) && !this.getTag(BattlerTagType.MAGNET_RISEN) && !this.getTag(SemiInvulnerableTag));
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether this Pokemon is prevented from running or switching due
|
||||
* to effects from moves and/or abilities.
|
||||
* @param trappedAbMessages `string[]` If defined, ability trigger messages
|
||||
* (e.g. from Shadow Tag) are forwarded through this array.
|
||||
* @param simulated `boolean` if `true`, applies abilities via simulated calls.
|
||||
* @returns
|
||||
*/
|
||||
isTrapped(trappedAbMessages: string[] = [], simulated: boolean = true): boolean {
|
||||
if (this.isOfType(Type.GHOST)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const trappedByAbility = new Utils.BooleanHolder(false);
|
||||
|
||||
this.scene.getEnemyField()!.forEach(enemyPokemon =>
|
||||
applyCheckTrappedAbAttrs(CheckTrappedAbAttr, enemyPokemon, trappedByAbility, this, trappedAbMessages, simulated)
|
||||
);
|
||||
|
||||
return (trappedByAbility.value || !!this.getTag(TrappedTag));
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the type of a move when used by this Pokemon after
|
||||
* type-changing move and ability attributes have applied.
|
||||
@ -1590,13 +1624,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that tries to set a Pokemon shiny based on the trainer's trainer ID and secret ID
|
||||
* Function that tries to set a Pokemon shiny based on the trainer's trainer ID and secret ID.
|
||||
* Endless Pokemon in the end biome are unable to be set to shiny
|
||||
*
|
||||
* The exact mechanic is that it calculates E as the XOR of the player's trainer ID and secret ID
|
||||
* F is calculated as the XOR of the first 16 bits of the Pokemon's ID with the last 16 bits
|
||||
* The XOR of E and F are then compared to the thresholdOverride (default case 32) to see whether or not to generate a shiny
|
||||
* @param thresholdOverride number that is divided by 2^16 (65536) to get the shiny chance
|
||||
* The exact mechanic is that it calculates E as the XOR of the player's trainer ID and secret ID.
|
||||
* F is calculated as the XOR of the first 16 bits of the Pokemon's ID with the last 16 bits.
|
||||
* The XOR of E and F are then compared to the {@linkcode shinyThreshold} (or {@linkcode thresholdOverride} if set) to see whether or not to generate a shiny.
|
||||
* The base shiny odds are {@linkcode baseShinyChance} / 65536
|
||||
* @param thresholdOverride number that is divided by 2^16 (65536) to get the shiny chance, overrides {@linkcode shinyThreshold} if set (bypassing shiny rate modifiers such as Shiny Charm)
|
||||
* @returns true if the Pokemon has been set as a shiny, false otherwise
|
||||
*/
|
||||
trySetShiny(thresholdOverride?: integer): boolean {
|
||||
@ -1611,7 +1646,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
const E = this.scene.gameData.trainerId ^ this.scene.gameData.secretId;
|
||||
const F = rand1 ^ rand2;
|
||||
|
||||
const shinyThreshold = new Utils.IntegerHolder(32);
|
||||
/** `64/65536 -> 1/1024` */
|
||||
const baseShinyChance = 64;
|
||||
const shinyThreshold = new Utils.IntegerHolder(baseShinyChance);
|
||||
if (thresholdOverride === undefined) {
|
||||
if (this.scene.eventManager.isEventActive()) {
|
||||
shinyThreshold.value *= this.scene.eventManager.getShinyMultiplier();
|
||||
@ -1624,9 +1661,6 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
}
|
||||
|
||||
this.shiny = (E ^ F) < shinyThreshold.value;
|
||||
if ((E ^ F) < 32) {
|
||||
console.log("REAL SHINY!!");
|
||||
}
|
||||
|
||||
if (this.shiny) {
|
||||
this.initShinySparkle();
|
||||
@ -2879,6 +2913,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
|
||||
const types = this.getTypes(true, true);
|
||||
|
||||
const defendingSide = this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY;
|
||||
if (sourcePokemon && sourcePokemon !== this && this.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, defendingSide)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (effect) {
|
||||
case StatusEffect.POISON:
|
||||
case StatusEffect.TOXIC:
|
||||
@ -3444,6 +3483,7 @@ export default interface Pokemon {
|
||||
|
||||
export class PlayerPokemon extends Pokemon {
|
||||
public compatibleTms: Moves[];
|
||||
public usedTms: Moves[];
|
||||
|
||||
constructor(scene: BattleScene, species: PokemonSpecies, level: integer, abilityIndex?: integer, formIndex?: integer, gender?: Gender, shiny?: boolean, variant?: Variant, ivs?: integer[], nature?: Nature, dataSource?: Pokemon | PokemonData) {
|
||||
super(scene, 106, 148, species, level, abilityIndex, formIndex, gender, shiny, variant, ivs, nature, dataSource);
|
||||
@ -3467,6 +3507,7 @@ export class PlayerPokemon extends Pokemon {
|
||||
}
|
||||
}
|
||||
this.generateCompatibleTms();
|
||||
this.usedTms = [];
|
||||
}
|
||||
|
||||
initBattleInfo(): void {
|
||||
@ -4264,7 +4305,7 @@ export class EnemyPokemon extends Pokemon {
|
||||
//console.log('damage', damage, 'segment', segmentsBypassed + 1, 'segment size', segmentSize, 'damage needed', Math.round(segmentSize * Math.pow(2, segmentsBypassed + 1)));
|
||||
}
|
||||
|
||||
damage = hpRemainder + Math.round(segmentSize * segmentsBypassed);
|
||||
damage = Utils.toDmgValue(this.hp - hpThreshold + segmentSize * segmentsBypassed);
|
||||
clearedBossSegmentIndex = s - segmentsBypassed;
|
||||
}
|
||||
break;
|
||||
@ -4329,19 +4370,15 @@ export class EnemyPokemon extends Pokemon {
|
||||
}
|
||||
}
|
||||
|
||||
// Increment the amount of stages the chosen stat will be raised
|
||||
let stages = 1;
|
||||
switch (segmentIndex) {
|
||||
case 1:
|
||||
if (this.bossSegments >= 3) {
|
||||
stages++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (this.bossSegments >= 5) {
|
||||
stages++;
|
||||
}
|
||||
break;
|
||||
|
||||
// increase the boost if the boss has at least 3 segments and we passed last shield
|
||||
if (this.bossSegments >= 3 && this.bossSegmentIndex === 1) {
|
||||
stages++;
|
||||
}
|
||||
// increase the boost if the boss has at least 5 segments and we passed the second to last shield
|
||||
if (this.bossSegments >= 5 && this.bossSegmentIndex === 2) {
|
||||
stages++;
|
||||
}
|
||||
|
||||
this.scene.unshiftPhase(new StatStageChangePhase(this.scene, this.getBattlerIndex(), true, [ boostedStat! ], stages, true, true));
|
||||
@ -4401,7 +4438,7 @@ export interface TurnMove {
|
||||
targets?: BattlerIndex[];
|
||||
result: MoveResult;
|
||||
virtual?: boolean;
|
||||
turn?: integer;
|
||||
turn?: number;
|
||||
}
|
||||
|
||||
export interface QueuedMove {
|
||||
@ -4413,9 +4450,9 @@ export interface QueuedMove {
|
||||
export interface AttackMoveResult {
|
||||
move: Moves;
|
||||
result: DamageResult;
|
||||
damage: integer;
|
||||
damage: number;
|
||||
critical: boolean;
|
||||
sourceId: integer;
|
||||
sourceId: number;
|
||||
sourceBattlerIndex: BattlerIndex;
|
||||
}
|
||||
|
||||
@ -4423,7 +4460,7 @@ export class PokemonSummonData {
|
||||
public statStages: number[] = [ 0, 0, 0, 0, 0, 0, 0 ];
|
||||
public moveQueue: QueuedMove[] = [];
|
||||
public disabledMove: Moves = Moves.NONE;
|
||||
public disabledTurns: integer = 0;
|
||||
public disabledTurns: number = 0;
|
||||
public tags: BattlerTag[] = [];
|
||||
public abilitySuppressed: boolean = false;
|
||||
public abilitiesApplied: Abilities[] = [];
|
||||
@ -4440,7 +4477,7 @@ export class PokemonSummonData {
|
||||
}
|
||||
|
||||
export class PokemonBattleData {
|
||||
public hitCount: integer = 0;
|
||||
public hitCount: number = 0;
|
||||
public endured: boolean = false;
|
||||
public berriesEaten: BerryType[] = [];
|
||||
public abilitiesApplied: Abilities[] = [];
|
||||
@ -4449,21 +4486,23 @@ export class PokemonBattleData {
|
||||
|
||||
export class PokemonBattleSummonData {
|
||||
/** The number of turns the pokemon has passed since entering the battle */
|
||||
public turnCount: integer = 1;
|
||||
public turnCount: number = 1;
|
||||
/** The list of moves the pokemon has used since entering the battle */
|
||||
public moveHistory: TurnMove[] = [];
|
||||
}
|
||||
|
||||
export class PokemonTurnData {
|
||||
public flinched: boolean;
|
||||
public acted: boolean;
|
||||
public hitCount: integer;
|
||||
public hitsLeft: integer;
|
||||
public damageDealt: integer = 0;
|
||||
public currDamageDealt: integer = 0;
|
||||
public damageTaken: integer = 0;
|
||||
public flinched: boolean = false;
|
||||
public acted: boolean = false;
|
||||
public hitCount: number;
|
||||
public hitsLeft: number;
|
||||
public damageDealt: number = 0;
|
||||
public currDamageDealt: number = 0;
|
||||
public damageTaken: number = 0;
|
||||
public attacksReceived: AttackMoveResult[] = [];
|
||||
public order: number;
|
||||
public statStagesIncreased: boolean = false;
|
||||
public statStagesDecreased: boolean = false;
|
||||
}
|
||||
|
||||
export enum AiType {
|
||||
|
@ -98,6 +98,8 @@ export class LoadingScene extends SceneBase {
|
||||
this.loadImage("ha_capsule", "ui", "ha_capsule.png");
|
||||
this.loadImage("champion_ribbon", "ui", "champion_ribbon.png");
|
||||
this.loadImage("icon_spliced", "ui");
|
||||
this.loadImage("icon_lock", "ui", "icon_lock.png");
|
||||
this.loadImage("icon_stop", "ui", "icon_stop.png");
|
||||
this.loadImage("icon_tera", "ui");
|
||||
this.loadImage("type_tera", "ui");
|
||||
this.loadAtlas("type_bgs", "ui");
|
||||
|
@ -47,5 +47,11 @@
|
||||
"tailwindOnRemovePlayer": "Der Rückenwind auf deiner Seite hat sich gelegt!",
|
||||
"tailwindOnRemoveEnemy": "Der Rückenwind auf gegnerischer Seite hat sich gelegt!",
|
||||
"happyHourOnAdd": "Goldene Zeiten sind angebrochen!",
|
||||
"happyHourOnRemove": "Die goldenen Zeiten sind vorbei!"
|
||||
"happyHourOnRemove": "Die goldenen Zeiten sind vorbei!",
|
||||
"safeguardOnAdd": "Das ganze Feld wird von einem Schleier umhüllt!",
|
||||
"safeguardOnAddPlayer": "Das Team des Anwenders wird von einem Schleier umhüllt!",
|
||||
"safeguardOnAddEnemy": "Das gegnerische Team wird von einem Schleier umhüllt!",
|
||||
"safeguardOnRemove": "Der mystische Schleier, der das ganze Feld umgab, hat sich gelüftet!",
|
||||
"safeguardOnRemovePlayer": "Der mystische Schleier, der dein Team umgab, hat sich gelüftet!",
|
||||
"safeguardOnRemoveEnemy": "Der mystische Schleier, der das gegnerische Team umgab, hat sich gelüftet!"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"ending": "@c{smile}Oh? Du hast gewonnen?@d{96} @c{smile_eclosed}Ich schätze, das hätte ich wissen sollen.\n$Aber, du bist jetzt zurück.\n$@c{smile}Es ist vorbei.@d{64} Du hast die Schleife beendet.\n$@c{serious_smile_fists}Du hast auch deinen Traum erfüllt, nicht wahr?\nDu hast nicht einmal verloren.\n$@c{neutral}Ich bin der Einzige, der sich daran erinnern wird, was du getan hast.@d{96}\n$Ich schätze, das ist in Ordnung, oder?\n$@c{serious_smile_fists}Deine Legende wird immer in unseren Herzen weiterleben.\n$@c{smile_eclosed}Wie auch immer, ich habe genug von diesem Ort, oder nicht? Lass uns nach Hause gehen.\n$@c{serious_smile_fists}Vielleicht können wir, wenn wir zurück sind, noch einen Kampf haben?\n$Wenn du dazu bereit bist.",
|
||||
"ending_female": "@c{shock}Du bist zurück?@d{32} Bedeutet das…@d{96} du hast gewonnen?!\n$@c{smile_ehalf}Ich hätte wissen sollen, dass du es in dir hast.\n$@c{smile_eclosed}Natürlich… ich hatte immer dieses Gefühl.\n$@c{smile}Es ist jetzt vorbei, richtig? Du hast die Schleife beendet.\n$@c{smile_ehalf}Du hast auch deinen Traum erfüllt, nicht wahr?\n$Du hast nicht einmal verloren.\n$Ich werde die Einzige sein, die sich daran erinnert, was du getan hast.\n$@c{angry_mopen}Ich werde versuchen, es nicht zu vergessen!\n$@c{smile_wave_wink}Nur ein Scherz!@d{64} @c{smile}Ich würde es nie vergessen.@d{32}\n$Deine Legende wird in unseren Herzen weiterleben.\n$@c{smile_wave}Wie auch immer,@d{64} es wird spät…@d{96} denke ich?\nEs ist schwer zu sagen an diesem Ort.\n$Lass uns nach Hause gehen. \n$@c{smile_wave_wink}Vielleicht können wir morgen noch einen Kampf haben, der alten Zeiten willen?",
|
||||
"ending": "@c{shock}Du bist zurück?@d{32} Bedeutet das…@d{96} du hast gewonnen?!\n$@c{smile_ehalf}Ich hätte wissen sollen, dass du es in dir hast.\n$@c{smile_eclosed}Natürlich… ich hatte immer dieses Gefühl.\n$@c{smile}Es ist jetzt vorbei, richtig? Du hast die Schleife beendet.\n$@c{smile_ehalf}Du hast auch deinen Traum erfüllt, nicht wahr?\n$Du hast nicht einmal verloren.\n$Ich werde die Einzige sein, die sich daran erinnert, was du getan hast.\n$@c{angry_mopen}Ich werde versuchen, es nicht zu vergessen!\n$@c{smile_wave_wink}Nur ein Scherz!@d{64} @c{smile}Ich würde es nie vergessen.@d{32}\n$Deine Legende wird in unseren Herzen weiterleben.\n$@c{smile_wave}Wie auch immer,@d{64} es wird spät…@d{96} denke ich?\nEs ist schwer zu sagen an diesem Ort.\n$Lass uns nach Hause gehen. \n$@c{smile_wave_wink}Vielleicht können wir morgen noch einen Kampf haben, der alten Zeiten willen?",
|
||||
"ending_female": "@c{smile}Oh? Du hast gewonnen?@d{96} @c{smile_eclosed}Ich schätze, das hätte ich wissen sollen.\n$Aber, du bist jetzt zurück.\n$@c{smile}Es ist vorbei.@d{64} Du hast die Schleife beendet.\n$@c{serious_smile_fists}Du hast auch deinen Traum erfüllt, nicht wahr?\nDu hast nicht einmal verloren.\n$@c{neutral}Ich bin der Einzige, der sich daran erinnern wird, was du getan hast.@d{96}\n$Ich schätze, das ist in Ordnung, oder?\n$@c{serious_smile_fists}Deine Legende wird immer in unseren Herzen weiterleben.\n$@c{smile_eclosed}Wie auch immer, ich habe genug von diesem Ort, oder nicht? Lass uns nach Hause gehen.\n$@c{serious_smile_fists}Vielleicht können wir, wenn wir zurück sind, noch einen Kampf haben?\n$Wenn du dazu bereit bist.",
|
||||
"ending_endless": "Glückwunsch! Du hast das aktuelle Ende erreicht!\nWir arbeiten an mehr Spielinhalten.",
|
||||
"ending_name": "Entwickler"
|
||||
}
|
||||
|
@ -1403,19 +1403,19 @@
|
||||
"1": "Ich muss dein Potenzial als Trainer und die Stärke der Pokémon sehen, die mit dir kämpfen!",
|
||||
"2": "Los geht's! Dies sind meine Gesteins-Pokémon, mein ganzer Stolz!",
|
||||
"3": "Gesteins-Pokémon sind einfach die besten!",
|
||||
"4": "Ich muss dein Potenzial als Trainer und die Stärke der Pokémon sehen, die mit dir kämpfen!"
|
||||
"4": "Tag für Tag grabe ich hier nach Fossilien.\n$Die viele Arbeit hat meine Pokémon felsenfest gemacht\nund das wirst du jetzt im Kampf zu spüren bekommen!"
|
||||
},
|
||||
"victory": {
|
||||
"1": "W-was? Das kann nicht sein! Meine total tranierten Pokémon!",
|
||||
"2": "…Wir haben die Kontrolle verloren. Beim nächsten Mal fordere ich dich\n$zu einem Fossilien-Ausgrabungswettbewerb heraus.",
|
||||
"3": "Mit deinem Können ist es nur natürlich, dass du gewinnst.",
|
||||
"4": "W-was?! Das kann nicht sein! Selbst das war nicht genug?",
|
||||
"5": "Ich habe es vermasselt."
|
||||
"4": "W-was?! Das kann nicht sein! Selbst das war nicht genug?"
|
||||
},
|
||||
"defeat": {
|
||||
"1": "Siehst du? Ich bin stolz auf meinen steinigen Kampfstil!",
|
||||
"2": "Danke! Der Kampf hat mir Vertrauen gegeben, dass ich vielleicht meinen Vater besiegen kann!",
|
||||
"3": "Ich fühle mich, als hätte ich gerade einen wirklich hartnäckigen Felsen durchbrochen!"
|
||||
"3": "Na, was sagst du jetzt? Meine felsenfesten Pokémon waren hart genug für dich, was?",
|
||||
"4": "Ich wusste, dass ich gewinnen würde!"
|
||||
}
|
||||
},
|
||||
"morty": {
|
||||
|
@ -598,6 +598,6 @@
|
||||
"DRAGON_MEMORY": "Drachen-Disc",
|
||||
"DARK_MEMORY": "Unlicht-Disc",
|
||||
"FAIRY_MEMORY": "Feen-Disc",
|
||||
"BLANK_MEMORY": "Leere-Disc"
|
||||
"NORMAL_MEMORY": "Normal-Disc"
|
||||
}
|
||||
}
|
||||
|
@ -65,5 +65,6 @@
|
||||
"suppressAbilities": "Die Fähigkeit von {{pokemonName}} wirkt nicht mehr!",
|
||||
"revivalBlessing": "{{pokemonName}} ist wieder fit und kampfbereit!",
|
||||
"swapArenaTags": "{{pokemonName}} hat die Effekte, die auf den beiden Seiten des Kampffeldes wirken, miteinander getauscht!",
|
||||
"exposedMove": "{{pokemonName}} erkennt {{targetPokemonName}}!"
|
||||
"exposedMove": "{{pokemonName}} erkennt {{targetPokemonName}}!",
|
||||
"safeguard": "{{targetName}} wird durch Bodyguard geschützt!"
|
||||
}
|
||||
|
@ -10,5 +10,5 @@
|
||||
"eternamaxChange": "{{preName}} hat sich zu {{pokemonName}} unendynamaximiert!",
|
||||
"revertChange": "{{pokemonName}} hat seine ursprüngliche Form zurückerlangt!",
|
||||
"formChange": "{{preName}} hat seine Form geändert!",
|
||||
"disguiseChange": "Its disguise served it as a decoy!"
|
||||
"disguiseChange": "Sein Kostüm hat die Attacke absorbiert!"
|
||||
}
|
@ -1,268 +0,0 @@
|
||||
{
|
||||
"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_STAT_STAGE": {
|
||||
"name": "Teamwork",
|
||||
"description": "Baton pass to another party member with at least one stat stage maxed out"
|
||||
},
|
||||
"MAX_FRIENDSHIP": {
|
||||
"name": "Friendmaxxing",
|
||||
"description": "Reach max friendship on a Pokémon"
|
||||
},
|
||||
"MEGA_EVOLVE": {
|
||||
"name": "Megamorph",
|
||||
"description": "Mega evolve a Pokémon"
|
||||
},
|
||||
"GIGANTAMAX": {
|
||||
"name": "Absolute Unit",
|
||||
"description": "Gigantamax a Pokémon"
|
||||
},
|
||||
"TERASTALLIZE": {
|
||||
"name": "STAB Enthusiast",
|
||||
"description": "Terastallize a Pokémon"
|
||||
},
|
||||
"STELLAR_TERASTALLIZE": {
|
||||
"name": "The Hidden Type",
|
||||
"description": "Stellar Terastallize a Pokémon"
|
||||
},
|
||||
"SPLICE": {
|
||||
"name": "Infinite Fusion",
|
||||
"description": "Splice two Pokémon together with DNA Splicers"
|
||||
},
|
||||
"MINI_BLACK_HOLE": {
|
||||
"name": "A Hole Lot of Items",
|
||||
"description": "Acquire a Mini Black Hole"
|
||||
},
|
||||
"CATCH_MYTHICAL": {
|
||||
"name": "Mythical",
|
||||
"description": "Catch a mythical Pokémon"
|
||||
},
|
||||
"CATCH_SUB_LEGENDARY": {
|
||||
"name": "(Sub-)Legendary",
|
||||
"description": "Catch a sub-legendary Pokémon"
|
||||
},
|
||||
"CATCH_LEGENDARY": {
|
||||
"name": "Legendary",
|
||||
"description": "Catch a legendary Pokémon"
|
||||
},
|
||||
"SEE_SHINY": {
|
||||
"name": "Shiny",
|
||||
"description": "Find a shiny Pokémon in the wild"
|
||||
},
|
||||
"SHINY_PARTY": {
|
||||
"name": "That's Dedication",
|
||||
"description": "Have a full party of shiny Pokémon"
|
||||
},
|
||||
"HATCH_MYTHICAL": {
|
||||
"name": "Mythical Egg",
|
||||
"description": "Hatch a mythical Pokémon from an egg"
|
||||
},
|
||||
"HATCH_SUB_LEGENDARY": {
|
||||
"name": "Sub-Legendary Egg",
|
||||
"description": "Hatch a sub-legendary Pokémon from an egg"
|
||||
},
|
||||
"HATCH_LEGENDARY": {
|
||||
"name": "Legendary Egg",
|
||||
"description": "Hatch a legendary Pokémon from an egg"
|
||||
},
|
||||
"HATCH_SHINY": {
|
||||
"name": "Shiny Egg",
|
||||
"description": "Hatch a shiny Pokémon from an egg"
|
||||
},
|
||||
"HIDDEN_ABILITY": {
|
||||
"name": "Hidden Potential",
|
||||
"description": "Catch a Pokémon with a hidden ability"
|
||||
},
|
||||
"PERFECT_IVS": {
|
||||
"name": "Certificate of Authenticity",
|
||||
"description": "Get perfect IVs on a Pokémon"
|
||||
},
|
||||
"CLASSIC_VICTORY": {
|
||||
"name": "Undefeated",
|
||||
"description": "Beat the game in classic mode"
|
||||
},
|
||||
"UNEVOLVED_CLASSIC_VICTORY": {
|
||||
"name": "Bring Your Child To Work Day",
|
||||
"description": "Beat the game in Classic Mode with at least one unevolved party member."
|
||||
},
|
||||
"MONO_GEN_ONE": {
|
||||
"name": "The Original Rival",
|
||||
"description": "Complete the generation one only challenge."
|
||||
},
|
||||
"MONO_GEN_TWO": {
|
||||
"name": "Generation 1.5",
|
||||
"description": "Complete the generation two only challenge."
|
||||
},
|
||||
"MONO_GEN_THREE": {
|
||||
"name": "Too much water?",
|
||||
"description": "Complete the generation three only challenge."
|
||||
},
|
||||
"MONO_GEN_FOUR": {
|
||||
"name": "Is she really the hardest?",
|
||||
"description": "Complete the generation four only challenge."
|
||||
},
|
||||
"MONO_GEN_FIVE": {
|
||||
"name": "All Original",
|
||||
"description": "Complete the generation five only challenge."
|
||||
},
|
||||
"MONO_GEN_SIX": {
|
||||
"name": "Almost Royalty",
|
||||
"description": "Complete the generation six only challenge."
|
||||
},
|
||||
"MONO_GEN_SEVEN": {
|
||||
"name": "Only Technically",
|
||||
"description": "Complete the generation seven only challenge."
|
||||
},
|
||||
"MONO_GEN_EIGHT": {
|
||||
"name": "A Champion Time!",
|
||||
"description": "Complete the generation eight only challenge."
|
||||
},
|
||||
"MONO_GEN_NINE": {
|
||||
"name": "She was going easy on you",
|
||||
"description": "Complete the generation nine only challenge."
|
||||
},
|
||||
"MonoType": {
|
||||
"description": "Complete the {{type}} monotype challenge."
|
||||
},
|
||||
"MONO_NORMAL": {
|
||||
"name": "Extra Ordinary"
|
||||
},
|
||||
"MONO_FIGHTING": {
|
||||
"name": "I Know Kung Fu"
|
||||
},
|
||||
"MONO_FLYING": {
|
||||
"name": "Angry Birds"
|
||||
},
|
||||
"MONO_POISON": {
|
||||
"name": "Kanto's Favourite"
|
||||
},
|
||||
"MONO_GROUND": {
|
||||
"name": "Forecast: Earthquakes"
|
||||
},
|
||||
"MONO_ROCK": {
|
||||
"name": "Brock Hard"
|
||||
},
|
||||
"MONO_BUG": {
|
||||
"name": "You Like Jazz?"
|
||||
},
|
||||
"MONO_GHOST": {
|
||||
"name": "Who You Gonna Call?"
|
||||
},
|
||||
"MONO_STEEL": {
|
||||
"name": "Iron Giant"
|
||||
},
|
||||
"MONO_FIRE": {
|
||||
"name": "I Cast Fireball!"
|
||||
},
|
||||
"MONO_WATER": {
|
||||
"name": "When It Rains, It Pours"
|
||||
},
|
||||
"MONO_GRASS": {
|
||||
"name": "Can't Touch This"
|
||||
},
|
||||
"MONO_ELECTRIC": {
|
||||
"name": "Aim For The Horn!"
|
||||
},
|
||||
"MONO_PSYCHIC": {
|
||||
"name": "Big Brain Energy"
|
||||
},
|
||||
"MONO_ICE": {
|
||||
"name": "Walking On Thin Ice"
|
||||
},
|
||||
"MONO_DRAGON": {
|
||||
"name": "Pseudo-Legend Club"
|
||||
},
|
||||
"MONO_DARK": {
|
||||
"name": "It's Just A Phase"
|
||||
},
|
||||
"MONO_FAIRY": {
|
||||
"name": "Hey! Listen!"
|
||||
},
|
||||
"FRESH_START": {
|
||||
"name": "First Try!",
|
||||
"description": "Complete the Fresh Start challenge."
|
||||
},
|
||||
"INVERSE_BATTLE": {
|
||||
"name": "Mirror rorriM",
|
||||
"description": "Complete the Inverse Battle challenge.\n.egnellahc elttaB esrevnI eht etelpmoC"
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"title": "Challenge Modifiers",
|
||||
"illegalEvolution": "{{pokemon}} changed into an ineligble pokémon\nfor this challenge!",
|
||||
"noneSelected": "None Selected",
|
||||
"singleGeneration": {
|
||||
"name": "Mono Gen",
|
||||
"desc": "You can only use Pokémon from Generation {{gen}}.",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"ending": "@c{smile}Oh? You won?@d{96} @c{smile_eclosed}I guess I should've known.\nBut, you're back now.\n$@c{smile}It's over.@d{64} You ended the loop.\n$@c{serious_smile_fists}You fulfilled your dream too, didn't you?\nYou didn't lose even once.\n$@c{neutral}I'm the only one who'll remember what you did.@d{96}\nI guess that's okay, isn't it?\n$@c{serious_smile_fists}Your legend will always live on in our hearts.\n$@c{smile_eclosed}Anyway, I've had about enough of this place, haven't you? Let's head home.\n$@c{serious_smile_fists}Maybe when we get back, we can have another battle?\nIf you're up to it.",
|
||||
"ending_female": "@c{shock}You're back?@d{32} Does that mean…@d{96} you won?!\n@c{smile_ehalf}I should have known you had it in you.\n$@c{smile_eclosed}Of course… I always had that feeling.\n@c{smile}It's over now, right? You ended the loop.\n$@c{smile_ehalf}You fulfilled your dream too, didn't you?\nYou didn't lose even once.\n$I'll be the only one to remember what you did.\n@c{angry_mopen}I'll try not to forget!\n$@c{smile_wave_wink}Just kidding!@d{64} @c{smile}I'd never forget.@d{32}\nYour legend will live on in our hearts.\n$@c{smile_wave}Anyway,@d{64} it's getting late…@d{96} I think?\nIt's hard to tell in this place.\n$Let's go home. @c{smile_wave_wink}Maybe tomorrow, we can have another battle, for old time's sake?",
|
||||
"ending": "@c{shock}You're back?@d{32} Does that mean…@d{96} you won?!\n@c{smile_ehalf}I should have known you had it in you.\n$@c{smile_eclosed}Of course… I always had that feeling.\n@c{smile}It's over now, right? You ended the loop.\n$@c{smile_ehalf}You fulfilled your dream too, didn't you?\nYou didn't lose even once.\n$I'll be the only one to remember what you did.\n@c{angry_mopen}I'll try not to forget!\n$@c{smile_wave_wink}Just kidding!@d{64} @c{smile}I'd never forget.@d{32}\nYour legend will live on in our hearts.\n$@c{smile_wave}Anyway,@d{64} it's getting late…@d{96} I think?\nIt's hard to tell in this place.\n$Let's go home. @c{smile_wave_wink}Maybe tomorrow, we can have another battle, for old time's sake?",
|
||||
"ending_female": "@c{smile}Oh? You won?@d{96} @c{smile_eclosed}I guess I should've known.\nBut, you're back now.\n$@c{smile}It's over.@d{64} You ended the loop.\n$@c{serious_smile_fists}You fulfilled your dream too, didn't you?\nYou didn't lose even once.\n$@c{neutral}I'm the only one who'll remember what you did.@d{96}\nI guess that's okay, isn't it?\n$@c{serious_smile_fists}Your legend will always live on in our hearts.\n$@c{smile_eclosed}Anyway, I've had about enough of this place, haven't you? Let's head home.\n$@c{serious_smile_fists}Maybe when we get back, we can have another battle?\nIf you're up to it.",
|
||||
"ending_endless": "Congratulations on reaching the current end!\nMore content is coming soon.",
|
||||
"ending_name": "Devs"
|
||||
}
|
||||
}
|
||||
|
@ -699,6 +699,7 @@
|
||||
"encounter": {
|
||||
"1": "I'll fight you with all I have to wipe you out!",
|
||||
"2": "I don't care if you're a kid or what. I'll send you flying if you threaten us!",
|
||||
"2_female": "I don't care if you're a kid or what. I'll send you flying if you threaten us!",
|
||||
"3": "I was told to turn away Trainers, whomever they might be!",
|
||||
"4": "I'll show you the power of Aether Paradise!",
|
||||
"5": "Now that you've learned of the darkness at the heart of Aether Paradise, we'll need you to conveniently disappear!"
|
||||
@ -715,11 +716,13 @@
|
||||
"encounter": {
|
||||
"1": "I, Branch Chief Faba, shall show you the harshness of the real world!",
|
||||
"2": "The man who is called Aether Paradise's last line of defense is to battle a mere child?",
|
||||
"2_female": "The man who is called Aether Paradise's last line of defense is to battle a mere child?",
|
||||
"3": "I, Faba, am the Aether Branch Chief. The only one in the world, I'm irreplaceable."
|
||||
},
|
||||
"victory": {
|
||||
"1": "Aiyee!",
|
||||
"2": "H-h-how can this be?! How could this child...",
|
||||
"2_female": "H-h-how can this be?! How could this child...",
|
||||
"3": "This is why... This is why I can't bring myself to like children."
|
||||
}
|
||||
},
|
||||
@ -727,9 +730,12 @@
|
||||
"encounter": {
|
||||
"1": "We're not bad-we're just hard!",
|
||||
"2": "You want some? That's how we say hello! Nice knowing you, punks!",
|
||||
"2_female": "You want some? That's how we say hello! Nice knowing you, punks!",
|
||||
"3": "We're just a bunch of guys and gals with a great interest in other people's Pokémon!",
|
||||
"4": "Why you trying to act hard when we're already hard as bones out here, homie?",
|
||||
"5": "Team Skull represent! We can't pay the rent! Had a lot of fun, but our youth was misspent!"
|
||||
"4_female": "Why you trying to act hard when we're already hard as bones out here, homie?",
|
||||
"5": "Team Skull represent! We can't pay the rent! Had a lot of fun, but our youth was misspent!",
|
||||
"5_female": "Team Skull represent! We can't pay the rent! Had a lot of fun, but our youth was misspent!"
|
||||
},
|
||||
"victory": {
|
||||
"1": "Huh? Is it over already?",
|
||||
@ -742,11 +748,13 @@
|
||||
"plumeria": {
|
||||
"encounter": {
|
||||
"1": " ...Hmph. You don't look like anything special to me.",
|
||||
"2": "It takes these dumb Grunts way too long to deal with you kids..",
|
||||
"1_female": " ...Hmph. You don't look like anything special to me.",
|
||||
"2": "It takes these dumb Grunts way too long to deal with you kids...",
|
||||
"3": "Mess with anyone in Team Skull, and I'll show you how serious I can get."
|
||||
},
|
||||
"victory": {
|
||||
"1": "Hmmph! You're pretty strong. I'll give you that.",
|
||||
"1_female": "Hmmph! You're pretty strong. I'll give you that.",
|
||||
"2": "Hmmph. Guess you are pretty tough. Now I understand why my Grunts waste so much time battling kids.",
|
||||
"3": "Hmmph! I guess I just have to hold that loss."
|
||||
}
|
||||
@ -755,6 +763,7 @@
|
||||
"encounter": {
|
||||
"1": "It looks like this is the end of the line for you!",
|
||||
"2": "You are a trainer aren't you? I'm afraid that doesn't give you the right to interfere in our work.",
|
||||
"2_female": "You are a trainer aren't you? I'm afraid that doesn't give you the right to interfere in our work.",
|
||||
"3": "I'm from Macro Cosmos Insurance! Do you have a life insurance policy?"
|
||||
},
|
||||
"victory": {
|
||||
@ -772,6 +781,7 @@
|
||||
"victory": {
|
||||
"1": "*sigh* I wasn't able to win... Oleana...you really are a hopeless woman.",
|
||||
"2": "Arghhh! This is inexcusable... What was I thinking... Any trainer who's made it this far would be no pushover..",
|
||||
"2_female": "Arghhh! This is inexcusable... What was I thinking... Any trainer who's made it this far would be no pushover..",
|
||||
"3": "*sigh* I am one tired Oleana..."
|
||||
}
|
||||
},
|
||||
@ -1479,21 +1489,21 @@
|
||||
"1_female": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!",
|
||||
"2": "Here goes! These are my rocking Pokémon, my pride and joy!",
|
||||
"3": "Rock-type Pokémon are simply the best!",
|
||||
"4": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!",
|
||||
"4_female": "I need to see your potential as a Trainer. And, I'll need to see the toughness of the Pokémon that battle with you!"
|
||||
"4": "Every day, I toughened up my Pokémon by digging up Fossils nonstop.\n$Could I show you how tough I made them in a battle?",
|
||||
"4_female": "Every day, I toughened up my Pokémon by digging up Fossils nonstop.\n$Could I show you how tough I made them in a battle?"
|
||||
},
|
||||
"victory": {
|
||||
"1": "W-what? That can't be! My buffed-up Pokémon!",
|
||||
"2": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.",
|
||||
"2_female": "…We lost control there. Next time I'd like to challenge you to a Fossil-digging race underground.",
|
||||
"3": "With skill like yours, it's natural for you to win.",
|
||||
"4": "Wh-what?! It can't be! Even that wasn't enough?",
|
||||
"5": "I blew it."
|
||||
"4": "Wh-what?! It can't be! Even that wasn't enough?"
|
||||
},
|
||||
"defeat": {
|
||||
"1": "See? I'm proud of my rocking battle style!",
|
||||
"2": "Thanks! The battle gave me confidence that I may be able to beat my dad!",
|
||||
"3": "I feel like I just smashed through a really stubborn boulder!"
|
||||
"3": "See? These are my rocking Pokémon, my pride and joy!",
|
||||
"4": "I knew I would win!"
|
||||
}
|
||||
},
|
||||
"morty": {
|
||||
|
@ -24,6 +24,7 @@
|
||||
"linkGoogle": "Link Google",
|
||||
"unlinkGoogle": "Unlink Google",
|
||||
"cancel": "Cancel",
|
||||
"donate": "Donate",
|
||||
"losingProgressionWarning": "You will lose any progress since the beginning of the battle. Proceed?",
|
||||
"noEggs": "You are not hatching\nany eggs at the moment!"
|
||||
}
|
@ -437,6 +437,6 @@
|
||||
"DRAGON_MEMORY": "Dragon Memory",
|
||||
"DARK_MEMORY": "Dark Memory",
|
||||
"FAIRY_MEMORY": "Fairy Memory",
|
||||
"BLANK_MEMORY": "Blank Memory"
|
||||
"NORMAL_MEMORY": "Normal Memory"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,8 @@
|
||||
{}
|
||||
{
|
||||
"safeguardOnAdd": "¡Todos los Pokémon están protegidos por Velo Sagrado!",
|
||||
"safeguardOnAddPlayer": "¡Tu equipo se ha protegido con Velo Sagrado!",
|
||||
"safeguardOnAddEnemy": "¡El equipo enemigo se ha protegido con Velo Sagrado!",
|
||||
"safeguardOnRemove": "¡Velo Sagrado dejó de hacer efecto!",
|
||||
"safeguardOnRemovePlayer": "El efecto de Velo Sagrado en tu equipo se ha disipado.",
|
||||
"safeguardOnRemoveEnemy": "El efecto de Velo Sagrado en el equipo enemigo se ha disipado."
|
||||
}
|
@ -1,95 +1,99 @@
|
||||
{
|
||||
"music": "Música: ",
|
||||
"missing_entries": "{{name}}",
|
||||
"battle_kanto_champion": "B2W2 - ¡Vs Campeón de Kanto!",
|
||||
"battle_johto_champion": "B2W2 - ¡Vs Campeón de Johto!",
|
||||
"battle_hoenn_champion_g5": "B2W2 - ¡Vs Campeón de Hoenn!",
|
||||
"battle_hoenn_champion_g6": "ORAS - ¡Vs Campeón de Hoenn!",
|
||||
"battle_sinnoh_champion": "B2W2 - ¡Vs Campeón de Sinnoh!",
|
||||
"battle_champion_alder": "BW - ¡Vs Campeón de Teselia!",
|
||||
"battle_champion_iris": "B2W2 - ¡Vs Campeón de Teselia!",
|
||||
"battle_kalos_champion": "XY - ¡Vs Campeón de Kalos!",
|
||||
"battle_alola_champion": "USUM - ¡Vs Campeón de Alola!",
|
||||
"battle_galar_champion": "SWSH - ¡Vs Campeón de Galar!",
|
||||
"battle_champion_geeta": "SV - ¡Vs Campeona Ságita!",
|
||||
"battle_champion_nemona": "SV - ¡Vs Campeona Mencía!",
|
||||
"battle_champion_kieran": "SV - ¡Vs Campeón Cass!",
|
||||
"battle_hoenn_elite": "ORAS - ¡Vs Alto Mando!",
|
||||
"battle_unova_elite": "BW - ¡Vs Alto Mando!",
|
||||
"battle_kalos_elite": "XY - ¡Vs Alto Mando!",
|
||||
"battle_alola_elite": "SM - ¡Vs Alto Mando!",
|
||||
"battle_galar_elite": "SWSH - Torneo de Finalistas",
|
||||
"battle_paldea_elite": "SV - ¡Vs Alto Mando!",
|
||||
"battle_bb_elite": "SV - ¡Vs Alto Mando de la Academia Arándano!",
|
||||
"battle_kanto_champion": "B2W2 - ¡Vs. Campeón de Kanto!",
|
||||
"battle_johto_champion": "B2W2 - ¡Vs. Campeón de Johto!",
|
||||
"battle_hoenn_champion_g5": "B2W2 - ¡Vs. Campeón de Hoenn!",
|
||||
"battle_hoenn_champion_g6": "ORAS - ¡Vs. Campeón de Hoenn!",
|
||||
"battle_sinnoh_champion": "B2W2 - ¡Vs. Campeón de Sinnoh!",
|
||||
"battle_champion_alder": "BW - ¡Vs. Campeón de Teselia!",
|
||||
"battle_champion_iris": "B2W2 - ¡Vs. Campeón de Teselia!",
|
||||
"battle_kalos_champion": "XY - ¡Vs. Campeón de Kalos!",
|
||||
"battle_alola_champion": "USUM - ¡Vs. Campeón de Alola!",
|
||||
"battle_galar_champion": "SWSH - ¡Vs. Campeón de Galar!",
|
||||
"battle_champion_geeta": "SV - ¡Vs. Campeona Ságita!",
|
||||
"battle_champion_nemona": "SV - ¡Vs. Campeona Mencía!",
|
||||
"battle_champion_kieran": "SV - ¡Vs. Campeón Cass!",
|
||||
"battle_hoenn_elite": "ORAS - ¡Vs. Alto Mando!",
|
||||
"battle_unova_elite": "BW - ¡Vs. Alto Mando!",
|
||||
"battle_kalos_elite": "XY - ¡Vs. Alto Mando!",
|
||||
"battle_alola_elite": "SM - ¡Vs. Alto Mando!",
|
||||
"battle_galar_elite": "SWSH - Torneo de finalistas",
|
||||
"battle_paldea_elite": "SV - ¡Vs. Alto Mando!",
|
||||
"battle_bb_elite": "SV - ¡Vs. Alto Mando de la Academia Arándano!",
|
||||
"battle_final_encounter": "PMD RTDX - Dominio de Rayquaza",
|
||||
"battle_final": "BW - ¡Vs Ghechis!",
|
||||
"battle_kanto_gym": "B2W2 - ¡Vs Líder de Kanto!",
|
||||
"battle_johto_gym": "B2W2 - ¡Vs Líder de Johto!",
|
||||
"battle_hoenn_gym": "B2W2 - ¡Vs Líder de Hoenn!",
|
||||
"battle_sinnoh_gym": "B2W2 - ¡Vs Líder de Sinnoh!",
|
||||
"battle_unova_gym": "BW - ¡Vs Líder de Teselia!",
|
||||
"battle_kalos_gym": "XY - ¡Vs Líder de Kalos!",
|
||||
"battle_galar_gym": "SWSH - ¡Vs Líder de Galar!",
|
||||
"battle_paldea_gym": "SV - ¡Vs Líder de Paldea!",
|
||||
"battle_legendary_kanto": "XY - ¡Vs Legendarios de Kanto!",
|
||||
"battle_legendary_raikou": "HGSS - ¡Vs Raikou!",
|
||||
"battle_legendary_entei": "HGSS - ¡Vs Entei!",
|
||||
"battle_legendary_suicune": "HGSS - ¡Vs Suicune!",
|
||||
"battle_legendary_lugia": "HGSS - ¡Vs Lugia!",
|
||||
"battle_legendary_ho_oh": "HGSS - ¡Vs Ho-oh!",
|
||||
"battle_legendary_regis_g5": "B2W2 - ¡Vs Regis!",
|
||||
"battle_legendary_regis_g6": "ORAS - ¡Vs Regis!",
|
||||
"battle_legendary_gro_kyo": "ORAS - ¡Vs Groudon/Kyogre!",
|
||||
"battle_legendary_rayquaza": "ORAS - ¡Vs Rayquaza!",
|
||||
"battle_legendary_deoxys": "ORAS - ¡Vs Deoxys!",
|
||||
"battle_legendary_lake_trio": "ORAS - ¡Vs Trío del Lago!",
|
||||
"battle_legendary_sinnoh": "ORAS - ¡Vs Legendarios de Sinnoh!",
|
||||
"battle_legendary_dia_pal": "ORAS - ¡Vs Dialga/Palkia!",
|
||||
"battle_legendary_giratina": "ORAS - ¡Vs Giratina!",
|
||||
"battle_legendary_arceus": "HGSS - ¡Vs Arceus!",
|
||||
"battle_legendary_unova": "BW - ¡Vs Legendarios de Teselia!",
|
||||
"battle_legendary_kyurem": "BW - ¡Vs Kyurem!",
|
||||
"battle_legendary_res_zek": "BW - ¡Vs Reshiram/Zekrom!",
|
||||
"battle_legendary_xern_yvel": "XY - ¡Vs Xerneas/Yveltal!",
|
||||
"battle_legendary_tapu": "SM - ¡Vs Tapus!",
|
||||
"battle_legendary_sol_lun": "SM - ¡Vs Solgaleo/Lunala!",
|
||||
"battle_legendary_ub": "SM - ¡Vs Ultraentes!",
|
||||
"battle_legendary_dusk_dawn": "USUM - ¡Vs Necrozma Melena Crepuscular/Alas del Alba!",
|
||||
"battle_legendary_ultra_nec": "USUM - ¡Vs Ultra-Necrozma!",
|
||||
"battle_legendary_zac_zam": "SWSH - ¡Vs Zacian/Zamazenta!",
|
||||
"battle_legendary_glas_spec": "SWSH - ¡Vs Glastrier/Spectrier!",
|
||||
"battle_legendary_calyrex": "SWSH - ¡Vs Calyrex!",
|
||||
"battle_legendary_birds_galar": "SWSH - ¡Vs Aves Legendarias de Galar!",
|
||||
"battle_legendary_ruinous": "SV - ¡Vs Tesoros Funestos!",
|
||||
"battle_legendary_kor_mir": "SV Depths of Area Zero Battle",
|
||||
"battle_legendary_loyal_three": "SV - ¡Vs Compatrones!",
|
||||
"battle_legendary_ogerpon": "SV - ¡Vs Ogerpon!",
|
||||
"battle_legendary_terapagos": "SV - ¡Vs Terapagos!",
|
||||
"battle_legendary_pecharunt": "SV - ¡Vs Pecharunt!",
|
||||
"battle_rival": "BW - ¡Vs Rival!",
|
||||
"battle_final": "BW - ¡Vs. Ghechis!",
|
||||
"battle_kanto_gym": "B2W2 - ¡Vs. Líder de Kanto!",
|
||||
"battle_johto_gym": "B2W2 - ¡Vs. Líder de Johto!",
|
||||
"battle_hoenn_gym": "B2W2 - ¡Vs. Líder de Hoenn!",
|
||||
"battle_sinnoh_gym": "B2W2 - ¡Vs. Líder de Sinnoh!",
|
||||
"battle_unova_gym": "BW - ¡Vs. Líder de Teselia!",
|
||||
"battle_kalos_gym": "XY - ¡Vs. Líder de Kalos!",
|
||||
"battle_galar_gym": "SWSH - ¡Vs. Líder de Galar!",
|
||||
"battle_paldea_gym": "SV - ¡Vs. Líder de Paldea!",
|
||||
"battle_legendary_kanto": "XY - ¡Vs. Legendarios de Kanto!",
|
||||
"battle_legendary_raikou": "HGSS - ¡Vs. Raikou!",
|
||||
"battle_legendary_entei": "HGSS - ¡Vs. Entei!",
|
||||
"battle_legendary_suicune": "HGSS - ¡Vs. Suicune!",
|
||||
"battle_legendary_lugia": "HGSS - ¡Vs. Lugia!",
|
||||
"battle_legendary_ho_oh": "HGSS - ¡Vs. Ho-oh!",
|
||||
"battle_legendary_regis_g5": "B2W2 - ¡Vs. Regis!",
|
||||
"battle_legendary_regis_g6": "ORAS - ¡Vs. Regis!",
|
||||
"battle_legendary_gro_kyo": "ORAS - ¡Vs. Groudon/Kyogre!",
|
||||
"battle_legendary_rayquaza": "ORAS - ¡Vs. Rayquaza!",
|
||||
"battle_legendary_deoxys": "ORAS - ¡Vs. Deoxys!",
|
||||
"battle_legendary_lake_trio": "ORAS - ¡Vs. trío del Lago!",
|
||||
"battle_legendary_sinnoh": "ORAS - ¡Vs. legendarios de Sinnoh!",
|
||||
"battle_legendary_dia_pal": "ORAS - ¡Vs. Dialga/Palkia!",
|
||||
"battle_legendary_origin_forme": "LA - ¡Vs. Dialga & Palkia, Forma Origen!",
|
||||
"battle_legendary_giratina": "ORAS - ¡Vs. Giratina!",
|
||||
"battle_legendary_arceus": "HGSS - ¡Vs. Arceus!",
|
||||
"battle_legendary_unova": "BW - ¡Vs. legendarios de Teselia!",
|
||||
"battle_legendary_kyurem": "BW - ¡Vs. Kyurem!",
|
||||
"battle_legendary_res_zek": "BW - ¡Vs. Reshiram/Zekrom!",
|
||||
"battle_legendary_xern_yvel": "XY - ¡Vs. Xerneas/Yveltal!",
|
||||
"battle_legendary_tapu": "SM - ¡Vs. Tapus!",
|
||||
"battle_legendary_sol_lun": "SM - ¡Vs. Solgaleo/Lunala!",
|
||||
"battle_legendary_ub": "SM - ¡Vs. Ultraentes!",
|
||||
"battle_legendary_dusk_dawn": "USUM - ¡Vs. Necrozma Melena Crepuscular/Alas del Alba!",
|
||||
"battle_legendary_ultra_nec": "USUM - ¡Vs. Ultra-Necrozma!",
|
||||
"battle_legendary_zac_zam": "SWSH - ¡Vs. Zacian/Zamazenta!",
|
||||
"battle_legendary_glas_spec": "SWSH - ¡Vs. Glastrier/Spectrier!",
|
||||
"battle_legendary_calyrex": "SWSH - ¡Vs. Calyrex!",
|
||||
"battle_legendary_riders": "SWSH - ¡Vs. Calyrex Jinete!",
|
||||
"battle_legendary_birds_galar": "SWSH - ¡Vs. Aves Legendarias de Galar!",
|
||||
"battle_legendary_ruinous": "SV - ¡Vs. Tesoros Funestos!",
|
||||
"battle_legendary_kor_mir": "SV - ¡Batalla en el área Zero!",
|
||||
"battle_legendary_loyal_three": "SV - ¡Vs. Compatrones!",
|
||||
"battle_legendary_ogerpon": "SV - ¡Vs. Ogerpon!",
|
||||
"battle_legendary_terapagos": "SV - ¡Vs. Terapagos!",
|
||||
"battle_legendary_pecharunt": "SV - ¡Vs. Pecharunt!",
|
||||
"battle_rival": "BW - ¡Vs. Rival!",
|
||||
"battle_rival_2": "BW - ¡Vs N!",
|
||||
"battle_rival_3": "BW - ¡Vs N (Liga Pokémon)!",
|
||||
"battle_trainer": "BW - ¡Vs Entrenador!",
|
||||
"battle_wild": "BW - ¡Vs Pokémon Salvaje!",
|
||||
"battle_wild_strong": "BW - ¡Vs Pokémon Salvaje Raro!",
|
||||
"end_summit": "PMD RTDX - Techo del Cielo",
|
||||
"battle_rocket_grunt": "HGSS Team Rocket Battle",
|
||||
"battle_aqua_magma_grunt": "ORAS Team Aqua & Magma Battle",
|
||||
"battle_galactic_grunt": "BDSP Team Galactic Battle",
|
||||
"battle_rival_3": "BW - ¡Vs. N (Liga Pokémon)!",
|
||||
"battle_trainer": "BW - ¡Vs. entrenador!",
|
||||
"battle_wild": "BW - ¡Vs. Pokémon salvaje!",
|
||||
"battle_wild_strong": "BW - ¡Vs. Pokémon salvaje raro!",
|
||||
"end_summit": "PMD RTDX - Techo del cielo",
|
||||
"battle_rocket_grunt": "HGSS - ¡Vs. Team Rocket!",
|
||||
"battle_aqua_magma_grunt": "ORAS - ¡Vs. Equipo Aqua & Magma!",
|
||||
"battle_galactic_grunt": "BDSP - ¡Vs. Equipo Galaxia!",
|
||||
"battle_plasma_grunt": "BW - ¡Vs Equipo Plasma!",
|
||||
"battle_flare_grunt": "XY Team Flare Battle",
|
||||
"battle_aether_grunt": "SM Aether Foundation Battle",
|
||||
"battle_skull_grunt": "SM Team Skull Battle",
|
||||
"battle_macro_grunt": "SWSH Trainer Battle",
|
||||
"battle_galactic_admin": "BDSP Team Galactic Admin Battle",
|
||||
"battle_skull_admin": "SM Team Skull Admin Battle",
|
||||
"battle_oleana": "SWSH Oleana 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",
|
||||
|
||||
"battle_flare_grunt": "XY - ¡Vs. Team Flare!",
|
||||
"battle_aether_grunt": "SM - ¡Vs. Fundación Æther!",
|
||||
"battle_skull_grunt": "SM - ¡Vs. Team Skull!",
|
||||
"battle_macro_grunt": "SWSH - ¡Vs. entrenador!",
|
||||
"battle_galactic_admin": "BDSP - ¡Vs. Comandante del Equipo Galaxia!",
|
||||
"battle_skull_admin": "SM - ¡Vs. Comandante del Team Skull!",
|
||||
"battle_oleana": "SWSH - ¡Vs. Olivia!",
|
||||
"battle_rocket_boss": "USUM - ¡Vs. Giovanni!",
|
||||
"battle_aqua_magma_boss": "ORAS - ¡Vs. Aquiles & Magno!",
|
||||
"battle_galactic_boss": "BDSP - ¡Vs. Helio!",
|
||||
"battle_plasma_boss": "B2W2 - ¡Vs. Ghechis Armonia!",
|
||||
"battle_flare_boss": "XY - ¡Vs. Lysson!",
|
||||
"battle_aether_boss": "SM - ¡Vs. Samina!",
|
||||
"battle_skull_boss": "SM - ¡Vs. Guzmán!",
|
||||
"battle_macro_boss": "SWSH - ¡Vs. Rose!",
|
||||
"abyss": "PMD EoS - Cráter Oscuro",
|
||||
"badlands": "PMD EoS - Valle Desolado",
|
||||
"beach": "PMD EoS - Risco Calado",
|
||||
@ -105,40 +109,40 @@
|
||||
"graveyard": "PMD EoS - Bosque Misterio",
|
||||
"ice_cave": "PMD EoS - Gran Iceberg",
|
||||
"island": "PMD EoS - Costa Escarpada",
|
||||
"jungle": "Lmz - Jungle",
|
||||
"laboratory": "Firel - Laboratory",
|
||||
"jungle": "Lmz - Jungla",
|
||||
"laboratory": "Firel - Laboratorio",
|
||||
"lake": "PMD EoS - Cueva Cristal",
|
||||
"meadow": "PMD EoS - Bosque de la Cumbre del Cielo",
|
||||
"metropolis": "Firel - Metropolis",
|
||||
"metropolis": "Firel - Metrópolis",
|
||||
"mountain": "PMD EoS - Monte Cuerno",
|
||||
"plains": "PMD EoS - Pradera de la Cumbre del Cielo",
|
||||
"power_plant": "PMD EoS - Pradera Destello",
|
||||
"ruins": "PMD EoS - Sima Hermética",
|
||||
"sea": "Andr06 - Marine Mystique",
|
||||
"seabed": "Firel - Seabed",
|
||||
"slum": "Andr06 - Sneaky Snom",
|
||||
"sea": "Andr06 - Misticismo marino",
|
||||
"seabed": "Firel - Lecho del mar",
|
||||
"slum": "Andr06 - Snom sigiloso",
|
||||
"snowy_forest": "PMD EoS - Campo nevado de la Cumbre del Cielo",
|
||||
"space": "Firel - Aether",
|
||||
"space": "Firel - Æther ",
|
||||
"swamp": "PMD EoS - Mar Circundante",
|
||||
"tall_grass": "PMD EoS - Bosque Niebla",
|
||||
"temple": "PMD EoS - Cueva Regia",
|
||||
"town": "PMD EoS - Tema del territorio aleatorio 3",
|
||||
"volcano": "PMD EoS - Cueva Vapor",
|
||||
"wasteland": "PMD EoS - Corazón Tierra Oculta",
|
||||
"encounter_ace_trainer": "BW - Desafío Combate (Entrenador Guay)",
|
||||
"encounter_backpacker": "BW - Desafío Combate (Mochilero)",
|
||||
"encounter_clerk": "BW - Desafío Combate (Empresario)",
|
||||
"encounter_cyclist": "BW - Desafío Combate (Ciclista)",
|
||||
"encounter_lass": "BW - Desafío Combate (Chica)",
|
||||
"encounter_parasol_lady": "BW - Desafío Combate (Dama parasol)",
|
||||
"encounter_pokefan": "BW - Desafío Combate (Pokéfan)",
|
||||
"encounter_psychic": "BW - Desafío Combate (Médium)",
|
||||
"encounter_rich": "BW - Desafío Combate (Aristócrata)",
|
||||
"encounter_rival": "BW - Desafío Combate (Cheren)",
|
||||
"encounter_roughneck": "BW - Desafío Combate (Calvo)",
|
||||
"encounter_scientist": "BW - Desafío Combate (Científico)",
|
||||
"encounter_twins": "BW - Desafío Combate (Gemelas)",
|
||||
"encounter_youngster": "BW - Desafío Combate (Joven)",
|
||||
"encounter_ace_trainer": "BW - ¡Vs. entrenador guay!",
|
||||
"encounter_backpacker": "BW - ¡Vs. mochilero!",
|
||||
"encounter_clerk": "BW - ¡Vs. empresario!",
|
||||
"encounter_cyclist": "BW - ¡Vs. ciclista!",
|
||||
"encounter_lass": "BW - ¡Vs. chica joven!",
|
||||
"encounter_parasol_lady": "BW - ¡Vs. dama parasol!",
|
||||
"encounter_pokefan": "BW - ¡Vs. poké-fan!",
|
||||
"encounter_psychic": "BW -¡Vs. médium!",
|
||||
"encounter_rich": "BW - ¡Vs. aristócrata!",
|
||||
"encounter_rival": "BW - ¡Vs. Cheren!",
|
||||
"encounter_roughneck": "BW - ¡Vs. tío chungo!",
|
||||
"encounter_scientist": "BW - ¡Vs. científico!",
|
||||
"encounter_twins": "BW - ¡Vs. gemelas!",
|
||||
"encounter_youngster": "BW - ¡Vs. chico joven!",
|
||||
"heal": "BW - Cura Pokémon",
|
||||
"menu": "PMD EoS - ¡Bienvenidos al mundo de los Pokémon!",
|
||||
"title": "PMD EoS - Tema del menú principal"
|
||||
|
@ -598,6 +598,6 @@
|
||||
"DRAGON_MEMORY": "Disco dragón",
|
||||
"DARK_MEMORY": "Disco siniestro",
|
||||
"FAIRY_MEMORY": "Disco hada",
|
||||
"BLANK_MEMORY": "Disco en blanco"
|
||||
"NORMAL_MEMORY": "Disco normal"
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,12 @@
|
||||
{
|
||||
"bypassSpeedChanceApply": "¡Gracias {{itemName}} {{pokemonName}} puede tener prioridad!"
|
||||
}
|
||||
"surviveDamageApply": "{{pokemonNameWithAffix}} ha usado {{typeName}} y ha logrado resistir!",
|
||||
"turnHealApply": "{{pokemonNameWithAffix}} ha recuperado unos pocos PS gracias a {{typeName}}!",
|
||||
"hitHealApply": "{{pokemonNameWithAffix}} ha recuperado unos pocos PS gracias a {{typeName}}!",
|
||||
"pokemonInstantReviveApply": "{{pokemonNameWithAffix}} ha sido revivido gracias a su {{typeName}}!",
|
||||
"pokemonResetNegativeStatStageApply": "Las estadísticas bajadas de {{pokemonNameWithAffix}} fueron restauradas gracias a {{typeName}}!",
|
||||
"moneyInterestApply": "Recibiste intereses de ₽{{moneyAmount}}\ngracias a {{typeName}}!",
|
||||
"turnHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} fue absorbido\npor {{pokemonName}}'s {{typeName}}!",
|
||||
"contactHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} fue robado por {{pokemonName}}'s {{typeName}}!",
|
||||
"enemyTurnHealApply": "¡{{pokemonNameWithAffix}}\nrecuperó algunos PS!",
|
||||
"bypassSpeedChanceApply": "¡Gracias a su {{itemName}}, {{pokemonName}} puede tener prioridad!"
|
||||
}
|
||||
|
@ -11,5 +11,6 @@
|
||||
"usedUpAllElectricity": "¡{{pokemonName}} ha descargado toda su electricidad!",
|
||||
"stoleItem": "¡{{pokemonName}} robó el objeto\n{{itemName}} de {{targetName}}!",
|
||||
"statEliminated": "¡Los cambios en estadísticas fueron eliminados!",
|
||||
"revivalBlessing": "¡{{pokemonName}} ha revivido!"
|
||||
"revivalBlessing": "¡{{pokemonName}} ha revivido!",
|
||||
"safeguard": "¡{{targetName}} está protegido por Velo Sagrado!"
|
||||
}
|
||||
|
@ -4,5 +4,11 @@
|
||||
"mega-y": "Mega {{pokemonName}} Y",
|
||||
"primal": "{{pokemonName}} Primigenio",
|
||||
"gigantamax": "G-Max {{pokemonName}}",
|
||||
"eternamax": "E-Max {{pokemonName}}"
|
||||
}
|
||||
"eternamax": "E-Max {{pokemonName}}",
|
||||
"megaChange": "¡{{preName}} ha mega-evolucionado a {{pokemonName}}!",
|
||||
"gigantamaxChange": "¡{{preName}} ha gigamaxizado a {{pokemonName}}!",
|
||||
"eternamaxChange": "¡{{preName}} ha eternamaxizado a {{pokemonName}}!",
|
||||
"revertChange": "¡{{pokemonName}} ha revertido a su forma original!",
|
||||
"formChange": "¡{{preName}} ha cambiado de forma!",
|
||||
"disguiseChange": "¡El disfraz ha actuado como señuelo!"
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
"pikachuToughCosplay": "Enmascarada",
|
||||
"pikachuPartner": "Compañero",
|
||||
"eeveePartner": "Compañero",
|
||||
"pichuSpiky": "Picoreja",
|
||||
"unownA": "A",
|
||||
"unownB": "B",
|
||||
"unownC": "C",
|
||||
@ -49,6 +50,8 @@
|
||||
"rotomFrost": "Frío",
|
||||
"rotomFan": "Ventilador",
|
||||
"rotomMow": "Corte",
|
||||
"giratinaAltered": "Modificada",
|
||||
"shayminLand": "Tierra",
|
||||
"basculinRedStriped": "Raya Roja",
|
||||
"basculinBlueStriped": "Raya Azul",
|
||||
"basculinWhiteStriped": "Raya Blanca",
|
||||
@ -56,6 +59,10 @@
|
||||
"deerlingSummer": "Verano",
|
||||
"deerlingAutumn": "Otoño",
|
||||
"deerlingWinter": "Invierno",
|
||||
"tornadusIncarnate": "Avatar",
|
||||
"thundurusIncarnate": "Avatar",
|
||||
"landorusIncarnate": "Avatar",
|
||||
"keldeoOrdinary": "Habitual",
|
||||
"meloettaAria": "Lírica",
|
||||
"meloettaPirouette": "Danza",
|
||||
"froakieBattleBond": "Fuerte Afecto",
|
||||
@ -87,12 +94,12 @@
|
||||
"furfrouHeart": "Corazón",
|
||||
"furfrouStar": "Estrella",
|
||||
"furfrouDiamond": "Diamante",
|
||||
"furfrouDebutante": "Debutante",
|
||||
"furfrouMatron": "Matrón",
|
||||
"furfrouDandy": "Dandi",
|
||||
"furfrouLaReine": "La Reine",
|
||||
"furfrouDebutante": "Señorita",
|
||||
"furfrouMatron": "Dama",
|
||||
"furfrouDandy": "Caballero",
|
||||
"furfrouLaReine": "Aristócrata",
|
||||
"furfrouKabuki": "Kabuki",
|
||||
"furfrouPharaoh": "Faraón",
|
||||
"furfrouPharaoh": "Faraónico",
|
||||
"pumpkabooSmall": "Pequeño",
|
||||
"pumpkabooLarge": "Grande",
|
||||
"pumpkabooSuper": "Enorme",
|
||||
@ -127,11 +134,15 @@
|
||||
"magearnaOriginal": "Vetusto",
|
||||
"marshadowZenith": "Cénit",
|
||||
"sinisteaPhony": "Falsificada",
|
||||
"sinisteaAntique": "Auténtica",
|
||||
"sinisteaAntique": "Genuina",
|
||||
"eiscueNoIce": "Cara Deshielo",
|
||||
"indeedeeMale": "Macho",
|
||||
"indeedeeFemale": "Hembra",
|
||||
"morpekoFullBelly": "Saciada",
|
||||
"zacianHeroOfManyBattles": "Guerrero avezado",
|
||||
"zamazentaHeroOfManyBattles": "Guerrero avezado",
|
||||
"zarudeDada": "Papá",
|
||||
"enamorusIncarnate": "Avatar",
|
||||
"squawkabillyGreenPlumage": "Plumaje Verde",
|
||||
"squawkabillyBluePlumage": "Plumaje Azul",
|
||||
"squawkabillyYellowPlumage": "Plumaje Amarillo",
|
||||
@ -141,9 +152,19 @@
|
||||
"tatsugiriStretchy": "Estirada",
|
||||
"gimmighoulChest": "Cofre",
|
||||
"gimmighoulRoaming": "Andante",
|
||||
"poltchageistCounterfeit": "Imitación",
|
||||
"poltchageistArtisan": "Original",
|
||||
"koraidonApexBuild": "Forma Plena",
|
||||
"koraidonLimitedBuild": "Forma Limitada",
|
||||
"koraidonSprintingBuild": "Forma Carrera",
|
||||
"koraidonSwimmingBuild": "Forma Nado",
|
||||
"koraidonGlidingBuild": "Forma Planeo",
|
||||
"miraidonUltimateMode": "Modo Pleno",
|
||||
"miraidonLowPowerMode": "Modo Limitado",
|
||||
"miraidonDriveMode": "Modo Conducción",
|
||||
"miraidonAquaticMode": "Modo Flote",
|
||||
"miraidonGlideMode": "Modo Planeo",
|
||||
"poltchageistCounterfeit": "Fraudulenta",
|
||||
"poltchageistArtisan": "Opulenta",
|
||||
"paldeaTaurosCombat": "Combatiente",
|
||||
"paldeaTaurosBlaze": "Ardiente",
|
||||
"paldeaTaurosAqua": "Acuático"
|
||||
}
|
||||
}
|
||||
|
@ -3,12 +3,12 @@
|
||||
"joinTheDiscord": "¡Únete al Discord!",
|
||||
"infiniteLevels": "¡Niveles infinitos!",
|
||||
"everythingStacks": "¡Todo se acumula!",
|
||||
"optionalSaveScumming": "¡Trampas guardando (¡opcionales!)!",
|
||||
"optionalSaveScumming": "¡Trampas de guardado opcionales!",
|
||||
"biomes": "¡35 biomas!",
|
||||
"openSource": "¡Código abierto!",
|
||||
"playWithSpeed": "¡Juega a velocidad 5x!",
|
||||
"liveBugTesting": "¡Arreglo de bugs sobre la marcha!",
|
||||
"heavyInfluence": "¡Influencia Alta en RoR2!",
|
||||
"liveBugTesting": "¡Testeo de bugs en directo!",
|
||||
"heavyInfluence": "¡Mucha Influencia de RoR2!",
|
||||
"pokemonRiskAndPokemonRain": "¡Pokémon Risk y Pokémon Rain!",
|
||||
"nowWithMoreSalt": "¡Con un 33% más de polémica!",
|
||||
"infiniteFusionAtHome": "¡Infinite Fusion en casa!",
|
||||
@ -17,16 +17,16 @@
|
||||
"mubstitute": "¡Mubstituto!",
|
||||
"thatsCrazy": "¡De locos!",
|
||||
"oranceJuice": "¡Zumo de narancia!",
|
||||
"questionableBalancing": "¡Balance cuestionable!",
|
||||
"questionableBalancing": "¡Cambios en balance cuestionables!",
|
||||
"coolShaders": "¡Shaders impresionantes!",
|
||||
"aiFree": "¡Libre de IA!",
|
||||
"suddenDifficultySpikes": "¡Saltos de dificultad repentinos!",
|
||||
"basedOnAnUnfinishedFlashGame": "¡Basado en un juego Flash inacabado!",
|
||||
"moreAddictiveThanIntended": "¡Más adictivo de la cuenta!",
|
||||
"moreAddictiveThanIntended": "¡Más adictivo de lo previsto!",
|
||||
"mostlyConsistentSeeds": "¡Semillas CASI consistentes!",
|
||||
"achievementPointsDontDoAnything": "¡Los Puntos de Logro no hacen nada!",
|
||||
"youDoNotStartAtLevel": "¡No empiezas al nivel 2000!",
|
||||
"dontTalkAboutTheManaphyEggIncident": "¡No hablen del incidente del Huevo Manaphy!",
|
||||
"dontTalkAboutTheManaphyEggIncident": "¡No se habla del Incidente Manaphy!",
|
||||
"alsoTryPokengine": "¡Prueba también Pokéngine!",
|
||||
"alsoTryEmeraldRogue": "¡Prueba también Emerald Rogue!",
|
||||
"alsoTryRadicalRed": "¡Prueba también Radical Red!",
|
||||
|
@ -1 +1,16 @@
|
||||
{}
|
||||
{
|
||||
"misty": "Niebla",
|
||||
"mistyStartMessage": "¡La niebla ha envuelto el terreno de combate!",
|
||||
"mistyClearMessage": "La niebla se ha disipado.",
|
||||
"mistyBlockMessage": "¡El campo de niebla ha protegido a {{pokemonNameWithAffix}} ",
|
||||
"electric": "Eléctrico",
|
||||
"electricStartMessage": "¡Se ha formado un campo de corriente eléctrica en el terreno\nde combate!",
|
||||
"electricClearMessage": "El campo de corriente eléctrica ha desaparecido.\t",
|
||||
"grassy": "Hierba",
|
||||
"grassyStartMessage": "¡El terreno de combate se ha cubierto de hierba!",
|
||||
"grassyClearMessage": "La hierba ha desaparecido.",
|
||||
"psychic": "Psíquico",
|
||||
"psychicStartMessage": "¡El terreno de combate se ha vuelto muy extraño!",
|
||||
"psychicClearMessage": "Ha desaparecido la extraña sensación que se percibía en el terreno\nde combate.",
|
||||
"defaultBlockMessage": "¡El campo {{terrainName}} ha protegido a {{pokemonNameWithAffix}} "
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"brock": "Brock",
|
||||
"misty": "Misty",
|
||||
"lt_surge": "Tt. Surge",
|
||||
"lt_surge": "Teniente Surge",
|
||||
"erika": "Erika",
|
||||
"janine": "Sachiko",
|
||||
"sabrina": "Sabrina",
|
||||
@ -23,7 +23,7 @@
|
||||
"winona": "Alana",
|
||||
"tate": "Vito",
|
||||
"liza": "Leti",
|
||||
"juan": "Galán",
|
||||
"juan": "Galano",
|
||||
"roark": "Roco",
|
||||
"gardenia": "Gardenia",
|
||||
"maylene": "Brega",
|
||||
@ -34,7 +34,7 @@
|
||||
"volkner": "Lectro",
|
||||
"cilan": "Millo",
|
||||
"chili": "Zeo",
|
||||
"cress": "Maiz",
|
||||
"cress": "Maíz",
|
||||
"cheren": "Cheren",
|
||||
"lenora": "Aloe",
|
||||
"roxie": "Hiedra",
|
||||
@ -57,7 +57,7 @@
|
||||
"nessa": "Cathy",
|
||||
"kabu": "Naboru",
|
||||
"bea": "Judith",
|
||||
"allister": "Allistair",
|
||||
"allister": "Alistair",
|
||||
"opal": "Sally",
|
||||
"bede": "Berto",
|
||||
"gordie": "Morris",
|
||||
@ -123,30 +123,28 @@
|
||||
"leon": "Lionel",
|
||||
"rival": "Finn",
|
||||
"rival_female": "Ivy",
|
||||
"archer": "Archer",
|
||||
"ariana": "Ariana",
|
||||
"proton": "Proton",
|
||||
"archer": "Atlas",
|
||||
"ariana": "Atenea",
|
||||
"proton": "Protón",
|
||||
"petrel": "Petrel",
|
||||
"tabitha": "Tabitha",
|
||||
"courtney": "Courtney",
|
||||
"shelly": "Shelly",
|
||||
"matt": "Matt",
|
||||
"mars": "Mars",
|
||||
"jupiter": "Jupiter",
|
||||
"saturn": "Saturn",
|
||||
"zinzolin": "Zinzolin",
|
||||
"rood": "Rood",
|
||||
"xerosic": "Xerosic",
|
||||
"bryony": "Bryony",
|
||||
"tabitha": "Tatiano",
|
||||
"courtney": "Carola",
|
||||
"shelly": "Silvina",
|
||||
"matt": "Matías",
|
||||
"mars": "Venus",
|
||||
"jupiter": "Ceres",
|
||||
"saturn": "Saturno",
|
||||
"zinzolin": "Menek",
|
||||
"rood": "Ruga",
|
||||
"xerosic": "Xero",
|
||||
"bryony": "Begonia",
|
||||
"maxie": "Magno",
|
||||
"archie": "Aquiles",
|
||||
"cyrus": "Helio",
|
||||
"ghetsis": "Ghechis",
|
||||
"lysandre": "Lysson",
|
||||
"faba": "Fabio",
|
||||
|
||||
"maxie": "Maxie",
|
||||
"archie": "Archie",
|
||||
"cyrus": "Cyrus",
|
||||
"ghetsis": "Ghetsis",
|
||||
"lysandre": "Lysandre",
|
||||
"lusamine": "Samina",
|
||||
|
||||
"blue_red_double": "Azul y Rojo",
|
||||
"red_blue_double": "Rojo y Azul",
|
||||
"tate_liza_double": "Vito y Leti",
|
||||
|
@ -47,5 +47,11 @@
|
||||
"tailwindOnRemovePlayer": "Le vent arrière soufflant\nsur votre équipe s’arrête !",
|
||||
"tailwindOnRemoveEnemy": "Le vent arrière soufflant\nsur l’équipe ennemie s’arrête !",
|
||||
"happyHourOnAdd": "L’ambiance est euphorique !",
|
||||
"happyHourOnRemove": "L’ambiance se calme !"
|
||||
"happyHourOnRemove": "L’ambiance se calme !",
|
||||
"safeguardOnAdd": "Un voile mystérieux recouvre\ntout le terrain !",
|
||||
"safeguardOnAddPlayer": "Un voile mystérieux recouvre\nvotre équipe !",
|
||||
"safeguardOnAddEnemy": "Un voile mystérieux recouvre\nl’équipe ennemie !",
|
||||
"safeguardOnRemove": "Le terrain n’est plus protégé\npar le voile mystérieux !",
|
||||
"safeguardOnRemovePlayer": "Votre équipe n’est plus protégée\npar le voile mystérieux !",
|
||||
"safeguardOnRemoveEnemy": "L’équipe ennemie n’est plus protégée\npar le voile mystérieux !"
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
{
|
||||
"ending": "@c{smile}Oh ? T’as gagné ?@d{96} @c{smile_eclosed}J’aurais dû le savoir.\nMais de voilà de retour.\n$@c{smile}C’est terminé.@d{64} T’as brisé ce cycle infernal.\n$@c{serious_smile_fists}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$@c{neutral}Je suis le seul à me souvenir de ce que t’as fait.@d{96}\nJe pense que ça ira, non ?\n$@c{serious_smile_fists}Ta légende vivra à jamais dans nos cœurs.\n$@c{smile_eclosed}Bref, j’en ai un peu marre de ce endroit, pas toi ? Rentrons à la maison.\n$@c{serious_smile_fists}On se fera un p’tit combat une fois rentrés ?\nSi t’es d’accord.",
|
||||
"ending_female": "@c{shock}T’es revenu ?@d{32} Ça veut dire…@d{96} que t’as gagné ?!\n@c{smile_ehalf}J’aurais dû le savoir.\n$@c{smile_eclosed}Bien sûr… J’ai toujours eu ce sentiment.\n@c{smile}C’est fini maitenant hein ? T’as brisé ce cycle.\n$@c{smile_ehalf}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$Je serai la seule à me souvenir de ce que t’as fait.\n@c{angry_mopen}Je tâcherai de ne pas oublier !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile}Jamais j’oublierai.@d{32}\nTa légende vivra à jamais dans nos cœurs.\n$@c{smile_wave}Bon,@d{64} il se fait tard…@d{96} je crois ?\nDifficile à dire ici.\n$Rentrons, @c{smile_wave_wink}et demain on se fera un p’tit combat, comme au bon vieux temps ?"
|
||||
}
|
||||
"ending": "@c{shock}T’es revenu ?@d{32} Ça veut dire…@d{96} que t’as gagné ?!\n@c{smile_ehalf}J’aurais dû m’en douter.\n$@c{smile_eclosed}Bien sûr… J’ai toujours eu ce sentiment.\n@c{smile}C’est fini maintenant hein ? T’as brisé ce cycle.\n$@c{smile_ehalf}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$Je serai la seule à me souvenir de ce que t’as fait.\n@c{angry_mopen}Je tâcherai de ne pas oublier !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile}Jamais j’oublierai.@d{32}\nTa légende vivra à jamais dans nos cœurs.\n$@c{smile_wave}Bon,@d{64} il se fait tard…@d{96} je crois ?\nDifficile à dire ici.\n$Rentrons, @c{smile_wave_wink}et demain on se fera un p’tit combat, comme au bon vieux temps ?",
|
||||
"ending_female": "@c{smile}Oh ? T’as gagné ?@d{96} @c{smile_eclosed}J’aurais dû m’en douter.\nMais te voilà enfin de retour.\n$@c{smile}C’est terminé.@d{64} T’as brisé ce cycle infernal.\n$@c{serious_smile_fists}T’as aussi accompli ton rêve non ?\nTu n’as pas connu la moindre défaite.\n$@c{neutral}Je suis le seul à me souvenir de ce que t’as fait.@d{96}\nJe pense que ça ira, non ?\n$@c{serious_smile_fists}Ta légende vivra à jamais dans nos cœurs.\n$@c{smile_eclosed}Bref, j’en ai un peu marre de ce endroit, pas toi ? Rentrons à la maison.\n$@c{serious_smile_fists}On se fera un p’tit combat une fois rentrés ?\nSi t’es d’accord.",
|
||||
"ending_endless": "Félicitations ! Vous avez atteint la fin actuelle.\nPlus de contenu à venir bientôt !",
|
||||
"ending_name": "Les devs"
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
"6": "Allez, c’est parti !",
|
||||
"7": "Attention, me voilà !\nTu vas voir comment j’suis fort !",
|
||||
"8": "Coucou… Tu veux voir mes bô Pokémon ?",
|
||||
"9": "Trève de mondanités. Ramène-toi quand tu le sens !",
|
||||
"9": "Trêve de mondanités. Ramène-toi quand tu le sens !",
|
||||
"10": "Baisse pas ta garde si tu veux pas pleurer d’avoir perdu face à un gamin.",
|
||||
"11": "J’ai tout donné pour élever mes Pokémon. Attention à toi si tu leur fait du mal !",
|
||||
"12": "Incroyable que t’y sois parvenu ! Mais la suite va pas être une partie de plaisir.",
|
||||
@ -68,7 +68,7 @@
|
||||
"3": "Hum, t’es pas trop laxiste avec tes Pokémon ?\nTrop les chouchouter n’est pas bon."
|
||||
},
|
||||
"victory": {
|
||||
"1": "Il est primordial de nourir et développer toutes les caractéristiques de chaque Pokémon.",
|
||||
"1": "Il est primordial de nourrir et développer toutes les caractéristiques de chaque Pokémon.",
|
||||
"2": "Contrairement à moi, ces Pokémon ont un bon fond.",
|
||||
"3": "Trop d’éloges peut ruiner les Pokémon et les gens."
|
||||
},
|
||||
@ -229,7 +229,7 @@
|
||||
"encounter": {
|
||||
"1": "Ne te mets pas en travers de la Team Galaxie !",
|
||||
"2": "Sois témoin de la puissance de notre technologie et du futur qui se profile !",
|
||||
"3": "Au nom de la Team Galaxie, j’éliminerai quiconque se mettera sur notre route !",
|
||||
"3": "Au nom de la Team Galaxie, j’éliminerai quiconque se mettra sur notre route !",
|
||||
"4": "Prépare ta défaite !",
|
||||
"5": "J’espère que t’es prêt à te prendre une raclée de l’espace !",
|
||||
"5_female": "J’espère que t’es prête à te prendre une raclée de l’espace !"
|
||||
@ -244,7 +244,7 @@
|
||||
},
|
||||
"plasma_grunt": {
|
||||
"encounter": {
|
||||
"1": "Pas de quatiers à ceux qui ne suivent pas notre idéal !",
|
||||
"1": "Pas de quartiers à quiconque ne suit pas notre idéal !",
|
||||
"2": "Si je gagne, tu relâches tous tes Pokémon !",
|
||||
"3": "Si tu te mets en travers de la Team Plasma, je m’occuperai de toi personnellement !",
|
||||
"4": "La Team Plasma va libérer les Pokémon de tous les humains égoïstes dans ton genre !",
|
||||
@ -275,6 +275,96 @@
|
||||
"5": "J’appelle pas ça perdre, j’appelle ça échouer avec panache !"
|
||||
}
|
||||
},
|
||||
"aether_grunt": {
|
||||
"encounter": {
|
||||
"1": "Je vais te mettre ta raclée !",
|
||||
"2": "J’en ai rien à faire que tu sois une gosse. Tu vas tutoyer les étoiles si tu nous menaces !",
|
||||
"2_female": "J’en ai rien à faire que tu sois une gosse. Tu vas tutoyer les étoiles si tu nous menaces !",
|
||||
"3": "J’ai pour ordre de ne laisser passer aucun Dresseur, peu importe qui c’est !",
|
||||
"4": "Je vais te montrer le pouvoir du Paradis Æther !",
|
||||
"5": "Maintenant que t’es au courant de ce qu’il se passe au cœur du Paradis Æther, fais-moi une faveur et disparait !"
|
||||
},
|
||||
"victory": {
|
||||
"1": "C’est plutôt toi qui devrait m’apprendre à en mettre…",
|
||||
"2": "Pardon ? J’ai pas compris…",
|
||||
"3": "Peu importe les ordres, jamais j’aurais pu te retenir en fait…",
|
||||
"4": "Mhh… Il semblerait que j’ai perdu.",
|
||||
"5": "C’est plutôt moi qui va disparaitre je crois."
|
||||
}
|
||||
},
|
||||
"faba": {
|
||||
"encounter": {
|
||||
"1": "Moi, Directeur Saubohne, je vais te montrer de quel bois je me chauffe !",
|
||||
"2": "Donc là, l’homme supposé être la dernière ligne défense du Paradis Æther doit affronter un mioche ?",
|
||||
"2_female": "Donc là, l’homme supposé être la dernière ligne défense du Paradis Æther doit affronter un mioche ?",
|
||||
"3": "S’il n’y a qu’un seul nom à retenir au sein de la Fondation Æther, c’est le mien : Saubohne !"
|
||||
},
|
||||
"victory": {
|
||||
"1": "Gloups !",
|
||||
"2": "Malheur ! J’ai perdu face à un simple enfant ?!",
|
||||
"2_female": "Malheur ! J’ai perdu face à une simple enfant ?!",
|
||||
"3": "J’ai HORREUR des enfants !"
|
||||
}
|
||||
},
|
||||
"skull_grunt": {
|
||||
"encounter": {
|
||||
"1": "Oush oush ! On est pas méchants, sauf si tu viens nous allumer la mèche-han !",
|
||||
"2": "Ce manque de respect, j’hallucine ! T’es allé trop loin, le mioche !",
|
||||
"2_female": "Ce manque de respect, j’hallucine ! T’es allée trop loin, la mioche !",
|
||||
"3": "On est juste des gars et des meufs normaux, on voit un Pokémon on le prend !",
|
||||
"4": "Pourquoi tu te la joue comme ça ? C'est avec tes dents que t’vas jouer frérot.",
|
||||
"4_female": "Pourquoi tu te la joue comme ça ? C'est avec tes dents que t’vas jouer ma reus.",
|
||||
"5": "Cousin, écoute-nous bien ! ♪\nSe taper dessus, ça sert à rien ! ♪\n$Tu t’incrustes chez nous, ça s’fait pas ! ♪\n$Mais on est sympa, on a un plan pour toi ! ♪",
|
||||
"5_female": "Cousine, écoute-nous bien ! ♪\nSe taper dessus, ça sert à rien ! ♪\n$Tu t’incrustes chez nous, ça s’fait pas ! ♪\n$Mais on est sympa, on a un plan pour toi ! ♪"
|
||||
},
|
||||
"victory": {
|
||||
"1": "Hein ? C’est déjà terminé ?",
|
||||
"2": "… Ça craint grave ! On s’tire !",
|
||||
"3": "Ouais de toute on en avait pas b’soin de ton Pokémon… Ah ah…",
|
||||
"4": "Ouh là, c’est bon, j’en demandais pas tant…",
|
||||
"5": "On pèse plus que des Pokémon, t’entends ?\nAlors tu vas nous respecter, oush !"
|
||||
}
|
||||
},
|
||||
"plumeria": {
|
||||
"encounter": {
|
||||
"1": "Tsk. T’es un gamin tout ce qu’il y a de plus banal, en fait.",
|
||||
"1_female": "Tsk. T’es une gamine tout ce qu’il y a de plus banal, en fait.",
|
||||
"2": "Abrutis de sbires. Trop incompétents pour arriver à se débarasser de gamins…",
|
||||
"3": "Si tu touches encore à un cheveu de mes lascars, tu vas pas comprendre c’qui t’arrive !"
|
||||
},
|
||||
"victory": {
|
||||
"1": "Tsk. T’es pas mauvais. J’te l’accorde.",
|
||||
"1_female": "Tsk. T’es pas mauvaise. J’te l’accorde.",
|
||||
"2": "Tsk. J’dois reconnaitre que t’en as dans le ventre.\n$Maintenant, j’comprends pourquoi mes gars n’arrêtent pas de se faire battre par toi.",
|
||||
"3": "Tsk. J’crois que j'ai plus qu’à assumer ma défaite."
|
||||
}
|
||||
},
|
||||
"macro_grunt": {
|
||||
"encounter": {
|
||||
"1": "Hop hop hop ! Terminus !",
|
||||
"2": "T’es un Dresseur n’est-ce pas ?\n$J’ai bien peur ce que ne soit pas une excuse suffisante pour nous interrompre dans notre travail.",
|
||||
"2_female": "T’es une Dresseuse n’est-ce pas ?\n$J’ai bien peur ce que ne soit pas une excuse suffisante pour nous interrompre dans notre travail.",
|
||||
"3": "Je travaille à Macro Cosmos Assurances !\nBesoin d’une assurance-vie ?"
|
||||
},
|
||||
"victory": {
|
||||
"1": "Je n’ai d’autre choix que respectueusement me retirer.",
|
||||
"2": "Mon argent de poche…\nPlus qu’à manger des pâtes pour la fin du mois…",
|
||||
"3": "Chez Macro Cosmos, rien n’est comparable à notre dévotion au travail !"
|
||||
}
|
||||
},
|
||||
"oleana": {
|
||||
"encounter": {
|
||||
"1": "Je ne laisserai personne interférer avec les projets du président Shehroz.",
|
||||
"2": "Je vois que vous avez su vous défaire de mes subalternes.\n$Mais assez joué. Il est temps de rentrer chez vous, maintenant.",
|
||||
"3": "Je gagnerai en votre nom, monsieur le président."
|
||||
},
|
||||
"victory": {
|
||||
"1": "*soupir* Comment ai-je fait pour perdre ainsi… ?\nJe ne suis vraiment pas à la hauteur…",
|
||||
"2": "Ah ! Quelle erreur… Je n’aurais pas dû sous-estimer un Dresseur de ton calibre…",
|
||||
"2_female": "Ah ! Quelle erreur… Je n’aurais pas dû sous-estimer une Dresseuse de ton calibre…",
|
||||
"3": "*soupir* Je suis fatiguée parton…"
|
||||
}
|
||||
},
|
||||
"rocket_boss_giovanni_1": {
|
||||
"encounter": {
|
||||
"1": "Bien. Je dois admettre que je suis impressionné de te voir ici !"
|
||||
@ -468,7 +558,7 @@
|
||||
"4": "Voir un tel jardin rempli de fleurs est si apaisant…"
|
||||
},
|
||||
"victory": {
|
||||
"1": "Bien joué, c’est mértié.",
|
||||
"1": "Bien joué, c’est mérité.",
|
||||
"2": "Dommage, on s’amusait si bien…",
|
||||
"3": "Oh non, le combat est terminé…",
|
||||
"4": "Aaah, ça fait du bien !\nMerci, j’en avais besoin."
|
||||
@ -505,15 +595,15 @@
|
||||
},
|
||||
"rival": {
|
||||
"encounter": {
|
||||
"1": "@c{smile}Ah, je te cherchais ! Je savais que t’étais pressé de partir, mais je m’attendais quand même à un au revoir…\n$@c{smile_eclosed}T’as finalement décidé de réaliser ton rêve ?\nJ’ai peine à y croire.\n$@c{serious_smile_fists}Vu que t’es là, ça te dis un petit combat ?\nJe voudrais quand même m’assurer que t’es prêt.\n$@c{serious_mopen_fists}Surtout ne te retiens pas et donne-moi tout ce que t’as !"
|
||||
"1": "@c{smile}Ah, je te cherchais ! Je savais que t’étais pressée de partir, mais je m’attendais quand même à un au revoir…\n$@c{smile_eclosed}T’as finalement décidé de réaliser ton rêve ?\nJ’ai peine à y croire.\n$@c{serious_smile_fists}Vu que t’es là, ça te dis un petit combat ?\nJe voudrais quand même m’assurer que t’es prête.\n$@c{serious_mopen_fists}Surtout ne te retiens pas et donne-moi tout ce que t’as !"
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{shock}Wah… Tu m’as vraiment lavé.\nT’es vraiment un débutant ?\n$@c{smile}T’as peut-être eu de la chance, mais…\nPeut-être que t’arriveras jusqu’au bout du chemin.\n$D’ailleurs, le prof m’a demandé de te filer ces objets.\nIls ont l’air sympas.\n$@c{serious_smile_fists}Bonne chance à toi !"
|
||||
"1": "@c{shock}Wah… Tu m’as vraiment lavé.\nT’es vraiment une débutante ?\n$@c{smile}T’as peut-être eu de la chance, mais…\nPeut-être que t’arriveras jusqu’au bout du chemin.\n$D’ailleurs, le prof m’a demandé de te filer ces objets.\nIls ont l’air sympas.\n$@c{serious_smile_fists}Bonne chance à toi !"
|
||||
}
|
||||
},
|
||||
"rival_female": {
|
||||
"encounter": {
|
||||
"1": "@c{smile_wave}Ah, te voilà ! Je t’ai cherché partout !\n@c{angry_mopen}On oublie de dire au revoir à sa meilleure amie ?\n$@c{smile_ehalf}T’as décidé de réaliser ton rêve, hein ?\nCe jour est donc vraiment arrivé…\n$@c{smile}Je veux bien te pardonner de m’avoir oubliée,\nà une conditon. @c{smile_wave_wink}Que tu m’affronte !\n$@c{angry_mopen}Donne tout ! Ce serait dommage que ton aventure finisse avant d’avoir commencé, hein ?"
|
||||
"1": "@c{smile_wave}Ah, te voilà ! Je t’ai cherché partout !\n@c{angry_mopen}On oublie de dire au revoir à sa meilleure amie ?\n$@c{smile_ehalf}T’as décidé de réaliser ton rêve, hein ?\nCe jour est donc vraiment arrivé…\n$@c{smile}Je veux bien te pardonner de m’avoir oubliée,\nà une condition. @c{smile_wave_wink}Que tu m’affronte !\n$@c{angry_mopen}Donne tout ! Ce serait dommage que ton aventure finisse avant d’avoir commencé, hein ?"
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{shock}Tu viens de commencer et t’es déjà si fort ?!@d{96}\n@c{angry}T’as triché non ? Avoue !\n$@c{smile_wave_wink}J’déconne !@d{64} @c{smile_eclosed}J’ai perdu dans les règles…\nJ’ai le sentiment que tu vas très bien t’en sortir.\n$@c{smile}D’ailleurs, le prof veut que je te donne ces quelques objets. Ils te seront utiles, pour sûr !\n$@c{smile_wave}Fais de ton mieux, comme toujours !\nJe crois fort en toi !"
|
||||
@ -521,10 +611,10 @@
|
||||
},
|
||||
"rival_2": {
|
||||
"encounter": {
|
||||
"1": "@c{smile}Hé, toi aussi t’es là ?\n@c{smile_eclosed}Toujours invaincu, hein… ?\n$@c{serious_mopen_fists}Je sais que j’ai l’air de t’avoir suivi ici, mais c’est pas complètement vrai.\n$@c{serious_smile_fists}Pour être honnête, ça me démangeait d’avoir une revanche depuis que tu m’as battu.\n$Je me suis beaucoup entrainé, alors sois sure que je vais pas retenir mes coups cette fois.\n$@c{serious_mopen_fists}Et comme la dernière fois, ne te retiens pas !\nC’est parti !"
|
||||
"1": "@c{smile}Hé, toi aussi t’es là ?\n@c{smile_eclosed}Toujours invaincue, hein… ?\n$@c{serious_mopen_fists}Je sais que j’ai l’air de t’avoir suivie ici, mais c’est pas complètement vrai.\n$@c{serious_smile_fists}Pour être honnête, ça me démangeait d’avoir une revanche depuis que tu m’as battu.\n$Je me suis beaucoup entrainé, alors sois sure que je vais pas retenir mes coups cette fois.\n$@c{serious_mopen_fists}Et comme la dernière fois, ne te retiens pas !\nC’est parti !"
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{neutral_eclosed}Oh. Je crois que j’ai trop pris la confiance.\n$@c{smile}Pas grave, c’est OK. Je me doutais que ça arriverait.\n@c{serious_mopen_fists}Je vais juste devoir encore plus m’entrainer !\n\n$@c{smile}Ah, et pas que t’aies réellement besoin d’aide, mais j’ai ça en trop sur moi qui pourrait t’intéresser.\n\n$@c{serious_smile_fists}Mais n’espère plus en avoir d’autres !\nJe peux pas passer mon temps à aider mon adversaire.\n$@c{smile}Bref, prends soin de toi et profite bien de l’évènement !"
|
||||
"1": "@c{neutral_eclosed}Oh. Je crois que j’ai trop pris la confiance.\n$@c{smile}Pas grave, c’est OK. Je me doutais que ça arriverait.\n@c{serious_mopen_fists}Je vais juste devoir encore plus m’entrainer !\n\n$@c{smile}Ah, et pas que t’aies réellement besoin d’aide, mais j’ai ça en trop sur moi qui pourrait t’intéresser.\n\n$@c{serious_smile_fists}Mais n’espère plus en avoir d’autres !\nJe peux pas passer mon temps à aider mon adversaire.\n$@c{smile}Bref, prends soin de toi !"
|
||||
}
|
||||
},
|
||||
"rival_2_female": {
|
||||
@ -532,7 +622,7 @@
|
||||
"1": "@c{smile_wave}Hé, sympa de te croiser ici. T’as toujours l’air invaincu. @c{angry_mopen}Eh… Pas mal !\n$@c{angry_mopen}Je sais à quoi tu penses et non, je t’espionne pas.\n@c{smile_eclosed}C’est juste que j’étais aussi dans le coin.\n$@c{smile_ehalf}Heureuse pour toi, mais je veux juste te rappeler que c’est pas grave de perdre parfois.\n$@c{smile}On apprend de nos erreurs, souvent plus que si on ne connaissait que le succès.\n$@c{angry_mopen}Dans tous les cas je me suis bien entrainée pour cette revanche, t’as intérêt à tout donner !"
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{neutral}Je… J’étais pas encore supposée perdre…\n$@c{smile}Bon. Ça veut juste dire que je vais devoir encore plus m’entrainer !\n$@c{smile_wave}J’ai aussi ça en rab pour toi !\n@c{smile_wave_wink}Inutile de me remercier ~.\n$@c{angry_mopen}C’étaient les derniers, terminé les cadeaux après ceux-là !\n$@c{smile_wave}Allez, tiens le coup et profite bien de l’évènement !"
|
||||
"1": "@c{neutral}Je… J’étais pas encore supposée perdre…\n$@c{smile}Bon. Ça veut juste dire que je vais devoir encore plus m’entrainer !\n$@c{smile_wave}J’ai aussi ça en rab pour toi !\n@c{smile_wave_wink}Inutile de me remercier ~.\n$@c{angry_mopen}C’étaient les derniers, terminé les cadeaux après ceux-là !\n$@c{smile_wave}Allez, tiens le coup !"
|
||||
},
|
||||
"defeat": {
|
||||
"1": "Je suppose que c’est parfois normal de perdre…"
|
||||
@ -540,7 +630,7 @@
|
||||
},
|
||||
"rival_3": {
|
||||
"encounter": {
|
||||
"1": "@c{smile}Hé, mais qui voilà ! Ça fait un bail.\n@c{neutral}T’es… toujours invaincu ? Incroyable.\n$@c{neutral_eclosed}Tout est devenu un peu… étrange.\nC’est plus pareil sans toi au village.\n$@c{serious}Je sais que c’est égoïste, mais j’ai besoin d’expier ça.\n@c{neutral_eclosed}Je crois que tout ça te dépasse.\n$@c{serious}Ne jamais perdre, c’est juste irréaliste.\nGrandir, c’est parfois aussi savoir perdre.\n$@c{neutral_eclosed}T’as un beau parcours, mais il y a encore tellement à venir et ça va pas s’arranger. @c{neutral}T’es prêt pour ça ?\n$@c{serious_mopen_fists}Si tu l’es, alors prouve-le."
|
||||
"1": "@c{smile}Hé, mais qui voilà ! Ça fait un bail.\n@c{neutral}T’es… toujours invaincue ? Incroyable.\n$@c{neutral_eclosed}Tout est devenu un peu… étrange.\nC’est plus pareil sans toi au village.\n$@c{serious}Je sais que c’est égoïste, mais j’ai besoin d’expier ça.\n@c{neutral_eclosed}Je crois que tout ça te dépasse.\n$@c{serious}Ne jamais perdre, c’est juste irréaliste.\nGrandir, c’est parfois aussi savoir perdre.\n$@c{neutral_eclosed}T’as un beau parcours, mais il y a encore tellement à venir et ça va pas s’arranger. @c{neutral}T’es prête pour ça ?\n$@c{serious_mopen_fists}Si tu l’es, alors prouve-le."
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{angry_mhalf}C’est lunaire… J’ai presque fait que m’entrainer…\nAlors pourquoi il y a encore un tel écart entre nous ?"
|
||||
@ -559,7 +649,7 @@
|
||||
},
|
||||
"rival_4": {
|
||||
"encounter": {
|
||||
"1": "@c{neutral}Hé.\n$Je vais pas y aller par quatre chemins avec toi.\n@c{neutral_eclosed}Je suis là pour gagner. Simple, basique.\n$@c{serious_mhalf_fists}J’ai appris à maximiser tout mon potentiel en m’entrainant d’arrachepied.\n$@c{smile}C’est fou tout le temps que tu peux te dégager si tu dors pas en sacrifiant ta vie sociale.\n$@c{serious_mopen_fists}Plus rien n’a d’importance désormais, pas tant que j’aurai pas gagné.\n$@c{neutral_eclosed}J’ai atteint un stade où je ne peux plus perdre.\n@c{smile_eclosed}Je présume que ta philosophie était pas si fausse finalement.\n$@c{angry_mhalf}La défaite, c’est pour les faibles, et je ne suis plus un faible.\n$@c{serious_mopen_fists}Tiens-toi prêt."
|
||||
"1": "@c{neutral}Hé.\n$Je vais pas y aller par quatre chemins avec toi.\n@c{neutral_eclosed}Je suis là pour gagner. Simple, basique.\n$@c{serious_mhalf_fists}J’ai appris à maximiser tout mon potentiel en m’entrainant d’arrachepied.\n$@c{smile}C’est fou tout le temps que tu peux te dégager si tu dors pas en sacrifiant ta vie sociale.\n$@c{serious_mopen_fists}Plus rien n’a d’importance désormais, pas tant que j’aurai pas gagné.\n$@c{neutral_eclosed}J’ai atteint un stade où je ne peux plus perdre.\n@c{smile_eclosed}Je présume que ta philosophie était pas si fausse finalement.\n$@c{angry_mhalf}La défaite, c’est pour les faibles, et je ne suis plus un faible.\n$@c{serious_mopen_fists}Tiens-toi prête."
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{neutral}Que…@d{64} Qui es-tu ?"
|
||||
@ -597,7 +687,7 @@
|
||||
},
|
||||
"rival_6": {
|
||||
"encounter": {
|
||||
"1": "@c{smile_eclosed}Nous y revoilà.\n$@c{neutral}J’ai eu du temps pour réfléchir à tout ça.\nIl y a une raison à pourquoi tout semble étrange.\n$@c{neutral_eclosed}Ton rêve, ma volonté de te battre…\nFont partie de quelque chose de plus grand.\n$@c{serious}C’est même pas à propos de moi, ni de toi… Mais du monde, @c{serious_mhalf_fists}et te repousser dans tes limites est ma mission.\n$@c{neutral_eclosed}J’ignore si je serai capable de l’accomplir, mais je ferai tout ce qui est en mon pouvoir.\n$@c{neutral}Cet endroit est terrifiant… Et pourtant il m’a l’air familier, comme si j’y avais déjà mis les pieds.\n$@c{serious_mhalf_fists}Tu ressens la même chose, pas vrai ?\n$@c{serious}… et c’est comme si quelque chose ici me parlait.\n$Comme si c’était tout ce que ce monde avait toujours connu.\n$Ces précieux moments ensemble semblent si proches ne sont rien de plus qu’un lointain souvenir.\n$@c{neutral_eclosed}D’ailleurs, qui peut dire aujourd’hui qu’ils ont pu être réels ?\n$@c{serious_mopen_fists}Il faut que tu persévères. Si tu t’arrêtes, ça n’aura jamais de fin et t’es le seul à en être capable.\n$@c{serious_smile_fists}Difficile de comprendre le sens de tout ça, je sais juste que c’est la réalité.\n$@c{serious_mopen_fists}Si tu ne parviens pas à me battre ici et maintenant, tu n’as aucune chance."
|
||||
"1": "@c{smile_eclosed}Nous y revoilà.\n$@c{neutral}J’ai eu du temps pour réfléchir à tout ça.\nIl y a une raison à pourquoi tout semble étrange.\n$@c{neutral_eclosed}Ton rêve, ma volonté de te battre…\nFont partie de quelque chose de plus grand.\n$@c{serious}C’est même pas à propos de moi, ni de toi… Mais du monde, @c{serious_mhalf_fists}et te repousser dans tes limites est ma mission.\n$@c{neutral_eclosed}J’ignore si je serai capable de l’accomplir, mais je ferai tout ce qui est en mon pouvoir.\n$@c{neutral}Cet endroit est terrifiant… Et pourtant il m’a l’air familier, comme si j’y avais déjà mis les pieds.\n$@c{serious_mhalf_fists}Tu ressens la même chose, pas vrai ?\n$@c{serious}… et c’est comme si quelque chose ici me parlait.\n$Comme si c’était tout ce que ce monde avait toujours connu.\n$Ces précieux moments ensemble semblent si proches ne sont rien de plus qu’un lointain souvenir.\n$@c{neutral_eclosed}D’ailleurs, qui peut dire aujourd’hui qu’ils ont pu être réels ?\n$@c{serious_mopen_fists}Il faut que tu persévères. Si tu t’arrêtes, ça n’aura jamais de fin et t’es la seule à en être capable.\n$@c{serious_smile_fists}Difficile de comprendre le sens de tout ça, je sais juste que c’est la réalité.\n$@c{serious_mopen_fists}Si tu ne parviens pas à me battre ici et maintenant, tu n’as aucune chance."
|
||||
},
|
||||
"victory": {
|
||||
"1": "@c{smile_eclosed}J’ai fait ce que j’avais à faire.\n$Promets-moi juste une chose.\n@c{smile}Après avoir réparé ce monde… Rentre à la maison."
|
||||
|
@ -437,6 +437,6 @@
|
||||
"DRAGON_MEMORY": "ROM Dragon",
|
||||
"DARK_MEMORY": "ROM Ténèbres",
|
||||
"FAIRY_MEMORY": "ROM Fée",
|
||||
"BLANK_MEMORY": "ROM Vierge"
|
||||
"NORMAL_MEMORY": "ROM Normal"
|
||||
}
|
||||
}
|
||||
|
@ -65,5 +65,6 @@
|
||||
"suppressAbilities": "Le talent de {{pokemonName}}\na été rendu inactif !",
|
||||
"revivalBlessing": "{{pokemonName}} a repris connaissance\net est prêt à se battre de nouveau !",
|
||||
"swapArenaTags": "Les effets affectant chaque côté du terrain\nont été échangés par {{pokemonName}} !",
|
||||
"exposedMove": "{{targetPokemonName}} est identifié\npar {{pokemonName}} !"
|
||||
"exposedMove": "{{targetPokemonName}} est identifié\npar {{pokemonName}} !",
|
||||
"safeguard": "{{targetName}} est protégé\npar la capacité Rune Protect !"
|
||||
}
|
@ -13,7 +13,8 @@
|
||||
"SPD": "Vitesse",
|
||||
"SPDshortened": "Vit",
|
||||
"ACC": "Précison",
|
||||
"EVA": "Esquive"
|
||||
"EVA": "Esquive",
|
||||
"HPStat": "PV"
|
||||
},
|
||||
"Type": {
|
||||
"UNKNOWN": "Inconnu",
|
||||
@ -37,4 +38,4 @@
|
||||
"FAIRY": "Fée",
|
||||
"STELLAR": "Stellaire"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,5 +13,32 @@
|
||||
"metFragment": {
|
||||
"normal": "rencontré au N.{{level}},\n{{biome}}.",
|
||||
"apparently": "apparemment rencontré au N.{{level}},\n{{biome}}."
|
||||
},
|
||||
"natureFragment": {
|
||||
"Hardy": "{{nature}}",
|
||||
"Lonely": "{{nature}}",
|
||||
"Brave": "{{nature}}",
|
||||
"Adamant": "{{nature}}",
|
||||
"Naughty": "{{nature}}",
|
||||
"Bold": "{{nature}}",
|
||||
"Docile": "{{nature}}",
|
||||
"Relaxed": "{{nature}}",
|
||||
"Impish": "{{nature}}",
|
||||
"Lax": "{{nature}}",
|
||||
"Timid": "{{nature}}",
|
||||
"Hasty": "{{nature}}",
|
||||
"Serious": "{{nature}}",
|
||||
"Jolly": "{{nature}}",
|
||||
"Naive": "{{nature}}",
|
||||
"Modest": "{{nature}}",
|
||||
"Mild": "{{nature}}",
|
||||
"Quiet": "{{nature}}",
|
||||
"Bashful": "{{nature}}",
|
||||
"Rash": "{{nature}}",
|
||||
"Calm": "{{nature}}",
|
||||
"Gentle": "{{nature}}",
|
||||
"Sassy": "{{nature}}",
|
||||
"Careful": "{{nature}}",
|
||||
"Quirky": "{{nature}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -101,8 +101,8 @@
|
||||
"workers": "Ouvriers",
|
||||
"youngster": "Gamin",
|
||||
"rocket_grunt": "Sbire de la Team Rocket",
|
||||
"rocket_grunt_female": "Sbire de la Team Rocket",
|
||||
"rocket_grunts": "Sbires de la Team Rocket",
|
||||
"rocket_grunt_female": "Sbire de la Team Rocket",
|
||||
"magma_grunt": "Sbire de la Team Magma",
|
||||
"magma_grunt_female": "Sbire de la Team Magma",
|
||||
"magma_grunts": "Sbires de la Team Magma",
|
||||
@ -123,6 +123,7 @@
|
||||
"aether_grunts": "Employés de la Fondation Æther",
|
||||
"skull_grunt": "Sbire de la Team Skull",
|
||||
"skull_grunt_female": "Sbire de la Team Skull",
|
||||
"skull_grunts": "Sbires de la Team Skull",
|
||||
"macro_grunt": "Employé de Macro Cosmos",
|
||||
"macro_grunt_female": "Employée de Macro Cosmos",
|
||||
"macro_grunts": "Employés de Macro Cosmos"
|
||||
|
@ -1 +1,8 @@
|
||||
{}
|
||||
{
|
||||
"safeguardOnAdd": "Un velo mistico ricopre il campo!",
|
||||
"safeguardOnAddPlayer": "Un velo mistico ricopre la tua squadra!",
|
||||
"safeguardOnAddEnemy": "Un velo mistico ricopre la squadra avversaria!",
|
||||
"safeguardOnRemove": "Il campo non è più protetto da Salvaguardia!",
|
||||
"safeguardOnRemovePlayer": "La tua squadra non è più protetta da Salvaguardia!",
|
||||
"safeguardOnRemoveEnemy": "La squadra avversaria non è più protetta da Salvaguardia!"
|
||||
}
|
@ -50,7 +50,7 @@
|
||||
"description": "Raddoppia la possibilità di imbattersi in doppie battaglie per {{battleCount}} battaglie."
|
||||
},
|
||||
"TempStatStageBoosterModifierType": {
|
||||
"description": "Aumenta {{stat}} di un livello a tutti i Pokémon nel gruppo per 5 battaglie."
|
||||
"description": "Aumenta la statistica {{stat}} di un livello\na tutti i Pokémon nel gruppo per 5 battaglie."
|
||||
},
|
||||
"AttackTypeBoosterModifierType": {
|
||||
"description": "Aumenta la potenza delle mosse di tipo {{moveType}} del 20% per un Pokémon."
|
||||
@ -59,10 +59,10 @@
|
||||
"description": "Aumenta il livello di un Pokémon di {{levels}}."
|
||||
},
|
||||
"AllPokemonLevelIncrementModifierType": {
|
||||
"description": "Aumenta i livell di tutti i Pokémon della squadra di {{levels}}."
|
||||
"description": "Aumenta il livello di tutti i Pokémon della squadra di {{levels}}."
|
||||
},
|
||||
"BaseStatBoosterModifierType": {
|
||||
"description": "Aumenta {{stat}} di base del possessore del 10%."
|
||||
"description": "Aumenta l'/la {{stat}} di base del possessore del 10%."
|
||||
},
|
||||
"AllPokemonFullHpRestoreModifierType": {
|
||||
"description": "Restituisce il 100% dei PS a tutti i Pokémon."
|
||||
@ -598,6 +598,6 @@
|
||||
"DRAGON_MEMORY": "ROM Drago",
|
||||
"DARK_MEMORY": "ROM Buio",
|
||||
"FAIRY_MEMORY": "ROM Folletto",
|
||||
"BLANK_MEMORY": "ROM Vuota"
|
||||
"NORMAL_MEMORY": "ROM Normale"
|
||||
}
|
||||
}
|
||||
|
@ -65,5 +65,6 @@
|
||||
"suppressAbilities": "L’abilità di {{pokemonName}}\nperde ogni efficacia!",
|
||||
"revivalBlessing": "{{pokemonName}} torna in forze!",
|
||||
"swapArenaTags": "{{pokemonName}} ha invertito gli effetti attivi\nnelle due metà del campo!",
|
||||
"exposedMove": "{{pokemonName}} ha identificato\n{{targetPokemonName}}!"
|
||||
"exposedMove": "{{pokemonName}} ha identificato\n{{targetPokemonName}}!",
|
||||
"safeguard": "Salvaguardia protegge {{targetName}}!"
|
||||
}
|
@ -1,42 +1,47 @@
|
||||
{
|
||||
"SEND_OUT": "Manda in campo",
|
||||
"SUMMARY": "Sommario",
|
||||
"CANCEL": "Annulla",
|
||||
"RELEASE": "Rilascia",
|
||||
"APPLY": "Applica",
|
||||
"TEACH": "Insegna",
|
||||
"SPLICE": "Unisci",
|
||||
"UNSPLICE": "Dividi",
|
||||
"ACTIVATE": "Attiva",
|
||||
"DEACTIVATE": "Disattiva",
|
||||
"TRANSFER": "Trasferisci",
|
||||
"ALL": "Tutto",
|
||||
"PASS_BATON": "Staffetta",
|
||||
"UNPAUSE_EVOLUTION": "Consenti evoluzione",
|
||||
"REVIVE": "Revitalizza",
|
||||
"RENAME": "Rinomina",
|
||||
"choosePokemon": "Scegli un Pokémon.",
|
||||
"doWhatWithThisPokemon": "Hai selezionato questo Pokémon.",
|
||||
"noEnergy": "{{pokemonName}} non ha più energie\nper lottare!",
|
||||
"hasEnergy": "{{pokemonName}} ha ancora energie\nper lottare!",
|
||||
"cantBeUsed": "{{pokemonName}} non può essere usato\nin questa sfida!",
|
||||
"tooManyItems": "{{pokemonName}} possiede già\nquest'oggetto in abbondanza!",
|
||||
"anyEffect": "Non avrebbe alcun effetto.",
|
||||
"unpausedEvolutions": "{{pokemonName}} può di nuovo evolversi.",
|
||||
"unspliceConfirmation": "Vuoi davvero dividere {{fusionName}}\nda {{pokemonName}}? {{fusionName}} andrà perduto.",
|
||||
"wasReverted": "{{fusionName}} è tornato ad essere {{pokemonName}}.",
|
||||
"releaseConfirmation": "Vuoi davvero liberare {{pokemonName}}?",
|
||||
"releaseInBattle": "Non puoi liberare un Pokémon che sta combattendo!",
|
||||
"selectAMove": "Scegli una mossa.",
|
||||
"changeQuantity": "Scegli un oggetto da trasferire.\nUsa < e > per cambiarne la quantità.",
|
||||
"selectAnotherPokemonToSplice": "Scegli un altro Pokémon da unire.",
|
||||
"cancel": "Annulla",
|
||||
"goodbye": "Addio, {{pokemonName}}!",
|
||||
"byebye": "Ciao ciao, {{pokemonName}}!",
|
||||
"farewell": "Arrivederci, {{pokemonName}}!",
|
||||
"soLong": "È stato bello, {{pokemonName}}!",
|
||||
"thisIsWhereWePart": "Le nostre strade si dividono, {{pokemonName}}!",
|
||||
"illMissYou": "Mi mancherai, {{pokemonName}}!",
|
||||
"illNeverForgetYou": "Non ti dimenticherò, {{pokemonName}}!",
|
||||
"untilWeMeetAgain": "Alla prossima, {{pokemonName}}!"
|
||||
}
|
||||
"SEND_OUT": "Manda in campo",
|
||||
"SUMMARY": "Sommario",
|
||||
"CANCEL": "Annulla",
|
||||
"RELEASE": "Rilascia",
|
||||
"APPLY": "Applica",
|
||||
"TEACH": "Insegna",
|
||||
"SPLICE": "Unisci",
|
||||
"UNSPLICE": "Dividi",
|
||||
"ACTIVATE": "Attiva",
|
||||
"DEACTIVATE": "Disattiva",
|
||||
"TRANSFER": "Trasferisci",
|
||||
"ALL": "Tutto",
|
||||
"PASS_BATON": "Staffetta",
|
||||
"UNPAUSE_EVOLUTION": "Consenti evoluzione",
|
||||
"REVIVE": "Revitalizza",
|
||||
"RENAME": "Rinomina",
|
||||
"choosePokemon": "Scegli un Pokémon.",
|
||||
"doWhatWithThisPokemon": "Hai selezionato questo Pokémon.",
|
||||
"noEnergy": "{{pokemonName}} non ha più energie\nper lottare!",
|
||||
"hasEnergy": "{{pokemonName}} ha ancora energie\nper lottare!",
|
||||
"cantBeUsed": "{{pokemonName}} non può essere usato\nin questa sfida!",
|
||||
"tooManyItems": "{{pokemonName}} possiede già\nquest'oggetto in abbondanza!",
|
||||
"anyEffect": "Non avrebbe alcun effetto.",
|
||||
"unpausedEvolutions": "{{pokemonName}} può di nuovo evolversi.",
|
||||
"unspliceConfirmation": "Vuoi davvero dividere {{fusionName}}\nda {{pokemonName}}? {{fusionName}} andrà perduto.",
|
||||
"wasReverted": "{{fusionName}} è tornato ad essere {{pokemonName}}.",
|
||||
"releaseConfirmation": "Vuoi davvero liberare {{pokemonName}}?",
|
||||
"releaseInBattle": "Non puoi liberare un Pokémon che sta combattendo!",
|
||||
"selectAMove": "Scegli una mossa.",
|
||||
"changeQuantity": "Scegli un oggetto da trasferire.\nUsa < e > per cambiarne la quantità.",
|
||||
"selectAnotherPokemonToSplice": "Scegli un altro Pokémon da unire.",
|
||||
"cancel": "Annulla",
|
||||
"able": "Sì!",
|
||||
"notAble": "No!",
|
||||
"learned": "La conosce!",
|
||||
"goodbye": "Addio, {{pokemonName}}!",
|
||||
"byebye": "Ciao ciao, {{pokemonName}}!",
|
||||
"farewell": "Arrivederci, {{pokemonName}}!",
|
||||
"soLong": "È stato bello, {{pokemonName}}!",
|
||||
"thisIsWhereWePart": "Le nostre strade si dividono, {{pokemonName}}!",
|
||||
"illMissYou": "Mi mancherai, {{pokemonName}}!",
|
||||
"illNeverForgetYou": "Non ti dimenticherò, {{pokemonName}}!",
|
||||
"untilWeMeetAgain": "Alla prossima, {{pokemonName}}!",
|
||||
"sayonara": "Sayonara, {{pokemonName}}!",
|
||||
"smellYaLater": "Ci becchiamo, {{pokemonName}}!"
|
||||
}
|
||||
|
@ -2,5 +2,6 @@
|
||||
"moveset": "Set di mosse",
|
||||
"gender": "Genere:",
|
||||
"ability": "Abilità:",
|
||||
"nature": "Natura:"
|
||||
}
|
||||
"nature": "Natura:",
|
||||
"form": "Forma:"
|
||||
}
|
||||
|
@ -1 +1,23 @@
|
||||
{}
|
||||
{
|
||||
"type_null": "Tipo Zero",
|
||||
"great_tusk": "Grandizanne",
|
||||
"scream_tail": "Codaurlante",
|
||||
"brute_bonnet": "Fungofurioso",
|
||||
"flutter_mane": "Crinealato",
|
||||
"slither_wing": "Alirasenti",
|
||||
"sandy_shocks": "Peldisabbia",
|
||||
"iron_treads": "Solcoferreo",
|
||||
"iron_bundle": "Saccoferreo",
|
||||
"iron_hands": "Manoferrea",
|
||||
"iron_jugulis": "Colloferreo",
|
||||
"iron_moth": "Falenaferrea",
|
||||
"iron_thorns": "Spineferree",
|
||||
"roaring_moon": "Lunaruggente",
|
||||
"iron_valiant": "Eroeferreo",
|
||||
"walking_wake": "Acquecrespe",
|
||||
"iron_leaves": "Fogliaferrea",
|
||||
"gouging_fire": "Vampeaguzze",
|
||||
"raging_bolt": "Furiatonante",
|
||||
"iron_boulder": "Massoferreo",
|
||||
"iron_crown": "Capoferreo"
|
||||
}
|
||||
|
@ -12,7 +12,6 @@
|
||||
"blockItemTheft": "{{pokemonNameWithAffix}}の {{abilityName}}で\n道具を うばわれない!",
|
||||
"typeImmunityHeal": "{{pokemonNameWithAffix}}は {{abilityName}}で\n体力を 回復した!",
|
||||
"nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}}は {{abilityName}}で\nダメージを 受けない。",
|
||||
"postDefendDisguise": "{{pokemonNameWithAffix}}の\nばけのかわが はがれた!",
|
||||
"moveImmunity": "{{pokemonNameWithAffix}}には\n効果が ないようだ…",
|
||||
"reverseDrain": "{{pokemonNameWithAffix}}は\nヘドロえきを 吸い取った!",
|
||||
"postDefendTypeChange": "{{pokemonNameWithAffix}}は {{abilityName}}で\n{{typeName}}タイプに なった!",
|
||||
@ -60,4 +59,4 @@
|
||||
"postSummonTabletsOfRuin": "{{pokemonNameWithAffix}}の わざわいのおふだ\nまわりの {{statName}}が 弱まった!",
|
||||
"postSummonBeadsOfRuin": "{{pokemonNameWithAffix}}の わざわいのたまで\nまわりの {{statName}}が 弱まった!",
|
||||
"preventBerryUse": "{{pokemonNameWithAffix}}は 緊張して\nきのみが 食べられなくなった!"
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
"name": "なし"
|
||||
},
|
||||
"MoneyAchv": {
|
||||
"description": "一回の ランで ₽{{moneyAmount}}を 稼ぐ"
|
||||
"description": "一回の ランで {{moneyAmount}}円を 稼ぐ"
|
||||
},
|
||||
"10K_MONEY": {
|
||||
"name": "お金を持つ人"
|
||||
@ -21,7 +21,7 @@
|
||||
"name": "超富裕層"
|
||||
},
|
||||
"DamageAchv": {
|
||||
"description": "一撃で {{damageAmount}}ダメージを 与える"
|
||||
"description": "一撃で HP{{damageAmount}}の ダメージを 与える"
|
||||
},
|
||||
"250_DMG": {
|
||||
"name": "力持ち"
|
||||
@ -33,10 +33,11 @@
|
||||
"name": "カカロット"
|
||||
},
|
||||
"10000_DMG": {
|
||||
"name": "ワンパンマン"
|
||||
"name": "ワンパンマン",
|
||||
"name_female": "ワンパンウーマン"
|
||||
},
|
||||
"HealAchv": {
|
||||
"description": "一つの 技や 特性や 持っているアイテムで {{healAmount}}{{HP}}を 一気に 回復する"
|
||||
"description": "一つの 技や 特性や 持っているアイテムで\n{{healAmount}}{{HP}}を 一気に 回復する"
|
||||
},
|
||||
"250_HEAL": {
|
||||
"name": "回復発見者"
|
||||
@ -82,7 +83,7 @@
|
||||
},
|
||||
"TRANSFER_MAX_STAT_STAGE": {
|
||||
"name": "同力",
|
||||
"description": "少なくとも 一つの 能力を 最大まで あげて 他の 手持ちポケモンに バトンタッチする"
|
||||
"description": "少なくとも 一つの 能力を 最大まで あげて\n他の 手持ちポケモンに バトンタッチする"
|
||||
},
|
||||
"MAX_FRIENDSHIP": {
|
||||
"name": "マブ達",
|
||||
@ -106,7 +107,7 @@
|
||||
},
|
||||
"SPLICE": {
|
||||
"name": "インフィニット・フュジョン",
|
||||
"description": "いでんしのくさびで 二つの ポケモンを 吸収合体させる"
|
||||
"description": "遺伝子のくさびで 二つの ポケモンを 吸収合体させる"
|
||||
},
|
||||
"MINI_BLACK_HOLE": {
|
||||
"name": "アイテムホーリック",
|
||||
@ -161,8 +162,8 @@
|
||||
"description": "クラシックモードを クリアする"
|
||||
},
|
||||
"UNEVOLVED_CLASSIC_VICTORY": {
|
||||
"name": "Bring Your Child To Work Day",
|
||||
"description": "Beat the game in Classic Mode with at least one unevolved party member."
|
||||
"name": "はじめてのおつかい",
|
||||
"description": "少なくとも 一つの 進化していない 手持ちポケモンで\nクラシックモードを クリアする"
|
||||
},
|
||||
"MONO_GEN_ONE": {
|
||||
"name": "原始",
|
||||
@ -260,5 +261,9 @@
|
||||
"FRESH_START": {
|
||||
"name": "一発で!",
|
||||
"description": "出直しチャレンジを クリアする"
|
||||
},
|
||||
"INVERSE_BATTLE": {
|
||||
"name": "カガミよミガカ",
|
||||
"description": "反転バトルチャレンジを クリアする\nるすアリク をジンレャチルトバ転反"
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,12 @@
|
||||
{
|
||||
"trappedDesc": "捕らわれること",
|
||||
"flinchedDesc": "ひるむこと",
|
||||
"confusedDesc": "混乱",
|
||||
"infatuatedDesc": "メロメロ",
|
||||
"seedDesc": "種を植えつくこと",
|
||||
"nightmareDesc": "あくむ",
|
||||
"ingrainDesc": "根",
|
||||
"drowsyDesc": "ねむけ",
|
||||
"rechargingLapse": "{{pokemonNameWithAffix}}は 攻撃の 反動で 動けない!",
|
||||
"trappedOnAdd": "{{pokemonNameWithAffix}}は もう 逃げられない!",
|
||||
"trappedOnRemove": "{{pokemonNameWithAffix}}は\n{{moveName}}の 効果が 解けた!",
|
||||
@ -13,9 +21,9 @@
|
||||
"infatuatedOnAdd": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に メロメロに なった!",
|
||||
"infatuatedOnOverlap": "{{pokemonNameWithAffix}}は すでに メロメロだ!",
|
||||
"infatuatedLapse": "{{pokemonNameWithAffix}}は {{sourcePokemonName}}に メロメロだ!",
|
||||
"infatuatedLapseImmobilize": "{{pokemonNameWithAffix}}は\nメロメロで わざが 出せなかった!",
|
||||
"infatuatedLapseImmobilize": "{{pokemonNameWithAffix}}は メロメロで 技が出せなかった!",
|
||||
"infatuatedOnRemove": "{{pokemonNameWithAffix}}は メロメロ状態が 治った!",
|
||||
"seededOnAdd": "{{pokemonNameWithAffix}}に 種を 植(う)えつけた!",
|
||||
"seededOnAdd": "{{pokemonNameWithAffix}}に 種を 植えつけた!",
|
||||
"seededLapse": "やどりぎが {{pokemonNameWithAffix}}の 体力を うばう!",
|
||||
"seededLapseShed": "{{pokemonNameWithAffix}}は ヘドロえきを 吸い取った!",
|
||||
"nightmareOnAdd": "{{pokemonNameWithAffix}}は あくむを 見始めた!",
|
||||
@ -60,4 +68,4 @@
|
||||
"cursedOnAdd": "{{pokemonNameWithAffix}}は 自分の 体力を 削って\n{{pokemonName}}に のろいを かけた!",
|
||||
"cursedLapse": "{{pokemonNameWithAffix}}は のろわれている!",
|
||||
"stockpilingOnAdd": "{{pokemonNameWithAffix}}は {{stockpiledCount}}つ たくわえた!"
|
||||
}
|
||||
}
|
||||
|
@ -1,46 +1,46 @@
|
||||
{
|
||||
"SITRUS": {
|
||||
"name": "オボンのみ",
|
||||
"effect": "HP 50%いかのとき HPを 25パーセント かいふくする"
|
||||
"effect": "持たせると HPが 50%以下になるとき HPを 25% 回復する"
|
||||
},
|
||||
"LUM": {
|
||||
"name": "ラムのみ",
|
||||
"effect": "すべての じょうたい いじょうと こんらんを かいふくする"
|
||||
"effect": "持たせると 状態異常や 混乱になるとき 回復する\n"
|
||||
},
|
||||
"ENIGMA": {
|
||||
"name": "ナゾのみ",
|
||||
"effect": "こうかばつぐんの わざを うけたとき HPを 25パーセント かいふくする"
|
||||
"effect": "持たせると 効果バツグンの 技を 受けたとき HPを 25%回復する"
|
||||
},
|
||||
"LIECHI": {
|
||||
"name": "チイラのみ",
|
||||
"effect": "HP 25%いかのとき こうげきが あがる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき 攻撃が あがる"
|
||||
},
|
||||
"GANLON": {
|
||||
"name": "リュガのみ",
|
||||
"effect": "HP 25%いかのとき ぼうぎょが あがる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき 防御が あがる\n"
|
||||
},
|
||||
"PETAYA": {
|
||||
"name": "ヤタピのみ",
|
||||
"effect": "HP 25%いかのとき とくこうが あがる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき 特攻が あがる\n"
|
||||
},
|
||||
"APICOT": {
|
||||
"name": "ズアのみ",
|
||||
"effect": "HP 25%いかのとき とくぼうが あがる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき 特防が あがる\n"
|
||||
},
|
||||
"SALAC": {
|
||||
"name": "カムラのみ",
|
||||
"effect": "HP 25%いかのとき すばやさが あがる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき 素早さが あがる"
|
||||
},
|
||||
"LANSAT": {
|
||||
"name": "サンのみ",
|
||||
"effect": "HP 25%いかのとき こうげきが きゅうしょに あたりやすくなる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき 攻撃が 急所に 当たりやすくなる"
|
||||
},
|
||||
"STARF": {
|
||||
"name": "スターのみ",
|
||||
"effect": "HP 25%いかのとき のうりょくの どれか 1つが ぐーんと あがる"
|
||||
"effect": "持たせると HPが 25%以下に なるとき どれか 1つの 能力が ぐーんと あがる"
|
||||
},
|
||||
"LEPPA": {
|
||||
"name": "ヒメリのみ",
|
||||
"effect": "PPが 0に なった わざの PPを 10だけ かいふくする"
|
||||
"effect": "持たせると PPが 0になる 技のPPを 10回復する"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"title": "チャレンジを 設定",
|
||||
"title": "チャレンジを 設定",
|
||||
"illegalEvolution": "{{pokemon}}は このチャレンジで\n対象外の ポケモンに なってしまった!",
|
||||
"singleGeneration": {
|
||||
"name": "単一世代",
|
||||
"desc": "{{gen}}世代からの ポケモンしか 使えません",
|
||||
"desc_default": "選んだ 世代からの ポケモンしか 使えません",
|
||||
"desc": "{{gen}}世代からの ポケモンしか 使えません",
|
||||
"desc_default": "選んだ 世代からの ポケモンしか 使えません",
|
||||
"gen_1": "1",
|
||||
"gen_2": "2",
|
||||
"gen_3": "3",
|
||||
@ -17,14 +17,20 @@
|
||||
},
|
||||
"singleType": {
|
||||
"name": "単一タイプ",
|
||||
"desc": "{{type}}タイプの ポケモンしか 使えません",
|
||||
"desc_default": "選んだ タイプの ポケモンしか 使えません"
|
||||
"desc": "{{type}}タイプの ポケモンしか 使えません",
|
||||
"desc_default": "選んだ タイプの ポケモンしか 使えません"
|
||||
},
|
||||
"freshStart": {
|
||||
"name": "出直し",
|
||||
"shortName": "出直し",
|
||||
"desc": "ポケローグを 始めた ばかりの ような ままで ゲーム開始の 最初のパートナーしか 使えません",
|
||||
"desc": "ポケローグを 始めた ばかりの ような ままで ゲーム開始の スターターしか 使えません",
|
||||
"value.0": "オフ",
|
||||
"value.1": "オン"
|
||||
},
|
||||
"inverseBattle": {
|
||||
"name": "反転バトル",
|
||||
"shortName": "反バ",
|
||||
"desc": "タイプ相性が 反転で、なんの タイプも 「効果はなし」が ありません\n他の チャレンジの 実績が 無効に されます",
|
||||
"value.0": "オフ",
|
||||
"value.1": "オン"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,5 +3,5 @@
|
||||
"ball": "ボール",
|
||||
"pokemon": "ポケモン",
|
||||
"run": "にげる",
|
||||
"actionMessage": "{{pokemonName}}は どうする?"
|
||||
}
|
||||
"actionMessage": "{{pokemonName}}は どうする?"
|
||||
}
|
||||
|
@ -4,23 +4,23 @@
|
||||
"ultraTier": "超レア",
|
||||
"masterTier": "伝説",
|
||||
"defaultTier": "ふつう",
|
||||
"hatchWavesMessageSoon": "なかから おとが きこえてくる! もうすぐ うまれそう!",
|
||||
"hatchWavesMessageClose": "ときどき うごいている みたい。 うまれるまで もう ちょっとかな?",
|
||||
"hatchWavesMessageNotClose": "なにが うまれてくるのかな? うまれるまで まだまだ じかんが かかりそう。",
|
||||
"hatchWavesMessageLongTime": "この タマゴは うまれるまで かなり じかんが かかりそう。",
|
||||
"hatchWavesMessageSoon": "中から 音が 聞こえてくる! もうすぐ 生まれそう!",
|
||||
"hatchWavesMessageClose": "時々 動いている みたい。生まれるまで もう ちょっとかな?",
|
||||
"hatchWavesMessageNotClose": "なにが 生まれてくるのかな? 生まれるまで まだまだ 時間が かかりそう。",
|
||||
"hatchWavesMessageLongTime": "この タマゴは 生まれるまで かなり 時間が かかりそう。",
|
||||
"gachaTypeLegendary": "伝説確率アップ",
|
||||
"gachaTypeMove": "レアなタマゴわざ確率アップ",
|
||||
"gachaTypeMove": "レアなタマゴ技確率アップ",
|
||||
"gachaTypeShiny": "色違い確率アップ",
|
||||
"selectMachine": "ガチャマシンを選択",
|
||||
"notEnoughVouchers": "タマゴクーポンが足りません!",
|
||||
"tooManyEggs": "タマゴが一杯です!",
|
||||
"pull": "回引く",
|
||||
"pulls": "回引く",
|
||||
"sameSpeciesEgg": "{{species}}は このタマゴから うまれる!",
|
||||
"hatchFromTheEgg": "{{pokemonName}}は タマゴから うまれた!",
|
||||
"eggMoveUnlock": "タマゴわざ {{moveName}}を おぼえた!",
|
||||
"rareEggMoveUnlock": "レアなタマゴわざ {{moveName}}を おぼえた!!",
|
||||
"moveUPGacha": "わざ UP!",
|
||||
"sameSpeciesEgg": "{{species}}は このタマゴから 生まれる!",
|
||||
"hatchFromTheEgg": "{{pokemonName}}は タマゴから 生まれた!",
|
||||
"eggMoveUnlock": "タマゴ技: {{moveName}}を 覚えた!",
|
||||
"rareEggMoveUnlock": "レアなタマゴ技: {{moveName}}を 覚えた!!",
|
||||
"moveUPGacha": "技 UP!",
|
||||
"shinyUPGacha": "色違い UP!",
|
||||
"legendaryUPGacha": "UP!"
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"classic": "クラシック",
|
||||
"endless": "エンドレス",
|
||||
"endlessSpliced": "エンドレス (Spliced)",
|
||||
"endlessSpliced": "エンドレス(吸収合体)",
|
||||
"dailyRun": "デイリーラン",
|
||||
"unknown": "Unknown",
|
||||
"unknown": "???",
|
||||
"challenge": "チャレンジ"
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"stats": "統計",
|
||||
"playTime": "プレー時間",
|
||||
"playTime": "プレイ時間",
|
||||
"totalBattles": "合計バトル数",
|
||||
"starters": "スターター数",
|
||||
"shinyStarters": "色違いスターター数",
|
||||
@ -12,31 +12,31 @@
|
||||
"dailyRunAttempts": "デイリーラン",
|
||||
"dailyRunWins": "デイリーラン勝利",
|
||||
"endlessRuns": "エンドレスラン",
|
||||
"highestWaveEndless": "エンドレス最高ウェーブ",
|
||||
"highestWaveEndless": "エンドレス最高波",
|
||||
"highestMoney": "最大貯金",
|
||||
"highestDamage": "最大ダメージ",
|
||||
"highestHPHealed": "最大HP回復",
|
||||
"pokemonEncountered": "遭遇したポケモン",
|
||||
"pokemonDefeated": "倒したポケモン",
|
||||
"pokemonCaught": "捕まえたポケモン",
|
||||
"eggsHatched": "ふかしたタマゴ",
|
||||
"subLegendsSeen": "見つけた順伝説",
|
||||
"subLegendsCaught": "捕まえた順伝説",
|
||||
"subLegendsHatched": "ふかした順伝説",
|
||||
"legendsSeen": "見つけた伝説",
|
||||
"legendsCaught": "捕まえた伝説",
|
||||
"legendsHatched": "ふかした伝説",
|
||||
"eggsHatched": "孵化したタマゴ",
|
||||
"subLegendsSeen": "見つけた順伝説ポケモン",
|
||||
"subLegendsCaught": "捕まえた準伝説ポケモン",
|
||||
"subLegendsHatched": "孵化した準伝説ポケモン",
|
||||
"legendsSeen": "見つけた伝説ポケモン",
|
||||
"legendsCaught": "捕まえた伝説ポケモン",
|
||||
"legendsHatched": "孵化した伝説ポケモン",
|
||||
"mythicalsSeen": "見つけた幻ポケモン",
|
||||
"mythicalsCaught": "捕まえた幻ポケモン",
|
||||
"mythicalsHatched": "ふかした幻ポケモン",
|
||||
"shiniesSeen": "見つけた色違い",
|
||||
"shiniesCaught": "捕まえた色違い",
|
||||
"shiniesHatched": "ふかした色違い",
|
||||
"pokemonFused": "合体したポケモン",
|
||||
"mythicalsHatched": "孵化した幻ポケモン",
|
||||
"shiniesSeen": "見つけた色違いポケモン",
|
||||
"shiniesCaught": "捕まえた色違いポケモン",
|
||||
"shiniesHatched": "孵化した色違いポケモン",
|
||||
"pokemonFused": "吸収合体したポケモン",
|
||||
"trainersDefeated": "倒したトレーナー",
|
||||
"eggsPulled": "引いたタマゴ",
|
||||
"rareEggsPulled": "引いたレアタマゴ",
|
||||
"epicEggsPulled": "引いた超レアタマゴ",
|
||||
"legendaryEggsPulled": "引いた伝説タマゴ",
|
||||
"manaphyEggsPulled": "引いたマナフィタマゴ"
|
||||
}
|
||||
}
|
||||
|
@ -2,19 +2,22 @@
|
||||
"GAME_SETTINGS": "設定",
|
||||
"ACHIEVEMENTS": "実績",
|
||||
"STATS": "統計",
|
||||
"RUN_HISTORY": "ラン歴",
|
||||
"EGG_LIST": "タマゴリスト",
|
||||
"EGG_GACHA": "タマゴガチャ",
|
||||
"MANAGE_DATA": "データ管理",
|
||||
"COMMUNITY": "コミュニティ",
|
||||
"SAVE_AND_QUIT": "保存して終了",
|
||||
"SAVE_AND_QUIT": "セーブして終了",
|
||||
"LOG_OUT": "ログアウト",
|
||||
"slot": "スロット {{slotNumber}}",
|
||||
"importSession": "セッションのインポート",
|
||||
"importSession": "セッションをインポート",
|
||||
"importSlotSelect": "インポート先の スロットを 選んでください",
|
||||
"exportSession": "セッションのエクスポート",
|
||||
"exportSession": "セッションをエクスポート",
|
||||
"exportSlotSelect": "エクスポート元の スロットを 選んでください",
|
||||
"importData": "データのインポート",
|
||||
"exportData": "データのエクスポート",
|
||||
"importRunHistory": "ラン歴をインポート",
|
||||
"exportRunHistory": "ラン歴をエクスポート",
|
||||
"importData": "データをインポート",
|
||||
"exportData": "データをエクスポート",
|
||||
"consentPreferences": "同意設定",
|
||||
"linkDiscord": "Discord連携",
|
||||
"unlinkDiscord": "Discord連携解除",
|
||||
@ -22,5 +25,5 @@
|
||||
"unlinkGoogle": "Google連携解除",
|
||||
"cancel": "キャンセル",
|
||||
"losingProgressionWarning": "戦闘開始からの データが 保存されません。\nよろしいですか?",
|
||||
"noEggs": "現在 タマゴを ふかしていません!"
|
||||
}
|
||||
"noEggs": "現在は タマゴを 孵化していません!"
|
||||
}
|
||||
|
@ -1,38 +1,55 @@
|
||||
{
|
||||
"cancel": "キャンセル",
|
||||
"continue": "つづきから",
|
||||
"loadGame": "ロードセーブ",
|
||||
"dailyRun": "日替わりラン(ベータ版)",
|
||||
"loadGame": "セーブを読み込む",
|
||||
"newGame": "はじめから",
|
||||
"username": "ユーザーめい",
|
||||
"settings": "設定",
|
||||
"selectGameMode": "ゲームモードを 選んでください。",
|
||||
"logInOrCreateAccount": "始めるには、ログイン、または 登録して ください。\nメールアドレスは 必要が ありません!",
|
||||
"username": "ユーザー名",
|
||||
"password": "パスワード",
|
||||
"login": "ログイン",
|
||||
"orUse": "Or use",
|
||||
"register": "かいいん とうろく",
|
||||
"emptyUsername": "ユーザー名は空にできません",
|
||||
"invalidLoginUsername": "入力したユーザー名は無効です",
|
||||
"invalidRegisterUsername": "ユーザー名には英文字、数字、アンダースコアのみを含める必要があります",
|
||||
"orUse": "他の\nログイン方法",
|
||||
"register": "登録",
|
||||
"emptyUsername": "ユーザー名を 空にする ことは できません",
|
||||
"invalidLoginUsername": "入力されたユーザー名は無効です",
|
||||
"invalidRegisterUsername": "ユーザー名には 英文字、 数字、 アンダースコアのみを 含くむ必要が あります",
|
||||
"invalidLoginPassword": "入力したパスワードは無効です",
|
||||
"invalidRegisterPassword": "パスワードは6文字以上でなければなりません",
|
||||
"usernameAlreadyUsed": "ユーザー名は既に使用されています",
|
||||
"accountNonExistent": "ユーザーは存在しません",
|
||||
"unmatchingPassword": "パスワードが一致しません",
|
||||
"passwordNotMatchingConfirmPassword": "パスワードは確認パスワードと一致する必要があります",
|
||||
"invalidRegisterPassword": "パスワードは 6文字以上 でなければなりません",
|
||||
"usernameAlreadyUsed": "入力したユーザー名は すでに 使用されています",
|
||||
"accountNonExistent": "入力したユーザーは 存在しません",
|
||||
"unmatchingPassword": "入力したパスワードが 一致しません",
|
||||
"passwordNotMatchingConfirmPassword": "パスワードは パスワード確認と 一致する 必要があります",
|
||||
"confirmPassword": "パスワード確認",
|
||||
"registrationAgeWarning": "登録することで、あなたが13歳以上であることを確認します。",
|
||||
"registrationAgeWarning": "登録では 13歳以上 であることを 確認します。",
|
||||
"backToLogin": "ログインへ",
|
||||
"failedToLoadSaveData": "保存データの読み込みに失敗しました。ページを再読み込みしてください。\nこれが続く場合は、管理者に連絡してください。",
|
||||
"sessionSuccess": "セッションが正常に読み込まれました。",
|
||||
"failedToLoadSession": "セッションデータを読み込むことができませんでした。\nデータが破損している可能性があります。",
|
||||
"boyOrGirl": "おとこのこ?\nそれとも おんなのこ?",
|
||||
"evolving": "…おや!?\n{{pokemonName}}のようすが…!",
|
||||
"stoppedEvolving": "{{pokemonName}}のへんかがとまった",
|
||||
"evolutionDone": "おめでとう!\n{{pokemonName}}は{{evolvedPokemonName}}にしんかした!",
|
||||
"dailyRankings": "ほんじつのランキング",
|
||||
"weeklyRankings": "しゅうのランキング",
|
||||
"failedToLoadSaveData": "セーブデータの 読み込みは 不可能でした。ページを 再読み込み してください。\n長い間に続く 場合は 管理者に 連絡してください。",
|
||||
"sessionSuccess": "セッションが 正常に 読み込まれました。",
|
||||
"failedToLoadSession": "セッションデータを 読み込むことが できませんでした。\nデータが 破損している 可能性が あります。",
|
||||
"boyOrGirl": "男の子?\nそれとも 女の子?",
|
||||
"evolving": "…おや!?\n{{pokemonName}}の 様子が…!",
|
||||
"stoppedEvolving": "あれ…? {{pokemonName}}の 変化が 止まった!",
|
||||
"pauseEvolutionsQuestion": "{{pokemonName}}の 進化を 休止しますか?\n後で 手持ち画面から 進化を また 可能にできます。",
|
||||
"evolutionsPaused": "{{pokemonName}}の 進化を 休止しました。",
|
||||
"evolutionDone": "おめでとう!\n{{pokemonName}}は {{evolvedPokemonName}}に 進化した!",
|
||||
"dailyRankings": "今日のランキング",
|
||||
"weeklyRankings": "今週のランキング",
|
||||
"noRankings": "ランキングなし",
|
||||
"positionIcon": "#",
|
||||
"loading": "よみこみちゅう…",
|
||||
"usernameScoreboard": "ユーザー名",
|
||||
"score": "スコア",
|
||||
"wave": "波",
|
||||
"loading": "読み込み中…",
|
||||
"loadingAsset": "読み込み中:{{assetName}}",
|
||||
"playersOnline": "オンラインのプレイヤー",
|
||||
"yes": "はい",
|
||||
"no": "いいえ"
|
||||
}
|
||||
"no": "いいえ",
|
||||
"disclaimer": "免責",
|
||||
"disclaimerDescription": "このゲームは 未完成作品です。\nセーブデータの 損失を含める ゲーム性に関する 問題が 起きる可能性が あります。\nなお、ゲームは 予告なく変更される 可能性もあり、さらに更新され、完成されるとも 限りません。",
|
||||
"choosePokemon": "ポケモンを選ぶ",
|
||||
"renamePokemon": "ニックネームを変える",
|
||||
"rename": "変える",
|
||||
"nickname": "ニックネーム",
|
||||
"errorServerDown": "おや!\nサーバーとの 接続中に 問題が 発生しました。\nゲームは 自動的に 再接続されます から\nウィンドウは 開いたままに しておいても よろしいです。"
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
{
|
||||
"transfer": "アイテム移行",
|
||||
"reroll": "選択肢変更",
|
||||
"lockRarities": "レア度の固定",
|
||||
"checkTeam": "チームを確認",
|
||||
"transferDesc": "ポケモンの 手持ちアイテムを 移行する",
|
||||
"lockRarities": "レア度を固定",
|
||||
"checkTeam": "手持ちを確認",
|
||||
"transferDesc": "手持ちポケモンの 持たせるアイテムを 移行する",
|
||||
"rerollDesc": "お金を 使って アイテムの 選択肢を 変更する",
|
||||
"lockRaritiesDesc": "選択肢を 変更するときの レア度を 固定する\n(選択肢変更金額を影響する)",
|
||||
"checkTeamDesc": "チームの 状態を 確認する\nフォルムチェンジアイテムを 有効・無効にする",
|
||||
"lockRaritiesDesc": "選択肢を 変更するときの レア度を 固定する\n(選択肢変更の価格は変わる)",
|
||||
"checkTeamDesc": "手持ちポケモンの 状態を 確認する\nフォルムチェンジアイテムを 有効・無効にする",
|
||||
"rerollCost": "{{formattedMoney}}円",
|
||||
"itemCost": "{{formattedMoney}}円"
|
||||
}
|
||||
|
@ -2,21 +2,22 @@
|
||||
"Stat": {
|
||||
"HP": "HP",
|
||||
"HPshortened": "HP",
|
||||
"ATK": "こうげき",
|
||||
"ATKshortened": "こうげき",
|
||||
"DEF": "ぼうぎょ",
|
||||
"DEFshortened": "ぼうぎょ",
|
||||
"SPATK": "とくこう",
|
||||
"SPATKshortened": "とくこう",
|
||||
"SPDEF": "とくぼう",
|
||||
"SPDEFshortened": "とくぼう",
|
||||
"SPD": "すばやさ",
|
||||
"SPDshortened": "すばやさ",
|
||||
"ACC": "めいちゅう",
|
||||
"EVA": "かいひ"
|
||||
"ATK": "攻撃",
|
||||
"ATKshortened": "攻撃",
|
||||
"DEF": "防御",
|
||||
"DEFshortened": "防御",
|
||||
"SPATK": "特攻",
|
||||
"SPATKshortened": "特攻",
|
||||
"SPDEF": "特防",
|
||||
"SPDEFshortened": "特防",
|
||||
"SPD": "素早さ",
|
||||
"SPDshortened": "素早さ",
|
||||
"ACC": "命中",
|
||||
"EVA": "回避",
|
||||
"HPStat": "HP"
|
||||
},
|
||||
"Type": {
|
||||
"UNKNOWN": "Unknown",
|
||||
"UNKNOWN": "???",
|
||||
"NORMAL": "ノーマル",
|
||||
"FIGHTING": "かくとう",
|
||||
"FLYING": "ひこう",
|
||||
@ -37,4 +38,4 @@
|
||||
"FAIRY": "フェアリー",
|
||||
"STELLAR": "ステラ"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -437,7 +437,7 @@
|
||||
"bronzor": "ドーミラー",
|
||||
"bronzong": "ドータクン",
|
||||
"bonsly": "ウソハチ",
|
||||
"mime_jr.": "マネネ",
|
||||
"mime_jr": "マネネ",
|
||||
"happiny": "ピンプク",
|
||||
"chatot": "ペラップ",
|
||||
"spiritomb": "ミカルゲ",
|
||||
@ -770,7 +770,7 @@
|
||||
"sandygast": "スナバァ",
|
||||
"palossand": "シロデスナ",
|
||||
"pyukumuku": "ナマコブシ",
|
||||
"type:_null": "タイプ:ヌル",
|
||||
"type_null": "タイプ:ヌル",
|
||||
"silvally": "シルヴァディ",
|
||||
"minior": "メテノ",
|
||||
"komala": "ネッコアラ",
|
||||
@ -863,7 +863,7 @@
|
||||
"obstagoon": "タチフサグマ",
|
||||
"perrserker": "ニャイキング",
|
||||
"cursola": "サニゴーン",
|
||||
"sirfetch_d": "ネギガナイト",
|
||||
"sirfetchd": "ネギガナイト",
|
||||
"mr_rime": "バリコオル",
|
||||
"runerigus": "デスバーン",
|
||||
"milcery": "マホミル",
|
||||
@ -1081,4 +1081,4 @@
|
||||
"paldea_tauros": "ケンタロス",
|
||||
"paldea_wooper": "ウパー",
|
||||
"bloodmoon_ursaluna": "ガチグマ"
|
||||
}
|
||||
}
|
||||
|
@ -6,12 +6,14 @@
|
||||
"audio": "音声",
|
||||
"gamepad": "コントローラー",
|
||||
"keyboard": "キーボード",
|
||||
"gameSpeed": "ゲームスピード",
|
||||
"hpBarSpeed": "HPバーの増減スピード",
|
||||
"expGainsSpeed": "EXPバーの増加スピード",
|
||||
"expPartyDisplay": "パーティの経験値取得表示",
|
||||
"gameSpeed": "ゲームの速さ",
|
||||
"hpBarSpeed": "HPバー増減の速さ",
|
||||
"expGainsSpeed": "経験値バー増加の速さ",
|
||||
"expPartyDisplay": "手持ちの経験値取得表示",
|
||||
"skipSeenDialogues": "もう見た話をスキップ",
|
||||
"battleStyle": "試合のルール",
|
||||
"enableRetries": "リトライを有効にする",
|
||||
"enableRetries": "再挑戦を有効にする",
|
||||
"hideIvs": "個体値スキャナーを隠す",
|
||||
"tutorials": "チュートリアル",
|
||||
"touchControls": "タッチ操作",
|
||||
"vibrations": "振動",
|
||||
@ -35,33 +37,71 @@
|
||||
"moneyFormat": "お金の表示形式",
|
||||
"damageNumbers": "ダメージ表示",
|
||||
"simple": "シンプル",
|
||||
"fancy": "Fancy",
|
||||
"fancy": "オシャレ",
|
||||
"abbreviated": "省略",
|
||||
"moveAnimations": "戦闘アニメ",
|
||||
"moveAnimations": "戦闘アニメーション",
|
||||
"showStatsOnLevelUp": "レベルアップ時のステータス表示",
|
||||
"candyUpgradeNotification": "飴アプグレ通知",
|
||||
"passivesOnly": "パッシブのみ",
|
||||
"candyUpgradeDisplay": "飴アプグレ表示",
|
||||
"icon": "アイコン",
|
||||
"animation": "アニメーション",
|
||||
"moveInfo": "技の情報表示",
|
||||
"moveInfo": "技情報",
|
||||
"showMovesetFlyout": "技情報表示",
|
||||
"showArenaFlyout": "戦場情報表示",
|
||||
"showTimeOfDayWidget": "時刻指標",
|
||||
"timeOfDayAnimation": "時刻指標アニメーション",
|
||||
"bounce": "跳ねる",
|
||||
"timeOfDay_back": "跳ね返る",
|
||||
"spriteSet": "スプライト設定",
|
||||
"consistent": "一貫",
|
||||
"mixedAnimated": "アニメーションミックス",
|
||||
"fusionPaletteSwaps": "吸収合体ポケモンの色違い",
|
||||
"playerGender": "プレイヤーの性別",
|
||||
"typeHints": "相性のヒント",
|
||||
"typeHints": "タイプ相性ヒント",
|
||||
"masterVolume": "マスターボリューム",
|
||||
"bgmVolume": "BGMのボリューム",
|
||||
"seVolume": "SEのボリューム",
|
||||
"bgmVolume": "BGMボリューム",
|
||||
"fieldVolume": "フィールドボリューム",
|
||||
"seVolume": "SEボリューム",
|
||||
"uiVolume": "UIボリューム",
|
||||
"musicPreference": "BGM設定",
|
||||
"mixed": "ミックス",
|
||||
"gamepadPleasePlug": "コントローラーを 接続してください\nまたは、ボタンを 押してください",
|
||||
"delete": "削除",
|
||||
"keyboardPleasePress": "キーを押してください",
|
||||
"reset": "リセット",
|
||||
"requireReload": "再読み込みが必要",
|
||||
"action": "決定",
|
||||
"back": "戻る",
|
||||
"pressToBind": "押下でキーバインド",
|
||||
"pressButton": "ボタンを押してください",
|
||||
"buttonUp": "上",
|
||||
"buttonDown": "下",
|
||||
"buttonLeft": "左",
|
||||
"buttonRight": "右",
|
||||
"buttonAction": "決定",
|
||||
"buttonMenu": "メニュー",
|
||||
"buttonSubmit": "Submit",
|
||||
"buttonSubmit": "提出",
|
||||
"buttonCancel": "キャンセル",
|
||||
"alt": " (代替)",
|
||||
"buttonStats": "能力変化表示",
|
||||
"buttonCycleForm": "フォルム変更",
|
||||
"buttonCycleShiny": "色違い変更",
|
||||
"buttonCycleGender": "性別変更",
|
||||
"buttonCycleAbility": "特性変更",
|
||||
"buttonCycleNature": "性格変更",
|
||||
"buttonCycleVariant": "色変更",
|
||||
"buttonSpeedUp": "速さを上げる",
|
||||
"buttonSlowDown": "速さを下げる",
|
||||
"alt": "(代替)",
|
||||
"mute": "ミュート",
|
||||
"controller": "コントローラー",
|
||||
"gamepadSupport": "コントローラーサポート"
|
||||
"gamepadSupport": "コントローラーサポート",
|
||||
"showBgmBar": "BGMの名前を表示",
|
||||
"moveTouchControls": "タッチ移動操作",
|
||||
"shopOverlayOpacity": "ショップオーバレイ不透明度",
|
||||
"shopCursorTarget": "ショップカーソル初位置",
|
||||
"items": "アイテム",
|
||||
"reroll": "選択肢変更",
|
||||
"shop": "ショップ",
|
||||
"checkTeam": "手持ちを確認"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"confirmStartTeam": "この条件で チャレンジを 始めますか?",
|
||||
"confirmStartTeam": "この手持ちで 始めますか?",
|
||||
"confirmExit": "終了しますか?",
|
||||
"invalidParty": "手持ちは チャレンジの 条件で 認められない!",
|
||||
"gen1": "1世代",
|
||||
@ -16,8 +16,8 @@
|
||||
"passive": "パッシブ:",
|
||||
"nature": "性格:",
|
||||
"eggMoves": "タマゴ技",
|
||||
"start": "始める",
|
||||
"addToParty": "手持ちに入れる",
|
||||
"removeFromParty": "手持ちから除く",
|
||||
"toggleIVs": "個体値を表示",
|
||||
"manageMoves": "技を並び替える",
|
||||
"manageNature": "性格を変える",
|
||||
@ -36,9 +36,10 @@
|
||||
"cycleAbility": ": 特性変更",
|
||||
"cycleNature": ": 性格変更",
|
||||
"cycleVariant": ": 色変更",
|
||||
"goFilter": ": フィルタ へ ",
|
||||
"enablePassive": "パッシブ - オン",
|
||||
"disablePassive": "パッシブ - オフ",
|
||||
"locked": "開放されていない",
|
||||
"locked": "非開放",
|
||||
"disabled": "無効",
|
||||
"uncaught": "捕まっていない"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,130 @@
|
||||
{}
|
||||
{
|
||||
"ace_trainer": "エリートトレーナー",
|
||||
"ace_trainer_female": "エリートトレーナー",
|
||||
"ace_duo": "エリートコンビ",
|
||||
"artist": "芸術家",
|
||||
"artist_female": "芸術家",
|
||||
"backers": "ファンクラブ",
|
||||
"backpacker": "バックパッカー",
|
||||
"backpacker_female": "バックパッカー",
|
||||
"backpackers": "バックパッカーズ",
|
||||
"baker": "ベーカリー",
|
||||
"battle_girl": "バトルガール",
|
||||
"beauty": "大人のおねえさん",
|
||||
"beginners": "初心者",
|
||||
"biker": "暴走族",
|
||||
"black_belt": "カラテ王",
|
||||
"breeder": "ポケモンブリーダー",
|
||||
"breeder_female": "ポケモンブリーダー",
|
||||
"breeders": "ブリーダーコンビ",
|
||||
"clerk": "ビジネスマン",
|
||||
"clerk_female": "OL",
|
||||
"colleagues": "ビジネスパートナー",
|
||||
"crush_kin": "格闘兄妹",
|
||||
"cyclist": "サイクリング",
|
||||
"cyclist_female": "サイクリング",
|
||||
"cyclists": "サイクリングチーム",
|
||||
"dancer": "ダンサー",
|
||||
"dancer_female": "ダンサー",
|
||||
"depot_agent": "鉄道員",
|
||||
"doctor": "ドクター",
|
||||
"doctor_female": "ドクター",
|
||||
"firebreather": "火吹きやろう",
|
||||
"fisherman": "釣り人",
|
||||
"fisherman_female": "釣り人",
|
||||
"gentleman": "ジェントルマン",
|
||||
"guitarist": "ギタリスト",
|
||||
"guitarist_female": "ギタリスト",
|
||||
"harlequin": "クラウン",
|
||||
"hiker": "山男",
|
||||
"hooligans": "バッドチーム",
|
||||
"hoopster": "バスケ選手",
|
||||
"infielder": "野球選手",
|
||||
"janitor": "清掃員",
|
||||
"lady": "お嬢さま",
|
||||
"lass": "ミニスカート",
|
||||
"linebacker": "フットボーラー",
|
||||
"maid": "メイド",
|
||||
"madame": "マダム",
|
||||
"medical_team": "医療チーム",
|
||||
"musician": "ミュージシャン",
|
||||
"hex_maniac": "オカルトマニア",
|
||||
"nurse": "ナース",
|
||||
"nursery_aide": "保育士",
|
||||
"officer": "お巡りさん",
|
||||
"parasol_lady": "パラソルおねえさん",
|
||||
"pilot": "パイロット",
|
||||
"pokéfan": "大好きクラブ",
|
||||
"pokéfan_female": "大好きクラブ",
|
||||
"pokéfan_family": "大好き夫婦",
|
||||
"preschooler": "園児",
|
||||
"preschooler_female": "園児",
|
||||
"preschoolers": "園児たち",
|
||||
"psychic": "サイキッカー",
|
||||
"psychic_female": "サイキッカー",
|
||||
"psychics": "サイキッ家",
|
||||
"pokémon_ranger": "ポケモンレンジャー",
|
||||
"pokémon_ranger_female": "ポケモンレンジャー",
|
||||
"pokémon_rangers": "レンジャーズ",
|
||||
"ranger": "レンジャー",
|
||||
"restaurant_staff": "レストランスタッフ",
|
||||
"rich": "お金持ち",
|
||||
"rich_female": "お金持ち",
|
||||
"rich_boy": "お坊っちゃま",
|
||||
"rich_couple": "お二人さま",
|
||||
"rich_kid": "ブルジョワ男子",
|
||||
"rich_kid_female": "ブルジョワ女子",
|
||||
"rich_kids": "ブルジョワ子達",
|
||||
"roughneck": "スキンヘッズ",
|
||||
"sailor": "船乗り",
|
||||
"scientist": "研究員",
|
||||
"scientist_female": "研究員",
|
||||
"scientists": "研究チーム",
|
||||
"smasher": "テニスプレイヤー",
|
||||
"snow_worker": "冷凍作業員",
|
||||
"snow_worker_female": "冷凍作業員",
|
||||
"striker": "サッカー選手",
|
||||
"school_kid": "塾帰り",
|
||||
"school_kid_female": "塾帰り",
|
||||
"school_kids": "塾生たち",
|
||||
"swimmer": "海パンやろう",
|
||||
"swimmer_female": "ビキニのおねえさん",
|
||||
"swimmers": "水着カップル",
|
||||
"twins": "双子ちゃん",
|
||||
"veteran": "ベテラントレーナー",
|
||||
"veteran_female": "ベテラントレーナー",
|
||||
"veteran_duo": "ベテランコンビ",
|
||||
"waiter": "ウエーター",
|
||||
"waitress": "ウエートレス",
|
||||
"worker": "作業員",
|
||||
"worker_female": "作業員",
|
||||
"workers": "作業班",
|
||||
"youngster": "短パン小僧",
|
||||
"rocket_grunt": "ロケット団の下っ端",
|
||||
"rocket_grunts": " ロケット団の下っ端",
|
||||
"rocket_grunt_female": "ロケット団の下っ端",
|
||||
"magma_grunt": "マグマ団の下っ端",
|
||||
"magma_grunt_female": "マグマ団の下っ端",
|
||||
"magma_grunts": "マグマ団の下っ端",
|
||||
"aqua_grunt": "アクア団の下っ端",
|
||||
"aqua_grunt_female": "アクア団の下っ端",
|
||||
"aqua_grunts": "アクア団の下っ端",
|
||||
"galactic_grunt": "ギンガ団の下っ端",
|
||||
"galactic_grunt_female": "ギンガ団の下っ端",
|
||||
"galactic_grunts": "ギンガ団の下っ端",
|
||||
"plasma_grunt": "プラスマ団の下っ端",
|
||||
"plasma_grunt_female": "プラズマ団の下っ端",
|
||||
"plasma_grunts": "プラズマ団の下っ端",
|
||||
"flare_grunt": "フレア団の下っ端",
|
||||
"flare_grunt_female": "フレア団の下っ端",
|
||||
"flare_grunts": "フレア団の下っ端",
|
||||
"aether_grunt": "エーテル財団の職員",
|
||||
"aether_grunt_female": "エーテル財団の職員",
|
||||
"aether_grunts": "エーテル財団の職員",
|
||||
"skull_grunt": "スカル団の下っ端",
|
||||
"skull_grunt_female": "スカル団の下っ端",
|
||||
"skull_grunts": "スカル団の下っ端",
|
||||
"macro_grunt": "マクロコスモスのトレーナ",
|
||||
"macro_grunt_female": "マクロコスモスのトレーナ",
|
||||
"macro_grunts": "マクロコスモスのトレーナ"
|
||||
}
|
||||
|
@ -1 +1,164 @@
|
||||
{}
|
||||
{
|
||||
"brock": "タケシ",
|
||||
"misty": "カスミ",
|
||||
"lt_surge": "マチス",
|
||||
"erika": "エリカ",
|
||||
"janine": "アンズ",
|
||||
"sabrina": "ナツメ",
|
||||
"blaine": "カツラ",
|
||||
"giovanni": "サカキ",
|
||||
"falkner": "ハヤト",
|
||||
"bugsy": "ツクシ",
|
||||
"whitney": "アカネ",
|
||||
"morty": "マツバ",
|
||||
"chuck": "シジマ",
|
||||
"jasmine": "ミカン",
|
||||
"pryce": "ヤナギ",
|
||||
"clair": "イブキ",
|
||||
"roxanne": "ツツジ",
|
||||
"brawly": "トウキ",
|
||||
"wattson": "テッセン",
|
||||
"flannery": "アスナ",
|
||||
"norman": "センリ",
|
||||
"winona": "ナギ",
|
||||
"tate": "フウ",
|
||||
"liza": "ラン",
|
||||
"juan": "アダン",
|
||||
"roark": "ヒョウタ",
|
||||
"gardenia": "ナタネ",
|
||||
"maylene": "スモモ",
|
||||
"crasher_wake": "マキシ",
|
||||
"fantina": "メリッサ",
|
||||
"byron": "トウガン",
|
||||
"candice": "スズナ",
|
||||
"volkner": "デンジ",
|
||||
"cilan": "デント",
|
||||
"chili": "ポッド",
|
||||
"cress": "コーン",
|
||||
"cheren": "チェレン",
|
||||
"lenora": "アロエ",
|
||||
"roxie": "ホミカ",
|
||||
"burgh": "アーティ",
|
||||
"elesa": "カミツレ",
|
||||
"clay": "ヤーコン",
|
||||
"skyla": "フウロ",
|
||||
"brycen": "ハチク",
|
||||
"drayden": "シャガ",
|
||||
"marlon": "シズイ",
|
||||
"viola": "ビオラ",
|
||||
"grant": "ザクロ",
|
||||
"korrina": "コルニ",
|
||||
"ramos": "フクジ",
|
||||
"clemont": "シトロン",
|
||||
"valerie": "マーシュ",
|
||||
"olympia": "ゴジカ",
|
||||
"wulfric": "ウルップ",
|
||||
"milo": "ヤロー",
|
||||
"nessa": "ルリナ",
|
||||
"kabu": "カブ",
|
||||
"bea": "サイトウ",
|
||||
"allister": "オニオン",
|
||||
"opal": "ポプラ",
|
||||
"bede": "ビート",
|
||||
"gordie": "マクワ",
|
||||
"melony": "メロン",
|
||||
"piers": "ネズ",
|
||||
"marnie": "マリィ",
|
||||
"raihan": "キバナ",
|
||||
"katy": "カエデ",
|
||||
"brassius": "コルサ",
|
||||
"iono": " ナンジャモ",
|
||||
"kofu": "ハイダイ",
|
||||
"larry": "アオキ",
|
||||
"ryme": "ライム",
|
||||
"tulip": "リップ",
|
||||
"grusha": "グルーシャ",
|
||||
"lorelei": "カンナ",
|
||||
"bruno": "シバ",
|
||||
"agatha": "キクコ",
|
||||
"lance": "ワタル",
|
||||
"will": "イツキ",
|
||||
"koga": "キョウ",
|
||||
"karen": "カリン",
|
||||
"sidney": "カゲツ",
|
||||
"phoebe": "フヨウ",
|
||||
"glacia": "プリム",
|
||||
"drake": "ゲンジ",
|
||||
"aaron": "リョウ",
|
||||
"bertha": "キクノ",
|
||||
"flint": "オーバ",
|
||||
"lucian": "ゴヨウ",
|
||||
"shauntal": "シキミ",
|
||||
"marshal": "レンブ",
|
||||
"grimsley": "ギーマ",
|
||||
"caitlin": "カトレア",
|
||||
"malva": "パキラ",
|
||||
"siebold": "ズミ",
|
||||
"wikstrom": "ガンピ",
|
||||
"drasna": "ドラセナ",
|
||||
"hala": "ハラ",
|
||||
"molayne": "マーレイン",
|
||||
"olivia": "ライチ",
|
||||
"acerola": "アセロラ",
|
||||
"kahili": "カヒリ",
|
||||
"rika": "チリ",
|
||||
"poppy": "ポピー",
|
||||
"hassel": "ハッサク",
|
||||
"crispin": "アカマツ",
|
||||
"amarys": "ネリネ",
|
||||
"lacey": "タロ",
|
||||
"drayton": "カキツバタ",
|
||||
"blue": "グリーン",
|
||||
"red": "レッド",
|
||||
"steven": "ダイゴ",
|
||||
"wallace": "ミクリ",
|
||||
"cynthia": "シロナ",
|
||||
"alder": "アデク",
|
||||
"iris": "アイリス",
|
||||
"diantha": "カルネ",
|
||||
"hau": "ハウ",
|
||||
"geeta": "オモダカ",
|
||||
"nemona": "ネモ",
|
||||
"kieran": "スグリ",
|
||||
"leon": "ダンデ",
|
||||
"rival": "フィン",
|
||||
"rival_female": "アイヴィー",
|
||||
"archer": "アポロ",
|
||||
"ariana": "アテナ",
|
||||
"proton": "ランス",
|
||||
"petrel": "ラムダ",
|
||||
"tabitha": "ホムラ",
|
||||
"courtney": "カガリ",
|
||||
"shelly": "イズミ",
|
||||
"matt": "ウシオ",
|
||||
"mars": "マーズ",
|
||||
"jupiter": "ジュピター",
|
||||
"saturn": "サターン",
|
||||
"zinzolin": "ヴィオ",
|
||||
"rood": "ロット",
|
||||
"xerosic": "クセロシキ",
|
||||
"bryony": "バラ",
|
||||
"faba": "ザオボー",
|
||||
"plumeria": "プルメリ",
|
||||
"oleana": "オリーヴ",
|
||||
|
||||
"maxie": "マツブサ",
|
||||
"archie": "アオギリ",
|
||||
"cyrus": "アカギ",
|
||||
"ghetsis": "ゲーチス",
|
||||
"lysandre": "フラダリ",
|
||||
"lusamine": "ルザミーネ",
|
||||
"guzma": "グズマ",
|
||||
"rose": "ローズ",
|
||||
|
||||
"blue_red_double": "グリーンとレッド",
|
||||
"red_blue_double": "レッドとグリーン",
|
||||
"tate_liza_double": "フウとラン",
|
||||
"liza_tate_double": "ランとフウ",
|
||||
"steven_wallace_double": "ダイゴとミクリ",
|
||||
"wallace_steven_double": "ミクリとダイゴ",
|
||||
"alder_iris_double": "アデクとアイリス",
|
||||
"iris_alder_double": "アイリスとアデク",
|
||||
"marnie_piers_double": "マリィとネズ",
|
||||
"piers_marnie_double": "ネズとマリィ"
|
||||
}
|
||||
|
@ -1 +1,38 @@
|
||||
{}
|
||||
{
|
||||
"elite_four": "四天王",
|
||||
"elite_four_female": "四天王",
|
||||
"gym_leader": "ジムリーダー",
|
||||
"gym_leader_female": "ジムリーダー",
|
||||
"gym_leader_double": "ジムリーダーコンビ",
|
||||
"champion": "チャンピオン",
|
||||
"champion_female": "チャンピオン",
|
||||
"champion_double": "チャンピオンコンビ",
|
||||
"rival": "ライバル",
|
||||
"professor": "ポケモン博士",
|
||||
"frontier_brain": "フロンティアブレーン",
|
||||
"rocket_boss": "ロケット団ボス",
|
||||
"magma_boss": "マグマ団リーダー",
|
||||
"aqua_boss": "アクア団リーダー",
|
||||
"galactic_boss": "ギンガ団ボス",
|
||||
"plasma_boss": "プラズマ団ボス",
|
||||
"flare_boss": "フレア団ボス",
|
||||
"aether_boss": "エーテル代表",
|
||||
"skull_boss": "スカル団ボス",
|
||||
"macro_boss": "マクロコスモス社長",
|
||||
|
||||
"rocket_admin": "ロケット団幹部",
|
||||
"rocket_admin_female": "ロケット団幹部",
|
||||
"magma_admin": "マグマ団幹部",
|
||||
"magma_admin_female": "マグマロケット団幹部",
|
||||
"aqua_admin": "アクア団幹部",
|
||||
"aqua_admin_female": "アクア団幹部",
|
||||
"galactic_commander": "ギンガ団幹部",
|
||||
"galactic_commander_female": "ギンガ団幹部",
|
||||
"plasma_sage": "プラズマ団賢人",
|
||||
"plasma_admin": "プラズマ団賢人",
|
||||
"flare_admin": "フレア団幹部",
|
||||
"flare_admin_female": "フレア団幹部",
|
||||
"aether_admin": "エーテル支部長",
|
||||
"skull_admin": "スカル団幹部",
|
||||
"macro_admin": "マクロコスモス"
|
||||
}
|
||||
|
@ -225,7 +225,7 @@
|
||||
"name": "독침붕처럼 쏴라"
|
||||
},
|
||||
"MONO_GHOST": {
|
||||
"name": "누굴 부를 거야?"
|
||||
"name": "무서운 게 딱 좋아!"
|
||||
},
|
||||
"MONO_STEEL": {
|
||||
"name": "강철 심장"
|
||||
|
@ -47,5 +47,11 @@
|
||||
"tailwindOnRemovePlayer": "우리 편의\n순풍이 멈췄다!",
|
||||
"tailwindOnRemoveEnemy": "상대의\n순풍이 멈췄다!",
|
||||
"happyHourOnAdd": "모두 행복한 기분에\n휩싸였다!",
|
||||
"happyHourOnRemove": "기분이 원래대로 돌아왔다."
|
||||
"happyHourOnRemove": "기분이 원래대로 돌아왔다.",
|
||||
"safeguardOnAdd": "필드 전체가 신비의 베일에 둘러싸였다!",
|
||||
"safeguardOnAddPlayer": "우리 편은 신비의 베일에 둘러싸였다!",
|
||||
"safeguardOnAddEnemy": "상대 편은 신비의 베일에 둘러싸였다!",
|
||||
"safeguardOnRemove": "필드를 감싸던 신비의 베일이 없어졌다!",
|
||||
"safeguardOnRemovePlayer": "우리 편을 감싸던 신비의 베일이 없어졌다!",
|
||||
"safeguardOnRemoveEnemy": "상대 편을 감싸던 신비의 베일이 없어졌다!"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"ending": "@c{smile}오? 이긴거야?@d{96} @c{smile_eclosed}진즉 알았어야 했는데.\n아무튼, 돌아왔구나.\n$@c{smile}다 끝난거야.@d{64} 네가 굴레를 끝장냈어.\n$@c{serious_smile_fists}네 꿈도 이뤄졌고말야.\n진짜로 한 번도 안 졌잖아.\n$@c{neutral}기억하는 건 우리들 뿐일 모양이지만.@d{96}\n그래도, 괜찮지?\n$@c{serious_smile_fists}오늘의 일은\n너와 나의 마음 속에 항상 함께할 거야.\n$@c{smile_eclosed}여기 구경도 충분히 했으니\n이제 집에 가자.\n$@c{serious_smile_fists}되돌아가서, 다시 배틀을 할 수도 있지 않을까?\n네가 원한다면 말야.",
|
||||
"ending_female": "@c{shock}돌아왔구나?@d{32} 그 말은…@d{96} 이겼어?!\n@c{smile_ehalf}그럴 줄 알았다니까.\n$@c{smile_eclosed}물론… 언제나 느껴왔지.\n@c{smile}끝난 거, 맞지? 이 굴레를 말이야.\n$@c{smile_ehalf}네 꿈도 이뤘고 말이야.\n어떻게 한번도 안 졌대?\n$네가 한 일은 나만 기억하게 될 모양이지만.\n@c{angry_mopen}나, 안 까먹어볼 테니까!\n$@c{smile_wave_wink}농담이야!@d{64} @c{smile}절대 안 잊어버릴 거야.@d{32}\n마음 속엔 쭉 남아있을 수 있게.\n$@c{smile_wave}어쨌든,@d{64} 시간이 좀 늦었어…@d{96}\n이런 곳에서 할 말은 아닌가?\n$집에 가자. @c{smile_wave_wink}아마 내일은,\n추억을 되짚어보기 위한 배틀을 해볼 수 있을 거야.",
|
||||
"ending": "@c{shock}돌아왔구나?@d{32} 그 말은…@d{96} 이겼어?!\n@c{smile_ehalf}그럴 줄 알았다니까.\n$@c{smile_eclosed}물론… 언제나 느껴왔지.\n@c{smile}끝난 거, 맞지? 이 굴레를 말이야.\n$@c{smile_ehalf}네 꿈도 이뤘고 말이야.\n어떻게 한번도 안 졌대?\n$네가 한 일은 나만 기억하게 될 모양이지만.\n@c{angry_mopen}나, 안 까먹어볼 테니까!\n$@c{smile_wave_wink}농담이야!@d{64} @c{smile}절대 안 잊어버릴 거야.@d{32}\n마음 속엔 쭉 남아있을 수 있게.\n$@c{smile_wave}어쨌든,@d{64} 시간이 좀 늦었어…@d{96}\n이런 곳에서 할 말은 아닌가?\n$집에 가자. @c{smile_wave_wink}아마 내일은,\n추억을 되짚어보기 위한 배틀을 해볼 수 있을 거야.",
|
||||
"ending_female": "@c{smile}오? 이긴거야?@d{96} @c{smile_eclosed}진즉 알았어야 했는데.\n아무튼, 돌아왔구나.\n$@c{smile}다 끝난거야.@d{64} 네가 굴레를 끝장냈어.\n$@c{serious_smile_fists}네 꿈도 이뤄졌고말야.\n진짜로 한 번도 안 졌잖아.\n$@c{neutral}기억하는 건 우리들 뿐일 모양이지만.@d{96}\n그래도, 괜찮지?\n$@c{serious_smile_fists}오늘의 일은\n너와 나의 마음 속에 항상 함께할 거야.\n$@c{smile_eclosed}여기 구경도 충분히 했으니\n이제 집에 가자.\n$@c{serious_smile_fists}되돌아가서, 다시 배틀을 할 수도 있지 않을까?\n네가 원한다면 말야.",
|
||||
"ending_endless": "끝에 도달하신 것을 축하드립니다!\n더 많은 컨텐츠를 기다려주세요.",
|
||||
"ending_name": "Devs"
|
||||
}
|
||||
}
|
||||
|
@ -598,6 +598,6 @@
|
||||
"DRAGON_MEMORY": "드래곤메모리",
|
||||
"DARK_MEMORY": "다크메모리",
|
||||
"FAIRY_MEMORY": "페어리메모리",
|
||||
"BLANK_MEMORY": "빈메모리"
|
||||
"NORMAL_MEMORY": "일반메모리"
|
||||
}
|
||||
}
|
||||
|