This commit is contained in:
Jonathan Bankston 2025-06-20 05:08:38 +00:00 committed by GitHub
commit 4eab8a9769
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 21 additions and 2 deletions

View File

@ -3903,7 +3903,12 @@ export class PostSummonTransformAbAttr extends PostSummonAbAttr {
const targets = pokemon.getOpponents(); const targets = pokemon.getOpponents();
const target = this.getTarget(targets); const target = this.getTarget(targets);
if (target.summonData.illusion) { //Prevents Imposter from triggering on a transformed target or if the user is already transformed
if (pokemon?.isTransformed() || target?.isTransformed()) {
return false;
}
if (target?.summonData?.illusion) {
return false; return false;
} }

View File

@ -7616,7 +7616,6 @@ export class TransformAttr extends MoveEffectAttr {
globalScene.phaseManager.unshiftNew("PokemonTransformPhase", user.getBattlerIndex(), target.getBattlerIndex()); globalScene.phaseManager.unshiftNew("PokemonTransformPhase", user.getBattlerIndex(), target.getBattlerIndex());
globalScene.phaseManager.queueMessage(i18next.t("moveTriggers:transformedIntoTarget", { pokemonName: getPokemonNameWithAffix(user), targetName: getPokemonNameWithAffix(target) }));
return true; return true;
} }

View File

@ -1062,6 +1062,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
return species; return species;
} }
isTransformed(): boolean {
return this.summonData.speciesForm !== null;
}
/** /**
* @param {boolean} useIllusion - Whether we want the fusionSpeciesForm of the illusion or not. * @param {boolean} useIllusion - Whether we want the fusionSpeciesForm of the illusion or not.
*/ */

View File

@ -339,6 +339,17 @@ export class MovePhase extends BattlePhase {
this.showMoveText(); 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. // Clear out any two turn moves once they've been used.
// TODO: Refactor move queues and remove this assignment; // TODO: Refactor move queues and remove this assignment;
// Move queues should be handled by the calling `CommandPhase` or a manager for it // Move queues should be handled by the calling `CommandPhase` or a manager for it