Compare commits

...

8 Commits

Author SHA1 Message Date
rnicar245
56acd16456
summary-ui-handler stat text centered + summary_stats.png change (#1041) 2024-05-17 21:06:07 -05:00
Jannik Tappert
93dee06e21
Larry and Lance now only need one localization key for both of their positions (because i just use setName and now they use the same key). This does not affect their title (#1053) 2024-05-17 21:04:14 -05:00
Benjamin Odom
4a9664c04c
Fix Entry Hazard Miss (#984)
* Fix Entry Hazard Miss

Made Entry Hazards bypass the accuracy check as they cannot miss a target. There's still one more bug to fix with this but it requires way more code changes. This change needed to be done as well, so I'm getting it out early.

* Update move.ts
2024-05-17 21:20:02 -04:00
snnh
f3c4a3838b
Update and fix zh_CN translation (#1070)
* Update zh_CN translation

* fix zh_CN translation
2024-05-17 20:16:24 -05:00
Matthew Olker
5dd017fa30 Begin shiny weekend 2024-05-17 18:13:12 -04:00
Madmadness65
1f1c243415 Revert "Fix sparkly swirl cure status (#1051)"
This reverts commit 6bcf4e008a.
2024-05-17 15:37:34 -05:00
Charlie Giang
6bcf4e008a
Fix sparkly swirl cure status (#1051) 2024-05-17 15:03:55 -05:00
Somod1
fa6ab29946
Update zh_CN translation (#1047)
* Add files via upload

* Update zh-CN  translation

Adjusted some Chinese translations and added line breaks to some item descriptions in modifier-type.ts

* Add files via upload
2024-05-17 13:36:52 -05:00
20 changed files with 99 additions and 110 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -55,6 +55,7 @@ export enum MoveTarget {
/** {@link https://bulbapedia.bulbagarden.net/wiki/Category:Moves_that_target_all_Pok%C3%A9mon Moves that target all Pokemon} */ /** {@link https://bulbapedia.bulbagarden.net/wiki/Category:Moves_that_target_all_Pok%C3%A9mon Moves that target all Pokemon} */
ALL, ALL,
USER_SIDE, USER_SIDE,
/** {@link https://bulbapedia.bulbagarden.net/wiki/Category:Entry_hazard-creating_moves Entry hazard-creating moves} */
ENEMY_SIDE, ENEMY_SIDE,
BOTH_SIDES, BOTH_SIDES,
PARTY PARTY

View File

@ -831,7 +831,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader([ Species.SMOLIV, Species.SHROOMISH, Species.ODDISH ], Type.GRASS), [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader([ Species.SMOLIV, Species.SHROOMISH, Species.ODDISH ], Type.GRASS),
[TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader([ Species.TADBULB, Species.WATTREL, Species.VOLTORB ], Type.ELECTRIC), [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader([ Species.TADBULB, Species.WATTREL, Species.VOLTORB ], Type.ELECTRIC),
[TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader([ Species.VELUZA, Species.WIGLETT, Species.WINGULL ], Type.WATER), [TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader([ Species.VELUZA, Species.WIGLETT, Species.WINGULL ], Type.WATER),
[TrainerType.LARRY]: new TrainerConfig(++t).initForGymLeader([ Species.STARLY, Species.DUNSPARCE, Species.KOMALA ], Type.NORMAL), [TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader([ Species.STARLY, Species.DUNSPARCE, Species.KOMALA ], Type.NORMAL),
[TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader([ Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU ], Type.GHOST), [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader([ Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU ], Type.GHOST),
[TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.FLITTLE, Species.RALTS ], Type.PSYCHIC), [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.FLITTLE, Species.RALTS ], Type.PSYCHIC),
[TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader([ Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO ], Type.ICE), [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader([ Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO ], Type.ICE),
@ -839,7 +839,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour([ Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH ], Type.ICE), [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour([ Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH ], Type.ICE),
[TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour([ Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM ], Type.FIGHTING), [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour([ Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM ], Type.FIGHTING),
[TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour([ Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK ], Type.GHOST), [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour([ Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK ], Type.GHOST),
[TrainerType.LANCE]: new TrainerConfig(++t).initForEliteFour([ Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR ], Type.DRAGON), [TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour([ Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR ], Type.DRAGON),
[TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour([ Species.XATU, Species.JYNX, Species.SLOWBRO, Species.EXEGGUTOR ], Type.PSYCHIC), [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour([ Species.XATU, Species.JYNX, Species.SLOWBRO, Species.EXEGGUTOR ], Type.PSYCHIC),
[TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour([ Species.WEEZING, Species.VENOMOTH, Species.CROBAT, Species.TENTACRUEL ], Type.POISON), [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour([ Species.WEEZING, Species.VENOMOTH, Species.CROBAT, Species.TENTACRUEL ], Type.POISON),
[TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour([ Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE ], Type.DARK), [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour([ Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE ], Type.DARK),
@ -866,7 +866,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour([ Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON ], Type.FLYING), [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour([ Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON ], Type.FLYING),
[TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour([ Species. WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE ], Type.GROUND), [TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour([ Species. WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE ], Type.GROUND),
[TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour([ Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON ], Type.STEEL), [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour([ Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON ], Type.STEEL),
[TrainerType.LARRY_ELITE]: new TrainerConfig(++t).initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING), [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING),
[TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour([ Species.NOIVERN, Species.HAXORUS, Species.DRAGALGE, Species.BAXCALIBUR ], Type.DRAGON), [TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour([ Species.NOIVERN, Species.HAXORUS, Species.DRAGALGE, Species.BAXCALIBUR ], Type.DRAGON),
[TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour([ Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN ], Type.FIRE), [TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour([ Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN ], Type.FIRE),
[TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour([ Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS ], Type.STEEL), [TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour([ Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS ], Type.STEEL),
@ -875,7 +875,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion([ Species.GYARADOS, Species.MEWTWO, Species.ARCANINE, Species.ALAKAZAM, Species.PIDGEOT ]).setBattleBgm('battle_kanto_champion'), [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion([ Species.GYARADOS, Species.MEWTWO, Species.ARCANINE, Species.ALAKAZAM, Species.PIDGEOT ]).setBattleBgm('battle_kanto_champion'),
[TrainerType.RED]: new TrainerConfig(++t).initForChampion([ Species.CHARIZARD, [ Species.LUGIA, Species.HO_OH ], Species.SNORLAX, Species.RAICHU, Species.ESPEON ]).setBattleBgm('battle_johto_champion'), [TrainerType.RED]: new TrainerConfig(++t).initForChampion([ Species.CHARIZARD, [ Species.LUGIA, Species.HO_OH ], Species.SNORLAX, Species.RAICHU, Species.ESPEON ]).setBattleBgm('battle_johto_champion'),
[TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).initForChampion([ Species.DRAGONITE, Species.ZYGARDE, Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR ]).setBattleBgm('battle_johto_champion'), [TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion([ Species.DRAGONITE, Species.ZYGARDE, Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR ]).setBattleBgm('battle_johto_champion'),
[TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion([ Species.METAGROSS, [ Species.DIALGA, Species.PALKIA ], Species.SKARMORY, Species.AGGRON, Species.CARBINK ]).setBattleBgm('battle_hoenn_champion'), [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion([ Species.METAGROSS, [ Species.DIALGA, Species.PALKIA ], Species.SKARMORY, Species.AGGRON, Species.CARBINK ]).setBattleBgm('battle_hoenn_champion'),
[TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion([ Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO ]).setBattleBgm('battle_hoenn_champion'), [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion([ Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO ]).setBattleBgm('battle_hoenn_champion'),
[TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion([ Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS ]).setBattleBgm('battle_sinnoh_champion'), [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion([ Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS ]).setBattleBgm('battle_sinnoh_champion'),

View File

@ -1096,8 +1096,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
let shinyThreshold = new Utils.IntegerHolder(32); let shinyThreshold = new Utils.IntegerHolder(32);
if (thresholdOverride === undefined) { if (thresholdOverride === undefined) {
if (!this.hasTrainer()) if (!this.hasTrainer()) {
if (new Date() < new Date('2024-05-21'))
shinyThreshold.value *= 3;
this.scene.applyModifiers(ShinyRateBoosterModifier, true, shinyThreshold); this.scene.applyModifiers(ShinyRateBoosterModifier, true, shinyThreshold);
}
} else } else
shinyThreshold.value = thresholdOverride; shinyThreshold.value = thresholdOverride;

View File

@ -55,7 +55,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "Erhöht die {{tempBattleStatName}} aller Teammitglieder für 5 Kämpfe um eine Stufe", description: "Erhöht die {{tempBattleStatName}} aller Teammitglieder für 5 Kämpfe um eine Stufe",
}, },
"AttackTypeBoosterModifierType": { "AttackTypeBoosterModifierType": {
description: "Erhöht die Stärke aller {{moveType}}attacken eines Pokémon um 20%", description: "Erhöht die Stärke aller {{moveType}}-Attacken eines Pokémon um 20%",
}, },
"PokemonLevelIncrementModifierType": { "PokemonLevelIncrementModifierType": {
description: "Erhöht das Level eines Pokémon um 1", description: "Erhöht das Level eines Pokémon um 1",

View File

@ -219,7 +219,6 @@ export const trainerNames: SimpleTranslationEntries = {
"kahili": "Kahili", "kahili": "Kahili",
"rika": "Cay", "rika": "Cay",
"poppy": "Poppy", "poppy": "Poppy",
"larry_elite": "Aoki", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Sinius", "hassel": "Sinius",
"crispin": "Matt", "crispin": "Matt",
"amarys": "Erin", "amarys": "Erin",
@ -227,7 +226,6 @@ export const trainerNames: SimpleTranslationEntries = {
"drayton": "Levy", "drayton": "Levy",
"blue": "Blau", "blue": "Blau",
"red": "Rot", "red": "Rot",
"lance_champion": "Siegfried", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Troy", "steven": "Troy",
"wallace": "Wassili", "wallace": "Wassili",
"cynthia": "Cynthia", "cynthia": "Cynthia",

View File

@ -219,7 +219,6 @@ export const trainerNames: SimpleTranslationEntries = {
"kahili": "Kahili", "kahili": "Kahili",
"rika": "Rika", "rika": "Rika",
"poppy": "Poppy", "poppy": "Poppy",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel", "hassel": "Hassel",
"crispin": "Crispin", "crispin": "Crispin",
"amarys": "Amarys", "amarys": "Amarys",
@ -227,7 +226,6 @@ export const trainerNames: SimpleTranslationEntries = {
"drayton": "Drayton", "drayton": "Drayton",
"blue": "Blue", "blue": "Blue",
"red": "Red", "red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Steven", "steven": "Steven",
"wallace": "Wallace", "wallace": "Wallace",
"cynthia": "Cynthia", "cynthia": "Cynthia",

View File

@ -219,7 +219,6 @@ export const trainerNames: SimpleTranslationEntries = {
"kahili": "Kahili", "kahili": "Kahili",
"rika": "Rika", "rika": "Rika",
"poppy": "Poppy", "poppy": "Poppy",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel", "hassel": "Hassel",
"crispin": "Crispin", "crispin": "Crispin",
"amarys": "Amarys", "amarys": "Amarys",
@ -227,7 +226,6 @@ export const trainerNames: SimpleTranslationEntries = {
"drayton": "Drayton", "drayton": "Drayton",
"blue": "Blue", "blue": "Blue",
"red": "Red", "red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Steven", "steven": "Steven",
"wallace": "Wallace", "wallace": "Wallace",
"cynthia": "Cynthia", "cynthia": "Cynthia",

View File

@ -219,7 +219,6 @@ export const trainerNames: SimpleTranslationEntries = {
"kahili": "Kahili", "kahili": "Kahili",
"rika": "Cayenn", "rika": "Cayenn",
"poppy": "Popi", "poppy": "Popi",
"larry_elite": "Okuba", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassa", "hassel": "Hassa",
"crispin": "Rubépin", "crispin": "Rubépin",
"amarys": "Nérine", "amarys": "Nérine",
@ -227,7 +226,6 @@ export const trainerNames: SimpleTranslationEntries = {
"drayton": "Irido", "drayton": "Irido",
"blue": "Blue", "blue": "Blue",
"red": "Red", "red": "Red",
"lance_champion": "Peter", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Pierre Rochard", "steven": "Pierre Rochard",
"wallace": "Marc", "wallace": "Marc",
"cynthia": "Cynthia", "cynthia": "Cynthia",

View File

@ -219,7 +219,6 @@ export const trainerNames: SimpleTranslationEntries = {
"kahili": "Kahili", "kahili": "Kahili",
"rika": "Rika", "rika": "Rika",
"poppy": "Poppy", "poppy": "Poppy",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel", "hassel": "Hassel",
"crispin": "Crispin", "crispin": "Crispin",
"amarys": "Amarys", "amarys": "Amarys",
@ -227,7 +226,6 @@ export const trainerNames: SimpleTranslationEntries = {
"drayton": "Drayton", "drayton": "Drayton",
"blue": "Blue", "blue": "Blue",
"red": "Red", "red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Steven", "steven": "Steven",
"wallace": "Wallace", "wallace": "Wallace",
"cynthia": "Cynthia", "cynthia": "Cynthia",

View File

@ -219,7 +219,6 @@ export const trainerNames: SimpleTranslationEntries = {
"kahili": "Kahili", "kahili": "Kahili",
"rika": "Rika", "rika": "Rika",
"poppy": "Poppy", "poppy": "Poppy",
"larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "Hassel", "hassel": "Hassel",
"crispin": "Crispin", "crispin": "Crispin",
"amarys": "Amarys", "amarys": "Amarys",
@ -227,7 +226,6 @@ export const trainerNames: SimpleTranslationEntries = {
"drayton": "Drayton", "drayton": "Drayton",
"blue": "Blue", "blue": "Blue",
"red": "Red", "red": "Red",
"lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"steven": "Steven", "steven": "Steven",
"wallace": "Wallace", "wallace": "Wallace",
"cynthia": "Cynthia", "cynthia": "Cynthia",

View File

@ -1,10 +1,10 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n"; import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const battleMessageUiHandler: SimpleTranslationEntries = { export const battleMessageUiHandler: SimpleTranslationEntries = {
"ivBest": "Best", "ivBest": "最棒",
"ivFantastic": "Fantastic", "ivFantastic": "了不起",
"ivVeryGood": "Very Good", "ivVeryGood": "非常好",
"ivPrettyGood": "Pretty Good", "ivPrettyGood": "相当好",
"ivDecent": "Decent", "ivDecent": "一般般",
"ivNoGood": "No Good", "ivNoGood": "也许不行",
} as const; } as const;

View File

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

View File

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

View File

@ -20,7 +20,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "为一只宝可梦回复 {{restorePoints}} HP 或 {{restorePercent}}% HP取最大值", description: "为一只宝可梦回复 {{restorePoints}} HP 或 {{restorePercent}}% HP取最大值",
extra: { extra: {
"fully": "为一只宝可梦回复全部HP", "fully": "为一只宝可梦回复全部HP",
"fullyWithStatus": "为一只宝可梦回复全部HP并消除所有负面状态", "fullyWithStatus": "为一只宝可梦回复全部HP并消除所有负面\n状态",
} }
}, },
"PokemonReviveModifierType": { "PokemonReviveModifierType": {
@ -42,11 +42,11 @@ export const modifierType: ModifierTypeTranslationEntries = {
} }
}, },
"PokemonPpUpModifierType": { "PokemonPpUpModifierType": {
description: "为一只宝可梦的一个招式永久增加{{upPoints}}点PP每5点当前最大PP (最多3点)", description: "为一只宝可梦的一个招式永久增加{{upPoints}}点\nPP每5点当前最大PP (最多3点)",
}, },
"PokemonNatureChangeModifierType": { "PokemonNatureChangeModifierType": {
name: "{{natureName}}薄荷", name: "{{natureName}}薄荷",
description: "将一只宝可梦的性格改为{{natureName}}并为该宝可梦永久解锁该性格.", description: "将一只宝可梦的性格改为{{natureName}}并为该宝可\n梦永久解锁该性格.",
}, },
"DoubleBattleChanceBoosterModifierType": { "DoubleBattleChanceBoosterModifierType": {
description: "接下来的{{battleCount}}场战斗是双打的概率翻倍", description: "接下来的{{battleCount}}场战斗是双打的概率翻倍",
@ -64,7 +64,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "所有成员宝可梦等级提升1级", description: "所有成员宝可梦等级提升1级",
}, },
"PokemonBaseStatBoosterModifierType": { "PokemonBaseStatBoosterModifierType": {
description: "增加持有者的{{statName}}10%. 个体值越高堆叠上限越高.", description: "增加持有者的{{statName}}10%,个体值越高堆叠\n上限越高.",
}, },
"AllPokemonFullHpRestoreModifierType": { "AllPokemonFullHpRestoreModifierType": {
description: "所有宝可梦完全回复HP", description: "所有宝可梦完全回复HP",
@ -81,10 +81,10 @@ export const modifierType: ModifierTypeTranslationEntries = {
}, },
}, },
"ExpBoosterModifierType": { "ExpBoosterModifierType": {
description: "EXP.获取量增加{{boostPercent}}%", description: "经验值获取量增加{{boostPercent}}%",
}, },
"PokemonExpBoosterModifierType": { "PokemonExpBoosterModifierType": {
description: "持有者EXP.获取量增加{{boostPercent}}%", description: "持有者经验值获取量增加{{boostPercent}}%",
}, },
"PokemonFriendshipBoosterModifierType": { "PokemonFriendshipBoosterModifierType": {
description: "每场战斗获得的好感度提升50%", description: "每场战斗获得的好感度提升50%",
@ -93,7 +93,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "招式命中率增加{{accuracyAmount}} (最大100)", description: "招式命中率增加{{accuracyAmount}} (最大100)",
}, },
"PokemonMultiHitModifierType": { "PokemonMultiHitModifierType": {
description: "攻击造成一次额外伤害,每次堆叠额外伤害分别衰减60/75/82.5%", description: "攻击造成一次额外伤害,每次堆叠额外伤害\n分别衰减60/75/82.5%",
}, },
"TmModifierType": { "TmModifierType": {
name: "招式学习器 {{moveId}} - {{moveName}}", name: "招式学习器 {{moveId}} - {{moveName}}",
@ -106,7 +106,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
description: "使某些宝可梦更改形态", description: "使某些宝可梦更改形态",
}, },
"FusePokemonModifierType": { "FusePokemonModifierType": {
description: "融合两只宝可梦 (改变特性, 平分基础点数和属性, 共享招式池)", description: "融合两只宝可梦 (改变特性, 平分基础点数\n和属性, 共享招式池)",
}, },
"TerastallizeModifierType": { "TerastallizeModifierType": {
name: "{{teraType}}太晶碎块", name: "{{teraType}}太晶碎块",
@ -128,9 +128,9 @@ export const modifierType: ModifierTypeTranslationEntries = {
"RARE_CANDY": { name: "神奇糖果" }, "RARE_CANDY": { name: "神奇糖果" },
"RARER_CANDY": { name: "超神奇糖果" }, "RARER_CANDY": { name: "超神奇糖果" },
"MEGA_BRACELET": { name: "超级手镯", description: "能让携带着超级石战斗的宝可梦进行超级进化" }, "MEGA_BRACELET": { name: "超级手镯", description: "能让携带着超级石战斗的宝可梦进行\n超级进化" },
"DYNAMAX_BAND": { name: "极巨腕带", description: "能让携带着极巨菇菇战斗的宝可梦进行极巨化" }, "DYNAMAX_BAND": { name: "极巨腕带", description: "能让携带着极巨菇菇战斗的宝可梦进行\n极巨化" },
"TERA_ORB": { name: "太晶珠", description: "能让携带着太晶碎块战斗的宝可梦进行太晶化" }, "TERA_ORB": { name: "太晶珠", description: "能让携带着太晶碎块战斗的宝可梦进行\n太晶化" },
"MAP": { name: "地图", description: "允许你在切换宝可梦群落时选择目的地"}, "MAP": { name: "地图", description: "允许你在切换宝可梦群落时选择目的地"},
@ -165,9 +165,9 @@ export const modifierType: ModifierTypeTranslationEntries = {
"MEMORY_MUSHROOM": { name: "回忆蘑菇", description: "回忆一个宝可梦已经遗忘的招式" }, "MEMORY_MUSHROOM": { name: "回忆蘑菇", description: "回忆一个宝可梦已经遗忘的招式" },
"EXP_SHARE": { name: "学习装置", description: "未参加对战的宝可梦获得20%的经验值" }, "EXP_SHARE": { name: "学习装置", description: "未参加对战的宝可梦获得20%的经验值" },
"EXP_BALANCE": { name: "均衡型学习装置", description: "增加战斗中获得的EXP.分配给低级成员宝可梦的权重" }, "EXP_BALANCE": { name: "均衡型学习装置", description: "队伍中的低级宝可梦获得更多经验值" },
"OVAL_CHARM": { name: "圆形护符", description: "当多只宝可梦参与战斗, 分别获得总EXP.10%的额外EXP." }, "OVAL_CHARM": { name: "圆形护符", description: "当多只宝可梦参与战斗,分别获得总经验值\n10%的额外经验值" },
"EXP_CHARM": { name: "经验护符" }, "EXP_CHARM": { name: "经验护符" },
"SUPER_EXP_CHARM": { name: "超级经验护符" }, "SUPER_EXP_CHARM": { name: "超级经验护符" },
@ -200,21 +200,21 @@ export const modifierType: ModifierTypeTranslationEntries = {
"BERRY_POUCH": { name: "树果袋", description: "使用树果时有25%的几率不会消耗树果" }, "BERRY_POUCH": { name: "树果袋", description: "使用树果时有25%的几率不会消耗树果" },
"FOCUS_BAND": { name: "气势头带", description: "携带该道具的宝可梦有10%几率在受到攻击而将陷入濒死状态时保留1点HP不陷入濒死状态" }, "FOCUS_BAND": { name: "气势头带", description: "携带该道具的宝可梦有10%几率在受到\n攻击而将陷入濒死状态时保留1点HP不陷入濒死状态" },
"QUICK_CLAW": { name: "先制之爪", description: "有10%的几率无视速度优先使出招式 (先制技能优先)" }, "QUICK_CLAW": { name: "先制之爪", description: "有10%的几率无视速度优先使出招式\n(先制技能优先)" },
"KINGS_ROCK": { name: "王者之证", description: "携带该道具的宝可梦使用任意原本不会造成畏缩状态的攻击招式并造成伤害时有10%几率使目标陷入畏缩状态" }, "KINGS_ROCK": { name: "王者之证", description: "携带该道具的宝可梦使用任意原本不会造成\n畏缩状态的攻击招式并造成伤害时,有\n10%几率使目标陷入畏缩状态" },
"LEFTOVERS": { name: "吃剩的东西", description: "携带该道具的宝可梦在每个回合结束时恢复最大HP的1/16" }, "LEFTOVERS": { name: "吃剩的东西", description: "携带该道具的宝可梦在每个回合结束时恢复\n最大HP的1/16" },
"SHELL_BELL": { name: "贝壳之铃", description: "携带该道具的宝可梦在攻击对方成功造成伤害时携带者的HP会恢复其所造成伤害的1/8" }, "SHELL_BELL": { name: "贝壳之铃", description: "携带该道具的宝可梦在攻击对方成功造成伤\n害时携带者的HP会恢复其所造成伤害\n的1/8" },
"BATON": { name: "接力棒", description: "允许在切换宝可梦时保留能力变化, 对陷阱同样生效" }, "BATON": { name: "接力棒", description: "允许在切换宝可梦时保留能力变化, 对陷阱\n同样生效" },
"SHINY_CHARM": { name: "闪耀护符", description: "显著增加野生宝可梦的闪光概率" }, "SHINY_CHARM": { name: "闪耀护符", description: "显著增加野生宝可梦的闪光概率" },
"ABILITY_CHARM": { name: "特性护符", description: "显著增加野生宝可梦有隐藏特性的概率" }, "ABILITY_CHARM": { name: "特性护符", description: "显著增加野生宝可梦有隐藏特性的概率" },
"IV_SCANNER": { name: "个体值探测器", description: "允许扫描野生宝可梦的个体值。 每个次显示2个个体值. 最好的个体值优先显示" }, "IV_SCANNER": { name: "个体值探测器", description: "允许扫描野生宝可梦的个体值。 每个次显示\n2个个体值. 最好的个体值优先显示" },
"DNA_SPLICERS": { name: "基因之楔" }, "DNA_SPLICERS": { name: "基因之楔" },

View File

@ -1,41 +1,41 @@
import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; import { PokemonInfoTranslationEntries } from "#app/plugins/i18n";
export const pokemonInfo: PokemonInfoTranslationEntries = { export const pokemonInfo: PokemonInfoTranslationEntries = {
Stat: { Stat: {
"HP": "最大HP", "HP": "最大HP",
"HPshortened": "最大HP", "HPshortened": "最大HP",
"ATK": "攻击", "ATK": "攻击",
"ATKshortened": "攻击", "ATKshortened": "攻击",
"DEF": "防御", "DEF": "防御",
"DEFshortened": "防御", "DEFshortened": "防御",
"SPATK": "特攻", "SPATK": "特攻",
"SPATKshortened": "特攻", "SPATKshortened": "特攻",
"SPDEF": "特防", "SPDEF": "特防",
"SPDEFshortened": "特防", "SPDEFshortened": "特防",
"SPD": "速度", "SPD": "速度",
"SPDshortened": "速度" "SPDshortened": "速度"
}, },
Type: { Type: {
"UNKNOWN": "Unknown", "UNKNOWN": "未知",
"NORMAL": "一般", "NORMAL": "一般",
"FIGHTING": "格斗", "FIGHTING": "格斗",
"FLYING": "飞行", "FLYING": "飞行",
"POISON": "毒", "POISON": "毒",
"GROUND": "地面", "GROUND": "地面",
"ROCK": "岩石", "ROCK": "岩石",
"BUG": "虫", "BUG": "虫",
"GHOST": "幽灵", "GHOST": "幽灵",
"STEEL": "钢", "STEEL": "钢",
"FIRE": "火", "FIRE": "火",
"WATER": "水", "WATER": "水",
"GRASS": "草", "GRASS": "草",
"ELECTRIC": "电", "ELECTRIC": "电",
"PSYCHIC": "超能力", "PSYCHIC": "超能力",
"ICE": "冰", "ICE": "冰",
"DRAGON": "龙", "DRAGON": "龙",
"DARK": "恶", "DARK": "恶",
"FAIRY": "妖精", "FAIRY": "妖精",
"STELLAR": "星晶", "STELLAR": "星晶",
}, },
} as const; } as const;

View File

@ -252,7 +252,6 @@ export const trainerNames: SimpleTranslationEntries = {
// 帕底亚地区 Paldea Region // 帕底亚地区 Paldea Region
"rika": "辛俐", "rika": "辛俐",
"poppy": "波琵", "poppy": "波琵",
"larry_elite": "青木", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
"hassel": "八朔", "hassel": "八朔",
// 蓝莓学院 Blueberry Academy // 蓝莓学院 Blueberry Academy
@ -266,9 +265,6 @@ export const trainerNames: SimpleTranslationEntries = {
"blue": "青绿", "blue": "青绿",
"red": "赤红", "red": "赤红",
// 城都地区 Johto Region
"lance_champion": "阿渡", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here)
// 丰缘地区 Hoenn Region // 丰缘地区 Hoenn Region
"steven": "大吾", "steven": "大吾",
"wallace": "米可利", "wallace": "米可利",

View File

@ -8,14 +8,14 @@ export const weather: SimpleTranslationEntries = {
"sunnyLapseMessage": "日照很强。", "sunnyLapseMessage": "日照很强。",
"sunnyClearMessage": "日照复原了。", "sunnyClearMessage": "日照复原了。",
"rainStartMessage": "雨了!", "rainStartMessage": "开始下雨了!",
"rainLapseMessage": "雨继续下。", "rainLapseMessage": "雨继续下。",
"rainClearMessage": "雨停了。", "rainClearMessage": "雨停了。",
"sandstormStartMessage": "开始刮沙暴了!", "sandstormStartMessage": "开始刮沙暴了!",
"sandstormLapseMessage": "沙暴肆虐。", "sandstormLapseMessage": "沙暴肆虐。",
"sandstormClearMessage": "沙尘暴停止了。", "sandstormClearMessage": "沙暴停止了!",
"sandstormDamageMessage": "沙暴袭击了{{pokemonPrefix}}{{pokemonName}}!", "sandstormDamageMessage": "沙暴袭击了{{pokemonPrefix}}{{pokemonName}}!",
"hailStartMessage": "开始下冰雹了!", "hailStartMessage": "开始下冰雹了!",
"hailLapseMessage": "冰雹继续肆虐。", "hailLapseMessage": "冰雹继续肆虐。",

View File

@ -2597,7 +2597,8 @@ export class MoveEffectPhase extends PokemonPhase {
} }
hitCheck(target: Pokemon): boolean { hitCheck(target: Pokemon): boolean {
if (this.move.getMove().moveTarget === MoveTarget.USER) // Moves targeting the user and entry hazards can't miss
if ([MoveTarget.USER, MoveTarget.ENEMY_SIDE].includes(this.move.getMove().moveTarget))
return true; return true;
const user = this.getUserPokemon(); const user = this.getUserPokemon();

View File

@ -806,7 +806,7 @@ export default class SummaryUiHandler extends UiHandler {
const natureStatMultiplier = getNatureStatMultiplier(this.pokemon.getNature(), s); const natureStatMultiplier = getNatureStatMultiplier(this.pokemon.getNature(), s);
const statLabel = addTextObject(this.scene, 27 + 115 * colIndex, 56 + 16 * rowIndex, statName, natureStatMultiplier === 1 ? TextStyle.SUMMARY : natureStatMultiplier > 1 ? TextStyle.SUMMARY_PINK : TextStyle.SUMMARY_BLUE); const statLabel = addTextObject(this.scene, 27 + 115 * colIndex + (colIndex == 1 ? 5 : 0), 56 + 16 * rowIndex, statName, natureStatMultiplier === 1 ? TextStyle.SUMMARY : natureStatMultiplier > 1 ? TextStyle.SUMMARY_PINK : TextStyle.SUMMARY_BLUE);
statLabel.setOrigin(0.5, 0); statLabel.setOrigin(0.5, 0);
statsContainer.add(statLabel); statsContainer.add(statLabel);