

Learn how to recreate this skill in RPG Maker MV! This may have been an unintentional bug (in my opinion this is likely, but it's impossible to confirm).Leech Seed is a skill from Pokémon that allows the user to drain 1/8th of the target’s current HP each turn and heal it for itself.
LEECH SEED POKEMON CODE
Due to the different code for Leech Seed, it could not trigger the chance to be infatuated when affected by Attract. 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. 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.Īs it already happened in generation 1, the gamemakers may have decided to write different code and message in subsequent generations as well. With this different code, the code for the message when the move failed had to be different. My impression is that due to the different mechanics, it was coded differently from the other volatile statuses. Leech Seed also had its damage multiplier increased when Toxic damage increased over time. The text that the foe "evaded the attack" would appear when used against opposing Grass-types, and also foes who were already seeded. It was the only volatile status that could not affect every Pokemon - it failed against Grass-type Pokemon. In those games, it had extra mechanics unique to it compared to other volatile statuses. Leech Seed has been present since the 1st generation games. 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. STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE, STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, In gLeechSeedStringIds: const u16 gLeechSeedStringIds = 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). This is in the function that is called whenever an attempt to seed the opponent is made. From the function atk7F_setseeded: if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3 & STATUS3_LEECHSEED) 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. Just in case it helps, I'm posting what I know so far from the disassembly of Pokemon Emerald. Is there any specific reason, technical or not, why this move has so many quirks? The opponent is never immobilized by infatuation. This also happens if the move does not affect the opponent because the opponent has already been seeded, which is confusing.įor some odd reason, even with a foe that is under the influence of Attract, it seems like Leech Seed will never fail. 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". 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. 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. The move Leech Seed sets a volatile status on the opponent Pokemon, draining its HP.
