diff --git a/src/data/balance/pokemon-evolutions.ts b/src/data/balance/pokemon-evolutions.ts index a1cd1750c8f..cfe4ac35f9d 100644 --- a/src/data/balance/pokemon-evolutions.ts +++ b/src/data/balance/pokemon-evolutions.ts @@ -177,7 +177,10 @@ export class SpeciesEvolutionCondition { case EvoCondKey.PARTY_TYPE: return !!globalScene.getPlayerParty().find(p => p.getTypes(false, false, true).indexOf(cond.pkmnType) > -1) case EvoCondKey.EVO_TREASURE_TRACKER: - return pokemon.getHeldItems().some(m => m.is("EvoTrackerModifier") && m.getStackCount() >= cond.value); + return pokemon.getHeldItems().some(m => + m.is("EvoTrackerModifier") && + m.getStackCount() + pokemon.getPersistentTreasureCount() >= cond.value + ); case EvoCondKey.GENDER: return pokemon.gender === cond.gender; case EvoCondKey.SHEDINJA: // Shedinja cannot be evolved into directly diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 792a16c9e13..1a3ceea8273 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -5449,6 +5449,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } this.turnData.berriesEaten.push(berryType); } + + getPersistentTreasureCount(): number { + return this.getHeldItems().filter(m => m.is("DamageMoneyRewardModifier")).length + + globalScene.findModifiers( + m => + m.is("MoneyMultiplierModifier") || + m.is("ExtraModifierModifier"), + ).length; + } } export class PlayerPokemon extends Pokemon { diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index a94e0568ae9..59fcb532805 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -923,21 +923,13 @@ export class EvoTrackerModifier extends PokemonHeldItemModifier { } getIconStackText(virtual?: boolean): Phaser.GameObjects.BitmapText | null { - const pokemon = globalScene.getPokemonById(this.pokemonId); + const pokemon = this.getPokemon(); - this.virtualStackCount = pokemon - ? pokemon.getHeldItems().filter(m => m instanceof DamageMoneyRewardModifier).length + - globalScene.findModifiers( - m => - m instanceof MoneyMultiplierModifier || - m instanceof ExtraModifierModifier || - m instanceof TempExtraModifierModifier, - ).length - : 0; + const count = (pokemon?.getPersistentTreasureCount() || 0) + this.getStackCount(); - const text = globalScene.add.bitmapText(10, 15, "item-count", this.getStackCount().toString(), 11); + const text = globalScene.add.bitmapText(10, 15, "item-count", count.toString(), 11); text.letterSpacing = -0.5; - if (this.getStackCount() >= this.required) { + if (count >= this.required) { text.setTint(0xf89890); } text.setOrigin(0, 0);