All sound stuff is now handled directly by BattleSound, using the
HTML5 audio API.
The main complicated thing we do with sound is loop music with an intro.
This is unfortunately not supported by ANY sound library out there
(I had to manually add support for it myself to soundManager!)
https://github.com/scottschiller/SoundManager2/pull/13
In the end, I don't think the existing libraries out there actually
give us anything I care about.
`updatePseudoWeatherLeft`, `updateToxicTurns`, and `clearTurnstatuses`
have now been merged into a new function `updateTurnCounters`, which
should simplify some things.
This should also allow OMs to use `|-singleturn|` during end-of-turn
switch-ins, as requested in
https://github.com/smogon/pokemon-showdown/issues/6996
"Format/Team" and the spectator checkbox have too low contrast on
certain backgrounds.
I suspect we'll get a lot of complaints regarding the redesign, but
oh well, accessibility wins here.
Ideally we'll have more support for custom ranks on side servers,
but for now you'll have to deal with & and ~ having the same label,
if you still use ~.
The automatic server detection just loops through all registered
servers and tries each of them to find the correct one. This process
will hang if any registered server isn't responding to DNS queries,
which at the number we currently have, makes all servers not sending
serverid fail.
We now hard-require the Config.serverid setting, to prevent this
problem.
PS officially doesn't use this, but some bots used to read this
directly from GitHub, and building it is nontrivial, so this lets
bots read it from our webserver instead.
It's available at:
https://play.pokemonshowdown.com/data/formats.js
(And as usual, feel free to use HTTP if your language's HTTPS
implementation is hard to use.)