Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disguise implementation is not working correctly #2966

Closed
pkmnsnfrn opened this issue Apr 30, 2023 · 12 comments · Fixed by #3025
Closed

Disguise implementation is not working correctly #2966

pkmnsnfrn opened this issue Apr 30, 2023 · 12 comments · Fixed by #3025

Comments

@pkmnsnfrn
Copy link
Collaborator

pkmnsnfrn commented Apr 30, 2023

I have tried to test each line of Bulbapedia's description and provided video evidence where I could.

Broken Scenarios

Fixed Scenarios

#4360

Working Scenarios

  • Damage: If a Mimikyu in its Disguised Form is hit by a damaging move, Disguise prevents the move from calling the damage formula.

  • Immunity: The move will thus deal no damage, and type effectiveness will not be calculated (except in case of immunity, which prevents Disguise from triggering since the move will not hit in the first place).

  • Multi-Hit Moves: Disguise activates at the first strike of a multi-strike move such as Water Shuriken and will not block damage from remaining strikes.

  • Secondary Effects: Disguise only blocks the damage from moves; additional effects of damaging moves like paralysis from Nuzzle are not prevented.

  • Substitute: If Mimikyu has a substitute, the substitute will take damage before Disguise.

  • Weakness Policy: Weakness Policy will not activate regardless of the move's type.

  • Overwrite Ability: Gastro Acid, Worry Seed, and Simple Beam fail if the target has the Ability Disguise.

  • Copy Ability Moves: Role Play, Skill Swap, Entrainment, and Doodle fail if either Pokémon has Disguise.

  • Copy Ability Abilities: Disguise cannot be copied by Trace, Power of Alchemy, or Receiver.

  • Ability Suppress: Disguise cannot be replaced by Mummy or Lingering Aroma, traded by Wandering Spirit, or suppressed by Core Enforcer or Neutralizing Gas.

  • Transform: If a Pokémon obtains Disguise with Imposter or Transform, the Ability will never activate.

  • Mold Breaker / Teravolt / Turboblaze: Pokémon with Mold Breaker, Teravolt or Turboblaze will ignore Disguise, hitting through the disguise without busting it.

  • Light Trio Signature Moves: The moves Moongeist Beam, Sunsteel Strike, and Photon Geyser will ignore Disguise, hitting through the disguise without busting it.

Testing

The following are all the different scripts I used for testing. If I used the debug menu, I tried to show it off in the video as much as possible.

Battle against Mimikyu with Pikachu
    setflag FLAG_BADGE08_GET
    givemon SPECIES_PIKACHU, 100, 0
    setwildbattle SPECIES_MIMIKYU, 100, 0
    dowildbattle
Battle against Mimikyu with Trevenant
    setflag FLAG_BADGE08_GET
    givemon SPECIES_TREVENANT, 100, 0
    setwildbattle SPECIES_MIMIKYU, 100, 0
    dowildbattle
Battle against Trainer Rick's Mimikyu with Tyranitar
    setflag FLAG_BADGE08_GET
    givemon SPECIES_TYRANITAR, 100, 0
    trainerbattle_no_intro TRAINER_RICK, Debug_FlagsNotSetOverworldConfigMessage_Text
//you'll need to edit Rick's team to have a Mimikyu as the second Pokemon
Battle against Mimikyu with Scizor
    setflag FLAG_BADGE08_GET
    givemon SPECIES_SCIZOR, 100, 0
    setwildbattle SPECIES_MIMIKYU, 50, 0
    dowildbattle
    end
Battle against two Mimikyu with Mikimyu, Alolan Muk, and Jigglypuff
    setflag FLAG_BADGE08_GET
    givemon SPECIES_MIMIKYU, 1, 0
    givemon SPECIES_MUK_ALOLAN, 100, 0
    givemon SPECIES_JIGGLYPUFF, 1, 0
    setwildbattle SPECIES_MIMIKYU, 1, 0, SPECIES_MIMIKYU, 1, 0
    dowildbattle
Battle against Mimikyu with Cofagrigus, Runerigus, Zygarde, Ninjask, Ditto and Mimikyu
    setflag FLAG_BADGE08_GET
    givemon SPECIES_COFAGRIGUS, 100, 0
    givemon SPECIES_RUNERIGUS, 100, 0
    givemon SPECIES_ZYGARDE, 100, 0
    givemon SPECIES_NINJASK, 100,0
    givemon SPECIES_MIMIKYU, 100,0
    givemon SPECIES_DITTO,100, 0
    setwildbattle SPECIES_MIMIKYU, 100, 0
    dowildbattle
Give player Z-Power Ring and battle with Mimikyu with Rampardos, Scizor, Lunala, Solgaleo, and Ultra Necrozma
    setflag FLAG_BADGE08_GET
    additem ITEM_Z_POWER_RING, 1
    givemon SPECIES_RAMPARDOS, 100, 0
    givemon SPECIES_ZEKROM, 100, 0
    givemon SPECIES_SCIZOR, 100, 0
    givemon SPECIES_LUNALA, 100, ITEM_LUNALIUM_Z
    givemon SPECIES_SOLGALEO, 100, ITEM_SOLGANIUM_Z
    givemon SPECIES_NECROZMA_ULTRA, 100, ITEM_ULTRANECROZIUM_Z
    setwildbattle SPECIES_MIMIKYU, 100, 0
    dowildbattle
@pkmnsnfrn
Copy link
Collaborator Author

All interactions (to my knowledge) are now tested.

@AsparagusEduardo
Copy link
Collaborator

What happened? Was something still broken?

@AgustinGDLV
Copy link
Collaborator

AgustinGDLV commented May 24, 2023

What happened? Was something still broken?

I want to say the Baton Pass ability suppression edge case still isn't accurate, but I need to test it myself.

@AsparagusEduardo
Copy link
Collaborator

I'm just now realizing that this issue isn't about Mimikyu changing form, but of Disguise edge cases.

@AlexOn1ine
Copy link
Collaborator

AlexOn1ine commented Apr 5, 2024

Besides the fix in #3025 is there anything else broken here and what's the Baton Pass ability suppression edge case?

@pkmnsnfrn
Copy link
Collaborator Author

@AlexOn1ine I think we should assume that all of my "broken scenarios" in the OP are still boken

@AlexOn1ine
Copy link
Collaborator

Type Change: If Mimikyu's type had been changed beforehand, it is restored to Ghost/Fairy when it changes to its Busted Form.
Baton Pass: If a Pokémon that has its Ability suppressed passes that effect to a Pokémon with this Ability via Baton Pass, that effect fades.

Those are untested and probably still broken with PR #4360

@pkmnsnfrn
Copy link
Collaborator Author

@AlexOn1ine What would be easier for you / people fixing battle bugs:

  1. update this issue and moved the fixed stuff from broken
  2. close this issue, open two new issues for each of the remaining items
  3. something else
  4. do nothing

@AlexOn1ine
Copy link
Collaborator

  1. update this issue and moved the fixed stuff from broken

Option 1 seems to be the most reasonable.

@hedara90
Copy link
Collaborator

Both scenarios have been fixed on current expansion.
Types reset back to Ghost/Fairy.
And Disguise triggers after getting Baton Passed Gastro Acid. The bit for Gastro Acid is still set to 1, but Disguise ignores it.
Don't know when it was fixed. Gonna write tests then close the issue.

@AlexOn1ine
Copy link
Collaborator

Both scenarios have been fixed on current expansion. Types reset back to Ghost/Fairy. And Disguise triggers after getting Baton Passed Gastro Acid. The bit for Gastro Acid is still set to 1, but Disguise ignores it. Don't know when it was fixed. Gonna write tests then close the issue.

I assumed #4360 fixed those but I was to lazy to test those cases.

@AlexOn1ine
Copy link
Collaborator

#5249

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants