Mechanics Prankster hint during Illusion causes info leak

What type of bug are you reporting? Mechanics

What is the bug?
An info leak occurs involving Prankster and Illusion such that if a Prankster powder move is used on a Zoroark illusioned as a Grass-type, the message involving Prankster and Dark types will appear, even though the move could have failed due to a powder move used on a Grass type.

I would argue that the Dark-type Prankster message is an info leak if the Pokemon is illusioned in general, but especially in this specific scenario.

Are you able to replicate it? If so, how?
PS! Replay
 
I'll describe my solution here in case any non-programmer has some groundbreaking idea:

My proposed solution is to display the following hint any time a Pokémon is immune to a status move used by a Pokémon that might have Prankster:
Since gen 7, Dark is immune to Prankster moves. The attacking Pokémon may have the Prankster ability. It's also possible that the target Pokémon is disguised by Illusion or is immune to the move for a different reason.
I tried to considered all the possible cases and how specific we could be with the hint. We need to account for all the moves that have any kind of immunity mechanic. I implemented some logic to only show a more detailed hint if the source could be a Prankster Pokémon, and the target appeared to be a Dark type or there was a Dark-type Illusion Pokémon on the opposing team. However, this would reveal the presence of an Illusion Pokémon in Random Battles. My solution just says: "Hey, the move failed. It might be because the source is a Prankster Pokémon and the target is a Dark type, but it could also be due to something else. Beware of Illusion!"

You can't even just send the hint if the source has Prankster, because that would reveal information if the source used a Powder move against a slower Dark- and Grass-type target.

Anyway, I think the main reason we have the hint is to prevent confusion over unexpected immunities and to avoid people reporting them as bugs. This way, we retain the hint without leaking information. If anyone has a better solution in mind, feel free to let me know.
 
Anyway, I think the main reason we have the hint is to prevent confusion over unexpected immunities and to avoid people reporting them as bugs. This way, we retain the hint without leaking information. If anyone has a better solution in mind, feel free to let me know.
At least personally, my solution would be to simply not show the Prankster hint if the targeted Pokemon is currently illusioned, except if the Pokemon illusioned is a Dark-type (I am not a programmer so I have no idea if this is technologically feasible or not). Imo this would be the simplest way to go about removing the info leak with minimal potential side effects, even if it could potentially lead to more incorrect bug reports.
 
At least personally, my solution would be to simply not show the Prankster hint if the targeted Pokemon is currently illusioned, except if the Pokemon illusioned is a Dark-type (I am not a programmer so I have no idea if this is technologically feasible or not). Imo this would be the simplest way to go about removing the info leak with minimal potential side effects, even if it could potentially lead to more incorrect bug reports.
This would lead to Prankster leaks due to other types of immunities, such as Attract (due to gender) and Leech Seed (Grass-type). All these checks occur before Prankster. That's why it's so hard to handle every single case separately.
 
Last edited:
Back
Top