From c80489460cc9f0b5d00197aa1b7a83b80bbc0eae Mon Sep 17 00:00:00 2001 From: damocleas Date: Fri, 7 Feb 2025 15:28:25 -0500 Subject: [PATCH 1/3] [Bug] [Balance] Fix Bouncy Bubble being a spread move, revert back to 100% drain effect (#5269) --- src/data/move.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 5bc37b4e8e8..48f90297115 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -10429,9 +10429,8 @@ export function initMoves() { new AttackMove(Moves.PIKA_PAPOW, Type.ELECTRIC, MoveCategory.SPECIAL, -1, -1, 20, -1, 0, 7) .attr(FriendshipPowerAttr), new AttackMove(Moves.BOUNCY_BUBBLE, Type.WATER, MoveCategory.SPECIAL, 60, 100, 20, -1, 0, 7) - .attr(HitHealAttr) // Custom - .triageMove() - .target(MoveTarget.ALL_NEAR_ENEMIES), + .attr(HitHealAttr, 1) + .triageMove(), new AttackMove(Moves.BUZZY_BUZZ, Type.ELECTRIC, MoveCategory.SPECIAL, 60, 100, 20, 100, 0, 7) .attr(StatusEffectAttr, StatusEffect.PARALYSIS), new AttackMove(Moves.SIZZLY_SLIDE, Type.FIRE, MoveCategory.PHYSICAL, 60, 100, 20, 100, 0, 7) From e06a9df4cd912e4b4e9efafe9daf5b9532570dc5 Mon Sep 17 00:00:00 2001 From: Lugiad <2070109+Adri1@users.noreply.github.com> Date: Fri, 7 Feb 2025 21:40:58 +0100 Subject: [PATCH 2/3] [UX/UI] Update emerald font for zero (again) (#5268) --- public/fonts/pokemon-emerald-pro.ttf | Bin 93788 -> 95224 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/fonts/pokemon-emerald-pro.ttf b/public/fonts/pokemon-emerald-pro.ttf index 758130172c76eb3ddd06ced11258f00e8b92671e..d63ff2d6470d640eff3c77d034b0af86643721c2 100644 GIT binary patch delta 5096 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 OH}n=5<0}=`_x}rIOEE+M From 986fbf3cf74b95d55d7012a7a25a896f1cfcd424 Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Fri, 7 Feb 2025 16:00:25 -0600 Subject: [PATCH 3/3] [Move] [Bug] Fix super-niche edgecase with mega gengar and telekinesis (#5266) * Fix super-niche edgecase with mega gengar and telekinesis * Update TelekinesisTag doc comment * Remove comment about mega gengar as this update fixes it --- src/data/battler-tags.ts | 2 +- src/field/pokemon.ts | 2 +- src/test/moves/telekinesis.test.ts | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 17dc34aa514..c399a9bb595 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -2871,7 +2871,7 @@ export class SyrupBombTag extends BattlerTag { /** * Telekinesis raises the target into the air for three turns and causes all moves used against the target (aside from OHKO moves) to hit the target unless the target is in a semi-invulnerable state from Fly/Dig. * The first effect is provided by {@linkcode FloatingTag}, the accuracy-bypass effect is provided by TelekinesisTag - * The effects of Telekinesis can be baton passed to a teammate. Unlike the mainline games, Telekinesis can be baton-passed to Mega Gengar. + * The effects of Telekinesis can be baton passed to a teammate. * @see {@link https://bulbapedia.bulbagarden.net/wiki/Telekinesis_(move) | Moves.TELEKINESIS} */ export class TelekinesisTag extends BattlerTag { diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 8caa78aa7c9..16af8364502 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -3234,7 +3234,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } for (const tag of source.summonData.tags) { - if (!tag.isBatonPassable) { + if (!tag.isBatonPassable || (tag.tagType === BattlerTagType.TELEKINESIS && this.species.speciesId === Species.GENGAR && this.getFormKey() === "mega")) { continue; } diff --git a/src/test/moves/telekinesis.test.ts b/src/test/moves/telekinesis.test.ts index 76c0d001f00..ba2bc40a189 100644 --- a/src/test/moves/telekinesis.test.ts +++ b/src/test/moves/telekinesis.test.ts @@ -7,6 +7,7 @@ import { MoveResult } from "#app/field/pokemon"; import GameManager from "#test/utils/gameManager"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, it, expect, vi } from "vitest"; +import { BattlerIndex } from "#app/battle"; describe("Moves - Telekinesis", () => { let phaserGame: Phaser.Game; @@ -121,4 +122,17 @@ describe("Moves - Telekinesis", () => { expect(enemyOpponent.getTag(BattlerTagType.FLOATING)).toBeUndefined(); expect(playerPokemon.getLastXMoves()[0].result).toBe(MoveResult.SUCCESS); }); + + it("should not be baton passed onto a mega gengar", async () => { + game.override.moveset([ Moves.BATON_PASS ]) + .enemyMoveset([ Moves.TELEKINESIS ]) + .starterForms({ [Species.GENGAR]: 1 }); + + await game.classicMode.startBattle([ Species.MAGIKARP, Species.GENGAR ]); + game.move.select(Moves.BATON_PASS); + game.doSelectPartyPokemon(1); + await game.setTurnOrder([ BattlerIndex.ENEMY, BattlerIndex.PLAYER ]); + await game.phaseInterceptor.to("BerryPhase"); + expect(game.scene.getPlayerPokemon()!.getTag(BattlerTagType.TELEKINESIS)).toBeUndefined(); + }); });