The utilichart-relevant code has been overhauled for simplicity. Utilichart results and headers are now both 33 pixels tall, total. Headers are slightly larger, to make them fill the space better. The larger font size makes them more header-like, anyway. Results are two pixels taller than before, giving them enough room for gen 6 pokemon icons (not enabled in this commit), and in general aiding performance slightly (fewer result rows on the screen at a time). Making them both 33 pixels allows height to be computed precisely as 33*rows, which is relevant for result rows to be inserted into the DOM on-demand. On-demand DOM insertion has previously been implemented in pokedex.js, but the new on-demand DOM code in search.js works slightly differently. It makes stronger assumptions (that the only bottleneck is DOM insertion speed, and that ctrl+f without scrolling to the bottom doesn't need to be supported, and that result rows and result headers are always 33 pixels tall), which makes for much simpler code, and is presumably slightly faster because of this. The new on-demand DOM code is surfaced by an "All results" button in the pokedex (pokemonshowdown.com/dex/), for basic testing, but the long-term plan is for it to be used in the teambuilder for pokemon/etc selection, to massively increase performance. Nearly two years after I wrote search.js to be a better utilichart API than utilichart.js, we'll soon finally start using it in place of utilichart.js in the main sim teambuilder!
Pokémon Showdown Client
Navigation: Website | Server repository | Client repository
Introduction
This is a repository for most of the client code for Pokémon Showdown.
This is what runs play.pokemonshowdown.com.
WARNING: You probably want the Pokémon Showdown server, if you're setting up a server.
Testing
You can make and test client changes simply by opening testclient.html.
This will allow you to test changes to the client without setting up your
own login server.
You can connect to an arbitrary server by navigating to
testclient.html?~~host:port. For example, to connect to a server running
locally on port 8000, you can navigate to testclient.html?~~localhost:8000.
The following things will fail in testclient.html:
- Registering
- Changing name to a registered name other than the one you are currently logged in with (however, changing to an unregistered name will work, and you can even change back to your original registered name afterward)
Everything else can be tested, though.
Warning
This repository is not "batteries included". It does NOT include everything necessary to run a full Pokémon Showdown client.
In particular, it doesn't include a login/authentication server, nor does it
include the database abstraction library used by the ladder library (although
it's similar enough to mysqli that you can use that with minimal changes).
It also doesn't include several resource files (namely, the /audio/ and
/sprites/ directories) for size reasons.
In other words, this repository is incomplete and NOT intended for people who wish to serve their own Pokémon Showdown client (you can, but it'll require you to rewrite some things). Rather, it's intended for people who wish to contribute and submit pull requests to Pokémon Showdown's client.
License
Pokémon Showdown's client is distributed under the terms of the AGPLv3.
WARNING: This is NOT the same license as Pokémon Showdown's server.