From cc27913728e92d82c0d1a2cd90ead28b63170612 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 5 Nov 2023 22:44:49 -0500 Subject: [PATCH] Fix opponent post-summon ability triggers happening twice in trainer battles --- src/battle-phases.ts | 3 ++- src/pokemon.ts | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 89ff1fa90..180eb5b75 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -383,7 +383,8 @@ export class EncounterPhase extends BattlePhase { this.scene.unshiftPhase(new ShinySparklePhase(this.scene, BattlerIndex.ENEMY + e)); }); - enemyField.map(p => this.scene.pushPhase(new PostSummonPhase(this.scene, p.getBattlerIndex()))); + if (this.scene.currentBattle.battleType !== BattleType.TRAINER) + enemyField.map(p => this.scene.pushPhase(new PostSummonPhase(this.scene, p.getBattlerIndex()))); // TODO: Remove //this.scene.unshiftPhase(new SelectModifierPhase(this.scene)); diff --git a/src/pokemon.ts b/src/pokemon.ts index 5184f6f77..117a345f6 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -39,6 +39,9 @@ export enum FieldPosition { const ABILITY_OVERRIDE = Abilities.NONE; const MOVE_OVERRIDE = Moves.NONE; +const OPP_ABILITY_OVERRIDE = Abilities.NONE; +const OPP_MOVE_OVERRIDE = Moves.NONE; + export default abstract class Pokemon extends Phaser.GameObjects.Container { public id: integer; public name: string; @@ -494,6 +497,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { getAbility(): Ability { if (ABILITY_OVERRIDE && this.isPlayer()) return abilities[ABILITY_OVERRIDE]; + if (OPP_ABILITY_OVERRIDE && !this.isPlayer()) + return abilities[OPP_ABILITY_OVERRIDE]; if (this.fusionSpecies) return abilities[this.getFusionSpeciesForm().getAbility(this.fusionAbilityIndex)]; return abilities[this.getSpeciesForm().getAbility(this.abilityIndex)]; @@ -619,6 +624,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { if (MOVE_OVERRIDE && this.isPlayer()) this.moveset[0] = new PokemonMove(MOVE_OVERRIDE); + else if (OPP_MOVE_OVERRIDE && !this.isPlayer()) + this.moveset[0] = new PokemonMove(OPP_MOVE_OVERRIDE); } trySelectMove(moveIndex: integer, ignorePp?: boolean): boolean {