Why does the move Leech Seed have so many odd quirks

pokemon-ruby-sapphire-emerald

The move Leech Seed sets a volatile status on the opponent Pokemon, draining its HP. However, I've noticed there are several strange quirks that are unique to this move that make me think it is somehow unique or fundamentally different from other moves. It's not the only move that casts a volatile status effect, so I can't think of anything that would make it truly unique. The particular quirks I've noticed are:

  • If the move misses (e.g. due to low Accuracy or a foe's high Evasiveness), the text given is not that the move missed, but that the foe "evaded the attack". This also happens if the move does not affect the opponent because the opponent has already been seeded, which is confusing.

  • For some odd reason, even with a foe that is under the influence of Attract, it seems like Leech Seed will never fail. The opponent is never immobilized by infatuation. No other move does this.

Is there any specific reason, technical or not, why this move has so many quirks?


The previous revision contained references to some disassembly that I had found in my attempt to see if a bug is to blame, but it appears that it made the question look too much like a question about game dev, so I've removed it for now. It's still available in the previous revision if anyone wishes to see it.

Best Answer

Leech Seed has been present since the 1st generation games. In those games, it had extra mechanics unique to it compared to other volatile statuses. It was the only volatile status that could not affect every Pokemon - it failed against Grass-type Pokemon. The text that the foe "evaded the attack" would appear when used against opposing Grass-types, and also foes who were already seeded. Leech Seed also had its damage multiplier increased when Toxic damage increased over time.

My impression is that due to the different mechanics, it was coded differently from the other volatile statuses. With this different code, the code for the message when the move failed had to be different. This led to a different message. The message being different may or may not have been intentional by Game Freak; it is possible that different coders wrote different messages for Leech Seed and other volatile statuses and didn't coordinate.

As it already happened in generation 1, the gamemakers may have decided to write different code and message in subsequent generations as well. The reason for this is unclear; they could have been using the previous code as a template for its new code, or they intentionally kept the message for nostalgia for old Pokemon fans. Due to the different code for Leech Seed, it could not trigger the chance to be infatuated when affected by Attract. This may have been an unintentional bug (in my opinion this is likely, but it's impossible to confirm).