diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 5b12dc88b86..64e3a55cad2 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -442,7 +442,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.battleData.illusion = { active: true, available: true, - basePokemon: this, + basePokemon: { ...this }, species: getPokemonSpecies(speciesId), formIndex: lastPokemon.formIndex, gender: lastPokemon.gender, @@ -473,7 +473,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.battleData.illusion = { active: true, available: true, - basePokemon: this, + basePokemon: { ...this }, species: randomIllusion, formIndex: randomIllusion.formIndex, gender: this.gender diff --git a/src/test/abilities/illusion.test.ts b/src/test/abilities/illusion.test.ts index 153fa811047..dd7c74462f9 100644 --- a/src/test/abilities/illusion.test.ts +++ b/src/test/abilities/illusion.test.ts @@ -57,6 +57,7 @@ describe("Abilities - Illusion", () => { const zorua = game.scene.getEnemyPokemon()!; expect(zorua.battleData.illusion.active).equals(false); + expect(zorua.name).equals("Zorua") }); it("break after getting ability changed", async () => { @@ -126,7 +127,6 @@ describe("Abilities - Illusion", () => { await game.phaseInterceptor.to(TurnEndPhase); const zoroark = game.scene.getPlayerPokemon()!; - //console.log(zoroark.battleData.illusion); expect(zoroark.name).equals("Axew"); expect(zoroark.getNameToRender()).equals("axew nickname"); expect(zoroark.getGender(false, true)).equals(Gender.FEMALE); diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 115b14f0591..cb4e5e2c2f8 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -1299,7 +1299,7 @@ class PartySlot extends Phaser.GameObjects.Container { const fusionShinyStar = globalScene.add.image(0, 0, "shiny_star_small_2"); fusionShinyStar.setOrigin(0, 0); fusionShinyStar.setPosition(shinyStar.x, shinyStar.y); - fusionShinyStar.setTint(getVariantTint(this.pokemon.battleData.illusion.fusionVariant ?? this.pokemon.fusionVariant)); + fusionShinyStar.setTint(getVariantTint(this.pokemon.battleData.illusion.basePokemon?.fusionVariant ?? this.pokemon.fusionVariant)); slotInfoContainer.add(fusionShinyStar); } diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 863e3bf0386..c949dcf3fed 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -333,8 +333,8 @@ export default class SummaryUiHandler extends UiHandler { this.pokemonSprite.setPipelineData("teraColor", getTypeRgb(this.pokemon.getTeraType())); this.pokemonSprite.setPipelineData("ignoreTimeTint", true); this.pokemonSprite.setPipelineData("spriteKey", this.pokemon.getSpriteKey()); - this.pokemonSprite.setPipelineData("shiny", this.pokemon.battleData.illusion.shiny ?? this.pokemon.shiny); - this.pokemonSprite.setPipelineData("variant", this.pokemon.battleData.illusion.variant ?? this.pokemon.variant); + this.pokemonSprite.setPipelineData("shiny", this.pokemon.battleData.illusion.basePokemon?.shiny ?? this.pokemon.shiny); + this.pokemonSprite.setPipelineData("variant", this.pokemon.battleData.illusion.basePokemon?.variant ?? this.pokemon.variant); [ "spriteColors", "fusionSpriteColors" ].map(k => { delete this.pokemonSprite.pipelineData[`${k}Base`]; if (this.pokemon?.summonData?.speciesForm) { @@ -405,7 +405,7 @@ export default class SummaryUiHandler extends UiHandler { this.fusionShinyIcon.setPosition(this.shinyIcon.x, this.shinyIcon.y); this.fusionShinyIcon.setVisible(doubleShiny); if (isFusion) { - this.fusionShinyIcon.setTint(getVariantTint(this.pokemon.battleData.illusion.fusionVariant ?? this.pokemon.fusionVariant)); + this.fusionShinyIcon.setTint(getVariantTint(this.pokemon.battleData.illusion.basePokemon?.fusionVariant ?? this.pokemon.fusionVariant)); } this.pokeball.setFrame(getPokeballAtlasKey(this.pokemon.pokeball));