* Copy everything from Gen 2 thrashing condition and stop inheriting * Remove residual and MoveAborted events (don't occur in gen 1) * effectState.duration --> effectState.time, so that thrashing pauses on slp/frz/flinch/partial trapping. Also, confusion is now applied before the final Thrash hits (but after confusion check, so the final Thrash won't be interrupted) * Confusion is only applied if Thrashing effect ends naturally, not due to full para/confusion * Thrash should lock the user in, even if it misses/hits a Ghost/etc * Add Thrash tests: duration and locking in the user when it misses * Thrash locks in the user even if it breaks a sub * Remove unnecessary events for thrashing moves * Thrash is paused when the user is asleep, frozen, partially trapped, or flinching * Thrash is paused when disabled * Rage duration is permanent, not 255 * Implement Rage/Thrash accuracy bug (need to change when lockedmove volatile is removed * Move location of applying thrashing effect, so that the final turn will be subject to accuracy bug * Add test for Thrash accuracy bug * Add test for Rage accuracy bug * Remove useless line * Use an event for obtaining accuracy of Rage/Thrash * Revert last change |
||
|---|---|---|
| .github/workflows | ||
| .vscode | ||
| config | ||
| data | ||
| databases | ||
| lib | ||
| logs | ||
| server | ||
| sim | ||
| test | ||
| tools | ||
| translations | ||
| .editorconfig | ||
| .eslintrc-no-types.json | ||
| .eslintrc.json | ||
| .gitattributes | ||
| .gitignore | ||
| .mocharc.json | ||
| .npmignore | ||
| .npmrc | ||
| ARCHITECTURE.md | ||
| build | ||
| CODEOWNERS | ||
| COMMANDLINE.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| old-simulator-doc.txt | ||
| package.json | ||
| pokemon-showdown | ||
| Procfile | ||
| PROTOCOL.md | ||
| README.md | ||
| simulator-doc.txt | ||
| tsconfig.json | ||
Pokémon Showdown
Navigation: Website | Server repository | Client repository | Dex repository
Introduction
Pokémon Showdown is many things:
-
A web site you can use for Pokémon battling
-
A JavaScript library for simulating Pokémon battles and getting Pokédex data
-
Some command-line tools for simulating Pokémon battles (which can be used in non-JavaScript programs)
-
A web API for the web site for Pokémon battling
-
A game server for hosting your own Pokémon Showdown community and game modes
Pokémon Showdown simulates singles, doubles and triples battles in all the games out so far (Generations 1 through 8).
Documentation quick links
-
PROTOCOL.md - How the client and server communicate with each other.
-
sim/SIM-PROTOCOL.md - The part of the protocol used for battles and battle messages.
-
CONTRIBUTING.md - Useful code standards to understand if you want to send pull requests to PS (not necessary if you're just using the code and not planning to contribute back).
-
ARCHITECTURE.md - A high-level overview of how the code works.
-
Bot FAQ - An FAQ compiled by Kaiepi regarding making Pokemon Showdown bots - mainly chatbots and battle bots.
Community
PS has a built-in chat service. Join our main server to talk to us!
You can also visit the Pokémon Showdown forums for discussion and help.
If you'd like to contribute to programming and don't know where to start, feel free to check out Ideas for New Developers.
License
Pokémon Showdown's server is distributed under the terms of the MIT License.
Credits
Owner
- Guangcong Luo [Zarel] - Development, Design, Sysadmin
Staff
- Andrew Werner [HoeenHero] - Development
- Annika L. [Annika] - Development
- Chris Monsanto [chaos] - Development, Sysadmin
- Leonard Craft III - Research (game mechanics)
- Mathieu Dias-Martins [Marty-D] - Research (game mechanics), Development
Contributors