diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 3df1a113e..4328e6962 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -78,7 +78,6 @@ export class CheckLoadPhase extends BattlePhase { this.scene.pushPhase(new SummonPhase(this.scene, 0)); if (this.scene.currentBattle.double && this.scene.getParty().filter(p => !p.isFainted()).length > 1) this.scene.pushPhase(new SummonPhase(this.scene, 1)); - this.scene.getEnemyField().map(p => this.scene.pushPhase(new PostSummonPhase(this.scene, p.getBattlerIndex()))); super.end(); } @@ -277,7 +276,7 @@ export class EncounterPhase extends BattlePhase { this.scene.unshiftPhase(new ShinySparklePhase(this.scene, BattlerIndex.ENEMY + e)); }); - enemyField.forEach(enemyPokemon => this.scene.arena.applyTags(ArenaTrapTag, enemyPokemon)); + enemyField.map(p => this.scene.pushPhase(new PostSummonPhase(this.scene, p.getBattlerIndex()))); // TODO: Remove //this.scene.unshiftPhase(new SelectModifierPhase(this.scene)); @@ -1779,7 +1778,7 @@ export class FaintPhase extends PokemonPhase { this.scene.unshiftPhase(new VictoryPhase(this.scene, this.battlerIndex)); pokemon.lapseTags(BattlerTagLapseType.FAINT); - this.scene.getField().filter(p => p && p !== pokemon).forEach(p => p.removeTagsBySourceId(pokemon.id)); + this.scene.getField().filter(p => p !== pokemon && p?.isActive(true)).forEach(p => p.removeTagsBySourceId(pokemon.id)); pokemon.faintCry(() => { pokemon.hideInfo(); diff --git a/src/battle-scene.ts b/src/battle-scene.ts index b870d355f..18b1db651 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -515,7 +515,7 @@ export default class BattleScene extends Phaser.Scene { let newDouble: boolean; if (double === undefined) { - const doubleChance = new Utils.IntegerHolder(newWaveIndex % 10 === 0 ? 32 : 8); + const doubleChance = newWaveIndex > 1 && new Utils.IntegerHolder(newWaveIndex % 10 === 0 ? 32 : 8); this.applyModifiers(DoubleBattleChanceBoosterModifier, true, doubleChance); this.getPlayerField().forEach(p => applyAbAttrs(DoubleBattleChanceAbAttr, p, null, doubleChance)); newDouble = !Utils.randInt(doubleChance.value); @@ -549,9 +549,10 @@ export default class BattleScene extends Phaser.Scene { if ((lastBattle?.double || false) !== newDouble) { const availablePartyMemberCount = this.getParty().filter(p => !p.isFainted()).length; if (newDouble) { - this.pushPhase(new ToggleDoublePositionPhase(this, true)); - if (availablePartyMemberCount > 1) + if (availablePartyMemberCount > 1) { + this.pushPhase(new ToggleDoublePositionPhase(this, true)); this.pushPhase(new SummonPhase(this, 1)); + } } else { if (availablePartyMemberCount > 1) this.pushPhase(new ReturnPhase(this, 1)); @@ -564,8 +565,6 @@ export default class BattleScene extends Phaser.Scene { if (newDouble) this.pushPhase(new CheckSwitchPhase(this, 1, newDouble)); } - - this.getField().filter(p => p?.isActive(true)).map(p => this.pushPhase(new PostSummonPhase(this, p.getBattlerIndex()))); } return this.currentBattle;