Done Gen 3: Hustle should affect status moves' accuracy

What type of bug are you reporting? Mechanics

What is the bug?
Hustle in Generation 3 should cause non-damaging physical-type moves to miss since this generation does not flag moves as 'Status' like in Gen 4 and onwards. Normal-Type non-damaging moves such as Encore, Yawn, and Growl are considered Physical in Gen 3 and should be affected by Hustle's negative accuracy ratio.

In video - Togepi's Growl missing on a wild Wurmple

ADV in Showdown currently categorizes all non-damaging moves as 'Status', and consequently never miss when under Hustle.

In replay - 25 Turns of perfect accuracy for both players with Hustle sets in Pokemon Showdown
https://replay.pokemonshowdown.com/gen3ou-2044792295

Are you able to replicate it? If so, how?
In cartridge or emulator, Pokemon with Hustle such as Togepi, Togetic, Corsola, and Delibird can be made to repeatedly use a non-damaging, targeting, physical-type move, with 100 Accuracy. It will miss 20% of the time due to Hustle.

On showdown, a Pokemon with Hustle can be made to Growl, or Charm at another Pokemon repeatedly until the experimenter is satisfied that it does not miss.
 
On showdown, a Pokemon with Hustle can be made to Growl, or Charm at another Pokemon repeatedly until the experimenter is satisfied that it does not miss.
One need not even go this far. From /mods/gen3/scripts.ts:
Code:
    init() {
        const specialTypes = ['Fire', 'Water', 'Grass', 'Ice', 'Electric', 'Dark', 'Psychic', 'Dragon'];
        let newCategory = '';
        for (const i in this.data.Moves) {
            if (!this.data.Moves[i]) console.log(i);
            if (this.data.Moves[i].category === 'Status') continue;
            newCategory = specialTypes.includes(this.data.Moves[i].type) ? 'Special' : 'Physical';
            if (newCategory !== this.data.Moves[i].category) {
                this.modData('Moves', i).category = newCategory;
            }
        }
    },
Status moves remain classified as Status moves in Gen 3 regardless of type (correctly). Hustle remains unchanged, and Hustle is coded to strictly look at category. I have submitted a fix for this, specific to Gen 3, that modifies Hustle's accuracy check to look at whether the type of the move is a physical one. I kept, as an alternative, the code that checks if it is a physical move. I was unsure whether there are unintended consequences if I removed that.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top