10

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?


Just in case it helps, I'm posting what I know so far from the disassembly of Pokemon Emerald.

I'm looking through the disassembly, and have found the relevant source code that causes the first quirk, although I still have no idea why it is done this way. From the function atk7F_setseeded:

if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED)
{
    gMoveResultFlags |= MOVE_RESULT_MISSED;
    gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}

This is in the function that is called whenever an attempt to seed the opponent is made. This tells me that, if the move has no effect for whatever reason, it communicates the string at position 1 (note that in C, arrays are zero-indexed, so position 1 is the second element). In gLeechSeedStringIds:

const u16 gLeechSeedStringIds[] =
{

    STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK,
    STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE,
};

In other words, if the move results flag contains MOVE_RESULT_NO_EFFECT, then the string that is given is STRINGID_PKMNEVADEDATTACK, which just states that the opponent evaded the attack.

4
  • 1
    Just as clarification Evasion and Accuracy are different things.. Technically it is possible for a move that has 100% accuracy to be evaded/avoided, which is not a miss. – Moacir Jul 8 '19 at 11:26
  • 1
    @Moacir But it is a miss even if Evasion and Accuracy are different. If you increase your Evasiveness with Double Team or Minimize, the opponent's attacks will miss with a message saying "it missed". It's the same message as if the miss was caused by reducing the opponent's Accuracy with Mud Slap or Flash. – forest Jul 9 '19 at 6:10
  • Is there a reason the tag is specific for Pokemon Ruby/Sapphire/Emerald? The evaded text has been present since 1st Gen, and Attract has been present since 2nd Gen – MBorg Aug 18 '19 at 4:28
  • @MBorg I've only experienced this on Emerald. I haven't played the earlier generations in many years. – forest Aug 18 '19 at 6:33
2

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).

2
  • I noticed someone downvoted this (it was not me). Is there an issue with this answer that I should be aware of? – forest Aug 18 '19 at 8:36
  • 1
    The first paragraph is facts. The next two paragraphs are speculation based on the first paragraph. Unfortunately we don’t have concrete facts stating why it’s the case, so the best we have to speculate from what we know – MBorg Aug 18 '19 at 11:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.