From 384f6e1feed6439d47f5a0e7c5e60a77e233b1e0 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Thu, 27 Jun 2024 16:55:27 -0700 Subject: [PATCH] [Bug] add flag to know if pokemon was populated from data-source to fix boss segments for endless double bosses (#2672) also reverted previous change as this was breaking for non-session-restored fights --- src/field/pokemon.ts | 2 ++ src/phases.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index b1e7f48d3db..3eb194d3966 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -3398,12 +3398,14 @@ export class EnemyPokemon extends Pokemon { public aiType: AiType; public bossSegments: integer; public bossSegmentIndex: integer; + public readonly isPopulatedFromDataSource: boolean; constructor(scene: BattleScene, species: PokemonSpecies, level: integer, trainerSlot: TrainerSlot, boss: boolean, dataSource: PokemonData) { super(scene, 236, 84, species, level, dataSource?.abilityIndex, dataSource?.formIndex, dataSource?.gender, dataSource ? dataSource.shiny : false, dataSource ? dataSource.variant : undefined, null, dataSource ? dataSource.nature : undefined, dataSource); this.trainerSlot = trainerSlot; + this.isPopulatedFromDataSource = !!dataSource; if (boss) { this.setBoss(boss, dataSource?.bossSegments); } diff --git a/src/phases.ts b/src/phases.ts index fcaf3ca4160..6865c030730 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -870,7 +870,7 @@ export class EncounterPhase extends BattlePhase { } else { if (battle.enemyParty.filter(p => p.isBoss()).length > 1) { for (const enemyPokemon of battle.enemyParty) { - if (enemyPokemon.isBoss()) { + if (enemyPokemon.isBoss() && !enemyPokemon.isPopulatedFromDataSource) { enemyPokemon.setBoss(true, Math.ceil(enemyPokemon.bossSegments * (enemyPokemon.getSpeciesForm().baseTotal / totalBst))); enemyPokemon.initBattleInfo(); }