diff --git a/src/data/moves/move.ts b/src/data/moves/move.ts index 7d3fc253da7..066114e6aca 100644 --- a/src/data/moves/move.ts +++ b/src/data/moves/move.ts @@ -7610,13 +7610,13 @@ export class SuppressAbilitiesIfActedAttr extends MoveEffectAttr { */ export class TransformAttr extends MoveEffectAttr { override apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { - if (!super.apply(user, target, move, args)) { + if (!super.apply(user, target, move, args) || (target.isTransformed() || user.isTransformed())) { + globalScene.phaseManager.queueMessage(i18next.t("battle:attackFailed")); return false; } globalScene.phaseManager.unshiftNew("PokemonTransformPhase", user.getBattlerIndex(), target.getBattlerIndex()); - return true; } } diff --git a/src/phases/move-phase.ts b/src/phases/move-phase.ts index 0deb1c6f470..2e94b085948 100644 --- a/src/phases/move-phase.ts +++ b/src/phases/move-phase.ts @@ -339,17 +339,6 @@ export class MovePhase extends BattlePhase { this.showMoveText(); } - if ( - //Prevent using Transform if either the user or target is already transformed - this.move.getMove().id === MoveId.TRANSFORM && - (targets[0].isTransformed() || this.pokemon.isTransformed()) - ) { - this.showMoveText(); - this.showFailedText(); - this.end(); - return; - } - // Clear out any two turn moves once they've been used. // TODO: Refactor move queues and remove this assignment; // Move queues should be handled by the calling `CommandPhase` or a manager for it