mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-15 21:02:18 +02:00
Merge branch 'main' of https://github.com/knispeja/pokerogue
This commit is contained in:
commit
fe873c64ec
@ -4,6 +4,7 @@ import BattleScene from "../battle-scene";
|
|||||||
import { Species } from "./enums/species";
|
import { Species } from "./enums/species";
|
||||||
import { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
import { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
||||||
import { EggTier } from "./enums/egg-type";
|
import { EggTier } from "./enums/egg-type";
|
||||||
|
import i18next from '../plugins/i18n';
|
||||||
|
|
||||||
export const EGG_SEED = 1073741824;
|
export const EGG_SEED = 1073741824;
|
||||||
|
|
||||||
@ -56,34 +57,34 @@ export function getEggDescriptor(egg: Egg): string {
|
|||||||
return 'Manaphy';
|
return 'Manaphy';
|
||||||
switch (egg.tier) {
|
switch (egg.tier) {
|
||||||
case EggTier.GREAT:
|
case EggTier.GREAT:
|
||||||
return 'Rare';
|
return i18next.t('egg:greatTier');
|
||||||
case EggTier.ULTRA:
|
case EggTier.ULTRA:
|
||||||
return 'Epic';
|
return i18next.t('egg:ultraTier');
|
||||||
case EggTier.MASTER:
|
case EggTier.MASTER:
|
||||||
return 'Legendary';
|
return i18next.t('egg:masterTier');
|
||||||
default:
|
default:
|
||||||
return 'Common';
|
return i18next.t('egg:defaultTier');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getEggHatchWavesMessage(hatchWaves: integer): string {
|
export function getEggHatchWavesMessage(hatchWaves: integer): string {
|
||||||
if (hatchWaves <= 5)
|
if (hatchWaves <= 5)
|
||||||
return 'Sounds can be heard coming from inside! It will hatch soon!';
|
return i18next.t('egg:hatchWavesMessageSoon');
|
||||||
if (hatchWaves <= 15)
|
if (hatchWaves <= 15)
|
||||||
return 'It appears to move occasionally. It may be close to hatching.';
|
return i18next.t('egg:hatchWavesMessageClose');
|
||||||
if (hatchWaves <= 50)
|
if (hatchWaves <= 50)
|
||||||
return 'What will hatch from this? It doesn\'t seem close to hatching.';
|
return i18next.t('egg:hatchWavesMessageNotClose');
|
||||||
return 'It looks like this Egg will take a long time to hatch.';
|
return i18next.t('egg:hatchWavesMessageLongTime');
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getEggGachaTypeDescriptor(scene: BattleScene, egg: Egg): string {
|
export function getEggGachaTypeDescriptor(scene: BattleScene, egg: Egg): string {
|
||||||
switch (egg.gachaType) {
|
switch (egg.gachaType) {
|
||||||
case GachaType.LEGENDARY:
|
case GachaType.LEGENDARY:
|
||||||
return `Legendary Rate Up (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
|
return `${i18next.t('egg:gachaTypeLegendary')} (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
|
||||||
case GachaType.MOVE:
|
case GachaType.MOVE:
|
||||||
return 'Rare Egg Move Rate Up';
|
return i18next.t('egg:gachaTypeMove');
|
||||||
case GachaType.SHINY:
|
case GachaType.SHINY:
|
||||||
return 'Shiny Rate Up';
|
return i18next.t('egg:gachaTypeShiny');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,37 +1,45 @@
|
|||||||
export const battleCountSplashMessage = '{COUNT} Battles Won!';
|
import i18next from "../plugins/i18n";
|
||||||
|
|
||||||
export const splashMessages = Array(10).fill(battleCountSplashMessage);
|
export function getBattleCountSplashMessage(): string {
|
||||||
splashMessages.push(...[
|
return `{COUNT} ${i18next.t('splashMessages:battlesWon')}`;
|
||||||
'Join the Discord!',
|
}
|
||||||
'Infinite Levels!',
|
|
||||||
'Everything Stacks!',
|
export function getSplashMessages(): string[] {
|
||||||
'Optional Save Scumming!',
|
const splashMessages = Array(10).fill(getBattleCountSplashMessage());
|
||||||
'35 Biomes!',
|
splashMessages.push(...[
|
||||||
'Open Source!',
|
i18next.t('splashMessages:joinTheDiscord'),
|
||||||
'Play with 5x Speed!',
|
i18next.t('splashMessages:infiniteLevel'),
|
||||||
'Live Bug Testing!',
|
i18next.t('splashMessages:everythingStacks'),
|
||||||
'Heavy RoR2 Influence!',
|
i18next.t('splashMessages:optionalSaveScumming'),
|
||||||
'Pokémon Risk and Pokémon Rain!',
|
i18next.t('splashMessages:biomes'),
|
||||||
'Now with 33% More Salt!',
|
i18next.t('splashMessages:openSource'),
|
||||||
'Infinite Fusion at Home!',
|
i18next.t('splashMessages:playWith5xSpeed'),
|
||||||
'Broken Egg Moves!',
|
i18next.t('splashMessages:liveBugTesting'),
|
||||||
'Magnificent!',
|
i18next.t('splashMessages:heavyRoR2Influence'),
|
||||||
'Mubstitute!',
|
i18next.t('splashMessages:pokemonRiskAndPokemonRain'),
|
||||||
'That\'s Crazy!',
|
i18next.t('splashMessages:nowWithMoreSalt'),
|
||||||
'Orance Juice!',
|
i18next.t('splashMessages:infiniteFusionAtHome'),
|
||||||
'Questionable Balancing!',
|
i18next.t('splashMessages:brokenEggMoves'),
|
||||||
'Cool Shaders!',
|
i18next.t('splashMessages:magnificent'),
|
||||||
'AI-Free!',
|
i18next.t('splashMessages:mubstitute'),
|
||||||
'Sudden Difficulty Spikes!',
|
i18next.t('splashMessages:thatsCrazy'),
|
||||||
'Based on an Unfinished Flash Game!',
|
i18next.t('splashMessages:oranceJuice'),
|
||||||
'More Addictive than Intended!',
|
i18next.t('splashMessages:questionableBalancing'),
|
||||||
'Mostly Consistent Seeds!',
|
i18next.t('splashMessages:coolShaders'),
|
||||||
'Achievement Points Don\'t Do Anything!',
|
i18next.t('splashMessages:aiFree'),
|
||||||
'You Do Not Start at Level 2000!',
|
i18next.t('splashMessages:suddenDifficultySpikes'),
|
||||||
'Don\'t Talk About the Manaphy Egg Incident!',
|
i18next.t('splashMessages:basedOnAnUnfinishedFlashGame'),
|
||||||
'Also Try Pokéngine!',
|
i18next.t('splashMessages:moreAddictiveThanIntended'),
|
||||||
'Also Try Emerald Rogue!',
|
i18next.t('splashMessages:mostlyConsistentSeeds'),
|
||||||
'Also Try Radical Red!',
|
i18next.t('splashMessages:achievementPointsDontDoAnything'),
|
||||||
'Eevee Expo!',
|
i18next.t('splashMessages:youDoNotStartAtLevel'),
|
||||||
'YNOproject!'
|
i18next.t('splashMessages:dontTalkAboutTheManaphyEggIncident'),
|
||||||
]);
|
i18next.t('splashMessages:alsoTryPokengine'),
|
||||||
|
i18next.t('splashMessages:alsoTryEmeraldRogue'),
|
||||||
|
i18next.t('splashMessages:alsoTryRadicalRed'),
|
||||||
|
i18next.t('splashMessages:eeveeExpo'),
|
||||||
|
i18next.t('splashMessages:ynoproject'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return splashMessages
|
||||||
|
}
|
@ -2,6 +2,7 @@ import { ability } from "./ability";
|
|||||||
import { abilityTriggers } from "./ability-trigger";
|
import { abilityTriggers } from "./ability-trigger";
|
||||||
import { battle } from "./battle";
|
import { battle } from "./battle";
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
import { commandUiHandler } from "./command-ui-handler";
|
||||||
|
import { egg } from "./egg";
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
import { fightUiHandler } from "./fight-ui-handler";
|
||||||
import { growth } from "./growth";
|
import { growth } from "./growth";
|
||||||
import { menu } from "./menu";
|
import { menu } from "./menu";
|
||||||
@ -14,6 +15,7 @@ import { pokemon } from "./pokemon";
|
|||||||
import { pokemonStat } from "./pokemon-stat";
|
import { pokemonStat } from "./pokemon-stat";
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||||
import { tutorial } from "./tutorial";
|
import { tutorial } from "./tutorial";
|
||||||
|
import { splashMessages } from "./splash-messages"
|
||||||
|
|
||||||
|
|
||||||
export const deConfig = {
|
export const deConfig = {
|
||||||
@ -21,6 +23,7 @@ export const deConfig = {
|
|||||||
abilityTriggers: abilityTriggers,
|
abilityTriggers: abilityTriggers,
|
||||||
battle: battle,
|
battle: battle,
|
||||||
commandUiHandler: commandUiHandler,
|
commandUiHandler: commandUiHandler,
|
||||||
|
egg: egg,
|
||||||
fightUiHandler: fightUiHandler,
|
fightUiHandler: fightUiHandler,
|
||||||
menuUiHandler: menuUiHandler,
|
menuUiHandler: menuUiHandler,
|
||||||
menu: menu,
|
menu: menu,
|
||||||
@ -30,6 +33,7 @@ export const deConfig = {
|
|||||||
pokemon: pokemon,
|
pokemon: pokemon,
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
starterSelectUiHandler: starterSelectUiHandler,
|
||||||
tutorial: tutorial,
|
tutorial: tutorial,
|
||||||
|
splashMessages: splashMessages,
|
||||||
nature: nature,
|
nature: nature,
|
||||||
growth: growth,
|
growth: growth,
|
||||||
modifierType: modifierType,
|
modifierType: modifierType,
|
||||||
|
21
src/locales/de/egg.ts
Normal file
21
src/locales/de/egg.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const egg: SimpleTranslationEntries = {
|
||||||
|
"egg": "Egg",
|
||||||
|
"greatTier": "Rare",
|
||||||
|
"ultraTier": "Epic",
|
||||||
|
"masterTier": "Legendary",
|
||||||
|
"defaultTier": "Common",
|
||||||
|
"hatchWavesMessageSoon": "Sounds can be heard coming from inside! It will hatch soon!",
|
||||||
|
"hatchWavesMessageClose": "It appears to move occasionally. It may be close to hatching.",
|
||||||
|
"hatchWavesMessageNotClose": "What will hatch from this? It doesn't seem close to hatching.",
|
||||||
|
"hatchWavesMessageLongTime": "It looks like this Egg will take a long time to hatch.",
|
||||||
|
"gachaTypeLegendary": "Legendary Rate Up",
|
||||||
|
"gachaTypeMove": "Rare Egg Move Rate Up",
|
||||||
|
"gachaTypeShiny": "Shiny Rate Up",
|
||||||
|
"selectMachine": "Select a machine.",
|
||||||
|
"notEnoughVouchers": "You don't have enough vouchers!",
|
||||||
|
"tooManyEggs": "You have too many eggs!",
|
||||||
|
"pull": "Pull",
|
||||||
|
"pulls": "Pulls"
|
||||||
|
} as const;
|
@ -4,406 +4,407 @@ export const modifierType: ModifierTypeTranslationEntries = {
|
|||||||
ModifierType: {
|
ModifierType: {
|
||||||
"AddPokeballModifierType": {
|
"AddPokeballModifierType": {
|
||||||
name: "{{modifierCount}}x {{pokeballName}}",
|
name: "{{modifierCount}}x {{pokeballName}}",
|
||||||
description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}",
|
description: "Erhalte {{pokeballName}} x{{modifierCount}} (Inventar: {{pokeballAmount}}) \nFangrate: {{catchRate}}",
|
||||||
},
|
},
|
||||||
"AddVoucherModifierType": {
|
"AddVoucherModifierType": {
|
||||||
name: "{{modifierCount}}x {{voucherTypeName}}",
|
name: "{{modifierCount}}x {{voucherTypeName}}",
|
||||||
description: "Receive {{voucherTypeName}} x{{modifierCount}}",
|
description: "Erhalte {{voucherTypeName}} x{{modifierCount}}",
|
||||||
},
|
},
|
||||||
"PokemonHeldItemModifierType": {
|
"PokemonHeldItemModifierType": {
|
||||||
extra: {
|
extra: {
|
||||||
"inoperable": "{{pokemonName}} can't take\nthis item!",
|
"inoperable": "{{pokemonName}} kann dieses\nItem nicht nehmen!",
|
||||||
"tooMany": "{{pokemonName}} has too many\nof this item!",
|
"tooMany": "{{pokemonName}} hat zu viele\nvon diesem Item!",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PokemonHpRestoreModifierType": {
|
"PokemonHpRestoreModifierType": {
|
||||||
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher",
|
description: "Füllt {{restorePoints}} KP oder {{restorePercent}}% der KP für ein Pokémon auf. Je nachdem, welcher Wert höher ist",
|
||||||
extra: {
|
extra: {
|
||||||
"fully": "Fully restores HP for one Pokémon",
|
"fully": "Füllt die KP eines Pokémon wieder vollständig auf.",
|
||||||
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment",
|
"fullyWithStatus": "Füllt die KP eines Pokémon wieder vollständig auf und behebt alle Statusprobleme",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PokemonReviveModifierType": {
|
"PokemonReviveModifierType": {
|
||||||
description: "Revives one Pokémon and restores {{restorePercent}}% HP",
|
description: "Belebt ein kampunfähiges Pokémon wieder und stellt {{restorePercent}}% KP wieder her",
|
||||||
},
|
},
|
||||||
"PokemonStatusHealModifierType": {
|
"PokemonStatusHealModifierType": {
|
||||||
description: "Heals any status ailment for one Pokémon",
|
description: "Behebt alle Statusprobleme eines Pokémon",
|
||||||
},
|
},
|
||||||
"PokemonPpRestoreModifierType": {
|
"PokemonPpRestoreModifierType": {
|
||||||
description: "Restores {{restorePoints}} PP for one Pokémon move",
|
description: "Füllt {{restorePoints}} AP der ausgewählten Attacke eines Pokémon auf",
|
||||||
extra: {
|
extra: {
|
||||||
"fully": "Restores all PP for one Pokémon move",
|
"fully": "Füllt alle AP der ausgewählten Attacke eines Pokémon auf",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PokemonAllMovePpRestoreModifierType": {
|
"PokemonAllMovePpRestoreModifierType": {
|
||||||
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves",
|
description: "Stellt {{restorePoints}} AP für alle Attacken eines Pokémon auf",
|
||||||
extra: {
|
extra: {
|
||||||
"fully": "Restores all PP for all of one Pokémon's moves",
|
"fully": "Füllt alle AP für alle Attacken eines Pokémon auf",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PokemonPpUpModifierType": {
|
"PokemonPpUpModifierType": {
|
||||||
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)",
|
description: "Erhöht die maximale Anzahl der AP der ausgewählten Attacke um {{upPoints}} für jede 5 maximale AP (maximal 3)",
|
||||||
},
|
},
|
||||||
"PokemonNatureChangeModifierType": {
|
"PokemonNatureChangeModifierType": {
|
||||||
name: "{{natureName}} Mint",
|
name: "{{natureName}} Minze",
|
||||||
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
|
description: "Ändert das Wesen zu {{natureName}}. Schaltet dieses Wesen permanent für diesen Starter frei.",
|
||||||
},
|
},
|
||||||
"DoubleBattleChanceBoosterModifierType": {
|
"DoubleBattleChanceBoosterModifierType": {
|
||||||
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles",
|
description: "Verdoppelt die Wahrscheinlichkeit, dass die nächsten {{battleCount}} Begegnungen mit wilden Pokémon ein Doppelkampf sind.",
|
||||||
},
|
},
|
||||||
"TempBattleStatBoosterModifierType": {
|
"TempBattleStatBoosterModifierType": {
|
||||||
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles",
|
description: "Erhöht die {{tempBattleStatName}} aller Teammitglieder für 5 Kämpfe um eine Stufe",
|
||||||
},
|
},
|
||||||
"AttackTypeBoosterModifierType": {
|
"AttackTypeBoosterModifierType": {
|
||||||
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%",
|
description: "Erhöht die Stärke aller {{moveType}}attacken eines Pokémon um 20%",
|
||||||
},
|
},
|
||||||
"PokemonLevelIncrementModifierType": {
|
"PokemonLevelIncrementModifierType": {
|
||||||
description: "Increases a Pokémon's level by 1",
|
description: "Erhöht das Level eines Pokémon um 1",
|
||||||
},
|
},
|
||||||
"AllPokemonLevelIncrementModifierType": {
|
"AllPokemonLevelIncrementModifierType": {
|
||||||
description: "Increases all party members' level by 1",
|
description: "Erhöht das Level aller Teammitglieder um 1",
|
||||||
},
|
},
|
||||||
"PokemonBaseStatBoosterModifierType": {
|
"PokemonBaseStatBoosterModifierType": {
|
||||||
description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.",
|
description: "Erhöht den {{statName}} Basiswert des Trägers um 10%. Das Stapellimit erhöht sich, je höher dein IS-Wert ist.",
|
||||||
},
|
},
|
||||||
"AllPokemonFullHpRestoreModifierType": {
|
"AllPokemonFullHpRestoreModifierType": {
|
||||||
description: "Restores 100% HP for all Pokémon",
|
description: "Stellt 100% der KP aller Pokémon her",
|
||||||
},
|
},
|
||||||
"AllPokemonFullReviveModifierType": {
|
"AllPokemonFullReviveModifierType": {
|
||||||
description: "Revives all fainted Pokémon, fully restoring HP",
|
description: "Belebt alle kampunfähigen Pokémon wieder und stellt ihre KP vollständig wieder her",
|
||||||
},
|
},
|
||||||
"MoneyRewardModifierType": {
|
"MoneyRewardModifierType": {
|
||||||
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})",
|
description:"Gewährt einen {{moneyMultiplier}} Geldbetrag von (₽{{moneyAmount}})",
|
||||||
extra: {
|
extra: {
|
||||||
"small": "small",
|
"small": "kleinen",
|
||||||
"moderate": "moderate",
|
"moderate": "moderaten",
|
||||||
"large": "large",
|
"large": "großen",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"ExpBoosterModifierType": {
|
"ExpBoosterModifierType": {
|
||||||
description: "Increases gain of EXP. Points by {{boostPercent}}%",
|
description: "Erhöht die erhaltenen Erfahrungspunkte um {{boostPercent}}%",
|
||||||
},
|
},
|
||||||
"PokemonExpBoosterModifierType": {
|
"PokemonExpBoosterModifierType": {
|
||||||
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%",
|
description: "Erhöht die Menge der erhaltenen Erfahrungspunkte für den Träger um {{boostPercent}}%",
|
||||||
},
|
},
|
||||||
"PokemonFriendshipBoosterModifierType": {
|
"PokemonFriendshipBoosterModifierType": {
|
||||||
description: "Increases friendship gain per victory by 50%",
|
description: "Erhöht den Freundschaftszuwachs pro Sieg um 50%.",
|
||||||
},
|
},
|
||||||
"PokemonMoveAccuracyBoosterModifierType": {
|
"PokemonMoveAccuracyBoosterModifierType": {
|
||||||
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)",
|
description: "Erhöht die Genauigkeit der Angriffe um {{accuracyAmount}} (maximal 100)",
|
||||||
},
|
},
|
||||||
"PokemonMultiHitModifierType": {
|
"PokemonMultiHitModifierType": {
|
||||||
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively",
|
description: "Attacken treffen ein weiteres mal mit einer Reduktion von 60/75/82,5% der Stärke",
|
||||||
},
|
},
|
||||||
"TmModifierType": {
|
"TmModifierType": {
|
||||||
name: "TM{{moveId}} - {{moveName}}",
|
name: "TM{{moveId}} - {{moveName}}",
|
||||||
description: "Teach {{moveName}} to a Pokémon",
|
description: "Bringt einem Pokémon {{moveName}} bei",
|
||||||
},
|
},
|
||||||
"EvolutionItemModifierType": {
|
"EvolutionItemModifierType": {
|
||||||
description: "Causes certain Pokémon to evolve",
|
description: "Erlaubt es bestimmten Pokémon sich zu entwickeln",
|
||||||
},
|
},
|
||||||
"FormChangeItemModifierType": {
|
"FormChangeItemModifierType": {
|
||||||
description: "Causes certain Pokémon to change form",
|
description: "Erlaubt es bestimmten Pokémon ihre Form zu ändern",
|
||||||
},
|
},
|
||||||
"FusePokemonModifierType": {
|
"FusePokemonModifierType": {
|
||||||
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)",
|
description: "Fusioniert zwei Pokémon (überträgt die Fähigkeit, teilt Basiswerte und Typ auf, gemeinsamer Attackenpool)",
|
||||||
},
|
},
|
||||||
"TerastallizeModifierType": {
|
"TerastallizeModifierType": {
|
||||||
name: "{{teraType}} Tera Shard",
|
name: "{{teraType}} Terra-Stück",
|
||||||
description: "{{teraType}} Terastallizes the holder for up to 10 battles",
|
description: "{{teraType}} Terakristallisiert den Träger für bis zu 10 Kämpfe",
|
||||||
},
|
},
|
||||||
"ContactHeldItemTransferChanceModifierType": {
|
"ContactHeldItemTransferChanceModifierType": {
|
||||||
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen",
|
description:"Beim Angriff besteht eine {{chancePercent}}%ige Chance, dass das getragene Item des Gegners gestohlen wird."
|
||||||
},
|
},
|
||||||
"TurnHeldItemTransferModifierType": {
|
"TurnHeldItemTransferModifierType": {
|
||||||
description: "Every turn, the holder acquires one held item from the foe",
|
description: "Jede Runde erhält der Träger ein getragenes Item des Gegners",
|
||||||
},
|
},
|
||||||
"EnemyAttackStatusEffectChanceModifierType": {
|
"EnemyAttackStatusEffectChanceModifierType": {
|
||||||
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves",
|
description: "Fügt Angriffen eine {{chancePercent}}%ige Chance hinzu, {{statusEffect}} zu verursachen",
|
||||||
},
|
},
|
||||||
"EnemyEndureChanceModifierType": {
|
"EnemyEndureChanceModifierType": {
|
||||||
description: "Adds a {{chancePercent}}% chance of enduring a hit",
|
description: "Gibt den Träger eine {{chancePercent}}%ige Chance, einen Angriff zu überleben",
|
||||||
},
|
},
|
||||||
|
|
||||||
"RARE_CANDY": { name: "Rare Candy" },
|
"RARE_CANDY": { name: "Sonderbonbon" },
|
||||||
"RARER_CANDY": { name: "Rarer Candy" },
|
"RARER_CANDY": { name: "Supersondererbonbon" },
|
||||||
|
|
||||||
"MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" },
|
"MEGA_BRACELET": { name: "Mega-Armband", description: "Mega-Steine werden verfügbar" },
|
||||||
"DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" },
|
"DYNAMAX_BAND": { name: "Dynamax-Band", description: "Dyna-Pilze werden verfügbar" },
|
||||||
"TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" },
|
"TERA_ORB": { name: "Terakristall-Orb", description: "Tera-Stücke werden verfügbar" },
|
||||||
|
|
||||||
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" },
|
"MAP": { name: "Karte", description: "Ermöglicht es dir, an einer Kreuzung dein Ziel zu wählen." },
|
||||||
|
|
||||||
"POTION": { name: "Potion" },
|
"POTION": { name: "Trank" },
|
||||||
"SUPER_POTION": { name: "Super Potion" },
|
"SUPER_POTION": { name: "Supertrank" },
|
||||||
"HYPER_POTION": { name: "Hyper Potion" },
|
"HYPER_POTION": { name: "Hypertrank" },
|
||||||
"MAX_POTION": { name: "Max Potion" },
|
"MAX_POTION": { name: "Top-Trank" },
|
||||||
"FULL_RESTORE": { name: "Full Restore" },
|
"FULL_RESTORE": { name: "Top-Genesung" },
|
||||||
|
|
||||||
"REVIVE": { name: "Revive" },
|
|
||||||
"MAX_REVIVE": { name: "Max Revive" },
|
|
||||||
|
|
||||||
"FULL_HEAL": { name: "Full Heal" },
|
|
||||||
|
|
||||||
"SACRED_ASH": { name: "Sacred Ash" },
|
"REVIVE": { name: "Beleber" },
|
||||||
|
"MAX_REVIVE": { name: "Top-Beleber" },
|
||||||
|
|
||||||
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" },
|
"FULL_HEAL": { name: "Hyperheiler" },
|
||||||
|
|
||||||
"ETHER": { name: "Ether" },
|
"SACRED_ASH": { name: "Zauberasche" },
|
||||||
"MAX_ETHER": { name: "Max Ether" },
|
|
||||||
|
"REVIVER_SEED": { name: "Belebersamen", description: "Belebt den Träger mit der Hälfte seiner KP wieder sollte er kampfunfähig werden" },
|
||||||
|
|
||||||
|
"ETHER": { name: "Äther" },
|
||||||
|
"MAX_ETHER": { name: "Top-Äther" },
|
||||||
|
|
||||||
"ELIXIR": { name: "Elixir" },
|
"ELIXIR": { name: "Elixir" },
|
||||||
"MAX_ELIXIR": { name: "Max Elixir" },
|
"MAX_ELIXIR": { name: "Top-Elixir" },
|
||||||
|
|
||||||
"PP_UP": { name: "PP Up" },
|
"PP_UP": { name: "AP-Plus" },
|
||||||
"PP_MAX": { name: "PP Max" },
|
"PP_MAX": { name: "AP-Top" },
|
||||||
|
|
||||||
"LURE": { name: "Lure" },
|
"LURE": { name: "Lockparfüm" },
|
||||||
"SUPER_LURE": { name: "Super Lure" },
|
"SUPER_LURE": { name: "Super-Lockparfüm" },
|
||||||
"MAX_LURE": { name: "Max Lure" },
|
"MAX_LURE": { name: "Top-Lockparfüm" },
|
||||||
|
|
||||||
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" },
|
"MEMORY_MUSHROOM": { name: "Erinnerungspilz", description: "Lässt ein Pokémon eine vergessene Attacke wiedererlernen" },
|
||||||
|
|
||||||
"EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" },
|
"EXP_SHARE": { name: "EP-Teiler", description: "Pokémon, die nicht am Kampf teilgenommen haben, bekommen 20% der Erfahrungspunkte eines Kampfteilnehmers" },
|
||||||
"EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" },
|
"EXP_BALANCE": { name: "EP-Ausgleicher", description: "Gewichtet die in Kämpfen erhaltenen Erfahrungspunkte auf niedrigstufigere Gruppenmitglieder." },
|
||||||
|
|
||||||
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" },
|
"OVAL_CHARM": { name: "Ovalpin", description: "Wenn mehrere Pokémon am Kampf teilnehmen, erhählt jeder von ihnen 10% extra Erfahrungspunkte" },
|
||||||
|
|
||||||
"EXP_CHARM": { name: "EXP. Charm" },
|
"EXP_CHARM": { name: "EP-Pin" },
|
||||||
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
|
"SUPER_EXP_CHARM": { name: "Super-EP-Pin" },
|
||||||
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
|
"GOLDEN_EXP_CHARM": { name: "Goldener EP-Pin" },
|
||||||
|
|
||||||
"LUCKY_EGG": { name: "Lucky Egg" },
|
"LUCKY_EGG": { name: "Glücks-Ei" },
|
||||||
"GOLDEN_EGG": { name: "Golden Egg" },
|
"GOLDEN_EGG": { name: "Goldenes Ei" },
|
||||||
|
|
||||||
"SOOTHE_BELL": { name: "Soothe Bell" },
|
"SOOTHE_BELL": { name: "Sanftglocke" },
|
||||||
|
|
||||||
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" },
|
"SOUL_DEW": { name: "Seelentau", description: "Erhöht den Einfluss des Wesens eines Pokemon auf seine Werte um 10% (additiv)" },
|
||||||
|
|
||||||
"NUGGET": { name: "Nugget" },
|
"NUGGET": { name: "Nugget" },
|
||||||
"BIG_NUGGET": { name: "Big Nugget" },
|
"BIG_NUGGET": { name: "Riesennugget" },
|
||||||
"RELIC_GOLD": { name: "Relic Gold" },
|
"RELIC_GOLD": { name: "Alter Dukat" },
|
||||||
|
|
||||||
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" },
|
"AMULET_COIN": { name: "Münzamulett", description: "Erhöht das Preisgeld um 20%" },
|
||||||
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" },
|
"GOLDEN_PUNCH": { name: "Goldschlag", description: "Gewährt Geld in Höhe von 50% des zugefügten Schadens" },
|
||||||
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" },
|
"COIN_CASE": { name: "Münzkorb", description: "Erhalte nach jedem 10ten Kampf 10% Zinsen auf dein Geld" },
|
||||||
|
|
||||||
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" },
|
|
||||||
|
|
||||||
"GRIP_CLAW": { name: "Grip Claw" },
|
"LOCK_CAPSULE": { name: "Tresorkapsel", description: "Erlaubt es die Seltenheitsstufe der Items festzusetzen wenn diese neu gerollt werden" },
|
||||||
"WIDE_LENS": { name: "Wide Lens" },
|
|
||||||
|
|
||||||
"MULTI_LENS": { name: "Multi Lens" },
|
|
||||||
|
|
||||||
"HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" },
|
"GRIP_CLAW": { name: "Griffklaue" },
|
||||||
"CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" },
|
"WIDE_LENS": { name: "Großlinse" },
|
||||||
|
|
||||||
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 25% chance that a used berry will not be consumed" },
|
"MULTI_LENS": { name: "Mehrfachlinse" },
|
||||||
|
|
||||||
"FOCUS_BAND": { name: "Focus Band", description: "Adds a 10% chance to survive with 1 HP after being damaged enough to faint" },
|
"HEALING_CHARM": { name: "Heilungspin", description: "Erhöht die Effektivität von Heilungsattacken sowie Heilitems um 10% (Beleber ausgenommen)" },
|
||||||
|
"CANDY_JAR": { name: "Bonbonglas", description: "Erhöht die Anzahl der Level die ein Sonderbonbon erhöht um 1" },
|
||||||
|
|
||||||
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" },
|
"BERRY_POUCH": { name: "Beerentüte", description: "Fügt eine 25% Chance hinzu, dass Beeren nicht verbraucht werden" },
|
||||||
|
|
||||||
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" },
|
"FOCUS_BAND": { name: "Fokusband", description: "Fügt eine 10% Chance hinzu, dass Angriffe die zur Kampfunfähigkeit führen mit 1 KP überlebt werden" },
|
||||||
|
|
||||||
"LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" },
|
"QUICK_CLAW": { name: "Quick Claw", description: "Fügt eine 10% Change hinzu als erster anzugreifen. (Nach Prioritätsangriffen)" },
|
||||||
"SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" },
|
|
||||||
|
|
||||||
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" },
|
"KINGS_ROCK": { name: "King-Stein", description: "Fügt eine 10% Chance hinzu, dass der Gegner nach einem Angriff zurückschreckt" },
|
||||||
|
|
||||||
"SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" },
|
"LEFTOVERS": { name: "Überreste", description: "Heilt 1/16 der maximalen KP eines Pokémon pro Runde" },
|
||||||
"ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" },
|
"SHELL_BELL": { name: "Muschelglocke", description: "Heilt den Anwender um 1/8 des von ihm zugefügten Schadens" },
|
||||||
|
|
||||||
"IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" },
|
"BATON": { name: "Stab", description: "Ermöglicht das Weitergeben von Effekten beim Wechseln von Pokémon, wodurch auch Fallen umgangen werden." },
|
||||||
|
|
||||||
"DNA_SPLICERS": { name: "DNA Splicers" },
|
"SHINY_CHARM": { name: "Schillerpin", description: "Erhöht die Chance deutlich, dass ein wildes Pokémon ein schillernd ist" },
|
||||||
|
"ABILITY_CHARM": { name: "Ability Charm", description: "Erhöht die Chance deutlich, dass ein wildes Pokémon eine versteckte Fähigkeit hat" },
|
||||||
|
|
||||||
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
|
"IV_SCANNER": { name: "IS-Scanner", description: "Erlaubt es die IS-Werte von wilden Pokémon zu scannen.\n(2 IS-Werte pro Staplung. Die besten IS-Werte zuerst)" },
|
||||||
|
|
||||||
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" },
|
"DNA_SPLICERS": { name: "DNS-Keil" },
|
||||||
|
|
||||||
|
"MINI_BLACK_HOLE": { name: "Mini schwarzes Loch" },
|
||||||
|
|
||||||
|
"GOLDEN_POKEBALL": { name: "Goldener Pokéball", description: "Fügt eine zusätzliche Item-Auswahlmöglichkeit nach jedem Kampf hinzu" },
|
||||||
|
|
||||||
|
"ENEMY_DAMAGE_BOOSTER": { name: "Schadensmarke", description: "Erhöht den Schaden um 5%" },
|
||||||
|
"ENEMY_DAMAGE_REDUCTION": { name: "Schutzmarke", description: "Verringert den erhaltenen Schaden um 2,5%" },
|
||||||
|
"ENEMY_HEAL": { name: "Wiederherstellungsmarke", description: "Heilt 2% der maximalen KP pro Runde" },
|
||||||
|
"ENEMY_ATTACK_POISON_CHANCE": { name: "Giftmarke" },
|
||||||
|
"ENEMY_ATTACK_PARALYZE_CHANCE": { "name": "Lähmungsmarke" },
|
||||||
|
"ENEMY_ATTACK_SLEEP_CHANCE": { "name": "Schlafmarke" },
|
||||||
|
"ENEMY_ATTACK_FREEZE_CHANCE": { "name": "Gefriermarke" },
|
||||||
|
"ENEMY_ATTACK_BURN_CHANCE": { "name": "Brandmarke" },
|
||||||
|
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { "name": "Vollheilungsmarke", "description": "Fügt eine 10%ige Chance hinzu, jede Runde einen Statuszustand zu heilen" },
|
||||||
|
"ENEMY_ENDURE_CHANCE": { "name": "Ausdauer-Marke" },
|
||||||
|
"ENEMY_FUSED_CHANCE": { "name": "Fusionsmarke", "description": "Fügt eine 1%ige Chance hinzu, dass ein wildes Pokémon eine Fusion ist" },
|
||||||
|
|
||||||
"ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" },
|
|
||||||
"ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" },
|
|
||||||
"ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" },
|
|
||||||
"ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" },
|
|
||||||
"ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" },
|
|
||||||
"ENEMY_ATTACK_SLEEP_CHANCE": { name: "Sleep Token" },
|
|
||||||
"ENEMY_ATTACK_FREEZE_CHANCE": { name: "Freeze Token" },
|
|
||||||
"ENEMY_ATTACK_BURN_CHANCE": { name: "Burn Token" },
|
|
||||||
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 10% chance every turn to heal a status condition" },
|
|
||||||
"ENEMY_ENDURE_CHANCE": { name: "Endure Token" },
|
|
||||||
"ENEMY_FUSED_CHANCE": { name: "Fusion Token", description: "Adds a 1% chance that a wild Pokémon will be a fusion" },
|
|
||||||
},
|
},
|
||||||
TempBattleStatBoosterItem: {
|
TempBattleStatBoosterItem: {
|
||||||
"x_attack": "X Attack",
|
"x_attack": "X-Angriff",
|
||||||
"x_defense": "X Defense",
|
"x_defense": "X-Verteidigung",
|
||||||
"x_sp_atk": "X Sp. Atk",
|
"x_sp_atk": "X-Sp.-Ang.",
|
||||||
"x_sp_def": "X Sp. Def",
|
"x_sp_def": "X-Sp.-Vert.",
|
||||||
"x_speed": "X Speed",
|
"x_speed": "X-Tempo",
|
||||||
"x_accuracy": "X Accuracy",
|
"x_accuracy": "X-Treffer",
|
||||||
"dire_hit": "Dire Hit",
|
"dire_hit": "X-Volltreffer",
|
||||||
},
|
},
|
||||||
AttackTypeBoosterItem: {
|
AttackTypeBoosterItem: {
|
||||||
"silk_scarf": "Silk Scarf",
|
"silk_scarf": "Seidenschal",
|
||||||
"black_belt": "Black Belt",
|
"black_belt": "Schwarzgurt",
|
||||||
"sharp_beak": "Sharp Beak",
|
"sharp_beak": "Spitzer Schnabel",
|
||||||
"poison_barb": "Poison Barb",
|
"poison_barb": "Giftstich",
|
||||||
"soft_sand": "Soft Sand",
|
"soft_sand": "Pudersand",
|
||||||
"hard_stone": "Hard Stone",
|
"hard_stone": "Granitstein",
|
||||||
"silver_powder": "Silver Powder",
|
"silver_powder": "Silberstaub",
|
||||||
"spell_tag": "Spell Tag",
|
"spell_tag": "Bannsticker",
|
||||||
"metal_coat": "Metal Coat",
|
"metal_coat": "Metallmantel",
|
||||||
"charcoal": "Charcoal",
|
"charcoal": "Holzkohle",
|
||||||
"mystic_water": "Mystic Water",
|
"mystic_water": "Zauberwasser",
|
||||||
"miracle_seed": "Miracle Seed",
|
"miracle_seed": "Wundersaat",
|
||||||
"magnet": "Magnet",
|
"magnet": "Magnet",
|
||||||
"twisted_spoon": "Twisted Spoon",
|
"twisted_spoon": "Krümmlöffel",
|
||||||
"never_melt_ice": "Never-Melt Ice",
|
"never_melt_ice": "Ewiges Eis",
|
||||||
"dragon_fang": "Dragon Fang",
|
"dragon_fang": "Drachenzahn",
|
||||||
"black_glasses": "Black Glasses",
|
"black_glasses": "Schattenbrille",
|
||||||
"fairy_feather": "Fairy Feather",
|
"fairy_feather": "Feendaune",
|
||||||
},
|
},
|
||||||
BaseStatBoosterItem: {
|
BaseStatBoosterItem: {
|
||||||
"hp_up": "HP Up",
|
"hp_up": "KP-Plus",
|
||||||
"protein": "Protein",
|
"protein": "Protein",
|
||||||
"iron": "Iron",
|
"iron": "Eisen",
|
||||||
"calcium": "Calcium",
|
"calcium": "Kalzium",
|
||||||
"zinc": "Zinc",
|
"zinc": "Zink",
|
||||||
"carbos": "Carbos",
|
"carbos": "Carbon",
|
||||||
},
|
},
|
||||||
EvolutionItem: {
|
EvolutionItem: {
|
||||||
"NONE": "None",
|
"NONE": "Keins",
|
||||||
|
|
||||||
"LINKING_CORD": "Linking Cord",
|
"LINKING_CORD": "Linkkabel",
|
||||||
"SUN_STONE": "Sun Stone",
|
"SUN_STONE": "Sonnenstein",
|
||||||
"MOON_STONE": "Moon Stone",
|
"MOON_STONE": "Mondstein",
|
||||||
"LEAF_STONE": "Leaf Stone",
|
"LEAF_STONE": "Blattstein",
|
||||||
"FIRE_STONE": "Fire Stone",
|
"FIRE_STONE": "Feuerstein",
|
||||||
"WATER_STONE": "Water Stone",
|
"WATER_STONE": "Wasserstein",
|
||||||
"THUNDER_STONE": "Thunder Stone",
|
"THUNDER_STONE": "Donnerstein",
|
||||||
"ICE_STONE": "Ice Stone",
|
"ICE_STONE": "Eisstein",
|
||||||
"DUSK_STONE": "Dusk Stone",
|
"DUSK_STONE": "Finsterstein",
|
||||||
"DAWN_STONE": "Dawn Stone",
|
"DAWN_STONE": "Funkelstein",
|
||||||
"SHINY_STONE": "Shiny Stone",
|
"SHINY_STONE": "Leuchtstein",
|
||||||
"CRACKED_POT": "Cracked Pot",
|
"CRACKED_POT": "Rissige Kanne",
|
||||||
"SWEET_APPLE": "Sweet Apple",
|
"SWEET_APPLE": "Süßer Apfel",
|
||||||
"TART_APPLE": "Tart Apple",
|
"TART_APPLE": "Saurer Apfel",
|
||||||
"STRAWBERRY_SWEET": "Strawberry Sweet",
|
"STRAWBERRY_SWEET": "Zucker-Erdbeere",
|
||||||
"UNREMARKABLE_TEACUP": "Unremarkable Teacup",
|
"UNREMARKABLE_TEACUP": "Simple Teeschale",
|
||||||
|
|
||||||
"CHIPPED_POT": "Chipped Pot",
|
"CHIPPED_POT": "Löchrige Kanne",
|
||||||
"BLACK_AUGURITE": "Black Augurite",
|
"BLACK_AUGURITE": "Schwarzaugit",
|
||||||
"GALARICA_CUFF": "Galarica Cuff",
|
"GALARICA_CUFF": "Galarnuss-Reif",
|
||||||
"GALARICA_WREATH": "Galarica Wreath",
|
"GALARICA_WREATH": "Galarnuss-Kranz",
|
||||||
"PEAT_BLOCK": "Peat Block",
|
"PEAT_BLOCK": "Torfblock",
|
||||||
"AUSPICIOUS_ARMOR": "Auspicious Armor",
|
"AUSPICIOUS_ARMOR": "Glorienrüstung",
|
||||||
"MALICIOUS_ARMOR": "Malicious Armor",
|
"MALICIOUS_ARMOR": "Fluchrüstung",
|
||||||
"MASTERPIECE_TEACUP": "Masterpiece Teacup",
|
"MASTERPIECE_TEACUP": "Edle Teeschale",
|
||||||
"METAL_ALLOY": "Metal Alloy",
|
"METAL_ALLOY": "Legierungsmetall",
|
||||||
"SCROLL_OF_DARKNESS": "Scroll Of Darkness",
|
"SCROLL_OF_DARKNESS": "Unlicht-Schriftrolle",
|
||||||
"SCROLL_OF_WATERS": "Scroll Of Waters",
|
"SCROLL_OF_WATERS": "Wasser-Schriftrolle",
|
||||||
"SYRUPY_APPLE": "Syrupy Apple",
|
"SYRUPY_APPLE": "Saftiger Apfel",
|
||||||
},
|
},
|
||||||
FormChangeItem: {
|
FormChangeItem: {
|
||||||
"NONE": "None",
|
"NONE": "Keins",
|
||||||
|
|
||||||
"ABOMASITE": "Abomasite",
|
"ABOMASITE": "Rexblisarnit",
|
||||||
"ABSOLITE": "Absolite",
|
"ABSOLITE": "Absolnit",
|
||||||
"AERODACTYLITE": "Aerodactylite",
|
"AERODACTYLITE": "Aerodactylonit",
|
||||||
"AGGRONITE": "Aggronite",
|
"AGGRONITE": "Stollossnit",
|
||||||
"ALAKAZITE": "Alakazite",
|
"ALAKAZITE": "Simsalanit",
|
||||||
"ALTARIANITE": "Altarianite",
|
"ALTARIANITE": "Altarianit",
|
||||||
"AMPHAROSITE": "Ampharosite",
|
"AMPHAROSITE": "Ampharosnit",
|
||||||
"AUDINITE": "Audinite",
|
"AUDINITE": "Ohrdochnit",
|
||||||
"BANETTITE": "Banettite",
|
"BANETTITE": "Banetteonit",
|
||||||
"BEEDRILLITE": "Beedrillite",
|
"BEEDRILLITE": "Bibornit",
|
||||||
"BLASTOISINITE": "Blastoisinite",
|
"BLASTOISINITE": "Turtoknit",
|
||||||
"BLAZIKENITE": "Blazikenite",
|
"BLAZIKENITE": "Lohgocknit",
|
||||||
"CAMERUPTITE": "Cameruptite",
|
"CAMERUPTITE": "Cameruptnit",
|
||||||
"CHARIZARDITE_X": "Charizardite X",
|
"CHARIZARDITE_X": "Gluraknit X",
|
||||||
"CHARIZARDITE_Y": "Charizardite Y",
|
"CHARIZARDITE_Y": "Gluraknit Y",
|
||||||
"DIANCITE": "Diancite",
|
"DIANCITE": "Diancienit",
|
||||||
"GALLADITE": "Galladite",
|
"GALLADITE": "Galagladinit",
|
||||||
"GARCHOMPITE": "Garchompite",
|
"GARCHOMPITE": "Knakracknit",
|
||||||
"GARDEVOIRITE": "Gardevoirite",
|
"GARDEVOIRITE": "Guardevoirnit",
|
||||||
"GENGARITE": "Gengarite",
|
"GENGARITE": "Gengarnit ",
|
||||||
"GLALITITE": "Glalitite",
|
"GLALITITE": "Firnontornit",
|
||||||
"GYARADOSITE": "Gyaradosite",
|
"GYARADOSITE": "Garadosnit",
|
||||||
"HERACRONITE": "Heracronite",
|
"HERACRONITE": "Skarabornit",
|
||||||
"HOUNDOOMINITE": "Houndoominite",
|
"HOUNDOOMINITE": "Hundemonit ",
|
||||||
"KANGASKHANITE": "Kangaskhanite",
|
"KANGASKHANITE": "Kangamanit",
|
||||||
"LATIASITE": "Latiasite",
|
"LATIASITE": "Latiasnit",
|
||||||
"LATIOSITE": "Latiosite",
|
"LATIOSITE": "Latiosnit",
|
||||||
"LOPUNNITE": "Lopunnite",
|
"LOPUNNITE": "Schlapornit",
|
||||||
"LUCARIONITE": "Lucarionite",
|
"LUCARIONITE": "Lucarionit",
|
||||||
"MANECTITE": "Manectite",
|
"MANECTITE": "Voltensonit",
|
||||||
"MAWILITE": "Mawilite",
|
"MAWILITE": "Flunkifernit",
|
||||||
"MEDICHAMITE": "Medichamite",
|
"MEDICHAMITE": "Meditalisnit",
|
||||||
"METAGROSSITE": "Metagrossite",
|
"METAGROSSITE": "Metagrossnit",
|
||||||
"MEWTWONITE_X": "Mewtwonite X",
|
"MEWTWONITE_X": "Mewtunit X",
|
||||||
"MEWTWONITE_Y": "Mewtwonite Y",
|
"MEWTWONITE_Y": "Mewtunit Y",
|
||||||
"PIDGEOTITE": "Pidgeotite",
|
"PIDGEOTITE": "Taubossnit",
|
||||||
"PINSIRITE": "Pinsirite",
|
"PINSIRITE": "Pinsirnit",
|
||||||
"RAYQUAZITE": "Rayquazite",
|
"RAYQUAZITE": "Rayquazanit",
|
||||||
"SABLENITE": "Sablenite",
|
"SABLENITE": "Zobirisnit",
|
||||||
"SALAMENCITE": "Salamencite",
|
"SALAMENCITE": "Brutalandanit",
|
||||||
"SCEPTILITE": "Sceptilite",
|
"SCEPTILITE": "Gewaldronit",
|
||||||
"SCIZORITE": "Scizorite",
|
"SCIZORITE": "Scheroxnit",
|
||||||
"SHARPEDONITE": "Sharpedonite",
|
"SHARPEDONITE": "Tohaidonit",
|
||||||
"SLOWBRONITE": "Slowbronite",
|
"SLOWBRONITE": "Lahmusnit",
|
||||||
"STEELIXITE": "Steelixite",
|
"STEELIXITE": "Stahlosnit",
|
||||||
"SWAMPERTITE": "Swampertite",
|
"SWAMPERTITE": "Sumpexnit",
|
||||||
"TYRANITARITE": "Tyranitarite",
|
"TYRANITARITE": "Despotarnit",
|
||||||
"VENUSAURITE": "Venusaurite",
|
"VENUSAURITE": "Bisaflornit",
|
||||||
|
|
||||||
"BLUE_ORB": "Blue Orb",
|
"BLUE_ORB": "Blauer Edelstein",
|
||||||
"RED_ORB": "Red Orb",
|
"RED_ORB": "Roter Edelstein",
|
||||||
"SHARP_METEORITE": "Sharp Meteorite",
|
"SHARP_METEORITE": "Scharfer Meteorit",
|
||||||
"HARD_METEORITE": "Hard Meteorite",
|
"HARD_METEORITE": "Harter Meteorit",
|
||||||
"SMOOTH_METEORITE": "Smooth Meteorite",
|
"SMOOTH_METEORITE": "Glatter Meteorit",
|
||||||
"ADAMANT_CRYSTAL": "Adamant Crystal",
|
"ADAMANT_CRYSTAL": "Adamantkristall",
|
||||||
"LUSTROUS_ORB": "Lustrous Orb",
|
"LUSTROUS_ORB": "Weiß-Orb",
|
||||||
"GRISEOUS_CORE": "Griseous Core",
|
"GRISEOUS_CORE": "Platinumkristall",
|
||||||
"REVEAL_GLASS": "Reveal Glass",
|
"REVEAL_GLASS": "Wahrspiegel",
|
||||||
"GRACIDEA": "Gracidea",
|
"GRACIDEA": "Gracidea",
|
||||||
"MAX_MUSHROOMS": "Max Mushrooms",
|
"MAX_MUSHROOMS": "Dyna-Pilz",
|
||||||
"DARK_STONE": "Dark Stone",
|
"DARK_STONE": "Dunkelstein",
|
||||||
"LIGHT_STONE": "Light Stone",
|
"LIGHT_STONE": "Lichtstein",
|
||||||
"PRISON_BOTTLE": "Prison Bottle",
|
"PRISON_BOTTLE": "Banngefäß",
|
||||||
"N_LUNARIZER": "N Lunarizer",
|
"N_LUNARIZER": "Necrolun",
|
||||||
"N_SOLARIZER": "N Solarizer",
|
"N_SOLARIZER": "Necrosol",
|
||||||
"RUSTED_SWORD": "Rusted Sword",
|
"RUSTED_SWORD": "Rostiges Schwert",
|
||||||
"RUSTED_SHIELD": "Rusted Shield",
|
"RUSTED_SHIELD": "Rostiges Schild",
|
||||||
"ICY_REINS_OF_UNITY": "Icy Reins Of Unity",
|
"ICY_REINS_OF_UNITY": "eisige Zügel des Bundes",
|
||||||
"SHADOW_REINS_OF_UNITY": "Shadow Reins Of Unity",
|
"SHADOW_REINS_OF_UNITY": "schattige Zügel des Bundes",
|
||||||
"WELLSPRING_MASK": "Wellspring Mask",
|
"WELLSPRING_MASK": "Brunnenmaske",
|
||||||
"HEARTHFLAME_MASK": "Hearthflame Mask",
|
"HEARTHFLAME_MASK": "Ofenmaske",
|
||||||
"CORNERSTONE_MASK": "Cornerstone Mask",
|
"CORNERSTONE_MASK": "Fundamentmaske",
|
||||||
"SHOCK_DRIVE": "Shock Drive",
|
"SHOCK_DRIVE": "Blitzmodul",
|
||||||
"BURN_DRIVE": "Burn Drive",
|
"BURN_DRIVE": "Flammenmodul",
|
||||||
"CHILL_DRIVE": "Chill Drive",
|
"CHILL_DRIVE": "Gefriermodul",
|
||||||
"DOUSE_DRIVE": "Douse Drive",
|
"DOUSE_DRIVE": "Aquamodul",
|
||||||
},
|
},
|
||||||
TeraType: {
|
TeraType: {
|
||||||
"UNKNOWN": "Unknown",
|
"UNKNOWN": "Unbekannt",
|
||||||
"NORMAL": "Normal",
|
"NORMAL": "Normal",
|
||||||
"FIGHTING": "Fighting",
|
"FIGHTING": "Kampf",
|
||||||
"FLYING": "Flying",
|
"FLYING": "Flug",
|
||||||
"POISON": "Poison",
|
"POISON": "Gift",
|
||||||
"GROUND": "Ground",
|
"GROUND": "Boden",
|
||||||
"ROCK": "Rock",
|
"ROCK": "Gestein",
|
||||||
"BUG": "Bug",
|
"BUG": "Käfer",
|
||||||
"GHOST": "Ghost",
|
"GHOST": "Geist",
|
||||||
"STEEL": "Steel",
|
"STEEL": "Stahl",
|
||||||
"FIRE": "Fire",
|
"FIRE": "Feuer",
|
||||||
"WATER": "Water",
|
"WATER": "Wasser",
|
||||||
"GRASS": "Grass",
|
"GRASS": "Pflanze",
|
||||||
"ELECTRIC": "Electric",
|
"ELECTRIC": "Elektro",
|
||||||
"PSYCHIC": "Psychic",
|
"PSYCHIC": "Psycho",
|
||||||
"ICE": "Ice",
|
"ICE": "Eis",
|
||||||
"DRAGON": "Dragon",
|
"DRAGON": "Drache",
|
||||||
"DARK": "Dark",
|
"DARK": "Unlicht",
|
||||||
"FAIRY": "Fairy",
|
"FAIRY": "Fee",
|
||||||
"STELLAR": "Stellar",
|
"STELLAR": "Stellar",
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
37
src/locales/de/splash-messages.ts
Normal file
37
src/locales/de/splash-messages.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const splashMessages: SimpleTranslationEntries = {
|
||||||
|
"battlesWon": "Battles Won!",
|
||||||
|
"joinTheDiscord": "Join the Discord!",
|
||||||
|
"infiniteLevels": "Infinite Levels!",
|
||||||
|
"everythingStacks": "Everything Stacks!",
|
||||||
|
"optionalSaveScumming": "Optional Save Scumming!",
|
||||||
|
"biomes": "35 Biomes!",
|
||||||
|
"openSource": "Open Source!",
|
||||||
|
"playWithSpeed": "Play with 5x Speed!",
|
||||||
|
"liveBugTesting": "Live Bug Testing!",
|
||||||
|
"heavyInfluence": "Heavy RoR2 Influence!",
|
||||||
|
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||||
|
"nowWithMoreSalt": "Now with 33% More Salt!",
|
||||||
|
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
||||||
|
"brokenEggMoves": "Broken Egg Moves!",
|
||||||
|
"magnificent": "Magnificent!",
|
||||||
|
"mubstitute": "Mubstitute!",
|
||||||
|
"thatsCrazy": "That\'s Crazy!",
|
||||||
|
"oranceJuice": "Orance Juice!",
|
||||||
|
"questionableBalancing": "Questionable Balancing!",
|
||||||
|
"coolShaders": "Cool Shaders!",
|
||||||
|
"aiFree": "AI-Free!",
|
||||||
|
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
||||||
|
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
||||||
|
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
||||||
|
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
||||||
|
"achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!",
|
||||||
|
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
||||||
|
"dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!",
|
||||||
|
"alsoTryPokengine": "Also Try Pokéngine!",
|
||||||
|
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
||||||
|
"alsoTryRadicalRed": "Also Try Radical Red!",
|
||||||
|
"eeveeExpo": "Eevee Expo!",
|
||||||
|
"ynoproject": "YNOproject!",
|
||||||
|
} as const;
|
@ -17,7 +17,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
|||||||
"gen8": "VIII",
|
"gen8": "VIII",
|
||||||
"gen9": "IX",
|
"gen9": "IX",
|
||||||
"growthRate": "Wachstum:",
|
"growthRate": "Wachstum:",
|
||||||
"ability": "Fhgkeit:",
|
"ability": "Fähgkeit:",
|
||||||
"passive": "Passiv:",
|
"passive": "Passiv:",
|
||||||
"nature": "Wesen:",
|
"nature": "Wesen:",
|
||||||
"eggMoves": "Ei-Attacken",
|
"eggMoves": "Ei-Attacken",
|
||||||
@ -40,5 +40,5 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
|||||||
"disablePassive": "Passiv-Skill deaktivieren",
|
"disablePassive": "Passiv-Skill deaktivieren",
|
||||||
"locked": "Gesperrt",
|
"locked": "Gesperrt",
|
||||||
"disabled": "Deaktiviert",
|
"disabled": "Deaktiviert",
|
||||||
"uncaught": "Uncaught"
|
"uncaught": "Ungefangen"
|
||||||
}
|
}
|
||||||
|
@ -4,41 +4,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||||||
* The weather namespace holds text displayed when weather is active during a battle
|
* The weather namespace holds text displayed when weather is active during a battle
|
||||||
*/
|
*/
|
||||||
export const weather: SimpleTranslationEntries = {
|
export const weather: SimpleTranslationEntries = {
|
||||||
"sunnyStartMessage": "The sunlight got bright!",
|
"sunnyStartMessage": "Die Sonne hellt auf!",
|
||||||
"sunnyLapseMessage": "The sunlight is strong.",
|
"sunnyLapseMessage": "Die Sonne blendet.",
|
||||||
"sunnyClearMessage": "The sunlight faded.",
|
"sunnyClearMessage": "Die Sonne schwächt ab.",
|
||||||
|
|
||||||
"rainStartMessage": "A downpour started!",
|
"rainStartMessage": "Es fängt an zu regnen!",
|
||||||
"rainLapseMessage": "The downpour continues.",
|
"rainLapseMessage": "Es regnet weiterhin.",
|
||||||
"rainClearMessage": "The rain stopped.",
|
"rainClearMessage": "Es hört auf zu regnen.",
|
||||||
|
|
||||||
"sandstormStartMessage": "A sandstorm brewed!",
|
"sandstormStartMessage": "Ein Sandsturm braut sich zusammen!",
|
||||||
"sandstormLapseMessage": "The sandstorm rages.",
|
"sandstormLapseMessage": "Der Sandsturm tobt.",
|
||||||
"sandstormClearMessage": "The sandstorm subsided.",
|
"sandstormClearMessage": "Der Sandsturm lässt nach.",
|
||||||
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!",
|
"sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nSandsturm beeinträchtigt!",
|
||||||
|
|
||||||
"hailStartMessage": "It started to hail!",
|
"hailStartMessage": "Es fängt an zu hageln!",
|
||||||
"hailLapseMessage": "Hail continues to fall.",
|
"hailLapseMessage": "Es hagelt weiterhin.",
|
||||||
"hailClearMessage": "The hail stopped.",
|
"hailClearMessage": "Es hört auf zu hageln.",
|
||||||
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!",
|
"hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nHagel beeinträchtigt!",
|
||||||
|
|
||||||
"snowStartMessage": "It started to snow!",
|
"snowStartMessage": "Es fängt an zu schneien!",
|
||||||
"snowLapseMessage": "The snow is falling down.",
|
"snowLapseMessage": "Es schneit weiterhin.",
|
||||||
"snowClearMessage": "The snow stopped.",
|
"snowClearMessage": "Es hört auf zu schneien.",
|
||||||
|
|
||||||
"fogStartMessage": "A thick fog emerged!",
|
"fogStartMessage": "Es fängt an zu nebeln!",
|
||||||
"fogLapseMessage": "The fog continues.",
|
"fogLapseMessage": "Es nebelt weiterhin.",
|
||||||
"fogClearMessage": "The fog disappeared.",
|
"fogClearMessage": "Es hört auf zu nebeln.",
|
||||||
|
|
||||||
"heavyRainStartMessage": "A heavy downpour started!",
|
"heavyRainStartMessage": "Ein Starkregen beginnt!",
|
||||||
"heavyRainLapseMessage": "The heavy downpour continues.",
|
"heavyRainLapseMessage": "Der Starkregen hält an.",
|
||||||
"heavyRainClearMessage": "The heavy rain stopped.",
|
"heavyRainClearMessage": "Der Starkregen lässt nach.",
|
||||||
|
|
||||||
"harshSunStartMessage": "The sunlight got hot!",
|
"harshSunStartMessage": "Das Sonnenlicht wird wärmer!",
|
||||||
"harshSunLapseMessage": "The sun is scorching hot.",
|
"harshSunLapseMessage": "Das Sonnenlicht brennt.",
|
||||||
"harshSunClearMessage": "The harsh sunlight faded.",
|
"harshSunClearMessage": "Das Sonnenlicht schwächt ab.",
|
||||||
|
|
||||||
"strongWindsStartMessage": "A heavy wind began!",
|
"strongWindsStartMessage": "Ein starker Wind zieht auf!",
|
||||||
"strongWindsLapseMessage": "The wind blows intensely.",
|
"strongWindsLapseMessage": "Der starke Wind tobt.",
|
||||||
"strongWindsClearMessage": "The heavy wind stopped."
|
"strongWindsClearMessage": "Der starke Wind legt sich."
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ import { ability } from "./ability";
|
|||||||
import { abilityTriggers } from "./ability-trigger";
|
import { abilityTriggers } from "./ability-trigger";
|
||||||
import { battle } from "./battle";
|
import { battle } from "./battle";
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
import { commandUiHandler } from "./command-ui-handler";
|
||||||
|
import { egg } from "./egg";
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
import { fightUiHandler } from "./fight-ui-handler";
|
||||||
import { growth } from "./growth";
|
import { growth } from "./growth";
|
||||||
import { menu } from "./menu";
|
import { menu } from "./menu";
|
||||||
@ -14,6 +15,7 @@ import { pokemon } from "./pokemon";
|
|||||||
import { pokemonStat } from "./pokemon-stat";
|
import { pokemonStat } from "./pokemon-stat";
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||||
import { tutorial } from "./tutorial";
|
import { tutorial } from "./tutorial";
|
||||||
|
import { splashMessages } from "./splash-messages"
|
||||||
import { weather } from "./weather";
|
import { weather } from "./weather";
|
||||||
|
|
||||||
|
|
||||||
@ -22,6 +24,7 @@ export const enConfig = {
|
|||||||
abilityTriggers: abilityTriggers,
|
abilityTriggers: abilityTriggers,
|
||||||
battle: battle,
|
battle: battle,
|
||||||
commandUiHandler: commandUiHandler,
|
commandUiHandler: commandUiHandler,
|
||||||
|
egg: egg,
|
||||||
fightUiHandler: fightUiHandler,
|
fightUiHandler: fightUiHandler,
|
||||||
menuUiHandler: menuUiHandler,
|
menuUiHandler: menuUiHandler,
|
||||||
menu: menu,
|
menu: menu,
|
||||||
@ -31,6 +34,7 @@ export const enConfig = {
|
|||||||
pokemon: pokemon,
|
pokemon: pokemon,
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
starterSelectUiHandler: starterSelectUiHandler,
|
||||||
tutorial: tutorial,
|
tutorial: tutorial,
|
||||||
|
splashMessages: splashMessages,
|
||||||
nature: nature,
|
nature: nature,
|
||||||
growth: growth,
|
growth: growth,
|
||||||
weather: weather,
|
weather: weather,
|
||||||
|
21
src/locales/en/egg.ts
Normal file
21
src/locales/en/egg.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const egg: SimpleTranslationEntries = {
|
||||||
|
"egg": "Egg",
|
||||||
|
"greatTier": "Rare",
|
||||||
|
"ultraTier": "Epic",
|
||||||
|
"masterTier": "Legendary",
|
||||||
|
"defaultTier": "Common",
|
||||||
|
"hatchWavesMessageSoon": "Sounds can be heard coming from inside! It will hatch soon!",
|
||||||
|
"hatchWavesMessageClose": "It appears to move occasionally. It may be close to hatching.",
|
||||||
|
"hatchWavesMessageNotClose": "What will hatch from this? It doesn't seem close to hatching.",
|
||||||
|
"hatchWavesMessageLongTime": "It looks like this Egg will take a long time to hatch.",
|
||||||
|
"gachaTypeLegendary": "Legendary Rate Up",
|
||||||
|
"gachaTypeMove": "Rare Egg Move Rate Up",
|
||||||
|
"gachaTypeShiny": "Shiny Rate Up",
|
||||||
|
"selectMachine": "Select a machine.",
|
||||||
|
"notEnoughVouchers": "You don't have enough vouchers!",
|
||||||
|
"tooManyEggs": "You have too many eggs!",
|
||||||
|
"pull": "Pull",
|
||||||
|
"pulls": "Pulls"
|
||||||
|
} as const;
|
37
src/locales/en/splash-messages.ts
Normal file
37
src/locales/en/splash-messages.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const splashMessages: SimpleTranslationEntries = {
|
||||||
|
"battlesWon": "Battles Won!",
|
||||||
|
"joinTheDiscord": "Join the Discord!",
|
||||||
|
"infiniteLevels": "Infinite Levels!",
|
||||||
|
"everythingStacks": "Everything Stacks!",
|
||||||
|
"optionalSaveScumming": "Optional Save Scumming!",
|
||||||
|
"biomes": "35 Biomes!",
|
||||||
|
"openSource": "Open Source!",
|
||||||
|
"playWithSpeed": "Play with 5x Speed!",
|
||||||
|
"liveBugTesting": "Live Bug Testing!",
|
||||||
|
"heavyInfluence": "Heavy RoR2 Influence!",
|
||||||
|
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||||
|
"nowWithMoreSalt": "Now with 33% More Salt!",
|
||||||
|
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
||||||
|
"brokenEggMoves": "Broken Egg Moves!",
|
||||||
|
"magnificent": "Magnificent!",
|
||||||
|
"mubstitute": "Mubstitute!",
|
||||||
|
"thatsCrazy": "That\'s Crazy!",
|
||||||
|
"oranceJuice": "Orance Juice!",
|
||||||
|
"questionableBalancing": "Questionable Balancing!",
|
||||||
|
"coolShaders": "Cool Shaders!",
|
||||||
|
"aiFree": "AI-Free!",
|
||||||
|
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
||||||
|
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
||||||
|
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
||||||
|
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
||||||
|
"achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!",
|
||||||
|
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
||||||
|
"dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!",
|
||||||
|
"alsoTryPokengine": "Also Try Pokéngine!",
|
||||||
|
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
||||||
|
"alsoTryRadicalRed": "Also Try Radical Red!",
|
||||||
|
"eeveeExpo": "Eevee Expo!",
|
||||||
|
"ynoproject": "YNOproject!",
|
||||||
|
} as const;
|
@ -14,11 +14,11 @@ export const battle: SimpleTranslationEntries = {
|
|||||||
"pokemonCaught": "¡{{pokemonName}} atrapado!",
|
"pokemonCaught": "¡{{pokemonName}} atrapado!",
|
||||||
"pokemon": "Pokémon",
|
"pokemon": "Pokémon",
|
||||||
"sendOutPokemon": "¡Adelante, {{pokemonName}}!",
|
"sendOutPokemon": "¡Adelante, {{pokemonName}}!",
|
||||||
"hitResultCriticalHit": "A critical hit!",
|
"hitResultCriticalHit": "!Un golpe crítico!",
|
||||||
"hitResultSuperEffective": "It's super effective!",
|
"hitResultSuperEffective": "!Es supereficaz!",
|
||||||
"hitResultNotVeryEffective": "It's not very effective…",
|
"hitResultNotVeryEffective": "No es muy eficaz…",
|
||||||
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
"hitResultNoEffect": "No afecta a {{pokemonName}}!",
|
||||||
"hitResultOneHitKO": "It's a one-hit KO!",
|
"hitResultOneHitKO": "!KO en 1 golpe!",
|
||||||
"attackFailed": "¡Pero ha fallado!",
|
"attackFailed": "¡Pero ha fallado!",
|
||||||
"attackHitsCount": `N.º de golpes: {{count}}.`,
|
"attackHitsCount": `N.º de golpes: {{count}}.`,
|
||||||
"expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
|
"expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
|
||||||
|
@ -2,6 +2,7 @@ import { ability } from "./ability";
|
|||||||
import { abilityTriggers } from "./ability-trigger";
|
import { abilityTriggers } from "./ability-trigger";
|
||||||
import { battle } from "./battle";
|
import { battle } from "./battle";
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
import { commandUiHandler } from "./command-ui-handler";
|
||||||
|
import { egg } from "./egg";
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
import { fightUiHandler } from "./fight-ui-handler";
|
||||||
import { growth } from "./growth";
|
import { growth } from "./growth";
|
||||||
import { menu } from "./menu";
|
import { menu } from "./menu";
|
||||||
@ -14,6 +15,7 @@ import { pokemon } from "./pokemon";
|
|||||||
import { pokemonStat } from "./pokemon-stat";
|
import { pokemonStat } from "./pokemon-stat";
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||||
import { tutorial } from "./tutorial";
|
import { tutorial } from "./tutorial";
|
||||||
|
import { splashMessages } from "./splash-messages"
|
||||||
import { weather } from "./weather";
|
import { weather } from "./weather";
|
||||||
|
|
||||||
|
|
||||||
@ -22,6 +24,7 @@ export const esConfig = {
|
|||||||
abilityTriggers: abilityTriggers,
|
abilityTriggers: abilityTriggers,
|
||||||
battle: battle,
|
battle: battle,
|
||||||
commandUiHandler: commandUiHandler,
|
commandUiHandler: commandUiHandler,
|
||||||
|
egg: egg,
|
||||||
fightUiHandler: fightUiHandler,
|
fightUiHandler: fightUiHandler,
|
||||||
menuUiHandler: menuUiHandler,
|
menuUiHandler: menuUiHandler,
|
||||||
menu: menu,
|
menu: menu,
|
||||||
@ -31,6 +34,7 @@ export const esConfig = {
|
|||||||
pokemon: pokemon,
|
pokemon: pokemon,
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
starterSelectUiHandler: starterSelectUiHandler,
|
||||||
tutorial: tutorial,
|
tutorial: tutorial,
|
||||||
|
splashMessages: splashMessages,
|
||||||
nature: nature,
|
nature: nature,
|
||||||
growth: growth,
|
growth: growth,
|
||||||
weather: weather,
|
weather: weather,
|
||||||
|
21
src/locales/es/egg.ts
Normal file
21
src/locales/es/egg.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const egg: SimpleTranslationEntries = {
|
||||||
|
"egg": "Egg",
|
||||||
|
"greatTier": "Rare",
|
||||||
|
"ultraTier": "Epic",
|
||||||
|
"masterTier": "Legendary",
|
||||||
|
"defaultTier": "Common",
|
||||||
|
"hatchWavesMessageSoon": "Sounds can be heard coming from inside! It will hatch soon!",
|
||||||
|
"hatchWavesMessageClose": "It appears to move occasionally. It may be close to hatching.",
|
||||||
|
"hatchWavesMessageNotClose": "What will hatch from this? It doesn't seem close to hatching.",
|
||||||
|
"hatchWavesMessageLongTime": "It looks like this Egg will take a long time to hatch.",
|
||||||
|
"gachaTypeLegendary": "Legendary Rate Up",
|
||||||
|
"gachaTypeMove": "Rare Egg Move Rate Up",
|
||||||
|
"gachaTypeShiny": "Shiny Rate Up",
|
||||||
|
"selectMachine": "Select a machine.",
|
||||||
|
"notEnoughVouchers": "You don't have enough vouchers!",
|
||||||
|
"tooManyEggs": "You have too many eggs!",
|
||||||
|
"pull": "Pull",
|
||||||
|
"pulls": "Pulls"
|
||||||
|
} as const;
|
@ -3,5 +3,5 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
|||||||
export const fightUiHandler: SimpleTranslationEntries = {
|
export const fightUiHandler: SimpleTranslationEntries = {
|
||||||
"pp": "PP",
|
"pp": "PP",
|
||||||
"power": "Potencia",
|
"power": "Potencia",
|
||||||
"accuracy": "Accuracy",
|
"accuracy": "Precisión",
|
||||||
} as const;
|
} as const;
|
||||||
|
37
src/locales/es/splash-messages.ts
Normal file
37
src/locales/es/splash-messages.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const splashMessages: SimpleTranslationEntries = {
|
||||||
|
"battlesWon": "Battles Won!",
|
||||||
|
"joinTheDiscord": "Join the Discord!",
|
||||||
|
"infiniteLevels": "Infinite Levels!",
|
||||||
|
"everythingStacks": "Everything Stacks!",
|
||||||
|
"optionalSaveScumming": "Optional Save Scumming!",
|
||||||
|
"biomes": "35 Biomes!",
|
||||||
|
"openSource": "Open Source!",
|
||||||
|
"playWithSpeed": "Play with 5x Speed!",
|
||||||
|
"liveBugTesting": "Live Bug Testing!",
|
||||||
|
"heavyInfluence": "Heavy RoR2 Influence!",
|
||||||
|
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||||
|
"nowWithMoreSalt": "Now with 33% More Salt!",
|
||||||
|
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
||||||
|
"brokenEggMoves": "Broken Egg Moves!",
|
||||||
|
"magnificent": "Magnificent!",
|
||||||
|
"mubstitute": "Mubstitute!",
|
||||||
|
"thatsCrazy": "That\'s Crazy!",
|
||||||
|
"oranceJuice": "Orance Juice!",
|
||||||
|
"questionableBalancing": "Questionable Balancing!",
|
||||||
|
"coolShaders": "Cool Shaders!",
|
||||||
|
"aiFree": "AI-Free!",
|
||||||
|
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
||||||
|
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
||||||
|
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
||||||
|
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
||||||
|
"achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!",
|
||||||
|
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
||||||
|
"dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!",
|
||||||
|
"alsoTryPokengine": "Also Try Pokéngine!",
|
||||||
|
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
||||||
|
"alsoTryRadicalRed": "Also Try Radical Red!",
|
||||||
|
"eeveeExpo": "Eevee Expo!",
|
||||||
|
"ynoproject": "YNOproject!",
|
||||||
|
} as const;
|
@ -2,6 +2,7 @@ import { ability } from "./ability";
|
|||||||
import { abilityTriggers } from "./ability-trigger";
|
import { abilityTriggers } from "./ability-trigger";
|
||||||
import { battle } from "./battle";
|
import { battle } from "./battle";
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
import { commandUiHandler } from "./command-ui-handler";
|
||||||
|
import { egg } from "./egg";
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
import { fightUiHandler } from "./fight-ui-handler";
|
||||||
import { growth } from "./growth";
|
import { growth } from "./growth";
|
||||||
import { menu } from "./menu";
|
import { menu } from "./menu";
|
||||||
@ -14,6 +15,7 @@ import { pokemon } from "./pokemon";
|
|||||||
import { pokemonStat } from "./pokemon-stat";
|
import { pokemonStat } from "./pokemon-stat";
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||||
import { tutorial } from "./tutorial";
|
import { tutorial } from "./tutorial";
|
||||||
|
import { splashMessages } from "./splash-messages"
|
||||||
import { weather } from "./weather";
|
import { weather } from "./weather";
|
||||||
|
|
||||||
|
|
||||||
@ -22,6 +24,7 @@ export const frConfig = {
|
|||||||
abilityTriggers: abilityTriggers,
|
abilityTriggers: abilityTriggers,
|
||||||
battle: battle,
|
battle: battle,
|
||||||
commandUiHandler: commandUiHandler,
|
commandUiHandler: commandUiHandler,
|
||||||
|
egg: egg,
|
||||||
fightUiHandler: fightUiHandler,
|
fightUiHandler: fightUiHandler,
|
||||||
menuUiHandler: menuUiHandler,
|
menuUiHandler: menuUiHandler,
|
||||||
menu: menu,
|
menu: menu,
|
||||||
@ -31,6 +34,7 @@ export const frConfig = {
|
|||||||
pokemon: pokemon,
|
pokemon: pokemon,
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
starterSelectUiHandler: starterSelectUiHandler,
|
||||||
tutorial: tutorial,
|
tutorial: tutorial,
|
||||||
|
splashMessages: splashMessages,
|
||||||
nature: nature,
|
nature: nature,
|
||||||
growth: growth,
|
growth: growth,
|
||||||
weather: weather,
|
weather: weather,
|
||||||
|
21
src/locales/fr/egg.ts
Normal file
21
src/locales/fr/egg.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const egg: SimpleTranslationEntries = {
|
||||||
|
"egg": "Œuf",
|
||||||
|
"greatTier": "Rare",
|
||||||
|
"ultraTier": "Épique",
|
||||||
|
"masterTier": "Légendaire",
|
||||||
|
"defaultTier": "Commun",
|
||||||
|
"hatchWavesMessageSoon": "Il fait du bruit. Il va éclore !",
|
||||||
|
"hatchWavesMessageClose": "Il bouge de temps en temps. Il devrait bientôt éclore.",
|
||||||
|
"hatchWavesMessageNotClose": "Qu’est-ce qui va en sortir ? Ça va mettre du temps.",
|
||||||
|
"hatchWavesMessageLongTime": "Cet Œuf va sûrement mettre du temps à éclore.",
|
||||||
|
"gachaTypeLegendary": "Taux de Légendaires élevé",
|
||||||
|
"gachaTypeMove": "Taux de Capacité Œuf Rare élevé",
|
||||||
|
"gachaTypeShiny": "Taux de Chromatiques élevé",
|
||||||
|
"selectMachine": "Sélectionnez une machine.",
|
||||||
|
"notEnoughVouchers": "Vous n’avez pas assez de coupons !",
|
||||||
|
"tooManyEggs": "Vous avez trop d’Œufs !",
|
||||||
|
"pull": "Tirage",
|
||||||
|
"pulls": "Tirages"
|
||||||
|
} as const;
|
37
src/locales/fr/splash-messages.ts
Normal file
37
src/locales/fr/splash-messages.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const splashMessages: SimpleTranslationEntries = {
|
||||||
|
"battlesWon": "Battles Won!",
|
||||||
|
"joinTheDiscord": "Join the Discord!",
|
||||||
|
"infiniteLevels": "Infinite Levels!",
|
||||||
|
"everythingStacks": "Everything Stacks!",
|
||||||
|
"optionalSaveScumming": "Optional Save Scumming!",
|
||||||
|
"biomes": "35 Biomes!",
|
||||||
|
"openSource": "Open Source!",
|
||||||
|
"playWithSpeed": "Play with 5x Speed!",
|
||||||
|
"liveBugTesting": "Live Bug Testing!",
|
||||||
|
"heavyInfluence": "Heavy RoR2 Influence!",
|
||||||
|
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||||
|
"nowWithMoreSalt": "Now with 33% More Salt!",
|
||||||
|
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
||||||
|
"brokenEggMoves": "Broken Egg Moves!",
|
||||||
|
"magnificent": "Magnificent!",
|
||||||
|
"mubstitute": "Mubstitute!",
|
||||||
|
"thatsCrazy": "That\'s Crazy!",
|
||||||
|
"oranceJuice": "Orance Juice!",
|
||||||
|
"questionableBalancing": "Questionable Balancing!",
|
||||||
|
"coolShaders": "Cool Shaders!",
|
||||||
|
"aiFree": "AI-Free!",
|
||||||
|
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
||||||
|
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
||||||
|
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
||||||
|
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
||||||
|
"achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!",
|
||||||
|
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
||||||
|
"dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!",
|
||||||
|
"alsoTryPokengine": "Also Try Pokéngine!",
|
||||||
|
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
||||||
|
"alsoTryRadicalRed": "Also Try Radical Red!",
|
||||||
|
"eeveeExpo": "Eevee Expo!",
|
||||||
|
"ynoproject": "YNOproject!",
|
||||||
|
} as const;
|
@ -2,6 +2,7 @@ import { ability } from "./ability";
|
|||||||
import { abilityTriggers } from "./ability-trigger";
|
import { abilityTriggers } from "./ability-trigger";
|
||||||
import { battle } from "./battle";
|
import { battle } from "./battle";
|
||||||
import { commandUiHandler } from "./command-ui-handler";
|
import { commandUiHandler } from "./command-ui-handler";
|
||||||
|
import { egg } from "./egg";
|
||||||
import { fightUiHandler } from "./fight-ui-handler";
|
import { fightUiHandler } from "./fight-ui-handler";
|
||||||
import { growth } from "./growth";
|
import { growth } from "./growth";
|
||||||
import { menu } from "./menu";
|
import { menu } from "./menu";
|
||||||
@ -14,6 +15,7 @@ import { pokemon } from "./pokemon";
|
|||||||
import { pokemonStat } from "./pokemon-stat";
|
import { pokemonStat } from "./pokemon-stat";
|
||||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||||
import { tutorial } from "./tutorial";
|
import { tutorial } from "./tutorial";
|
||||||
|
import { splashMessages } from "./splash-messages"
|
||||||
import { weather } from "./weather";
|
import { weather } from "./weather";
|
||||||
|
|
||||||
|
|
||||||
@ -22,6 +24,7 @@ export const itConfig = {
|
|||||||
abilityTriggers: abilityTriggers,
|
abilityTriggers: abilityTriggers,
|
||||||
battle: battle,
|
battle: battle,
|
||||||
commandUiHandler: commandUiHandler,
|
commandUiHandler: commandUiHandler,
|
||||||
|
egg: egg,
|
||||||
fightUiHandler: fightUiHandler,
|
fightUiHandler: fightUiHandler,
|
||||||
menuUiHandler: menuUiHandler,
|
menuUiHandler: menuUiHandler,
|
||||||
menu: menu,
|
menu: menu,
|
||||||
@ -31,6 +34,7 @@ export const itConfig = {
|
|||||||
pokemon: pokemon,
|
pokemon: pokemon,
|
||||||
starterSelectUiHandler: starterSelectUiHandler,
|
starterSelectUiHandler: starterSelectUiHandler,
|
||||||
tutorial: tutorial,
|
tutorial: tutorial,
|
||||||
|
splashMessages: splashMessages,
|
||||||
nature: nature,
|
nature: nature,
|
||||||
growth: growth,
|
growth: growth,
|
||||||
weather: weather,
|
weather: weather,
|
||||||
|
21
src/locales/it/egg.ts
Normal file
21
src/locales/it/egg.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const egg: SimpleTranslationEntries = {
|
||||||
|
"egg": "Egg",
|
||||||
|
"greatTier": "Rare",
|
||||||
|
"ultraTier": "Epic",
|
||||||
|
"masterTier": "Legendary",
|
||||||
|
"defaultTier": "Common",
|
||||||
|
"hatchWavesMessageSoon": "Sounds can be heard coming from inside! It will hatch soon!",
|
||||||
|
"hatchWavesMessageClose": "It appears to move occasionally. It may be close to hatching.",
|
||||||
|
"hatchWavesMessageNotClose": "What will hatch from this? It doesn't seem close to hatching.",
|
||||||
|
"hatchWavesMessageLongTime": "It looks like this Egg will take a long time to hatch.",
|
||||||
|
"gachaTypeLegendary": "Legendary Rate Up",
|
||||||
|
"gachaTypeMove": "Rare Egg Move Rate Up",
|
||||||
|
"gachaTypeShiny": "Shiny Rate Up",
|
||||||
|
"selectMachine": "Select a machine.",
|
||||||
|
"notEnoughVouchers": "You don't have enough vouchers!",
|
||||||
|
"tooManyEggs": "You have too many eggs!",
|
||||||
|
"pull": "Pull",
|
||||||
|
"pulls": "Pulls"
|
||||||
|
} as const;
|
37
src/locales/it/splash-messages.ts
Normal file
37
src/locales/it/splash-messages.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const splashMessages: SimpleTranslationEntries = {
|
||||||
|
"battlesWon": "Battaglie Vinte!",
|
||||||
|
"joinTheDiscord": "Entra nel Discord!",
|
||||||
|
"infiniteLevels": "Livelli Infiniti!",
|
||||||
|
"everythingStacks": "Tutto si impila!",
|
||||||
|
"optionalSaveScumming": "Salvataggio Facoltativo!",
|
||||||
|
"biomes": "35 Biomi!",
|
||||||
|
"openSource": "Open Source!",
|
||||||
|
"playWithSpeed": "Gioca con il 5x di Velocità!",
|
||||||
|
"liveBugTesting": "Test dei Bug in Tempo Reale!",
|
||||||
|
"heavyInfluence": "Influenzato da RoR2!",
|
||||||
|
"pokemonRiskAndPokemonRain": "Pokémon Risk e Pokémon Rain!",
|
||||||
|
"nowWithMoreSalt": "Adesso con il 33% di sale in più!",
|
||||||
|
"infiniteFusionAtHome": "Fusioni Infinite a Casa!",
|
||||||
|
"brokenEggMoves": "Mosse delle Uova Rotte!",
|
||||||
|
"magnificent": "Magnifico!",
|
||||||
|
"mubstitute": "Mubstitute!",
|
||||||
|
"thatsCrazy": "È Pazzesco!",
|
||||||
|
"oranceJuice": "Succo d\'Arancia!",
|
||||||
|
"questionableBalancing": "Bilanciamento Discutibile!",
|
||||||
|
"coolShaders": "Shader fantastici!",
|
||||||
|
"aiFree": "Senza Intelligenza Artificiale!",
|
||||||
|
"suddenDifficultySpikes": "Picchi di Difficoltà Improvvisi!",
|
||||||
|
"basedOnAnUnfinishedFlashGame": "Basato su un Gioco Flash Incompiuto!",
|
||||||
|
"moreAddictiveThanIntended": "Crea Dipendeza più del Dovuto!",
|
||||||
|
"mostlyConsistentSeeds": "Seeds Consistenti!",
|
||||||
|
"achievementPointsDontDoAnything": "I Punti Obiettivo non Fanno Nulla!",
|
||||||
|
"youDoNotStartAtLevel": "Non Cominci dal Livello 2000!",
|
||||||
|
"dontTalkAboutTheManaphyEggIncident": "Non Parlare dell'Incidente dell'Uovo di Manaphy!",
|
||||||
|
"alsoTryPokengine": "Prova anche Pokéngine!",
|
||||||
|
"alsoTryEmeraldRogue": "Prova anche Emerald Rogue!",
|
||||||
|
"alsoTryRadicalRed": "Prova anche Radical Red!",
|
||||||
|
"eeveeExpo": "Eevee Expo!",
|
||||||
|
"ynoproject": "YNOproject!",
|
||||||
|
} as const;
|
@ -1101,7 +1101,7 @@ export const modifierTypes = {
|
|||||||
|
|
||||||
MEMORY_MUSHROOM: () => new RememberMoveModifierType(`modifierType:ModifierType.MEMORY_MUSHROOM`, 'big_mushroom'),
|
MEMORY_MUSHROOM: () => new RememberMoveModifierType(`modifierType:ModifierType.MEMORY_MUSHROOM`, 'big_mushroom'),
|
||||||
|
|
||||||
EXP_SHARE: () => new ModifierType(`modifierType:ModifierType.EXP_SHARE`, 'exp_share', (type, _args) => new Modifiers.ExpShareModifier(type), 'exp_share'),
|
EXP_SHARE: () => new ModifierType(`modifierType:ModifierType.EXP_SHARE`, 'exp_share', (type, _args) => new Modifiers.ExpShareModifier(type)),
|
||||||
EXP_BALANCE: () => new ModifierType(`modifierType:ModifierType.EXP_BALANCE`, 'exp_balance', (type, _args) => new Modifiers.ExpBalanceModifier(type)),
|
EXP_BALANCE: () => new ModifierType(`modifierType:ModifierType.EXP_BALANCE`, 'exp_balance', (type, _args) => new Modifiers.ExpBalanceModifier(type)),
|
||||||
|
|
||||||
OVAL_CHARM: () => new ModifierType(`modifierType:ModifierType.OVAL_CHARM`, 'oval_charm', (type, _args) => new Modifiers.MultipleParticipantExpBonusModifier(type)),
|
OVAL_CHARM: () => new ModifierType(`modifierType:ModifierType.OVAL_CHARM`, 'oval_charm', (type, _args) => new Modifiers.MultipleParticipantExpBonusModifier(type)),
|
||||||
|
@ -2270,12 +2270,8 @@ export class MovePhase extends BattlePhase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const targets = this.scene.getField(true).filter(p => {
|
const targets = this.scene.getField(true).filter(p => {
|
||||||
if (this.targets.indexOf(p.getBattlerIndex()) > -1) {
|
if (this.targets.indexOf(p.getBattlerIndex()) > -1)
|
||||||
const hiddenTag = p.getTag(HiddenTag);
|
|
||||||
if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length && !p.hasAbilityWithAttr(AlwaysHitAbAttr) && !this.pokemon.hasAbilityWithAttr(AlwaysHitAbAttr))
|
|
||||||
return false;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -2316,10 +2312,17 @@ export class MovePhase extends BattlePhase {
|
|||||||
if (this.move.moveId)
|
if (this.move.moveId)
|
||||||
this.showMoveText();
|
this.showMoveText();
|
||||||
|
|
||||||
if ((moveQueue.length && moveQueue[0].move === Moves.NONE) || (!targets.length && !this.move.getMove().getAttrs(SacrificialAttr).length)) {
|
// This should only happen when there are no valid targets left on the field
|
||||||
moveQueue.shift();
|
if ((moveQueue.length && moveQueue[0].move === Moves.NONE) || !targets.length) {
|
||||||
|
this.showFailedText();
|
||||||
this.cancel();
|
this.cancel();
|
||||||
|
|
||||||
|
// Record a failed move so Abilities like Truant don't trigger next turn and soft-lock
|
||||||
this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL });
|
this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL });
|
||||||
|
|
||||||
|
this.pokemon.lapseTags(BattlerTagLapseType.MOVE_EFFECT); // Remove any tags from moves like Fly/Dive/etc.
|
||||||
|
|
||||||
|
moveQueue.shift();
|
||||||
return this.end();
|
return this.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2590,13 +2593,14 @@ export class MoveEffectPhase extends PokemonPhase {
|
|||||||
if (user.hasAbilityWithAttr(AlwaysHitAbAttr) || target.hasAbilityWithAttr(AlwaysHitAbAttr))
|
if (user.hasAbilityWithAttr(AlwaysHitAbAttr) || target.hasAbilityWithAttr(AlwaysHitAbAttr))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// If the user should ignore accuracy on a target, check who the user targeted last turn and see if they match
|
||||||
|
if (user.getTag(BattlerTagType.IGNORE_ACCURACY) && (user.getLastXMoves().slice(1).find(() => true)?.targets || []).indexOf(target.getBattlerIndex()) !== -1)
|
||||||
|
return true;
|
||||||
|
|
||||||
const hiddenTag = target.getTag(HiddenTag);
|
const hiddenTag = target.getTag(HiddenTag);
|
||||||
if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length)
|
if (hiddenTag && !this.move.getMove().getAttrs(HitsTagAttr).filter(hta => (hta as HitsTagAttr).tagType === hiddenTag.tagType).length)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (user.getTag(BattlerTagType.IGNORE_ACCURACY) && (user.getLastXMoves().find(() => true)?.targets || []).indexOf(target.getBattlerIndex()) > -1)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
const moveAccuracy = new Utils.NumberHolder(this.move.getMove().accuracy);
|
const moveAccuracy = new Utils.NumberHolder(this.move.getMove().accuracy);
|
||||||
|
|
||||||
applyMoveAttrs(VariableAccuracyAttr, user, target, this.move.getMove(), moveAccuracy);
|
applyMoveAttrs(VariableAccuracyAttr, user, target, this.move.getMove(), moveAccuracy);
|
||||||
|
@ -124,8 +124,10 @@ declare module 'i18next' {
|
|||||||
fightUiHandler: SimpleTranslationEntries;
|
fightUiHandler: SimpleTranslationEntries;
|
||||||
tutorial: SimpleTranslationEntries;
|
tutorial: SimpleTranslationEntries;
|
||||||
starterSelectUiHandler: SimpleTranslationEntries;
|
starterSelectUiHandler: SimpleTranslationEntries;
|
||||||
|
splashMessages: SimpleTranslationEntries;
|
||||||
nature: SimpleTranslationEntries;
|
nature: SimpleTranslationEntries;
|
||||||
growth: SimpleTranslationEntries;
|
growth: SimpleTranslationEntries;
|
||||||
|
egg: SimpleTranslationEntries;
|
||||||
weather: SimpleTranslationEntries;
|
weather: SimpleTranslationEntries;
|
||||||
modifierType: ModifierTypeTranslationEntries;
|
modifierType: ModifierTypeTranslationEntries;
|
||||||
};
|
};
|
||||||
|
@ -10,8 +10,7 @@ import { addWindow } from "./ui-theme";
|
|||||||
import { Tutorial, handleTutorial } from "../tutorial";
|
import { Tutorial, handleTutorial } from "../tutorial";
|
||||||
import { EggTier } from "../data/enums/egg-type";
|
import { EggTier } from "../data/enums/egg-type";
|
||||||
import {Button} from "../enums/buttons";
|
import {Button} from "../enums/buttons";
|
||||||
|
import i18next from '../plugins/i18n';
|
||||||
const defaultText = 'Select a machine.';
|
|
||||||
|
|
||||||
export default class EggGachaUiHandler extends MessageUiHandler {
|
export default class EggGachaUiHandler extends MessageUiHandler {
|
||||||
private eggGachaContainer: Phaser.GameObjects.Container;
|
private eggGachaContainer: Phaser.GameObjects.Container;
|
||||||
@ -33,6 +32,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
private cursorObj: Phaser.GameObjects.Image;
|
private cursorObj: Phaser.GameObjects.Image;
|
||||||
private transitioning: boolean;
|
private transitioning: boolean;
|
||||||
private transitionCancelled: boolean;
|
private transitionCancelled: boolean;
|
||||||
|
private defaultText: string;
|
||||||
|
|
||||||
constructor(scene: BattleScene) {
|
constructor(scene: BattleScene) {
|
||||||
super(scene, Mode.EGG_GACHA);
|
super(scene, Mode.EGG_GACHA);
|
||||||
@ -43,6 +43,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
this.gachaInfoContainers = [];
|
this.gachaInfoContainers = [];
|
||||||
|
|
||||||
this.voucherCountLabels = [];
|
this.voucherCountLabels = [];
|
||||||
|
this.defaultText = i18next.t('egg:selectMachine');
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
@ -151,8 +152,27 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
this.eggGachaOptionSelectBg.setOrigin(1, 1);
|
this.eggGachaOptionSelectBg.setOrigin(1, 1);
|
||||||
this.eggGachaOptionsContainer.add(this.eggGachaOptionSelectBg);
|
this.eggGachaOptionsContainer.add(this.eggGachaOptionSelectBg);
|
||||||
|
|
||||||
const optionText = addTextObject(this.scene, 0, 0, ' x1 1 Pull\n x10 10 Pulls\n x1 5 Pulls\n x1 10 Pulls\n x1 25 Pulls\nCancel', TextStyle.WINDOW);
|
const pullOptions = [
|
||||||
optionText.setLineSpacing(12);
|
{ multiplier: 'x1', description: `1 ${i18next.t('egg:pull')}` },
|
||||||
|
{ multiplier: 'x10', description: `10 ${i18next.t('egg:pulls')}` },
|
||||||
|
{ multiplier: 'x1', description: `5 ${i18next.t('egg:pulls')}` },
|
||||||
|
{ multiplier: 'x1', description: `10 ${i18next.t('egg:pulls')}` },
|
||||||
|
{ multiplier: 'x1', description: `25 ${i18next.t('egg:pulls')}` }
|
||||||
|
];
|
||||||
|
|
||||||
|
const pullOptionsText = pullOptions.map(option => ` ${option.multiplier.padEnd(4)} ${option.description}`).join('\n');
|
||||||
|
|
||||||
|
const optionText = addTextObject(
|
||||||
|
this.scene,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
`${pullOptionsText}\n${i18next.t('menu:cancel')}`,
|
||||||
|
TextStyle.WINDOW,
|
||||||
|
);
|
||||||
|
|
||||||
|
optionText.setLineSpacing(28);
|
||||||
|
optionText.setFontSize('80px');
|
||||||
|
|
||||||
this.eggGachaOptionsContainer.add(optionText);
|
this.eggGachaOptionsContainer.add(optionText);
|
||||||
|
|
||||||
optionText.setPositionRelative(this.eggGachaOptionSelectBg, 16, 9);
|
optionText.setPositionRelative(this.eggGachaOptionSelectBg, 16, 9);
|
||||||
@ -223,7 +243,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
show(args: any[]): boolean {
|
show(args: any[]): boolean {
|
||||||
super.show(args);
|
super.show(args);
|
||||||
|
|
||||||
this.getUi().showText(defaultText, 0);
|
this.getUi().showText(this.defaultText, 0);
|
||||||
|
|
||||||
this.setGachaCursor(1);
|
this.setGachaCursor(1);
|
||||||
|
|
||||||
@ -474,7 +494,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
showText(text: string, delay?: number, callback?: Function, callbackDelay?: number, prompt?: boolean, promptDelay?: number): void {
|
showText(text: string, delay?: number, callback?: Function, callbackDelay?: number, prompt?: boolean, promptDelay?: number): void {
|
||||||
if (!text)
|
if (!text)
|
||||||
text = defaultText;
|
text = this.defaultText;
|
||||||
|
|
||||||
if (text?.indexOf('\n') === -1) {
|
if (text?.indexOf('\n') === -1) {
|
||||||
this.eggGachaMessageBox.setSize(320, 32);
|
this.eggGachaMessageBox.setSize(320, 32);
|
||||||
@ -490,7 +510,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
showError(text: string): void {
|
showError(text: string): void {
|
||||||
this.showText(text, null, () => this.showText(defaultText), Utils.fixedInt(1500));
|
this.showText(text, null, () => this.showText(this.defaultText), Utils.fixedInt(1500));
|
||||||
}
|
}
|
||||||
|
|
||||||
setTransitioning(transitioning: boolean): void {
|
setTransitioning(transitioning: boolean): void {
|
||||||
@ -526,27 +546,27 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
case 0:
|
case 0:
|
||||||
if (!this.scene.gameData.voucherCounts[VoucherType.REGULAR]) {
|
if (!this.scene.gameData.voucherCounts[VoucherType.REGULAR]) {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You don\'t have enough vouchers!');
|
this.showError(i18next.t('egg:notEnoughVouchers'));
|
||||||
} else if (this.scene.gameData.eggs.length < 99) {
|
} else if (this.scene.gameData.eggs.length < 99) {
|
||||||
this.consumeVouchers(VoucherType.REGULAR, 1);
|
this.consumeVouchers(VoucherType.REGULAR, 1);
|
||||||
this.pull();
|
this.pull();
|
||||||
success = true;
|
success = true;
|
||||||
} else {
|
} else {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You have too many eggs!');
|
this.showError(i18next.t('egg:tooManyEggs'));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (!this.scene.gameData.voucherCounts[VoucherType.PLUS]) {
|
if (!this.scene.gameData.voucherCounts[VoucherType.PLUS]) {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You don\'t have enough vouchers!');
|
this.showError(i18next.t('egg:notEnoughVouchers'));
|
||||||
} else if (this.scene.gameData.eggs.length < 95) {
|
} else if (this.scene.gameData.eggs.length < 95) {
|
||||||
this.consumeVouchers(VoucherType.PLUS, 1);
|
this.consumeVouchers(VoucherType.PLUS, 1);
|
||||||
this.pull(5);
|
this.pull(5);
|
||||||
success = true;
|
success = true;
|
||||||
} else {
|
} else {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You have too many eggs!');
|
this.showError(i18next.t('egg:tooManyEggs'));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@ -554,7 +574,7 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
if ((this.cursor === 1 && this.scene.gameData.voucherCounts[VoucherType.REGULAR] < 10)
|
if ((this.cursor === 1 && this.scene.gameData.voucherCounts[VoucherType.REGULAR] < 10)
|
||||||
|| (this.cursor === 3 && !this.scene.gameData.voucherCounts[VoucherType.PREMIUM])) {
|
|| (this.cursor === 3 && !this.scene.gameData.voucherCounts[VoucherType.PREMIUM])) {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You don\'t have enough vouchers!');
|
this.showError(i18next.t('egg:notEnoughVouchers'));
|
||||||
} else if (this.scene.gameData.eggs.length < 90) {
|
} else if (this.scene.gameData.eggs.length < 90) {
|
||||||
if (this.cursor === 3)
|
if (this.cursor === 3)
|
||||||
this.consumeVouchers(VoucherType.PREMIUM, 1);
|
this.consumeVouchers(VoucherType.PREMIUM, 1);
|
||||||
@ -564,20 +584,20 @@ export default class EggGachaUiHandler extends MessageUiHandler {
|
|||||||
success = true;
|
success = true;
|
||||||
} else {
|
} else {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You have too many eggs!');
|
this.showError(i18next.t('egg:tooManyEggs'));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (!this.scene.gameData.voucherCounts[VoucherType.GOLDEN]) {
|
if (!this.scene.gameData.voucherCounts[VoucherType.GOLDEN]) {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You don\'t have enough vouchers!');
|
this.showError(i18next.t('egg:notEnoughVouchers'));
|
||||||
} else if (this.scene.gameData.eggs.length < 75) {
|
} else if (this.scene.gameData.eggs.length < 75) {
|
||||||
this.consumeVouchers(VoucherType.GOLDEN, 1);
|
this.consumeVouchers(VoucherType.GOLDEN, 1);
|
||||||
this.pull(25);
|
this.pull(25);
|
||||||
success = true;
|
success = true;
|
||||||
} else {
|
} else {
|
||||||
error = true;
|
error = true;
|
||||||
this.showError('You have too many eggs!');
|
this.showError(i18next.t('egg:tooManyEggs'));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
|
@ -7,6 +7,7 @@ import { EGG_SEED, Egg, GachaType, getEggGachaTypeDescriptor, getEggHatchWavesMe
|
|||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { addWindow } from "./ui-theme";
|
import { addWindow } from "./ui-theme";
|
||||||
import {Button} from "../enums/buttons";
|
import {Button} from "../enums/buttons";
|
||||||
|
import i18next from '../plugins/i18n';
|
||||||
|
|
||||||
export default class EggListUiHandler extends MessageUiHandler {
|
export default class EggListUiHandler extends MessageUiHandler {
|
||||||
private eggListContainer: Phaser.GameObjects.Container;
|
private eggListContainer: Phaser.GameObjects.Container;
|
||||||
@ -165,7 +166,7 @@ export default class EggListUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
setEggDetails(egg: Egg): void {
|
setEggDetails(egg: Egg): void {
|
||||||
this.eggSprite.setFrame(`egg_${egg.getKey()}`);
|
this.eggSprite.setFrame(`egg_${egg.getKey()}`);
|
||||||
this.eggNameText.setText(`Egg (${getEggDescriptor(egg)})`);
|
this.eggNameText.setText(`${i18next.t('egg:egg')} (${getEggDescriptor(egg)})`);
|
||||||
this.eggDateText.setText(
|
this.eggDateText.setText(
|
||||||
new Date(egg.timestamp).toLocaleString(undefined, {
|
new Date(egg.timestamp).toLocaleString(undefined, {
|
||||||
weekday: 'short',
|
weekday: 'short',
|
||||||
|
@ -4,7 +4,7 @@ import OptionSelectUiHandler from "./option-select-ui-handler";
|
|||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TextStyle, addTextObject } from "./text";
|
import { TextStyle, addTextObject } from "./text";
|
||||||
import { battleCountSplashMessage, splashMessages } from "../data/splash-messages";
|
import { getBattleCountSplashMessage, getSplashMessages } from "../data/splash-messages";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
|
||||||
export default class TitleUiHandler extends OptionSelectUiHandler {
|
export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||||
@ -63,8 +63,8 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
|||||||
.then(request => request.json())
|
.then(request => request.json())
|
||||||
.then(stats => {
|
.then(stats => {
|
||||||
this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
|
this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
|
||||||
if (this.splashMessage === battleCountSplashMessage)
|
if (this.splashMessage === getBattleCountSplashMessage())
|
||||||
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
|
this.splashMessageText.setText(getBattleCountSplashMessage().replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.error("Failed to fetch title stats:\n", err);
|
console.error("Failed to fetch title stats:\n", err);
|
||||||
@ -75,7 +75,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
|||||||
const ret = super.show(args);
|
const ret = super.show(args);
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
this.splashMessage = Utils.randItem(splashMessages);
|
this.splashMessage = Utils.randItem(getSplashMessages());
|
||||||
this.splashMessageText.setText(this.splashMessage.replace('{COUNT}', '?'));
|
this.splashMessageText.setText(this.splashMessage.replace('{COUNT}', '?'));
|
||||||
|
|
||||||
const ui = this.getUi();
|
const ui = this.getUi();
|
||||||
|
Loading…
Reference in New Issue
Block a user