Simulator instances still get their scripts included somewhat hackily,
but it's overall much less hacky than before. In particular, the
init code is now an actual constructor, allowing TypeScript to perhaps
validate it one future day.
I might regret supporting this syntax, but it's now possible to make
PS generate teams on the commandline using:
./pokemon-showdown generate-team [optional format name] [optional seed]
The output will be in packed team format (which can be pasted into
a teambuilder import box).
The seed-passing should make it significantly more straightforward to
debug team generation weirdness.
Random team generation scripts are no longer in scripts.js, but instead
in a new file random-teams.js.
The scripts are now also no longer run from inside battles, but in a
new team generator object. This makes it easier for external scripts
to generate random teams by running Dex.generateTeam(format).
Turns out there is indeed some of these that are not LC but indeed CAP NFE's so I will make this a rank to clarify the difference and will make a PR on the client in tandem shortly
This is used in several parts of the sim where commands carryout potentially dangerous actions. For this reason, it should be apart of a user's constructor.
PS's rule table has been renamed from banlistTable, and works a bit
differently now. It's a Map instead of an object now, and the keys
work a bit differently.
The original banlistTable was designed to store bans, and later
additions shoved rules and then unbans in there. The new table is
designed to support all of these.
If there were less than 12 hours left on a lock, it would display as (expires in around 0 days).
If there are 12 hours or less left on a lock, this will instead display the number of hours remaining rounded