Skip to content

Generation 1 mechanics not properly handled #753

@jkim2729

Description

@jkim2729

Generation 1 mechanics are not properly accounted for in the Pokemon, battle, or player objects. Generation 1 is filled with bugs and oddities that are different from future generations. This means poke env either does not track or tracks attributes incorrectly for generation 1. There are likely more, but the five I ran into during development were

  1. Stat Boosting Moves - In gen 1, debuffs like paralysis speed drop and burn attack drop can be reapplied when any other stat boosting effect takes place. This is not properly tracked with the self._boosts attribute.

  2. Stat overflow glitch - It is possible in generation 1 to exceed the stat limit of 1023 which causes an overflow. I did not see a way to properly track this.

  3. Counter - I did not see a way to track previous damage dealt, so it could be determined how much damage this move would do.

  4. Toxic/Leech Seed Counter - In generation 1, toxic and leech seed use the same counter. Having both applied doubles the rate of damage increases. Burn also shares this same counter and the toxic counter is not reset upon cleansing moves like rest. So for example after a rest removed toxic, a newly applied toxic, burn, or leech seed would still do an increased damage amount.

  5. Partial Trapping moves (Wrap, Bind, Fire Spin, etc.) - There is no way to track the number of turns that a pokemon has been partially trapped for.

Let me know if methods to handle this stuff already exists. Otherwise, I'd be happy to work on all of this

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions