Compare commits

...

8 Commits

Author SHA1 Message Date
chaosgrimmon
0572ac4b91
[Sprite] Trim Skeledirge back exp palettes (#3350)
* [Sprite] Trim Skeledirge exp back palette

* [Sprite] Trim Skeledirge shiny back exp palette
2024-08-04 17:53:53 -04:00
DustinLin
d27e764e24
[Bug] Adding check to apply attr on moves that dont fail (parting shot) (#3195) 2024-08-04 15:14:16 -04:00
Tempoanon
84d89617ed
Update move.ts
Fixed accidentally added commas
2024-08-04 14:33:54 -04:00
Tempoanon
6f82d9c96c
Update move.ts
Mark future sight and doom desire as partial
2024-08-04 14:27:37 -04:00
Lugiad
fdf20837a6
[Localization] Small batch of French localization/adjustments (#3339)
* Update filter-bar.ts

* Update trainers.ts

* Update trainers.ts

* Update starter-select-ui-handler.ts

* Update starter-select-ui-handler.ts
2024-08-04 14:12:42 -04:00
NightKev
491f801d1c
[Refactor] Use tagType instead of manually passing BattlerTagType.BYPASS_SLEEP (#3338) 2024-08-04 14:12:22 -04:00
Jannik Tappert
6ce3468e04
[Localization] Fix some errors and transalte admin dialogue (#3335)
* Bring german translation up to date by fixing some errors and translating the admin dialogue

* Update src/locales/de/move-trigger.ts
2024-08-04 14:11:09 -04:00
NightKev
0241abcf61
[Bug] Fix evil team admins (#3341)
* Rename `flare_admin_m copy.json` to `flare_admin_f.json`

* Also fix the Magma Admins
2024-08-04 14:00:49 -04:00
16 changed files with 82 additions and 75 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,7 +1,7 @@
{
"textures": [
{
"image": "magma_admin_m.png",
"image": "magma_admin_f.png",
"format": "RGBA8888",
"size": {
"w": 80,

View File

@ -1,7 +1,7 @@
{
"textures": [
{
"image": "magma_admin_f.png",
"image": "magma_admin_m.png",
"format": "RGBA8888",
"size": {
"w": 80,

View File

@ -1747,7 +1747,7 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source
case BattlerTagType.RECEIVE_DOUBLE_DAMAGE:
return new BattlerTag(tagType, BattlerTagLapseType.PRE_MOVE, 1, sourceMove);
case BattlerTagType.BYPASS_SLEEP:
return new BattlerTag(BattlerTagType.BYPASS_SLEEP, BattlerTagLapseType.TURN_END, turnCount, sourceMove);
return new BattlerTag(tagType, BattlerTagLapseType.TURN_END, turnCount, sourceMove);
case BattlerTagType.IGNORE_FLYING:
return new GroundedTag(tagType, BattlerTagLapseType.CUSTOM, sourceMove);
case BattlerTagType.ROOSTED:

View File

@ -6645,6 +6645,7 @@ export function initMoves() {
.attr(StatChangeAttr, BattleStat.SPDEF, -1)
.ballBombMove(),
new AttackMove(Moves.FUTURE_SIGHT, Type.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 2)
.partial()
.attr(DelayedAttackAttr, ArenaTagType.FUTURE_SIGHT, ChargeAnim.FUTURE_SIGHT_CHARGING, i18next.t("moveTriggers:foresawAnAttack", {pokemonName: "{USER}"})),
new AttackMove(Moves.ROCK_SMASH, Type.FIGHTING, MoveCategory.PHYSICAL, 40, 100, 15, 50, 0, 2)
.attr(StatChangeAttr, BattleStat.DEF, -1),
@ -6933,6 +6934,7 @@ export function initMoves() {
.attr(ConfuseAttr)
.pulseMove(),
new AttackMove(Moves.DOOM_DESIRE, Type.STEEL, MoveCategory.SPECIAL, 140, 100, 5, -1, 0, 3)
.partial()
.attr(DelayedAttackAttr, ArenaTagType.DOOM_DESIRE, ChargeAnim.DOOM_DESIRE_CHARGING, i18next.t("moveTriggers:choseDoomDesireAsDestiny", {pokemonName: "{USER}"})),
new AttackMove(Moves.PSYCHO_BOOST, Type.PSYCHIC, MoveCategory.SPECIAL, 140, 90, 5, -1, 0, 3)
.attr(StatChangeAttr, BattleStat.SPATK, -2, true),

View File

@ -35,12 +35,12 @@ export const abilityTriggers: SimpleTranslationEntries = {
"battlerTagImmunity": "{{abilityName}} von {{pokemonNameWithAffix}} verhindert {{battlerTagName}}!",
"forewarn": "Vorwarnung von {{pokemonNameWithAffix}}: Konzentraion auf {{moveName}}!",
"frisk": "{{pokemonNameWithAffix}} hat die Fähigkeit {{opponentAbilityName}} von {{opponentName}} erschnüffelt!",
"postWeatherLapseHeal": "{{abilityName}} von {{pokemonName}} füllte einige KP auf!",
"postWeatherLapseHeal": "{{abilityName}} von {{pokemonNameWithAffix}} füllte einige KP auf!",
"postWeatherLapseDamage": "{{pokemonNameWithAffix}} wurde durch {{abilityName}} verletzt!",
"postTurnLootCreateEatenBerry": "{{pokemonNameWithAffix}} hat {{berryName}} geerntet!",
"postTurnHeal": "{{abilityName}} von {{pokemonName}} füllte einige KP auf!",
"postTurnHeal": "{{abilityName}} von {{pokemonNameWithAffix}} füllte einige KP auf!",
"fetchBall": "{{pokemonNameWithAffix}} hat einen {{pokeballName}} gefunden!",
"healFromBerryUse": "{{abilityName}} von {{pokemonName}} füllte einige KP auf!",
"healFromBerryUse": "{{abilityName}} von {{pokemonNameWithAffix}} füllte einige KP auf!",
"arenaTrap": "{{abilityName}} von {{pokemonNameWithAffix}} verhindert den Tausch!",
"postBattleLoot": "{{pokemonNameWithAffix}} hebt {{itemName}} auf!",
"postFaintContactDamage": "{{abilityName}} von {{pokemonNameWithAffix}} schadet seinem Angreifer!",

View File

@ -380,16 +380,17 @@ export const PGMdialogue: DialogueTranslationEntries = {
},
"rocket_admin": {
"encounter": {
1: "Oh? You managed to get this far? You must be quite the trainer.",
2: "That's quite enough of you playing hero, kid.",
3: "I'll show you how scary an angry adult can be!"
1: "Oh? Du wagst es, dich Team Rocket zu widersetzen? Du wirst es bereuen.",
2: "Du glaubst, du kannst uns aufhalten? Naiver Narr!",
3: "Ich werde dir die wahre Macht von Team Rocket zeigen!"
},
"victory": {
1: "No! Forgive me Giovanni!",
2: "How could this be?",
3: "Urgh... You were too strong..."
1: "Nein! Verzeih mir, Giovanni!",
2: "Wie konnte das geschehen?",
3: "Urgh... Du warst zu stark..."
},
},
"firebreather": {
"encounter": {
1: "Meine Flammen werden dich verschlingen!",
@ -424,14 +425,16 @@ export const PGMdialogue: DialogueTranslationEntries = {
},
"magma_admin": {
"encounter": {
1: "Hehehe! So you've come all the way here! But you're too late!",
2: "You're going to meddle in Team Magma's affairs? You're so cute you're disgusting! I'll put you down kiddy!",
3: "I'm going to give you a little taste of pain! Resign yourself to it!"
1: `Hahaha! Du hast den ganzen weiten Weg auf dich genommen! Aber du bist zu spät!
$Unsere Mission ist schon fast abgeschlossen!`,
2: `Du willst dich in Team Magmas Angelegenheiten einmischen? Du bist so süß, dass es ekelhaft ist!
$Ich werde dich ein für alle Mal erledigen!`,
3: "Ich werde dir zeigen, was wahrer Schmerz ist! Mach dich bereit!",
},
"victory": {
1: "Hehehe... So I lost...",
2: "You're disgustingly strong!",
3: "Ahahaha! Ouch!"
1: "Hahaha! Ouch! Ich habe wohl verloren...",
2: "Du bist ekelhaft stark!",
3: "Da habe ich meine eigene Medizin zu schmecken bekommen!"
},
},
"aqua_grunt": {
@ -444,14 +447,14 @@ export const PGMdialogue: DialogueTranslationEntries = {
},
"aqua_admin": {
"encounter": {
1: "I'm a cut above the grunts you've seen so far. I'm going to puvlerize you!",
2: "Hahn? What's this? Who's this spoiled brat?",
3: "What are you doing here? Did you follow us?"
1: "Ich bin eine Stufe über den Rüpeln, die du bisher gesehen hast. Ich werde dich pulverisieren!",
2: "Hmmm? Wer ist das? Wer ist dieses verwöhnte Gör?",
3: "Was machst du hier? Bist du uns gefolgt? Dann müssen wir dich wohl loswerden!"
},
"victory": {
1: "So I lost too...",
2: "Ahhh?! Did I go too easy on you?!",
3: "Wh-what was that?"
1: "Also habe ich auch verloren...",
2: "Ahhh?! War ich zu nachsichtig mit dir?!",
3: "W-was war das?"
},
},
"galactic_grunt": {
@ -464,14 +467,15 @@ export const PGMdialogue: DialogueTranslationEntries = {
},
"galactic_admin": {
"encounter": {
1: "I'm one of Team Galactic's Commanders.",
2: "Anything that opposes Team Galactic must be crushed! Even the very thought of opposition will not be tolerated!",
3: "What's the matter? Don't tell me you're shaking?"
1: "Ich bin einer der Commander von Team Galaktik. Wir werden Zyrus' Traum verwirklichen!",
2: `Alles, was sich Team Galaktik widersetzt, muss zerschlagen werden!
$Selbst der Gedanke an Widerstand wird nicht toleriert!`,
3: "Was ist los? Sag mir nicht, dass du zitterst? Mach ich dir Angst? Gut so! Knie nieder!"
},
"victory": {
1: "This can't be?! I lost?! You... you uppity brat!",
2: "You, my friend, are tough!",
3: "Losing to some child... Being careless cost me too much."
1: "Das kann nicht sein?! Ich habe verloren?! Du... du freches Gör!",
2: "Du, mein Freund, bist stark! Aber widestand ist zwecklos! Team Galaktik wird siegen!",
3: "Gegen ein Kind zu verlieren... Meine Unachtsamkeit wird mir nicht verziehen werden..."
},
},
"plasma_grunt": {
@ -484,14 +488,15 @@ export const PGMdialogue: DialogueTranslationEntries = {
},
"plasma_sage": {
"encounter": {
1: "You could become a threat to Team Plasma, so we will eliminate you here!",
2: "Oh, for crying out loud... I didn't expect to have to fight!",
3: "You're an impressive Trainer to have made it this far."
1: "Du könntest eine Bedrohung für Team Plasma werden, also werden wir dich hier eliminieren!",
2: "Oh, ernsthaft... Ich hatte nicht erwartet, kämpfen zu müssen!",
3: `Du bist ein beeindruckender Trainer, dass du es so weit geschafft hast.
$Als Weiser von Team Plasma werde ich dich besiegen!`
},
"victory": {
1: "Ghetsis...",
2: "It's bitter cold. I'm shivering. I'm suffering.",
3: "Hmph. You're a smarter Trainer than I expected."
1: "G-Cis...",
2: "Es ist bitterkalt. Ich zittere. Ich leide.",
3: "Hm. Du bist ein klügerer Trainer, als ich erwartet hatte. Ich bin beeindruckt."
},
},
"flare_grunt": {
@ -505,14 +510,14 @@ export const PGMdialogue: DialogueTranslationEntries = {
},
"flare_admin": {
"encounter": {
1: "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!",
2: "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.",
3: "I've been waiting for you! I need to do a little research on you! Come, let us begin!"
1: "Ah ha ha! Es wäre mir ein Vergnügen. Komm schon, kleiner Trainer! Zeig mir, was du drauf hast!",
2: "Wir von Team Flare sind die einzigen, die die Schönheit der Welt wirklich schätzen!",
3: "Ich habe auf dich gewartet! Lass mich ein wenig an dir forschen! Komm, lass uns beginnen!"
},
"victory": {
1: "You're quite strong. Oh yes-very strong, indeed.",
2: "Ding-ding-ding! Yup, you did it! To the victor goes the spoils!",
3: "Wonderful! Amazing! You have tremendous skill and bravery!"
1: "Du bist ziemlich stark. Oh ja, sehr stark, in der Tat.",
2: "Es scheint als hätte ich mich geirrt… Der Sieger steht fest.",
3: "Wunderbar! Erstaunlich! Du hast enormes Geschick und dieser Mut!"
},
},
"rocket_boss_giovanni_1": {

View File

@ -35,7 +35,7 @@ export const moveTriggers: SimpleTranslationEntries = {
"isOverflowingWithSpacePower": "Kosmische Kräfte strömen aus {{pokemonName}}!",
"usedUpAllElectricity": "{{pokemonName}} braucht seinen Strom komplett auf!",
"stoleItem": "{{pokemonName}} hat {{targetName}} das Item {{itemName}} geklaut!",
"incineratedItem": "{{itemName}} von {{targetName}} ist verbrannt und somit nutzlos geworden!",
"incineratedItem": "{{pokemonName}} hat {{itemName}} von {{targetName}} verbrannt. Es ist somit nutzlos geworden!",
"knockedOffItem": "{{pokemonName}} schlägt das Item {{itemName}} von {{targetName}} weg!",
"tookMoveAttack": "{{pokemonName}} wurde von {{moveName}} getroffen!",
"cutOwnHpAndMaximizedStat": "{{pokemonName}} nutzt seine KP und maximiert dadurch seinen {{statName}}-Wert!",

View File

@ -128,32 +128,32 @@ export const trainerClasses: SimpleTranslationEntries = {
"rocket_grunt": "Rüpel von Team Rocket",
"rocket_grunt_female": "Rüpel von Team Rocket",
"rocket_grunts": "Rüpel von Team Rocket",
"rocket_admin": "Rocket Admin",
"rocket_admin_female": "Rocket Admin",
"rocket_admin": "Team Rocket Vorstand",
"rocket_admin_female": "Team Rocket Vorstand",
"magma_grunt": "Rüpel von Team Magma",
"magma_grunt_female": "Rüpel von Team Magma",
"magma_grunts": "Rüpel von Team Magma",
"magma_admin": "Magma Admin",
"magma_admin_female": "Magma Admin",
"magma_admin": "Team Magma Vorstand",
"magma_admin_female": "Team Magma Vorstand",
"aqua_grunt": "Rüpel von Team Aqua",
"aqua_grunt_female": "Rüpel von Team Aqua",
"aqua_grunts": "Rüpel von Team Aqua",
"aqua_admin": "Aqua Admin",
"aqua_admin_female": "Aqua Admin",
"aqua_admin": "Team Aqua Vorstand",
"aqua_admin_female": "Team Aqua Vorstand",
"galactic_grunt": "Rüpel von Team Galaktik",
"galactic_grunt_female": "Rüpel von Team Galaktik",
"galactic_grunts": "Rüpel von Team Galaktik",
"galactic_admin": "Galactic Admin",
"galactic_admin_female": "Galactic Admin",
"galactic_admin": "Team Galaktik Commander",
"galactic_admin_female": "Team Galaktik Commander",
"plasma_grunt": "Rüpel von Team Plasma",
"plasma_grunt_female": "Rüpel von Team Plasma",
"plasma_grunts": "Rüpel von Team Plasma",
"plasma_sage": "Plasma Sage",
"plasma_sage": "Weiser von Team Plasma",
"flare_grunt": "Rüpel von Team Flare",
"flare_grunt_female": "Rüpel von Team Flare",
"flare_grunts": "Rüpel von Team Flare",
"flare_admin": "Flare Admin",
"flare_admin_female": "Flare Admin",
"flare_admin": "Team Flare Vorstand",
"flare_admin_female": "Team Flare Vorstand",
} as const;
// Names of special trainers like gym leaders, elite four, and the champion

View File

@ -13,12 +13,12 @@ export const filterBar: SimpleTranslationEntries = {
"passive": "Passif",
"passiveUnlocked": "Passif débloqué",
"passiveLocked": "Passif verrouillé",
"ribbon": "Médaille",
"hasWon": "Médaille - Oui",
"hasNotWon": "Médaille - Non",
"ribbon": "Ruban",
"hasWon": "Ruban - Oui",
"hasNotWon": "Ruban - Non",
"sortByNumber": "Par N°",
"sortByCost": "Par cout",
"sortByCandies": "Par # bonbons",
"sortByCandies": "Par bonbons",
"sortByIVs": "Par IV",
"sortByName": "Par nom",
};

View File

@ -35,12 +35,12 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
"unlockPassive": "Débloquer Passif",
"reduceCost": "Diminuer le cout",
"sameSpeciesEgg": "Acheter un Œuf",
"cycleShiny": ": » Chromatiques",
"cycleForm": ": » Formes",
"cycleGender": ": » Sexes",
"cycleAbility": ": » Talents",
"cycleNature": ": » Natures",
"cycleVariant": ": » Variants",
"cycleShiny": ": Chromatique",
"cycleForm": ": Forme",
"cycleGender": ": Sexe",
"cycleAbility": ": Talent",
"cycleNature": ": Nature",
"cycleVariant": ": Variant",
"enablePassive": "Activer Passif",
"disablePassive": "Désactiver Passif",
"locked": "Verrouillé",

View File

@ -152,8 +152,8 @@ export const trainerClasses: SimpleTranslationEntries = {
"flare_grunt": "Sbire de la Team Flare",
"flare_grunt_female": "Sbire de la Team Flare",
"flare_grunts": "Sbires de la Team Flare",
"flare_admin": "Flare Admin",
"flare_admin_female": "Flare Admin",
"flare_admin": "Manager de la Team Flare",
"flare_admin_female": "Manageuse de la Team Flare",
} as const;
// Names of special trainers like gym leaders, elite four, and the champion
@ -284,7 +284,7 @@ export const trainerNames: SimpleTranslationEntries = {
"rival_female": "Papina", //Litteral translation of ivy, also used as Female name in a North-American indigenous language
"maxie": "Max",
"archie": "Arthur",
"cyrus": "Hélios",
"cyrus": "Hélio",
"ghetsis": "Ghetis",
"lysandre": "Lysandre",

View File

@ -2998,7 +2998,7 @@ export class MoveEffectPhase extends PokemonPhase {
}
applyAttrs.push(new Promise(resolve => {
applyFilteredMoveAttrs((attr: MoveAttr) => attr instanceof MoveEffectAttr && attr.trigger === MoveEffectTrigger.PRE_APPLY && (!attr.firstHitOnly || firstHit) && (!attr.lastHitOnly || lastHit),
applyFilteredMoveAttrs((attr: MoveAttr) => attr instanceof MoveEffectAttr && attr.trigger === MoveEffectTrigger.PRE_APPLY && (!attr.firstHitOnly || firstHit) && (!attr.lastHitOnly || lastHit) && hitResult !== HitResult.NO_EFFECT,
user, target, move).then(() => {
if (hitResult !== HitResult.FAIL) {
const chargeEffect = !!move.getAttrs(ChargeAttr).find(ca => ca.usedChargeEffect(user, this.getTarget(), move));