- apply same "You are disconnected and cannot chat" message to battles upon disconnecting from a server. Just a tiny pet peeve when testing code on localhost.
Similar to styles/STYLING.html and styles/hpbartest.html, test pages
prove to be more robust and convenient for testing than the unit
tests (which are already broken).
These pages are primarily intended to help with delivering #1369,
but can be used to test improvements to sprites across the board.
There are people who didn't know Meloetta was PS's mascot! They clearly
needs to be more noticeable. And now they definitely will be.
We're now using the full Gen 5 sprite instead of the minisprite,
overlapping with the buttons, and animated on hover. This might be a
bit over-the-top, but oh well, it's only on hover.
To support running Smogtours on HTTPS, we now support non-443 ports.
We also now set SameSite=None headers for the SID cookie, so it's once
again possible to stay logged in on servers other than Main.
This is probably about as much as I'll implement for now. We'll need to
deprecate the old client before we can implement any major reforms to
the formats list design.
The old approach was to convert the folder list into a string format
that would sort correctly, and then convert it back afterwards. This
was, of course, a huge hack that was difficult to maintain and broke
every new generation, and `PSUtils.sortBy` eliminates the need for it.
This should be a much nicer architecture than the old
`client-battle.js`.
In particular, much of the logic of choosing moves/switches has been
moved into a new `battle-choices.ts`, with `panel-battle.tsx` only
covering the UI.
Challenges with custom rules previously required bypassing the
console commands. Now you can just do them with:
/challenge USERNAME, gen8randombattle@@@teampreview
After a long time struggling to decide how to implement this, I ended
up unifying line parsing.
Advantage: No need to call `BattleTextParser.parseLine` every time you
want to inspect a line. It's parsed into args by `PS.receive` and
everything else gets tokens.
Disadvantage: Battle rooms need to reassemble the original line to put
in their history buffer (`battle.activityQueue`). The lines are getting
parsed twice, anyway, and reassembly is a small price to pay for how
readable everything else is now.