From 3e5ef3e3fb6dcae654fb455c35a2289144c852a1 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Mon, 24 Jun 2024 21:15:11 -0700 Subject: [PATCH] [Bug] add playerfiled length check for score determination (#2583) --- src/field/trainer.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/field/trainer.ts b/src/field/trainer.ts index d49a3478791..3e78afeae83 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -436,16 +436,20 @@ export default class Trainer extends Phaser.GameObjects.Container { const partyMemberScores = nonFaintedLegalPartyMembers.map(p => { const playerField = this.scene.getPlayerField().filter(p => p.isAllowedInBattle()); let score = 0; - for (const playerPokemon of playerField) { - score += p.getMatchupScore(playerPokemon); - if (playerPokemon.species.legendary) { - score /= 2; + + if (playerField.length > 0) { + for (const playerPokemon of playerField) { + score += p.getMatchupScore(playerPokemon); + if (playerPokemon.species.legendary) { + score /= 2; + } + } + score /= playerField.length; + if (forSwitch && !p.isOnField()) { + this.scene.arena.findTagsOnSide(t => t instanceof ArenaTrapTag, ArenaTagSide.ENEMY).map(t => score *= (t as ArenaTrapTag).getMatchupScoreMultiplier(p)); } } - score /= playerField.length; - if (forSwitch && !p.isOnField()) { - this.scene.arena.findTagsOnSide(t => t instanceof ArenaTrapTag, ArenaTagSide.ENEMY).map(t => score *= (t as ArenaTrapTag).getMatchupScoreMultiplier(p)); - } + return [party.indexOf(p), score]; }) as [integer, integer][];