Guangcong Luo cf8bb24e71 Refactor data storage
Data (teams and prefs) are now always stored in localStorage in the
`https://play.pokemonshowdown.com` origin. Data storage at a low
level has been mostly rewritten for this, and moved to storage.js.

Tools.prefs has been renamed Storage.prefs, although the API
Tools.prefs(prefName) is still available, and recommended for
battle.js (because storage.js isn't available in replays). All
other pref functionality, such as setting prefs and saving prefs,
should only be used in Storage.prefs.

If the browser blocks third-party cookies in a detectable way,
data is instead stored in the local origin.

As a final safety measure, prefs/teams are mirrored in the local origin
in case third-party cookies are blocked in an undetectable way.

This refactor also replaces the 'init:loadprefs' and 'init:loadteams'
events with a new load tracking system that's basically a simplified
implementation of Promises, documented in the comments for
Tools.makeLoadTracker().
2015-11-28 04:36:41 -05:00
2015-11-12 11:11:41 -05:00
2015-11-04 03:22:00 -05:00
2015-07-02 13:20:25 -04:00
2014-02-01 01:03:36 -06:00
2015-11-28 04:36:41 -05:00
2015-11-26 03:53:56 -05:00
2015-11-28 04:36:41 -05:00
2014-01-12 01:26:57 -06:00
2015-07-02 13:21:10 -04:00
2015-11-28 04:08:45 -05:00
2013-09-02 22:07:23 -05:00
2015-11-28 04:36:41 -05:00
2015-11-28 04:36:41 -05:00
2015-07-22 18:14:21 -04:00
2013-11-09 00:18:38 -06:00
2013-09-02 22:07:32 -05:00
2015-11-28 04:36:41 -05:00
2015-11-25 17:36:28 -05:00
2013-09-20 16:48:31 -05:00
2015-06-28 00:50:16 -04:00
2013-04-27 01:51:38 -07:00
2013-04-27 01:51:38 -07:00
2013-04-27 01:51:38 -07:00
2014-06-19 01:41:27 -05:00

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.

Description
The client for Pokémon Showdown
Readme AGPL-3.0 3.9 GiB
Languages
TypeScript 42.1%
PHP 29.1%
JavaScript 21.5%
CSS 5.2%
HTML 1.9%
Other 0.2%