smogon / pokemon-showdown

Pokémon battle simulator.
https://pokemonshowdown.com
MIT License
4.77k stars 2.79k forks source link

Crash involving Gen 2 TOX -> PSN on a Poison type #5463

Closed scheibo closed 5 years ago

scheibo commented 5 years ago
Run `node tools/simulate exhaustive --cycles=2 --format=gen2customgame --seed=33971,18589,31546,54979`:
 TypeError: Cannot read property 'counter' of undefined
    at Battle.onAfterMoveSelf (data/mods/gen2/statuses.js:110:105)
  ...

Relevant portion from the output logs to demonstrate whats going on:

|turn|61
|
|split|p1
|switch|p1a: Hitmontop|Hitmontop, L99, M|185/226
|switch|p1a: Hitmontop|Hitmontop, L99, M|185/226
|move|p2a: Qwilfish|Transform|p1a: Hitmontop
|-transform|p2a: Qwilfish|p1a: Hitmontop
|-endability|p2a: Qwilfish|none|[from] move: Transform
|
|upkeep
|turn|62
|
|move|p2a: Qwilfish|Moonlight|p2a: Qwilfish
|split|p2
|-heal|p2a: Qwilfish|130/235
|-heal|p2a: Qwilfish|130/235
|move|p1a: Hitmontop|Toxic|p2a: Qwilfish
|-status|p2a: Qwilfish|tox
|
|upkeep
|turn|63
|
|move|p2a: Qwilfish|Moonlight|p2a: Qwilfish
|split|p2
|-heal|p2a: Qwilfish|235/235 tox
|-heal|p2a: Qwilfish|235/235 tox
|split|p2
|-damage|p2a: Qwilfish|221/235 tox|[from] psn
|-damage|p2a: Qwilfish|221/235 tox|[from] psn
|move|p1a: Hitmontop|Moonlight|p1a: Hitmontop
|split|p1
|-heal|p1a: Hitmontop|226/226
|-heal|p1a: Hitmontop|226/226
|
|upkeep
|turn|64
|
|split|p2
|switch|p2a: Sudowoodo|Sudowoodo, L94, F|207/270
|switch|p2a: Sudowoodo|Sudowoodo, L94, F|207/270
|split|p1
|switch|p1a: Dewgong|Dewgong, L50, F|172/172
|switch|p1a: Dewgong|Dewgong, L50, F|172/172
|
|upkeep
|turn|65
|
|move|p1a: Dewgong|Spore|p2a: Sudowoodo
|-status|p2a: Sudowoodo|slp
|cant|p2a: Sudowoodo|slp
|
|upkeep
|turn|66
|
|split|p1
|switch|p1a: Mew|Mew, L82|5/306
|switch|p1a: Mew|Mew, L82|5/306
|split|p2
|switch|p2a: Qwilfish|Qwilfish, L81, F|221/235 tox
|switch|p2a: Qwilfish|Qwilfish, L81, F|221/235 tox
|debug|natural status immunity
|debug|immune to status
|split|p2
|-damage|p2a: Qwilfish|207/235 tox|[from] psn
|-damage|p2a: Qwilfish|207/235 tox|[from] psn
|
|upkeep
|turn|67

https://github.com/Zarel/Pokemon-Showdown/blob/82f0f9c71b7dbe1c1a4d689f0b8f9750efdd9154/data/mods/gen2/statuses.js#L112-L115

https://github.com/Zarel/Pokemon-Showdown/blob/82f0f9c71b7dbe1c1a4d689f0b8f9750efdd9154/sim/pokemon.ts#L1255-L1263

Zarel commented 5 years ago

Replacing pokemon.setStatus('psn'); with pokemon.status = 'psn'; in onSwitchIn should fix that.