diff --git a/src/ui/pokedex-mon-container.ts b/src/ui/pokedex-mon-container.ts index 3dbc490fff4..f3932aa90c8 100644 --- a/src/ui/pokedex-mon-container.ts +++ b/src/ui/pokedex-mon-container.ts @@ -17,6 +17,8 @@ export class PokedexMonContainer extends Phaser.GameObjects.Container { public tmMove1Icon: Phaser.GameObjects.Image; public eggMove2Icon: Phaser.GameObjects.Image; public tmMove2Icon: Phaser.GameObjects.Image; + public passive1Icon: Phaser.GameObjects.Image; + public passive2Icon: Phaser.GameObjects.Image; public cost: number = 0; constructor(species: PokemonSpecies) { @@ -119,7 +121,7 @@ export class PokedexMonContainer extends Phaser.GameObjects.Container { this.tmMove1Icon = tmMove1Icon; // move icons - const eggMove2Icon = globalScene.add.image(10, 12, "mystery_egg"); + const eggMove2Icon = globalScene.add.image(7, 12, "mystery_egg"); eggMove2Icon.setOrigin(0, 0); eggMove2Icon.setScale(0.25); eggMove2Icon.setVisible(false); @@ -134,6 +136,22 @@ export class PokedexMonContainer extends Phaser.GameObjects.Container { this.add(tmMove2Icon); this.tmMove2Icon = tmMove2Icon; + + // move icons + const passive1Icon = globalScene.add.image(3, 3, "candy"); + passive1Icon.setOrigin(0, 0); + passive1Icon.setScale(0.25); + passive1Icon.setVisible(false); + this.add(passive1Icon); + this.passive1Icon = passive1Icon; + + // move icons + const passive2Icon = globalScene.add.image(12, 3, "candy"); + passive2Icon.setOrigin(0, 0); + passive2Icon.setScale(0.25); + passive2Icon.setVisible(false); + this.add(passive2Icon); + this.passive2Icon = passive2Icon; } checkIconId(female, formIndex, shiny, variant) { diff --git a/src/ui/pokedex-ui-handler.ts b/src/ui/pokedex-ui-handler.ts index c22311e71e5..f2de520acd3 100644 --- a/src/ui/pokedex-ui-handler.ts +++ b/src/ui/pokedex-ui-handler.ts @@ -1223,17 +1223,29 @@ export default class PokedexUiHandler extends MessageUiHandler { // Ability filter const abilities = [ container.species.ability1, container.species.ability2, container.species.abilityHidden ].map(a => allAbilities[a].name); + const passive = starterPassiveAbilities[this.getStarterSpeciesId(container.species.speciesId)] ?? 0; + const selectedAbility1 = this.filterText.getValue(FilterTextRow.ABILITY_1); const fitsFormAbility = container.species.forms.some(form => allAbilities[form.ability1].name === selectedAbility1); const fitsAbility1 = abilities.includes(selectedAbility1) || fitsFormAbility || selectedAbility1 === this.filterText.defaultText; + const fitsPassive1 = allAbilities[passive].name === selectedAbility1; - const passive = starterPassiveAbilities[this.getStarterSpeciesId(container.species.speciesId)] ?? 0; const selectedAbility2 = this.filterText.getValue(FilterTextRow.ABILITY_2); - const fitsAbility2 = allAbilities[passive].name === selectedAbility2 || selectedAbility2 === this.filterText.defaultText; + const fitsAbility2 = abilities.includes(selectedAbility2) || fitsFormAbility || selectedAbility2 === this.filterText.defaultText; + const fitsPassive2 = allAbilities[passive].name === selectedAbility2; // If both fields have been set to the same ability, show both ability and passive - const fitsAbilities = (selectedAbility1 === selectedAbility2) ? fitsAbility1 || fitsAbility2 : fitsAbility1 && fitsAbility2; + const fitsAbilities = (fitsAbility1 && (fitsPassive2 || selectedAbility2 === this.filterText.defaultText)) || + (fitsAbility2 && (fitsPassive1 || selectedAbility1 === this.filterText.defaultText)); + container.passive1Icon.setVisible(false); + container.passive2Icon.setVisible(false); + if (fitsPassive1) { + container.passive1Icon.setVisible(true); + } + if (fitsPassive2) { + container.passive2Icon.setVisible(true); + } // Gen filter const fitsGen = this.filterBar.getVals(DropDownColumn.GEN).includes(container.species.generation);